From 3502cdc6070ad44e18b9c81f601e70db7d8edd71 Mon Sep 17 00:00:00 2001 From: sudacode Date: Tue, 31 Mar 2026 12:38:27 -0700 Subject: [PATCH] chore: archive completed backlog tasks and update ordinals - Move ~35 completed tasks from backlog/tasks/ to backlog/completed/ - Add ordinal fields to remaining in-progress task files - Mark task-255 (playlist browser modal) as Done with final notes --- ...y-auto-sync-non-blocking-during-startup.md | 0 ...ubMiner-agentic-testing-automation-plan.md | 0 ...ase-v0.7.0-for-stats-and-runtime-polish.md | 0 ...177.1 - Fix-overview-lookup-rate-metric.md | 0 ... - Count-homepage-new-words-by-headword.md | 0 ...d-stats-command-flow-and-browser-config.md | 0 ...session-detail-known-word-chart-scaling.md | 0 ...peline-to-use-backend-aggregated-series.md | 0 ...sess-PR-19-CodeRabbit-review-follow-ups.md | 0 ...me-cover-art-after-AniList-reassignment.md | 0 ... App-owned-YouTube-subtitle-picker-flow.md | 0 ...ache-key-mismatch-and-active-cue-window.md | 0 ...in-subtitle-flash-on-prefetch-cache-hit.md | 0 ...r-log-level-into-mpv-plugin-script-opts.md | 0 ...ress-latest-PR-19-CodeRabbit-follow-ups.md | 0 ...ing-OSD-during-fullscreen-tracker-flaps.md | 0 ...dia-position-for-anime-episode-progress.md | 0 ...-annotation-for-reading-mismatch-tokens.md | 0 ...che-incremental-and-avoid-full-rebuilds.md | 0 ...e-only-startup-known-word-cache-refresh.md | 0 ...PR-19-Claude-frontend-review-follow-ups.md | 0 ...latest-PR-19-CodeRabbit-review-comments.md | 0 ...-follow-up-typecheck-blocker-is-cleared.md | 0 ...st-PR-19-CodeRabbit-round-after-1227706.md | 0 ...r-tail-そうだ-from-subtitle-annotations.md | 0 ...sion-position-in-anime-episode-progress.md | 0 ...tle-timing-when-checkpoints-are-missing.md | 0 ...oker-helper-startup-blocking-mpv-launch.md | 0 ...ry-progress-during-paused-startup-waits.md | 0 ...o-resume-position-on-first-resolved-cue.md | 0 ...p-auto-open-option-for-subtitle-sidebar.md | 0 ...rough-sync-between-subtitle-and-sidebar.md | 0 ...ion-media-from-stats-library-and-trends.md | 0 ...ay-mpv-keybindings-after-picker-routing.md | 0 ...-address-PR-31-latest-CodeRabbit-review.md | 0 ...be-overlay-keybindings-in-subtitle-path.md | 0 ...-overlay-Anki-initialization-regression.md | 0 ...yback-start-and-make-picker-manual-only.md | 0 ...ubtitle-display-after-auto-load-startup.md | 0 ...-cues-for-auto-loaded-YouTube-subtitles.md | 0 ...ss-PR-31-latest-CodeRabbit-review-round.md | 0 ...R-31-subsequent-CodeRabbit-review-round.md | 0 ...-final-CodeRabbit-picker-test-follow-up.md | 0 ...er-input-while-subtitle-sidebar-is-open.md | 0 ...runing-duplicate-and-source-only-assets.md | 0 ...reamed-video-progress-in-anime-episodes.md | 3 ++- ...ss-PR-35-latest-CodeRabbit-review-round.md | 3 ++- ...-35-autoplay-retry-CodeRabbit-follow-up.md | 3 ++- ...-and-shrink-src-types.ts-import-surface.md | 4 ++-- ...time-into-fetch-build-and-cache-modules.md | 6 +++--- ...y-layer-into-focused-read-model-modules.md | 4 ++-- ...ogic-and-composer-gaps-from-src-main.ts.md | 4 ++-- ...ot-phase-services-runtimes-and-handlers.md | 6 +++--- ...ts-server-Bun-fallback-in-coverage-lane.md | 3 ++- ...Rich-Presence-to-maintained-RPC-wrapper.md | 3 ++- ...title-markup-from-subtitle-sidebar-cues.md | 3 ++- ...lay-toggle-getting-immediately-restored.md | 3 ++- ...niList-token-persistence-on-setup-login.md | 3 ++- ...-while-overlay-subtitle-sidebar-is-open.md | 3 ++- ...le-sidebar-and-Jimaku-integration-pages.md | 3 ++- ...ase-step-against-transient-SSH-failures.md | 3 ++- ...F-lead-in-alignment-with-sentence-audio.md | 3 ++- ...stence-when-safe-storage-is-unavailable.md | 3 ++- ...l-for-sibling-video-files-and-mpv-queue.md | 17 +++++++++------ ...-live-websocket-connect-send-regression.md | 3 ++- ...tartup-to-initialize-websocket-pipeline.md | 3 ++- ...rom-spawning-separate-texthooker-helper.md | 3 ++- ...oker-startup-skipping-texthooker-server.md | 3 ++- ...ithout-requiring-a-subtitle-hover-cycle.md | 3 ++- ...ion-tracker-SQLite-timestamp-truncation.md | 21 ++++++++++++++----- ...post-watch-updates-for-watched-episodes.md | 3 ++- 71 files changed, 77 insertions(+), 42 deletions(-) rename backlog/{tasks => completed}/task-143 - Keep-character-dictionary-auto-sync-non-blocking-during-startup.md (100%) rename backlog/{tasks => completed}/task-165 - Rewrite-SubMiner-agentic-testing-automation-plan.md (100%) rename backlog/{tasks => completed}/task-169 - Cut-minor-release-v0.7.0-for-stats-and-runtime-polish.md (100%) rename backlog/{tasks => completed}/task-177.1 - Fix-overview-lookup-rate-metric.md (100%) rename backlog/{tasks => completed}/task-177.2 - Count-homepage-new-words-by-headword.md (100%) rename backlog/{tasks => completed}/task-177.3 - Fix-attached-stats-command-flow-and-browser-config.md (100%) rename backlog/{tasks => completed}/task-182.2 - Improve-session-detail-known-word-chart-scaling.md (100%) rename backlog/{tasks => completed}/task-188 - Refactor-stats-chart-data-pipeline-to-use-backend-aggregated-series.md (100%) rename backlog/{tasks => completed}/task-191 - Assess-PR-19-CodeRabbit-review-follow-ups.md (100%) rename backlog/{tasks => completed}/task-192 - Fix-stale-anime-cover-art-after-AniList-reassignment.md (100%) rename backlog/{tasks => completed}/task-194 - App-owned-YouTube-subtitle-picker-flow.md (100%) rename backlog/{tasks => completed}/task-196 - Fix-subtitle-prefetch-cache-key-mismatch-and-active-cue-window.md (100%) rename backlog/{tasks => completed}/task-197 - Eliminate-per-line-plain-subtitle-flash-on-prefetch-cache-hit.md (100%) rename backlog/{tasks => completed}/task-199 - Forward-launcher-log-level-into-mpv-plugin-script-opts.md (100%) rename backlog/{tasks => completed}/task-200 - Address-latest-PR-19-CodeRabbit-follow-ups.md (100%) rename backlog/{tasks => completed}/task-201 - Suppress-repeated-macOS-overlay-loading-OSD-during-fullscreen-tracker-flaps.md (100%) rename backlog/{tasks => completed}/task-202 - Use-ended-session-media-position-for-anime-episode-progress.md (100%) rename backlog/{tasks => completed}/task-203 - Restore-known-and-JLPT-annotation-for-reading-mismatch-tokens.md (100%) rename backlog/{tasks => completed}/task-204 - Make-known-word-cache-incremental-and-avoid-full-rebuilds.md (100%) rename backlog/{tasks => completed}/task-204.1 - Restore-stale-only-startup-known-word-cache-refresh.md (100%) rename backlog/{tasks => completed}/task-205 - Address-PR-19-Claude-frontend-review-follow-ups.md (100%) rename backlog/{tasks => completed}/task-206 - Assess-latest-PR-19-CodeRabbit-review-comments.md (100%) rename backlog/{tasks => completed}/task-207 - Verify-PR-19-follow-up-typecheck-blocker-is-cleared.md (100%) rename backlog/{tasks => completed}/task-208 - Assess-newest-PR-19-CodeRabbit-round-after-1227706.md (100%) rename backlog/{tasks => completed}/task-209 - Exclude-grammar-tail-そうだ-from-subtitle-annotations.md (100%) rename backlog/{tasks => completed}/task-210 - Show-latest-session-position-in-anime-episode-progress.md (100%) rename backlog/{tasks => completed}/task-211 - Recover-anime-episode-progress-from-subtitle-timing-when-checkpoints-are-missing.md (100%) rename backlog/{tasks => completed}/task-212 - Fix-mac-texthooker-helper-startup-blocking-mpv-launch.md (100%) rename backlog/{tasks => completed}/task-213 - Show-character-dictionary-progress-during-paused-startup-waits.md (100%) rename backlog/{tasks => completed}/task-214 - Jump-subtitle-sidebar-directly-to-resume-position-on-first-resolved-cue.md (100%) rename backlog/{tasks => completed}/task-215 - Add-startup-auto-open-option-for-subtitle-sidebar.md (100%) rename backlog/{tasks => completed}/task-217 - Fix-embedded-overlay-passthrough-sync-between-subtitle-and-sidebar.md (100%) rename backlog/{tasks => completed}/task-218 - Delete-zero-session-media-from-stats-library-and-trends.md (100%) rename backlog/{tasks => completed}/task-220 - Restore-YouTube-overlay-mpv-keybindings-after-picker-routing.md (100%) rename backlog/{tasks => completed}/task-221 - Assess-and-address-PR-31-latest-CodeRabbit-review.md (100%) rename backlog/{tasks => completed}/task-222 - Fix-YouTube-overlay-keybindings-in-subtitle-path.md (100%) rename backlog/{tasks => completed}/task-223 - Fix-YouTube-overlay-Anki-initialization-regression.md (100%) rename backlog/{tasks => completed}/task-224 - Auto-load-default-YouTube-subtitles-at-playback-start-and-make-picker-manual-only.md (100%) rename backlog/{tasks => completed}/task-225 - Fix-frozen-primary-YouTube-subtitle-display-after-auto-load-startup.md (100%) rename backlog/{tasks => completed}/task-226 - Restore-subtitle-sidebar-cues-for-auto-loaded-YouTube-subtitles.md (100%) rename backlog/{tasks => completed}/task-227 - Assess-and-address-PR-31-latest-CodeRabbit-review-round.md (100%) rename backlog/{tasks => completed}/task-228 - Assess-and-address-PR-31-subsequent-CodeRabbit-review-round.md (100%) rename backlog/{tasks => completed}/task-229 - Address-PR-31-final-CodeRabbit-picker-test-follow-up.md (100%) rename backlog/{tasks => completed}/task-231 - Restore-controller-input-while-subtitle-sidebar-is-open.md (100%) rename backlog/{tasks => completed}/task-232 - Trim-release-package-size-by-pruning-duplicate-and-source-only-assets.md (100%) diff --git a/backlog/tasks/task-143 - Keep-character-dictionary-auto-sync-non-blocking-during-startup.md b/backlog/completed/task-143 - Keep-character-dictionary-auto-sync-non-blocking-during-startup.md similarity index 100% rename from backlog/tasks/task-143 - Keep-character-dictionary-auto-sync-non-blocking-during-startup.md rename to backlog/completed/task-143 - Keep-character-dictionary-auto-sync-non-blocking-during-startup.md diff --git a/backlog/tasks/task-165 - Rewrite-SubMiner-agentic-testing-automation-plan.md b/backlog/completed/task-165 - Rewrite-SubMiner-agentic-testing-automation-plan.md similarity index 100% rename from backlog/tasks/task-165 - Rewrite-SubMiner-agentic-testing-automation-plan.md rename to backlog/completed/task-165 - Rewrite-SubMiner-agentic-testing-automation-plan.md diff --git a/backlog/tasks/task-169 - Cut-minor-release-v0.7.0-for-stats-and-runtime-polish.md b/backlog/completed/task-169 - Cut-minor-release-v0.7.0-for-stats-and-runtime-polish.md similarity index 100% rename from backlog/tasks/task-169 - Cut-minor-release-v0.7.0-for-stats-and-runtime-polish.md rename to backlog/completed/task-169 - Cut-minor-release-v0.7.0-for-stats-and-runtime-polish.md diff --git a/backlog/tasks/task-177.1 - Fix-overview-lookup-rate-metric.md b/backlog/completed/task-177.1 - Fix-overview-lookup-rate-metric.md similarity index 100% rename from backlog/tasks/task-177.1 - Fix-overview-lookup-rate-metric.md rename to backlog/completed/task-177.1 - Fix-overview-lookup-rate-metric.md diff --git a/backlog/tasks/task-177.2 - Count-homepage-new-words-by-headword.md b/backlog/completed/task-177.2 - Count-homepage-new-words-by-headword.md similarity index 100% rename from backlog/tasks/task-177.2 - Count-homepage-new-words-by-headword.md rename to backlog/completed/task-177.2 - Count-homepage-new-words-by-headword.md diff --git a/backlog/tasks/task-177.3 - Fix-attached-stats-command-flow-and-browser-config.md b/backlog/completed/task-177.3 - Fix-attached-stats-command-flow-and-browser-config.md similarity index 100% rename from backlog/tasks/task-177.3 - Fix-attached-stats-command-flow-and-browser-config.md rename to backlog/completed/task-177.3 - Fix-attached-stats-command-flow-and-browser-config.md diff --git a/backlog/tasks/task-182.2 - Improve-session-detail-known-word-chart-scaling.md b/backlog/completed/task-182.2 - Improve-session-detail-known-word-chart-scaling.md similarity index 100% rename from backlog/tasks/task-182.2 - Improve-session-detail-known-word-chart-scaling.md rename to backlog/completed/task-182.2 - Improve-session-detail-known-word-chart-scaling.md diff --git a/backlog/tasks/task-188 - Refactor-stats-chart-data-pipeline-to-use-backend-aggregated-series.md b/backlog/completed/task-188 - Refactor-stats-chart-data-pipeline-to-use-backend-aggregated-series.md similarity index 100% rename from backlog/tasks/task-188 - Refactor-stats-chart-data-pipeline-to-use-backend-aggregated-series.md rename to backlog/completed/task-188 - Refactor-stats-chart-data-pipeline-to-use-backend-aggregated-series.md diff --git a/backlog/tasks/task-191 - Assess-PR-19-CodeRabbit-review-follow-ups.md b/backlog/completed/task-191 - Assess-PR-19-CodeRabbit-review-follow-ups.md similarity index 100% rename from backlog/tasks/task-191 - Assess-PR-19-CodeRabbit-review-follow-ups.md rename to backlog/completed/task-191 - Assess-PR-19-CodeRabbit-review-follow-ups.md diff --git a/backlog/tasks/task-192 - Fix-stale-anime-cover-art-after-AniList-reassignment.md b/backlog/completed/task-192 - Fix-stale-anime-cover-art-after-AniList-reassignment.md similarity index 100% rename from backlog/tasks/task-192 - Fix-stale-anime-cover-art-after-AniList-reassignment.md rename to backlog/completed/task-192 - Fix-stale-anime-cover-art-after-AniList-reassignment.md diff --git a/backlog/tasks/task-194 - App-owned-YouTube-subtitle-picker-flow.md b/backlog/completed/task-194 - App-owned-YouTube-subtitle-picker-flow.md similarity index 100% rename from backlog/tasks/task-194 - App-owned-YouTube-subtitle-picker-flow.md rename to backlog/completed/task-194 - App-owned-YouTube-subtitle-picker-flow.md diff --git a/backlog/tasks/task-196 - Fix-subtitle-prefetch-cache-key-mismatch-and-active-cue-window.md b/backlog/completed/task-196 - Fix-subtitle-prefetch-cache-key-mismatch-and-active-cue-window.md similarity index 100% rename from backlog/tasks/task-196 - Fix-subtitle-prefetch-cache-key-mismatch-and-active-cue-window.md rename to backlog/completed/task-196 - Fix-subtitle-prefetch-cache-key-mismatch-and-active-cue-window.md diff --git a/backlog/tasks/task-197 - Eliminate-per-line-plain-subtitle-flash-on-prefetch-cache-hit.md b/backlog/completed/task-197 - Eliminate-per-line-plain-subtitle-flash-on-prefetch-cache-hit.md similarity index 100% rename from backlog/tasks/task-197 - Eliminate-per-line-plain-subtitle-flash-on-prefetch-cache-hit.md rename to backlog/completed/task-197 - Eliminate-per-line-plain-subtitle-flash-on-prefetch-cache-hit.md diff --git a/backlog/tasks/task-199 - Forward-launcher-log-level-into-mpv-plugin-script-opts.md b/backlog/completed/task-199 - Forward-launcher-log-level-into-mpv-plugin-script-opts.md similarity index 100% rename from backlog/tasks/task-199 - Forward-launcher-log-level-into-mpv-plugin-script-opts.md rename to backlog/completed/task-199 - Forward-launcher-log-level-into-mpv-plugin-script-opts.md diff --git a/backlog/tasks/task-200 - Address-latest-PR-19-CodeRabbit-follow-ups.md b/backlog/completed/task-200 - Address-latest-PR-19-CodeRabbit-follow-ups.md similarity index 100% rename from backlog/tasks/task-200 - Address-latest-PR-19-CodeRabbit-follow-ups.md rename to backlog/completed/task-200 - Address-latest-PR-19-CodeRabbit-follow-ups.md diff --git a/backlog/tasks/task-201 - Suppress-repeated-macOS-overlay-loading-OSD-during-fullscreen-tracker-flaps.md b/backlog/completed/task-201 - Suppress-repeated-macOS-overlay-loading-OSD-during-fullscreen-tracker-flaps.md similarity index 100% rename from backlog/tasks/task-201 - Suppress-repeated-macOS-overlay-loading-OSD-during-fullscreen-tracker-flaps.md rename to backlog/completed/task-201 - Suppress-repeated-macOS-overlay-loading-OSD-during-fullscreen-tracker-flaps.md diff --git a/backlog/tasks/task-202 - Use-ended-session-media-position-for-anime-episode-progress.md b/backlog/completed/task-202 - Use-ended-session-media-position-for-anime-episode-progress.md similarity index 100% rename from backlog/tasks/task-202 - Use-ended-session-media-position-for-anime-episode-progress.md rename to backlog/completed/task-202 - Use-ended-session-media-position-for-anime-episode-progress.md diff --git a/backlog/tasks/task-203 - Restore-known-and-JLPT-annotation-for-reading-mismatch-tokens.md b/backlog/completed/task-203 - Restore-known-and-JLPT-annotation-for-reading-mismatch-tokens.md similarity index 100% rename from backlog/tasks/task-203 - Restore-known-and-JLPT-annotation-for-reading-mismatch-tokens.md rename to backlog/completed/task-203 - Restore-known-and-JLPT-annotation-for-reading-mismatch-tokens.md diff --git a/backlog/tasks/task-204 - Make-known-word-cache-incremental-and-avoid-full-rebuilds.md b/backlog/completed/task-204 - Make-known-word-cache-incremental-and-avoid-full-rebuilds.md similarity index 100% rename from backlog/tasks/task-204 - Make-known-word-cache-incremental-and-avoid-full-rebuilds.md rename to backlog/completed/task-204 - Make-known-word-cache-incremental-and-avoid-full-rebuilds.md diff --git a/backlog/tasks/task-204.1 - Restore-stale-only-startup-known-word-cache-refresh.md b/backlog/completed/task-204.1 - Restore-stale-only-startup-known-word-cache-refresh.md similarity index 100% rename from backlog/tasks/task-204.1 - Restore-stale-only-startup-known-word-cache-refresh.md rename to backlog/completed/task-204.1 - Restore-stale-only-startup-known-word-cache-refresh.md diff --git a/backlog/tasks/task-205 - Address-PR-19-Claude-frontend-review-follow-ups.md b/backlog/completed/task-205 - Address-PR-19-Claude-frontend-review-follow-ups.md similarity index 100% rename from backlog/tasks/task-205 - Address-PR-19-Claude-frontend-review-follow-ups.md rename to backlog/completed/task-205 - Address-PR-19-Claude-frontend-review-follow-ups.md diff --git a/backlog/tasks/task-206 - Assess-latest-PR-19-CodeRabbit-review-comments.md b/backlog/completed/task-206 - Assess-latest-PR-19-CodeRabbit-review-comments.md similarity index 100% rename from backlog/tasks/task-206 - Assess-latest-PR-19-CodeRabbit-review-comments.md rename to backlog/completed/task-206 - Assess-latest-PR-19-CodeRabbit-review-comments.md diff --git a/backlog/tasks/task-207 - Verify-PR-19-follow-up-typecheck-blocker-is-cleared.md b/backlog/completed/task-207 - Verify-PR-19-follow-up-typecheck-blocker-is-cleared.md similarity index 100% rename from backlog/tasks/task-207 - Verify-PR-19-follow-up-typecheck-blocker-is-cleared.md rename to backlog/completed/task-207 - Verify-PR-19-follow-up-typecheck-blocker-is-cleared.md diff --git a/backlog/tasks/task-208 - Assess-newest-PR-19-CodeRabbit-round-after-1227706.md b/backlog/completed/task-208 - Assess-newest-PR-19-CodeRabbit-round-after-1227706.md similarity index 100% rename from backlog/tasks/task-208 - Assess-newest-PR-19-CodeRabbit-round-after-1227706.md rename to backlog/completed/task-208 - Assess-newest-PR-19-CodeRabbit-round-after-1227706.md diff --git a/backlog/tasks/task-209 - Exclude-grammar-tail-そうだ-from-subtitle-annotations.md b/backlog/completed/task-209 - Exclude-grammar-tail-そうだ-from-subtitle-annotations.md similarity index 100% rename from backlog/tasks/task-209 - Exclude-grammar-tail-そうだ-from-subtitle-annotations.md rename to backlog/completed/task-209 - Exclude-grammar-tail-そうだ-from-subtitle-annotations.md diff --git a/backlog/tasks/task-210 - Show-latest-session-position-in-anime-episode-progress.md b/backlog/completed/task-210 - Show-latest-session-position-in-anime-episode-progress.md similarity index 100% rename from backlog/tasks/task-210 - Show-latest-session-position-in-anime-episode-progress.md rename to backlog/completed/task-210 - Show-latest-session-position-in-anime-episode-progress.md diff --git a/backlog/tasks/task-211 - Recover-anime-episode-progress-from-subtitle-timing-when-checkpoints-are-missing.md b/backlog/completed/task-211 - Recover-anime-episode-progress-from-subtitle-timing-when-checkpoints-are-missing.md similarity index 100% rename from backlog/tasks/task-211 - Recover-anime-episode-progress-from-subtitle-timing-when-checkpoints-are-missing.md rename to backlog/completed/task-211 - Recover-anime-episode-progress-from-subtitle-timing-when-checkpoints-are-missing.md diff --git a/backlog/tasks/task-212 - Fix-mac-texthooker-helper-startup-blocking-mpv-launch.md b/backlog/completed/task-212 - Fix-mac-texthooker-helper-startup-blocking-mpv-launch.md similarity index 100% rename from backlog/tasks/task-212 - Fix-mac-texthooker-helper-startup-blocking-mpv-launch.md rename to backlog/completed/task-212 - Fix-mac-texthooker-helper-startup-blocking-mpv-launch.md diff --git a/backlog/tasks/task-213 - Show-character-dictionary-progress-during-paused-startup-waits.md b/backlog/completed/task-213 - Show-character-dictionary-progress-during-paused-startup-waits.md similarity index 100% rename from backlog/tasks/task-213 - Show-character-dictionary-progress-during-paused-startup-waits.md rename to backlog/completed/task-213 - Show-character-dictionary-progress-during-paused-startup-waits.md diff --git a/backlog/tasks/task-214 - Jump-subtitle-sidebar-directly-to-resume-position-on-first-resolved-cue.md b/backlog/completed/task-214 - Jump-subtitle-sidebar-directly-to-resume-position-on-first-resolved-cue.md similarity index 100% rename from backlog/tasks/task-214 - Jump-subtitle-sidebar-directly-to-resume-position-on-first-resolved-cue.md rename to backlog/completed/task-214 - Jump-subtitle-sidebar-directly-to-resume-position-on-first-resolved-cue.md diff --git a/backlog/tasks/task-215 - Add-startup-auto-open-option-for-subtitle-sidebar.md b/backlog/completed/task-215 - Add-startup-auto-open-option-for-subtitle-sidebar.md similarity index 100% rename from backlog/tasks/task-215 - Add-startup-auto-open-option-for-subtitle-sidebar.md rename to backlog/completed/task-215 - Add-startup-auto-open-option-for-subtitle-sidebar.md diff --git a/backlog/tasks/task-217 - Fix-embedded-overlay-passthrough-sync-between-subtitle-and-sidebar.md b/backlog/completed/task-217 - Fix-embedded-overlay-passthrough-sync-between-subtitle-and-sidebar.md similarity index 100% rename from backlog/tasks/task-217 - Fix-embedded-overlay-passthrough-sync-between-subtitle-and-sidebar.md rename to backlog/completed/task-217 - Fix-embedded-overlay-passthrough-sync-between-subtitle-and-sidebar.md diff --git a/backlog/tasks/task-218 - Delete-zero-session-media-from-stats-library-and-trends.md b/backlog/completed/task-218 - Delete-zero-session-media-from-stats-library-and-trends.md similarity index 100% rename from backlog/tasks/task-218 - Delete-zero-session-media-from-stats-library-and-trends.md rename to backlog/completed/task-218 - Delete-zero-session-media-from-stats-library-and-trends.md diff --git a/backlog/tasks/task-220 - Restore-YouTube-overlay-mpv-keybindings-after-picker-routing.md b/backlog/completed/task-220 - Restore-YouTube-overlay-mpv-keybindings-after-picker-routing.md similarity index 100% rename from backlog/tasks/task-220 - Restore-YouTube-overlay-mpv-keybindings-after-picker-routing.md rename to backlog/completed/task-220 - Restore-YouTube-overlay-mpv-keybindings-after-picker-routing.md diff --git a/backlog/tasks/task-221 - Assess-and-address-PR-31-latest-CodeRabbit-review.md b/backlog/completed/task-221 - Assess-and-address-PR-31-latest-CodeRabbit-review.md similarity index 100% rename from backlog/tasks/task-221 - Assess-and-address-PR-31-latest-CodeRabbit-review.md rename to backlog/completed/task-221 - Assess-and-address-PR-31-latest-CodeRabbit-review.md diff --git a/backlog/tasks/task-222 - Fix-YouTube-overlay-keybindings-in-subtitle-path.md b/backlog/completed/task-222 - Fix-YouTube-overlay-keybindings-in-subtitle-path.md similarity index 100% rename from backlog/tasks/task-222 - Fix-YouTube-overlay-keybindings-in-subtitle-path.md rename to backlog/completed/task-222 - Fix-YouTube-overlay-keybindings-in-subtitle-path.md diff --git a/backlog/tasks/task-223 - Fix-YouTube-overlay-Anki-initialization-regression.md b/backlog/completed/task-223 - Fix-YouTube-overlay-Anki-initialization-regression.md similarity index 100% rename from backlog/tasks/task-223 - Fix-YouTube-overlay-Anki-initialization-regression.md rename to backlog/completed/task-223 - Fix-YouTube-overlay-Anki-initialization-regression.md diff --git a/backlog/tasks/task-224 - Auto-load-default-YouTube-subtitles-at-playback-start-and-make-picker-manual-only.md b/backlog/completed/task-224 - Auto-load-default-YouTube-subtitles-at-playback-start-and-make-picker-manual-only.md similarity index 100% rename from backlog/tasks/task-224 - Auto-load-default-YouTube-subtitles-at-playback-start-and-make-picker-manual-only.md rename to backlog/completed/task-224 - Auto-load-default-YouTube-subtitles-at-playback-start-and-make-picker-manual-only.md diff --git a/backlog/tasks/task-225 - Fix-frozen-primary-YouTube-subtitle-display-after-auto-load-startup.md b/backlog/completed/task-225 - Fix-frozen-primary-YouTube-subtitle-display-after-auto-load-startup.md similarity index 100% rename from backlog/tasks/task-225 - Fix-frozen-primary-YouTube-subtitle-display-after-auto-load-startup.md rename to backlog/completed/task-225 - Fix-frozen-primary-YouTube-subtitle-display-after-auto-load-startup.md diff --git a/backlog/tasks/task-226 - Restore-subtitle-sidebar-cues-for-auto-loaded-YouTube-subtitles.md b/backlog/completed/task-226 - Restore-subtitle-sidebar-cues-for-auto-loaded-YouTube-subtitles.md similarity index 100% rename from backlog/tasks/task-226 - Restore-subtitle-sidebar-cues-for-auto-loaded-YouTube-subtitles.md rename to backlog/completed/task-226 - Restore-subtitle-sidebar-cues-for-auto-loaded-YouTube-subtitles.md diff --git a/backlog/tasks/task-227 - Assess-and-address-PR-31-latest-CodeRabbit-review-round.md b/backlog/completed/task-227 - Assess-and-address-PR-31-latest-CodeRabbit-review-round.md similarity index 100% rename from backlog/tasks/task-227 - Assess-and-address-PR-31-latest-CodeRabbit-review-round.md rename to backlog/completed/task-227 - Assess-and-address-PR-31-latest-CodeRabbit-review-round.md diff --git a/backlog/tasks/task-228 - Assess-and-address-PR-31-subsequent-CodeRabbit-review-round.md b/backlog/completed/task-228 - Assess-and-address-PR-31-subsequent-CodeRabbit-review-round.md similarity index 100% rename from backlog/tasks/task-228 - Assess-and-address-PR-31-subsequent-CodeRabbit-review-round.md rename to backlog/completed/task-228 - Assess-and-address-PR-31-subsequent-CodeRabbit-review-round.md diff --git a/backlog/tasks/task-229 - Address-PR-31-final-CodeRabbit-picker-test-follow-up.md b/backlog/completed/task-229 - Address-PR-31-final-CodeRabbit-picker-test-follow-up.md similarity index 100% rename from backlog/tasks/task-229 - Address-PR-31-final-CodeRabbit-picker-test-follow-up.md rename to backlog/completed/task-229 - Address-PR-31-final-CodeRabbit-picker-test-follow-up.md diff --git a/backlog/tasks/task-231 - Restore-controller-input-while-subtitle-sidebar-is-open.md b/backlog/completed/task-231 - Restore-controller-input-while-subtitle-sidebar-is-open.md similarity index 100% rename from backlog/tasks/task-231 - Restore-controller-input-while-subtitle-sidebar-is-open.md rename to backlog/completed/task-231 - Restore-controller-input-while-subtitle-sidebar-is-open.md diff --git a/backlog/tasks/task-232 - Trim-release-package-size-by-pruning-duplicate-and-source-only-assets.md b/backlog/completed/task-232 - Trim-release-package-size-by-pruning-duplicate-and-source-only-assets.md similarity index 100% rename from backlog/tasks/task-232 - Trim-release-package-size-by-pruning-duplicate-and-source-only-assets.md rename to backlog/completed/task-232 - Trim-release-package-size-by-pruning-duplicate-and-source-only-assets.md diff --git a/backlog/tasks/task-219 - Restore-streamed-video-progress-in-anime-episodes.md b/backlog/tasks/task-219 - Restore-streamed-video-progress-in-anime-episodes.md index e86bee01..47f744db 100644 --- a/backlog/tasks/task-219 - Restore-streamed-video-progress-in-anime-episodes.md +++ b/backlog/tasks/task-219 - Restore-streamed-video-progress-in-anime-episodes.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-22 21:25' -updated_date: '2026-03-24 06:44' +updated_date: '2026-03-31 19:37' labels: - stats - immersion-tracker @@ -21,6 +21,7 @@ references: - >- /Users/sudacode/projects/japanese/SubMiner/src/core/services/immersion-tracker-service.test.ts priority: medium +ordinal: 178500 --- ## Description diff --git a/backlog/tasks/task-234 - Address-PR-35-latest-CodeRabbit-review-round.md b/backlog/tasks/task-234 - Address-PR-35-latest-CodeRabbit-review-round.md index 5751f9fb..a1172de6 100644 --- a/backlog/tasks/task-234 - Address-PR-35-latest-CodeRabbit-review-round.md +++ b/backlog/tasks/task-234 - Address-PR-35-latest-CodeRabbit-review-round.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-26 03:59' -updated_date: '2026-03-26 04:01' +updated_date: '2026-03-31 19:37' labels: - review-comments - coderabbit @@ -18,6 +18,7 @@ references: - >- /Users/sudacode/projects/japanese/SubMiner/src/main/runtime/youtube-playback-launch.ts priority: medium +ordinal: 177500 --- ## Description diff --git a/backlog/tasks/task-235 - Address-PR-35-autoplay-retry-CodeRabbit-follow-up.md b/backlog/tasks/task-235 - Address-PR-35-autoplay-retry-CodeRabbit-follow-up.md index 4924607f..aa242697 100644 --- a/backlog/tasks/task-235 - Address-PR-35-autoplay-retry-CodeRabbit-follow-up.md +++ b/backlog/tasks/task-235 - Address-PR-35-autoplay-retry-CodeRabbit-follow-up.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-26 04:30' -updated_date: '2026-03-26 04:31' +updated_date: '2026-03-31 19:37' labels: - review-comments - coderabbit @@ -13,6 +13,7 @@ dependencies: [] references: - /Users/sudacode/projects/japanese/SubMiner/src/main.ts priority: medium +ordinal: 176500 --- ## Description diff --git a/backlog/tasks/task-238.3 - Introduce-domain-type-entrypoints-and-shrink-src-types.ts-import-surface.md b/backlog/tasks/task-238.3 - Introduce-domain-type-entrypoints-and-shrink-src-types.ts-import-surface.md index ed28cfba..eec525fa 100644 --- a/backlog/tasks/task-238.3 - Introduce-domain-type-entrypoints-and-shrink-src-types.ts-import-surface.md +++ b/backlog/tasks/task-238.3 - Introduce-domain-type-entrypoints-and-shrink-src-types.ts-import-surface.md @@ -4,7 +4,7 @@ title: Introduce domain type entrypoints and shrink src/types.ts import surface status: Done assignee: [] created_date: '2026-03-26 20:49' -updated_date: '2026-03-27 00:14' +updated_date: '2026-03-31 19:37' labels: - tech-debt - types @@ -18,6 +18,7 @@ references: - docs/architecture/README.md parent_task_id: TASK-238 priority: medium +ordinal: 174500 --- ## Description @@ -27,7 +28,6 @@ priority: medium ## Acceptance Criteria - - [x] #1 Domain-focused type modules exist for the main clusters currently mixed together in `src/types.ts` (for example Anki, config/runtime, subtitle/media, and integration/runtime-option types). - [x] #2 `src/types.ts` becomes a thinner compatibility layer or barrel instead of the sole source of truth for every shared type. diff --git a/backlog/tasks/task-238.4 - Decompose-character-dictionary-runtime-into-fetch-build-and-cache-modules.md b/backlog/tasks/task-238.4 - Decompose-character-dictionary-runtime-into-fetch-build-and-cache-modules.md index 725cff35..d5679da6 100644 --- a/backlog/tasks/task-238.4 - Decompose-character-dictionary-runtime-into-fetch-build-and-cache-modules.md +++ b/backlog/tasks/task-238.4 - Decompose-character-dictionary-runtime-into-fetch-build-and-cache-modules.md @@ -1,10 +1,10 @@ --- id: TASK-238.4 -title: Decompose character dictionary runtime into fetch, build, and cache modules +title: 'Decompose character dictionary runtime into fetch, build, and cache modules' status: Done -updated_date: '2026-03-27 00:20' assignee: [] created_date: '2026-03-26 20:49' +updated_date: '2026-03-31 19:37' labels: - tech-debt - runtime @@ -19,6 +19,7 @@ references: - docs/architecture/README.md parent_task_id: TASK-238 priority: medium +ordinal: 173500 --- ## Description @@ -28,7 +29,6 @@ priority: medium ## Acceptance Criteria - - [x] #1 AniList fetch/parsing logic, dictionary-entry building, and snapshot/cache/zip persistence no longer live in one giant file. - [x] #2 The public runtime API stays behavior-compatible for current callers. diff --git a/backlog/tasks/task-238.5 - Split-immersion-tracker-query-layer-into-focused-read-model-modules.md b/backlog/tasks/task-238.5 - Split-immersion-tracker-query-layer-into-focused-read-model-modules.md index bd9d507b..a318b9ad 100644 --- a/backlog/tasks/task-238.5 - Split-immersion-tracker-query-layer-into-focused-read-model-modules.md +++ b/backlog/tasks/task-238.5 - Split-immersion-tracker-query-layer-into-focused-read-model-modules.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-26 20:49' -updated_date: '2026-03-27 00:00' +updated_date: '2026-03-31 19:37' labels: - tech-debt - stats @@ -20,6 +20,7 @@ references: - src/core/services/immersion-tracker-service.ts parent_task_id: TASK-238 priority: medium +ordinal: 175500 --- ## Description @@ -29,7 +30,6 @@ priority: medium ## Acceptance Criteria - - [x] #1 Query responsibilities are grouped into focused modules such as library/session detail, vocabulary/kanji detail, and maintenance/cleanup helpers. - [x] #2 The stats server and immersion tracker service depend on stable exported query surfaces instead of one monolithic file. diff --git a/backlog/tasks/task-238.6 - Extract-remaining-inline-runtime-logic-and-composer-gaps-from-src-main.ts.md b/backlog/tasks/task-238.6 - Extract-remaining-inline-runtime-logic-and-composer-gaps-from-src-main.ts.md index 9ef0d6df..551fbe53 100644 --- a/backlog/tasks/task-238.6 - Extract-remaining-inline-runtime-logic-and-composer-gaps-from-src-main.ts.md +++ b/backlog/tasks/task-238.6 - Extract-remaining-inline-runtime-logic-and-composer-gaps-from-src-main.ts.md @@ -4,7 +4,7 @@ title: Extract remaining inline runtime logic and composer gaps from src/main.ts status: Done assignee: [] created_date: '2026-03-27 00:00' -updated_date: '2026-03-27 22:13' +updated_date: '2026-03-31 19:37' labels: - tech-debt - runtime @@ -24,6 +24,7 @@ references: - src/main/runtime/composers parent_task_id: TASK-238 priority: high +ordinal: 172500 --- ## Description @@ -33,7 +34,6 @@ priority: high ## Acceptance Criteria - - [x] #1 `runYoutubePlaybackFlow`, `maybeSignalPluginAutoplayReady`, `refreshSubtitlePrefetchFromActiveTrack`, `publishDiscordPresence`, and `handleModalInputStateChange` no longer live as substantial inline logic in `src/main.ts`. - [x] #2 The large subtitle/prefetch, stats startup, and overlay visibility dependency groupings are wrapped behind named composer helpers instead of remaining inline in `src/main.ts`. diff --git a/backlog/tasks/task-238.7 - Split-src-main.ts-into-boot-phase-services-runtimes-and-handlers.md b/backlog/tasks/task-238.7 - Split-src-main.ts-into-boot-phase-services-runtimes-and-handlers.md index 8fe8aad4..bde5e06b 100644 --- a/backlog/tasks/task-238.7 - Split-src-main.ts-into-boot-phase-services-runtimes-and-handlers.md +++ b/backlog/tasks/task-238.7 - Split-src-main.ts-into-boot-phase-services-runtimes-and-handlers.md @@ -1,10 +1,10 @@ --- id: TASK-238.7 -title: Split src/main.ts into boot-phase services, runtimes, and handlers +title: 'Split src/main.ts into boot-phase services, runtimes, and handlers' status: Done assignee: [] created_date: '2026-03-27 00:00' -updated_date: '2026-03-27 22:45' +updated_date: '2026-03-31 19:37' labels: - tech-debt - runtime @@ -21,6 +21,7 @@ references: - src/main/runtime/composers parent_task_id: TASK-238 priority: high +ordinal: 171500 --- ## Description @@ -30,7 +31,6 @@ After the remaining inline runtime logic and composer gaps are extracted, `src/m ## Acceptance Criteria - - [x] #1 Service instantiation lives in a dedicated boot module instead of a large inline setup block in `src/main.ts`. - [x] #2 Domain runtime composition lives in a dedicated boot module, separate from lifecycle and handler dispatch. diff --git a/backlog/tasks/task-242 - Fix-stats-server-Bun-fallback-in-coverage-lane.md b/backlog/tasks/task-242 - Fix-stats-server-Bun-fallback-in-coverage-lane.md index 346cbffc..1466e0da 100644 --- a/backlog/tasks/task-242 - Fix-stats-server-Bun-fallback-in-coverage-lane.md +++ b/backlog/tasks/task-242 - Fix-stats-server-Bun-fallback-in-coverage-lane.md @@ -4,7 +4,7 @@ title: Fix stats server Bun fallback in coverage lane status: Done assignee: [] created_date: '2026-03-29 07:31' -updated_date: '2026-03-29 07:37' +updated_date: '2026-03-31 19:37' labels: - ci - bug @@ -13,6 +13,7 @@ dependencies: [] references: - 'PR #36' priority: high +ordinal: 170500 --- ## Description diff --git a/backlog/tasks/task-246 - Migrate-Discord-Rich-Presence-to-maintained-RPC-wrapper.md b/backlog/tasks/task-246 - Migrate-Discord-Rich-Presence-to-maintained-RPC-wrapper.md index 54e4ba3d..32a2c445 100644 --- a/backlog/tasks/task-246 - Migrate-Discord-Rich-Presence-to-maintained-RPC-wrapper.md +++ b/backlog/tasks/task-246 - Migrate-Discord-Rich-Presence-to-maintained-RPC-wrapper.md @@ -4,13 +4,14 @@ title: Migrate Discord Rich Presence to maintained RPC wrapper status: Done assignee: [] created_date: '2026-03-29 08:17' -updated_date: '2026-03-29 08:22' +updated_date: '2026-03-31 19:37' labels: - dependency - discord - presence dependencies: [] priority: medium +ordinal: 169500 --- ## Description diff --git a/backlog/tasks/task-247 - Strip-inline-subtitle-markup-from-subtitle-sidebar-cues.md b/backlog/tasks/task-247 - Strip-inline-subtitle-markup-from-subtitle-sidebar-cues.md index 6b405322..3b0f9b5e 100644 --- a/backlog/tasks/task-247 - Strip-inline-subtitle-markup-from-subtitle-sidebar-cues.md +++ b/backlog/tasks/task-247 - Strip-inline-subtitle-markup-from-subtitle-sidebar-cues.md @@ -5,13 +5,14 @@ status: Done assignee: - codex created_date: '2026-03-29 10:01' -updated_date: '2026-03-29 10:10' +updated_date: '2026-03-31 19:37' labels: [] dependencies: [] references: - src/core/services/subtitle-cue-parser.ts - src/renderer/modals/subtitle-sidebar.ts - src/core/services/subtitle-cue-parser.test.ts +ordinal: 168500 --- ## Description diff --git a/backlog/tasks/task-248 - Fix-macOS-visible-overlay-toggle-getting-immediately-restored.md b/backlog/tasks/task-248 - Fix-macOS-visible-overlay-toggle-getting-immediately-restored.md index 1430d7ad..1e9bfb0a 100644 --- a/backlog/tasks/task-248 - Fix-macOS-visible-overlay-toggle-getting-immediately-restored.md +++ b/backlog/tasks/task-248 - Fix-macOS-visible-overlay-toggle-getting-immediately-restored.md @@ -4,7 +4,7 @@ title: Fix macOS visible overlay toggle getting immediately restored status: Done assignee: [] created_date: '2026-03-29 10:03' -updated_date: '2026-03-29 22:14' +updated_date: '2026-03-31 19:37' labels: [] dependencies: [] references: @@ -13,6 +13,7 @@ references: - /Users/sudacode/projects/japanese/SubMiner/src/core/services/cli-command.ts - >- /Users/sudacode/projects/japanese/SubMiner/src/main/overlay-visibility-runtime.ts +ordinal: 165500 --- ## Description diff --git a/backlog/tasks/task-249 - Fix-AniList-token-persistence-on-setup-login.md b/backlog/tasks/task-249 - Fix-AniList-token-persistence-on-setup-login.md index abf7501f..b8ca93d5 100644 --- a/backlog/tasks/task-249 - Fix-AniList-token-persistence-on-setup-login.md +++ b/backlog/tasks/task-249 - Fix-AniList-token-persistence-on-setup-login.md @@ -4,7 +4,7 @@ title: Fix AniList token persistence on setup login status: Done assignee: [] created_date: '2026-03-29 10:08' -updated_date: '2026-03-29 19:42' +updated_date: '2026-03-31 19:37' labels: - anilist - bug @@ -15,6 +15,7 @@ documentation: - src/main/runtime/anilist-token-refresh.ts - docs-site/anilist-integration.md priority: high +ordinal: 166500 --- ## Description diff --git a/backlog/tasks/task-250 - Restore-macOS-mpv-passthrough-while-overlay-subtitle-sidebar-is-open.md b/backlog/tasks/task-250 - Restore-macOS-mpv-passthrough-while-overlay-subtitle-sidebar-is-open.md index 7977bdd2..d694b4fe 100644 --- a/backlog/tasks/task-250 - Restore-macOS-mpv-passthrough-while-overlay-subtitle-sidebar-is-open.md +++ b/backlog/tasks/task-250 - Restore-macOS-mpv-passthrough-while-overlay-subtitle-sidebar-is-open.md @@ -5,7 +5,7 @@ status: Done assignee: - '@codex' created_date: '2026-03-29 10:10' -updated_date: '2026-03-29 10:23' +updated_date: '2026-03-31 19:37' labels: - bug - macos @@ -24,6 +24,7 @@ references: - >- /Users/sudacode/projects/japanese/SubMiner/src/renderer/overlay-mouse-ignore.test.ts priority: high +ordinal: 167500 --- ## Description diff --git a/backlog/tasks/task-251 - Docs-add-subtitle-sidebar-and-Jimaku-integration-pages.md b/backlog/tasks/task-251 - Docs-add-subtitle-sidebar-and-Jimaku-integration-pages.md index 8ec8e000..7b674910 100644 --- a/backlog/tasks/task-251 - Docs-add-subtitle-sidebar-and-Jimaku-integration-pages.md +++ b/backlog/tasks/task-251 - Docs-add-subtitle-sidebar-and-Jimaku-integration-pages.md @@ -4,11 +4,12 @@ title: 'Docs: add subtitle sidebar and Jimaku integration pages' status: Done assignee: [] created_date: '2026-03-29 22:36' -updated_date: '2026-03-29 22:38' +updated_date: '2026-03-31 19:37' labels: - docs dependencies: [] priority: medium +ordinal: 164500 --- ## Description diff --git a/backlog/tasks/task-252 - Harden-AUR-publish-release-step-against-transient-SSH-failures.md b/backlog/tasks/task-252 - Harden-AUR-publish-release-step-against-transient-SSH-failures.md index b2638f58..936a608c 100644 --- a/backlog/tasks/task-252 - Harden-AUR-publish-release-step-against-transient-SSH-failures.md +++ b/backlog/tasks/task-252 - Harden-AUR-publish-release-step-against-transient-SSH-failures.md @@ -4,13 +4,14 @@ title: Harden AUR publish release step against transient SSH failures status: Done assignee: [] created_date: '2026-03-29 23:46' -updated_date: '2026-03-29 23:49' +updated_date: '2026-03-31 19:37' labels: - release - ci - aur dependencies: [] priority: high +ordinal: 163500 --- ## Description diff --git a/backlog/tasks/task-253 - Fix-animated-AVIF-lead-in-alignment-with-sentence-audio.md b/backlog/tasks/task-253 - Fix-animated-AVIF-lead-in-alignment-with-sentence-audio.md index 685a70a6..ec5b5da0 100644 --- a/backlog/tasks/task-253 - Fix-animated-AVIF-lead-in-alignment-with-sentence-audio.md +++ b/backlog/tasks/task-253 - Fix-animated-AVIF-lead-in-alignment-with-sentence-audio.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-30 01:59' -updated_date: '2026-03-30 02:03' +updated_date: '2026-03-31 19:37' labels: [] dependencies: [] references: @@ -14,6 +14,7 @@ references: - /Users/sudacode/projects/japanese/SubMiner/src/anki-integration.ts - /Users/sudacode/projects/japanese/SubMiner/src/core/services/stats-server.ts - /Users/sudacode/projects/japanese/SubMiner/src/media-generator.ts +ordinal: 162500 --- ## Description diff --git a/backlog/tasks/task-254 - Fix-AniList-token-persistence-when-safe-storage-is-unavailable.md b/backlog/tasks/task-254 - Fix-AniList-token-persistence-when-safe-storage-is-unavailable.md index 59efbf6c..d04bc155 100644 --- a/backlog/tasks/task-254 - Fix-AniList-token-persistence-when-safe-storage-is-unavailable.md +++ b/backlog/tasks/task-254 - Fix-AniList-token-persistence-when-safe-storage-is-unavailable.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-30 02:10' -updated_date: '2026-03-30 02:20' +updated_date: '2026-03-31 19:37' labels: - bug - anilist @@ -17,6 +17,7 @@ references: - >- /Users/sudacode/projects/japanese/SubMiner/src/main/runtime/anilist-token-refresh.ts priority: high +ordinal: 161500 --- ## Description diff --git a/backlog/tasks/task-255 - Add-overlay-playlist-browser-modal-for-sibling-video-files-and-mpv-queue.md b/backlog/tasks/task-255 - Add-overlay-playlist-browser-modal-for-sibling-video-files-and-mpv-queue.md index a80abeab..a6e9a8e1 100644 --- a/backlog/tasks/task-255 - Add-overlay-playlist-browser-modal-for-sibling-video-files-and-mpv-queue.md +++ b/backlog/tasks/task-255 - Add-overlay-playlist-browser-modal-for-sibling-video-files-and-mpv-queue.md @@ -1,17 +1,18 @@ --- id: TASK-255 title: Add overlay playlist browser modal for sibling video files and mpv queue -status: In Progress +status: Done assignee: - '@codex' created_date: '2026-03-30 05:46' -updated_date: '2026-03-31 05:59' +updated_date: '2026-03-31 19:37' labels: - feature - overlay - mpv - launcher dependencies: [] +ordinal: 180500 --- ## Description @@ -22,10 +23,10 @@ Add an in-session overlay modal that opens from a keybinding during active playb ## Acceptance Criteria -- [ ] #1 An overlay modal can be opened during active playback from a dedicated keybinding and closed without disrupting existing modal behavior. -- [ ] #2 The modal shows video files from the current media file's parent directory in best-effort episode order and highlights the current file when present. -- [ ] #3 The modal shows the active mpv playlist/queue with enough metadata to identify the current item and queued order. -- [ ] #4 The user can add a directory file to the mpv playlist, remove playlist items, and reorder playlist items from the modal using both mouse and keyboard interactions. +- [x] #1 An overlay modal can be opened during active playback from a dedicated keybinding and closed without disrupting existing modal behavior. +- [x] #2 The modal shows video files from the current media file's parent directory in best-effort episode order and highlights the current file when present. +- [x] #3 The modal shows the active mpv playlist/queue with enough metadata to identify the current item and queued order. +- [x] #4 The user can add a directory file to the mpv playlist, remove playlist items, and reorder playlist items from the modal using both mouse and keyboard interactions. - [x] #5 Modal state stays in sync after playlist mutations so the rendered queue reflects mpv's current playlist order. - [x] #6 Feature coverage includes automated tests for ordering/playlist behavior and docs or shortcut/help updates for the new modal. @@ -84,4 +85,8 @@ Split playlist-browser UI row rendering into `src/renderer/modals/playlist-brows 2026-03-30 latest CodeRabbit remediation on PR #37: switched nowMs() numeric test-clock branch from Math.floor() to Math.trunc() so numeric and string-backed mock clocks agree for negative fractional values. Refactored playlist-browser modal tests onto a shared setup/teardown fixture that restores global window/document descriptors correctly, and added regression coverage that injected globals are deleted when originally absent. Verification: `bun test src/core/services/immersion-tracker/time.test.ts src/renderer/modals/playlist-browser.test.ts`, `bun run typecheck`. 2026-03-30 CodeRabbit follow-up: wrapped the injected-globals cleanup regression in try/finally so restore always runs, and changed the keydown test append mock to return createMutationSnapshot() before exercising Ctrl+ArrowDown. Verified with `bun test src/renderer/modals/playlist-browser.test.ts` and `bun run typecheck`. + +2026-03-31 assessment: the playlist-browser feature is landed on `main` via `d51e7fe4 Add playlist browser overlay modal (#37)` with runtime, IPC, renderer, keybinding, and changelog/docs coverage present. Verified passes: `bun test src/main/runtime/playlist-browser-runtime.test.ts src/main/runtime/playlist-browser-open.test.ts src/main/runtime/playlist-browser-sort.test.ts src/renderer/handlers/keyboard.test.ts src/core/services/ipc.test.ts src/core/services/ipc-command.test.ts src/config/definitions/domain-registry.test.ts`. + +Remaining action item before close: fix `src/renderer/modals/playlist-browser.test.ts` so the cleanup regression does not assume `globalThis.window` / `globalThis.document` start absent under Bun, rerun the playlist-browser modal lane (and then typecheck/build if you want the full closeout proof), then finalize the task. diff --git a/backlog/tasks/task-256 - Fix-texthooker-page-live-websocket-connect-send-regression.md b/backlog/tasks/task-256 - Fix-texthooker-page-live-websocket-connect-send-regression.md index 0f293148..cfccfb22 100644 --- a/backlog/tasks/task-256 - Fix-texthooker-page-live-websocket-connect-send-regression.md +++ b/backlog/tasks/task-256 - Fix-texthooker-page-live-websocket-connect-send-regression.md @@ -5,13 +5,14 @@ status: Done assignee: - codex created_date: '2026-03-30 06:04' -updated_date: '2026-03-30 06:12' +updated_date: '2026-03-31 19:37' labels: - bug - texthooker - websocket dependencies: [] priority: medium +ordinal: 160500 --- ## Description diff --git a/backlog/tasks/task-257 - Fix-texthooker-only-mode-startup-to-initialize-websocket-pipeline.md b/backlog/tasks/task-257 - Fix-texthooker-only-mode-startup-to-initialize-websocket-pipeline.md index bcdce076..b31fb0f3 100644 --- a/backlog/tasks/task-257 - Fix-texthooker-only-mode-startup-to-initialize-websocket-pipeline.md +++ b/backlog/tasks/task-257 - Fix-texthooker-only-mode-startup-to-initialize-websocket-pipeline.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-30 06:15' -updated_date: '2026-03-30 06:17' +updated_date: '2026-03-31 19:37' labels: - bug - texthooker @@ -13,6 +13,7 @@ labels: - startup dependencies: [] priority: high +ordinal: 159500 --- ## Description diff --git a/backlog/tasks/task-258 - Stop-plugin-auto-start-from-spawning-separate-texthooker-helper.md b/backlog/tasks/task-258 - Stop-plugin-auto-start-from-spawning-separate-texthooker-helper.md index c57f0a47..4428d945 100644 --- a/backlog/tasks/task-258 - Stop-plugin-auto-start-from-spawning-separate-texthooker-helper.md +++ b/backlog/tasks/task-258 - Stop-plugin-auto-start-from-spawning-separate-texthooker-helper.md @@ -5,7 +5,7 @@ status: Done assignee: - codex created_date: '2026-03-30 06:25' -updated_date: '2026-03-30 06:26' +updated_date: '2026-03-31 19:37' labels: - bug - texthooker @@ -14,6 +14,7 @@ labels: - startup dependencies: [] priority: high +ordinal: 158500 --- ## Description diff --git a/backlog/tasks/task-259 - Fix-integrated-start-texthooker-startup-skipping-texthooker-server.md b/backlog/tasks/task-259 - Fix-integrated-start-texthooker-startup-skipping-texthooker-server.md index 12c11582..9a902963 100644 --- a/backlog/tasks/task-259 - Fix-integrated-start-texthooker-startup-skipping-texthooker-server.md +++ b/backlog/tasks/task-259 - Fix-integrated-start-texthooker-startup-skipping-texthooker-server.md @@ -4,13 +4,14 @@ title: Fix integrated --start --texthooker startup skipping texthooker server status: Done assignee: [] created_date: '2026-03-30 06:48' -updated_date: '2026-03-30 06:56' +updated_date: '2026-03-31 19:37' labels: - bug - texthooker - startup dependencies: [] priority: high +ordinal: 157500 --- ## Description diff --git a/backlog/tasks/task-260 - Fix-macOS-overlay-subtitle-sidebar-passthrough-without-requiring-a-subtitle-hover-cycle.md b/backlog/tasks/task-260 - Fix-macOS-overlay-subtitle-sidebar-passthrough-without-requiring-a-subtitle-hover-cycle.md index 86312619..490f732d 100644 --- a/backlog/tasks/task-260 - Fix-macOS-overlay-subtitle-sidebar-passthrough-without-requiring-a-subtitle-hover-cycle.md +++ b/backlog/tasks/task-260 - Fix-macOS-overlay-subtitle-sidebar-passthrough-without-requiring-a-subtitle-hover-cycle.md @@ -7,7 +7,7 @@ status: Done assignee: - '@codex' created_date: '2026-03-31 00:58' -updated_date: '2026-03-31 01:01' +updated_date: '2026-03-31 19:37' labels: - bug - macos @@ -27,6 +27,7 @@ references: documentation: - docs/workflow/verification.md priority: high +ordinal: 156500 --- ## Description diff --git a/backlog/tasks/task-261 - Fix-immersion-tracker-SQLite-timestamp-truncation.md b/backlog/tasks/task-261 - Fix-immersion-tracker-SQLite-timestamp-truncation.md index f900d685..a228d753 100644 --- a/backlog/tasks/task-261 - Fix-immersion-tracker-SQLite-timestamp-truncation.md +++ b/backlog/tasks/task-261 - Fix-immersion-tracker-SQLite-timestamp-truncation.md @@ -1,9 +1,10 @@ --- id: TASK-261 title: Fix immersion tracker SQLite timestamp truncation -status: In Progress +status: Done assignee: [] created_date: '2026-03-31 01:45' +updated_date: '2026-03-31 19:37' labels: - immersion-tracker - sqlite @@ -12,7 +13,7 @@ dependencies: [] references: - src/core/services/immersion-tracker priority: medium -ordinal: 1200 +ordinal: 179500 --- ## Description @@ -23,7 +24,17 @@ Current-epoch millisecond values are being truncated by the libsql driver when b ## Acceptance Criteria -- [ ] #1 Current-epoch millisecond timestamps persist correctly in session, telemetry, lifetime, and rollup tables -- [ ] #2 Startup backfill and destroy/finalize flows keep retained sessions and lifetime summaries consistent -- [ ] #3 Regression tests cover the destroyed-session, startup backfill, and distinct-day/distinct-video lifetime semantics +- [x] #1 Current-epoch millisecond timestamps persist correctly in session, telemetry, lifetime, and rollup tables +- [x] #2 Startup backfill and destroy/finalize flows keep retained sessions and lifetime summaries consistent +- [x] #3 Regression tests cover the destroyed-session, startup backfill, and distinct-day/distinct-video lifetime semantics + +## Implementation Notes + + +2026-03-31 assessment: epoch-ms timestamp writes now route through `toDbMs()` / `toDbTimestamp()` in `src/core/services/immersion-tracker/query-shared.ts`, which avoids libsql numeric-parameter truncation by binding BigInt/string values before they hit SQLite. The fix is wired through the session, storage/telemetry, lifetime, and rollup-maintenance paths in `src/core/services/immersion-tracker/session.ts`, `src/core/services/immersion-tracker/storage.ts`, `src/core/services/immersion-tracker/lifetime.ts`, and `src/core/services/immersion-tracker/maintenance.ts`. + +Acceptance coverage is present: `bun test src/core/services/immersion-tracker-service.test.ts` passed with explicit regressions for destroy/finalize persistence, startup backfill when retained sessions exist but lifetime tables are empty, startup reconciliation of stale active sessions, `rebuildLifetimeSummaries`, and distinct-day / distinct-video lifetime semantics. `bun test src/core/services/immersion-tracker/time.test.ts src/core/services/immersion-tracker/maintenance.test.ts` also passed. + +Remaining action item before close: fix the two `src/main/runtime/stats-cli-command.test.ts` cleanup-lifetime assertions that currently use Bun-misparsed underscored millisecond literals (`1_710_000_000_000` evaluates to `-2147483648` under Bun 1.3.11), rerun that verification lane, then write the final summary and mark the task Done. + diff --git a/backlog/tasks/task-262 - Fix-duplicate-AniList-post-watch-updates-for-watched-episodes.md b/backlog/tasks/task-262 - Fix-duplicate-AniList-post-watch-updates-for-watched-episodes.md index 0fce26fe..51890073 100644 --- a/backlog/tasks/task-262 - Fix-duplicate-AniList-post-watch-updates-for-watched-episodes.md +++ b/backlog/tasks/task-262 - Fix-duplicate-AniList-post-watch-updates-for-watched-episodes.md @@ -5,11 +5,12 @@ status: Done assignee: - codex created_date: '2026-03-31 19:03' -updated_date: '2026-03-31 19:05' +updated_date: '2026-03-31 19:37' labels: - bug - anilist dependencies: [] +ordinal: 155500 --- ## Description