mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
4.0 KiB
4.0 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, priority, ordinal
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | ordinal | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-110 | Split overlay into top secondary bar and bottom primary region | Done |
|
2026-02-23 02:16 | 2026-02-23 02:53 |
|
high | 110000 |
Description
Implement a 3-window overlay layout:
- Dedicated secondary subtitle window anchored to top of mpv bounds (max 20% of height).
- Visible overlay window constrained to remaining lower region.
- Invisible overlay window constrained to remaining lower region.
Secondary subtitle bar must stay independently anchored while visible/invisible overlays swap.
Acceptance Criteria
- #1 Runtime creates/manages a third overlay window dedicated to secondary subtitles.
- #2 Secondary window stays anchored to top region capped at 20% of tracked mpv bounds.
- #3 Visible and invisible overlay windows are constrained to remaining lower region.
- #4 Secondary subtitle rendering/mode updates reach dedicated top window without duplicate top bars in primary windows.
- #5 Focused runtime/core tests cover geometry split + window wiring regressions.
Implementation Plan
Closure verification plan (2026-02-23):
- Re-read TASK-110 via Backlog MCP and confirm Done status + AC/summary/notes completeness.
- Validate evidence commit
b8f7d5estill matches shipped scope (overlay secondary top bar + primary lower region split). - Apply backlog metadata sync only if any field is stale/missing; keep status Done.
- Record closure verification note with timestamp and validation outcome.
Plan artifact:
docs/plans/2026-02-23-task-110-overlay-closure-verification.md.
Implementation Notes
- Added new
secondaryoverlay window kind and runtime factory wiring, plus manager ownership (get/setSecondaryWindow) and bounds setter. - Added geometry splitter
splitOverlayGeometryForSecondaryBar(20% top secondary, 80% bottom primary), integrated intoupdateVisibleOverlayBounds/updateInvisibleOverlayBoundsflow. - Main runtime now creates secondary window alongside primary overlays and syncs secondary window visibility with
secondarySubMode. - Renderer now recognizes
layer=secondary; secondary bar is hidden on primary layers, and primary subtitle/modals are hidden on secondary layer. - Secondary layer no longer reports overlay content measurements to avoid invalid payloads.
- Validation:
bun run tsc --noEmitbun test 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.ts src/renderer/error-recovery.test.ts src/core/services/overlay-window.test.tsbun run buildnode --test dist/core/services/overlay-manager.test.js
- Commit:
b8f7d5e(feat(overlay): split secondary subtitles into dedicated top window)
2026-02-23 verification pass: revalidated TASK-110 closure against Backlog finalization criteria. Confirmed status remains Done, all 5 acceptance criteria are checked, implementation notes/final summary are present, and commit b8f7d5e still matches shipped scope (secondary top overlay window, 20%/80% geometry split, primary-layer duplicate prevention, focused runtime/core/renderer tests). No additional code changes required.
Final Summary
Implemented the requested 3-window overlay architecture:
- Secondary subtitles render in a dedicated top overlay window.
- Top secondary bar is capped at 20% of mpv bounds.
- Visible/invisible overlays are constrained to the lower remaining region.
- Secondary mode changes now directly control secondary window visibility.
- Primary overlay layers no longer duplicate secondary subtitle rendering.
All acceptance criteria are complete and merged in commit b8f7d5e.