From c471bdf5548cc0a9e97f36416f805205c9f2689b Mon Sep 17 00:00:00 2001 From: sudacode Date: Mon, 30 Mar 2026 18:00:03 -0700 Subject: [PATCH] update backlog --- ...l-for-sibling-video-files-and-mpv-queue.md | 8 +++- ...ithout-requiring-a-subtitle-hover-cycle.md | 41 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 backlog/tasks/task-260 - Fix-macOS-overlay-subtitle-sidebar-passthrough-without-requiring-a-subtitle-hover-cycle.md 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 58c9625..fd76130 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 @@ -5,7 +5,7 @@ status: In Progress assignee: - codex created_date: '2026-03-30 05:46' -updated_date: '2026-03-30 08:34' +updated_date: '2026-03-30 09:22' labels: - feature - overlay @@ -40,6 +40,8 @@ Add an in-session overlay modal that opens from a keybinding during active playb 5. Write failing renderer and keyboard tests for modal open/close, split-pane interaction, keyboard controls, and degraded states. 6. Implement playlist-browser modal markup, DOM/state, renderer composition, keyboard routing, and session-help labeling. 7. Run targeted test lanes first, then the maintained verification gate relevant to the touched surfaces; update task notes/criteria as checks pass. + +2026-03-30 CodeRabbit follow-up: 1) add failing runtime coverage for unreadable playlist-browser file stat failures, 2) add failing renderer coverage for stale snapshot UI reset on refresh failure/close, 3) add failing renderer coverage to block playlist-browser open when another modal already owns the overlay, 4) implement minimal fixes, 5) rerun targeted tests plus typecheck for touched surfaces. ## Implementation Notes @@ -58,4 +60,8 @@ Repo gate blockers outside this feature: `bun run test:fast` hits existing Bun ` 2026-03-30: Follow-up subtitle regression fix. Pre-jump `sid=auto` was ineffective because mpv resolved it against the current episode before `playlist-play-index`. Local playlist jumps now set `sub-auto=fuzzy`, switch episodes, then schedule a delayed rearm of `sid=auto` and `secondary-sid=auto` so selection happens against the new file's tracks. Added failing-first runtime coverage for delayed local rearm and remote no-op behavior. 2026-03-30: Cleaned up playlist-browser runtime local-play subtitle-rearm flow by extracting focused helpers without changing behavior. Added public docs/readme coverage for the default `Ctrl+Alt+P` playlist browser keybinding and modal, plus changelog fragment `changes/260-playlist-browser.md`. Verification: `bun test src/main/runtime/playlist-browser-runtime.test.ts`, `bun run typecheck`, `bun run docs:test`, `bun run docs:build`, `bun run changelog:lint`, `bun run build`. + +2026-03-30: Pulled unresolved CodeRabbit review threads for PR #37. Actionable set is three items: unreadable-file stat error handling in playlist-browser runtime, stale playlist-browser DOM after failed refresh/close, and missing modal-ownership guard before opening the playlist-browser overlay. Proceeding test-first for each. + +2026-03-30: Addressed current CodeRabbit follow-up findings for PR #37. Fixed playlist-browser unreadable-file stat handling, stale playlist-browser DOM reset on refresh failure/close, modal-ownership guard before opening the playlist-browser overlay, async rejection surfacing for PLAYLIST_BROWSER_OPEN IPC commands, overlay bootstrap before playlist-browser open dispatch, texthooker option normalization in the mpv plugin, and superseded local subtitle-rearm suppression. Added targeted regressions plus new playlist-browser-open helper coverage. Verification: `bun test src/main/runtime/playlist-browser-runtime.test.ts src/main/runtime/playlist-browser-open.test.ts src/core/services/ipc-command.test.ts src/renderer/modals/playlist-browser.test.ts`, `lua scripts/test-plugin-start-gate.lua`, `bun run typecheck`, `bun run build`. 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 new file mode 100644 index 0000000..be4f964 --- /dev/null +++ b/backlog/tasks/task-260 - Fix-macOS-overlay-subtitle-sidebar-passthrough-without-requiring-a-subtitle-hover-cycle.md @@ -0,0 +1,41 @@ +--- +id: TASK-260 +title: >- + Fix macOS overlay subtitle sidebar passthrough without requiring a subtitle + hover cycle +status: To Do +assignee: [] +created_date: '2026-03-31 00:58' +labels: + - bug + - macos + - overlay + - subtitle-sidebar + - passthrough +dependencies: [] +references: + - >- + /Users/sudacode/projects/japanese/SubMiner/src/renderer/modals/subtitle-sidebar.ts + - >- + /Users/sudacode/projects/japanese/SubMiner/src/renderer/overlay-mouse-ignore.ts + - /Users/sudacode/projects/japanese/SubMiner/src/renderer/handlers/mouse.ts + - /Users/sudacode/projects/japanese/SubMiner/src/main/overlay-runtime.ts + - >- + /Users/sudacode/projects/japanese/SubMiner/src/core/services/overlay-visibility.ts +documentation: + - docs/workflow/verification.md +priority: high +--- + +## Description + + +On macOS, opening the overlay-layout subtitle sidebar should allow click-through outside the sidebar immediately. Users should not need to first hover subtitle content before passthrough/click-through starts working, including when no subtitle line is currently visible. + + +## Acceptance Criteria + +- [ ] #1 With the overlay-layout subtitle sidebar open on macOS, areas outside the sidebar pass clicks through immediately after open without requiring a prior subtitle hover. +- [ ] #2 When no subtitle line is currently visible, opening the subtitle sidebar still leaves non-sidebar overlay regions click-through on macOS. +- [ ] #3 Regression coverage exercises the first-open/idle passthrough path so overlay interactivity does not depend on a later hover cycle. +