- Move completed tasks (85, 117, 118, 155) to backlog/completed/ - Delete superseded task files (166 verification, 172 drilldown) - Add stats dashboard milestone m-1 - Add new tasks (190, 194) - Update task metadata across remaining backlog items - Add changelog fragments for stats, mpv args, and subtitle filtering
2.4 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, ordinal
| id | title | status | assignee | created_date | updated_date | labels | dependencies | ordinal | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-146 | Forward overlay Tab to mpv for AniSkip | Done |
|
2026-03-09 00:00 | 2026-03-18 05:28 |
|
47500 |
Description
Fix visible-overlay keyboard handling so bare Tab is forwarded to mpv instead of being consumed by Electron focus navigation. This restores the default AniSkip TAB binding while the overlay has focus, especially on Linux.
Acceptance Criteria
- #1 Visible overlay forwards bare
Tabto mpv askeypress TAB. - #2 Modal overlays keep their existing local
Tabbehavior. - #3 Automated regression coverage exists for the input handler and overlay factory wiring.
Implementation Plan
- Add a failing regression around visible-overlay
before-input-eventhandling for bareTab. - Add/extend overlay factory tests so the new mpv-forward callback is wired through runtime construction.
- Patch overlay input handling to intercept visible-overlay
Taband send mpvkeypress TAB. - Run focused overlay tests, typecheck, and changelog validation.
Implementation Notes
Extracted visible-overlay input handling into src/core/services/overlay-window-input.ts so the Tab forwarding decision can be unit tested without loading Electron window primitives.
Visible overlay before-input-event now intercepts bare Tab, prevents the browser default, and forwards mpv keypress TAB through the existing mpv runtime command path. Modal overlays remain unchanged.
Verification:
bun test src/core/services/overlay-window.test.ts src/main/runtime/overlay-window-factory.test.ts src/main/runtime/overlay-window-factory-main-deps.test.ts src/main/runtime/overlay-window-runtime-handlers.test.tsbun x tsc --noEmit
Final Summary
Visible overlay focus no longer blocks the default AniSkip Tab binding. Bare Tab is now forwarded straight to mpv while the visible overlay is active, and modal overlays still retain their own normal focus behavior.
Added regression coverage for both the input-routing decision and the runtime plumbing that carries the new mpv forwarder into overlay window creation.