4.3 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, references, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | references | priority | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-216 | Address PR #28 CodeRabbit follow-ups on subtitle sidebar | Completed |
|
2026-03-21 00:00 | 2026-03-21 00:00 |
|
|
medium |
Description
Validate the CodeRabbit follow-ups on PR #28 for the subtitle sidebar workstream, implement the confirmed fixes, and verify the touched runtime and renderer paths.
Acceptance Criteria
- #1 Review comments that described real regressions are fixed in code
- #2 Focused regression coverage exists for the fixed behaviors
- #3 Targeted typecheck and runtime-compat verification pass
Implementation Notes
Completed follow-up fixes for PR #28:
- Cleared parsed subtitle cues on subtitle prefetch init failure so stale snapshot cache entries do not survive a failed refresh.
- Treated primary and secondary subtitle containers as one hover region so moving between them does not resume playback mid-transition.
- Kept the subtitle sidebar closed when disabled, serialized snapshot polling with timeouts, made cue rows keyboard-activatable, resolved stale cue selection fallback, and resumed hover-paused playback when the modal closes.
Regression coverage added:
src/main/runtime/subtitle-prefetch-init.test.tssrc/renderer/handlers/mouse.test.tssrc/renderer/modals/subtitle-sidebar.test.ts
Verification:
bun test src/main/runtime/subtitle-prefetch-init.test.tsbun test src/renderer/handlers/mouse.test.tsbun test src/renderer/modals/subtitle-sidebar.test.tsbun run typecheckbun run test:runtime:compat
2026-03-21: Reopened to assess a newer CodeRabbit review pass on PR #28 and address any remaining valid action items before push/reply.
2026-03-21: Addressed the latest CodeRabbit follow-up pass in commit d70c6448 after rebasing onto the updated remote branch tip.
2026-03-21: Reopened for the latest CodeRabbit round on commit d70c6448; current actionable item is the invalid ctx.state.isOverSubtitleSidebar assignment in subtitle-sidebar.ts.
2026-03-22: Addressed the live hover-state and startup mouse-ignore follow-ups from the latest CodeRabbit pass. handleMouseLeave() now clears isOverSubtitle and drops secondary-sub-hover-active when leaving the secondary subtitle container toward the primary container, and renderer startup now calls syncOverlayMouseIgnoreState(ctx) instead of forcing setIgnoreMouseEvents(true, { forward: true }). The sidebar IPC hover catch and CSS spacing comments were already satisfied in the current tree.
2026-03-22: Regenerated bun.lock from a clean install so the electron-builder-squirrel-windows override now resolves at 26.8.2 in the lockfile alongside app-builder-lib@26.8.2.
2026-03-21: Finished the remaining cleanup pass from the latest review. subtitleSidebar.layout now uses enum validation, SubtitleCue is re-exported from src/types.ts as the single public type path, and the subtitle sidebar resize listener now has unload cleanup wired through the renderer.
Final Summary
Implemented the confirmed PR #28 CodeRabbit follow-ups for subtitle sidebar behavior and added regression coverage plus verification for the touched renderer and runtime paths.
Handled the latest CodeRabbit review pass for PR #28: accepted zero sidebar opacity, closed/inerted the sidebar when refresh sees config disabled, moved poll rescheduling out of finally, caught hover pause IPC failures, and fixed the stylelint spacing issue.
Verification: bun test src/config/resolve/subtitle-sidebar.test.ts; bun test src/renderer/modals/subtitle-sidebar.test.ts; bun test src/renderer/handlers/mouse.test.ts; bun run typecheck; bun run test:fast; bun run test:env; bun run build; SubMiner verifier lanes config + runtime-compat (including test:runtime:compat and test:smoke:dist).