mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
chore(backlog): capture overlay_window findings in TASK-20 breakdown
This commit is contained in:
@@ -5,14 +5,14 @@ status: Done
|
|||||||
assignee:
|
assignee:
|
||||||
- codex
|
- codex
|
||||||
created_date: '2026-02-12 02:27'
|
created_date: '2026-02-12 02:27'
|
||||||
updated_date: '2026-02-12 02:56'
|
updated_date: '2026-02-12 09:42'
|
||||||
labels:
|
labels:
|
||||||
- overlay
|
- overlay
|
||||||
- ux
|
- ux
|
||||||
- investigation
|
- investigation
|
||||||
dependencies: []
|
dependencies: []
|
||||||
documentation:
|
documentation:
|
||||||
- docs/overlay-window-sizing-investigation.md
|
- overlay_window.md
|
||||||
priority: high
|
priority: high
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -60,6 +60,8 @@ Documented current conflict mechanism and architecture limitation: shared fullsc
|
|||||||
Proposed renderer-driven content-bounds IPC model, per-window bounds ownership, and a dedicated secondary top-bar window with mode-specific behavior.
|
Proposed renderer-driven content-bounds IPC model, per-window bounds ownership, and a dedicated secondary top-bar window with mode-specific behavior.
|
||||||
|
|
||||||
Included phased implementation plan with risks and edge-case handling in docs/overlay-window-sizing-investigation.md.
|
Included phased implementation plan with risks and edge-case handling in docs/overlay-window-sizing-investigation.md.
|
||||||
|
|
||||||
|
Updated documentation reference to `overlay_window.md` because previous `docs/overlay-window-sizing-investigation.md` path is not present in repository.
|
||||||
<!-- SECTION:NOTES:END -->
|
<!-- SECTION:NOTES:END -->
|
||||||
|
|
||||||
## Final Summary
|
## Final Summary
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ title: Implement content-bounded overlay windows and decoupled secondary top bar
|
|||||||
status: To Do
|
status: To Do
|
||||||
assignee: []
|
assignee: []
|
||||||
created_date: '2026-02-12 08:47'
|
created_date: '2026-02-12 08:47'
|
||||||
|
updated_date: '2026-02-12 09:42'
|
||||||
labels: []
|
labels: []
|
||||||
dependencies: []
|
dependencies: []
|
||||||
priority: high
|
priority: high
|
||||||
@@ -12,5 +13,14 @@ priority: high
|
|||||||
## Description
|
## Description
|
||||||
|
|
||||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
Restored parent task after accidental cleanup. Track the overlay sizing redesign and secondary top-bar decoupling initiative.
|
Implement the overlay sizing redesign documented in `overlay_window.md`: move visible/invisible overlays from fullscreen bounds to content-bounded sizing, and decouple secondary subtitle rendering into an independent top bar window/lifecycle.
|
||||||
<!-- SECTION:DESCRIPTION:END -->
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 Per-layer bounds ownership is implemented for overlay windows (no shared full-bounds setter for all layers).
|
||||||
|
- [ ] #2 Renderer-to-main IPC contract exists for measured overlay content bounds with layer identity and safe validation.
|
||||||
|
- [ ] #3 Visible and invisible overlays use content-bounded sizing with padding/clamp/jitter protections and full-bounds fallback when measurements are unavailable.
|
||||||
|
- [ ] #4 Secondary subtitle top bar is decoupled from primary overlay visibility and follows mode-specific behavior.
|
||||||
|
- [ ] #5 Automated tests and manual validation matrix cover wrapping, style changes, monitor moves, tracker churn, and simultaneous overlay states.
|
||||||
|
<!-- AC:END -->
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ title: Refactor overlay runtime to use per-layer window bounds ownership
|
|||||||
status: To Do
|
status: To Do
|
||||||
assignee: []
|
assignee: []
|
||||||
created_date: '2026-02-12 08:47'
|
created_date: '2026-02-12 08:47'
|
||||||
|
updated_date: '2026-02-12 09:42'
|
||||||
labels: []
|
labels: []
|
||||||
dependencies: []
|
dependencies: []
|
||||||
parent_task_id: TASK-20
|
parent_task_id: TASK-20
|
||||||
@@ -13,5 +14,13 @@ priority: medium
|
|||||||
## Description
|
## Description
|
||||||
|
|
||||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
Restored subtask after accidental cleanup.
|
Refactor overlay runtime so each overlay layer owns and applies its bounds independently. Keep tracker geometry as shared origin input only.
|
||||||
<!-- SECTION:DESCRIPTION:END -->
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 `updateOverlayBoundsService` no longer applies the same bounds to every overlay window by default.
|
||||||
|
- [ ] #2 Main runtime/manager exposes per-layer bounds update paths for visible and invisible overlays.
|
||||||
|
- [ ] #3 Window tracker updates feed shared origin data; each layer applies its own computed bounds.
|
||||||
|
- [ ] #4 Single-layer behavior (visible-only or invisible-only) remains unchanged from user perspective.
|
||||||
|
<!-- AC:END -->
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ title: Add renderer-to-main IPC contract for measured overlay content bounds
|
|||||||
status: To Do
|
status: To Do
|
||||||
assignee: []
|
assignee: []
|
||||||
created_date: '2026-02-12 08:47'
|
created_date: '2026-02-12 08:47'
|
||||||
|
updated_date: '2026-02-12 09:42'
|
||||||
labels: []
|
labels: []
|
||||||
dependencies: []
|
dependencies: []
|
||||||
parent_task_id: TASK-20
|
parent_task_id: TASK-20
|
||||||
@@ -13,5 +14,13 @@ priority: medium
|
|||||||
## Description
|
## Description
|
||||||
|
|
||||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
Restored subtask after accidental cleanup.
|
Add renderer-to-main IPC for content measurement reporting, so main process can size each overlay window from post-layout DOM bounds.
|
||||||
<!-- SECTION:DESCRIPTION:END -->
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 Preload exposes a typed API for reporting overlay content bounds with layer metadata.
|
||||||
|
- [ ] #2 Main-process IPC handler validates payload shape/range and stores latest measurement per layer.
|
||||||
|
- [ ] #3 Renderer emits measurement updates on subtitle, mode, style, and render-metric changes with throttling/debounce.
|
||||||
|
- [ ] #4 No crashes or unbounded logging when measurements are missing/empty/invalid; fallback behavior is explicit.
|
||||||
|
<!-- AC:END -->
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ title: >-
|
|||||||
status: To Do
|
status: To Do
|
||||||
assignee: []
|
assignee: []
|
||||||
created_date: '2026-02-12 08:47'
|
created_date: '2026-02-12 08:47'
|
||||||
|
updated_date: '2026-02-12 09:42'
|
||||||
labels: []
|
labels: []
|
||||||
dependencies: []
|
dependencies: []
|
||||||
parent_task_id: TASK-20
|
parent_task_id: TASK-20
|
||||||
@@ -15,5 +16,13 @@ priority: medium
|
|||||||
## Description
|
## Description
|
||||||
|
|
||||||
<!-- SECTION:DESCRIPTION:BEGIN -->
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
Restored subtask after accidental cleanup.
|
Implement content-bounded sizing for visible/invisible windows using measured rects plus tracker origin, with robust clamping and jitter resistance.
|
||||||
<!-- SECTION:DESCRIPTION:END -->
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 Bounds algorithm applies configurable padding, minimum size, display-workarea clamp, and integer snap.
|
||||||
|
- [ ] #2 Main-process bounds updates are thresholded/debounced to reduce jitter and unnecessary `setBounds` churn.
|
||||||
|
- [ ] #3 When no valid measurement exists, layer falls back to safe tracker/display bounds without breaking interaction.
|
||||||
|
- [ ] #4 Visible+invisible overlays can coexist without full-window overlap/input conflicts caused by shared fullscreen bounds.
|
||||||
|
<!-- AC:END -->
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
id: TASK-20.4
|
||||||
|
title: Implement dedicated secondary top-bar overlay window
|
||||||
|
status: To Do
|
||||||
|
assignee: []
|
||||||
|
created_date: '2026-02-12 09:43'
|
||||||
|
labels: []
|
||||||
|
dependencies: []
|
||||||
|
parent_task_id: TASK-20
|
||||||
|
priority: medium
|
||||||
|
---
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
|
Create and integrate a dedicated secondary subtitle overlay window with independent lifecycle, z-order, bounds, and pointer policy, decoupled from primary visible/invisible overlay windows.
|
||||||
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 A third overlay window dedicated to secondary subtitles is created and managed alongside existing visible/invisible windows.
|
||||||
|
- [ ] #2 Secondary window visibility follows secondary mode semantics (`hidden`/`visible`/`hover`) independent of primary overlay visibility.
|
||||||
|
- [ ] #3 Secondary subtitle text/mode/style updates are routed directly to the secondary window renderer path.
|
||||||
|
- [ ] #4 Pointer passthrough/interaction behavior for secondary window is explicit and does not regress existing hover/selection interactions.
|
||||||
|
- [ ] #5 Window cleanup/lifecycle (create, close, restore) integrates with existing overlay runtime lifecycle.
|
||||||
|
<!-- AC:END -->
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
id: TASK-20.5
|
||||||
|
title: 'Add rollout guards, tests, and validation matrix for content-bounded overlays'
|
||||||
|
status: To Do
|
||||||
|
assignee: []
|
||||||
|
created_date: '2026-02-12 09:43'
|
||||||
|
labels: []
|
||||||
|
dependencies: []
|
||||||
|
parent_task_id: TASK-20
|
||||||
|
priority: medium
|
||||||
|
---
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
|
Add safety controls and verification coverage for the new content-bounded overlay architecture and secondary top-bar window.
|
||||||
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 Feature flag or equivalent rollout guard exists for switching to new sizing/window behavior.
|
||||||
|
- [ ] #2 Service-level/unit tests cover bounds clamping, jitter thresholding, invalid measurement fallback, and per-layer updates.
|
||||||
|
- [ ] #3 Manual validation checklist documents and verifies wrap/no-wrap, style changes, monitor moves, tracker churn, modal interactions, and simultaneous overlay states.
|
||||||
|
- [ ] #4 Regression checks confirm existing single-layer and startup/shutdown behavior remain stable.
|
||||||
|
- [ ] #5 Task includes explicit pass/fail notes from validation run(s).
|
||||||
|
<!-- AC:END -->
|
||||||
Reference in New Issue
Block a user