From 402788b1e2dd96a465f1bfa44745947fb8e6c726 Mon Sep 17 00:00:00 2001 From: sudacode Date: Thu, 12 Feb 2026 01:48:19 -0800 Subject: [PATCH] chore(backlog): capture overlay_window findings in TASK-20 breakdown --- ...ng-and-decoupled-secondary-subtitle-bar.md | 6 +++-- ...windows-and-decoupled-secondary-top-bar.md | 12 ++++++++- ...o-use-per-layer-window-bounds-ownership.md | 11 +++++++- ...act-for-measured-overlay-content-bounds.md | 11 +++++++- ...r-visible-and-invisible-overlay-windows.md | 11 +++++++- ...icated-secondary-top-bar-overlay-window.md | 26 +++++++++++++++++++ ...ion-matrix-for-content-bounded-overlays.md | 26 +++++++++++++++++++ 7 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 backlog/tasks/task-20.4 - Implement-dedicated-secondary-top-bar-overlay-window.md create mode 100644 backlog/tasks/task-20.5 - Add-rollout-guards-tests-and-validation-matrix-for-content-bounded-overlays.md diff --git a/backlog/tasks/task-17 - Investigate-dynamic-overlay-window-sizing-and-decoupled-secondary-subtitle-bar.md b/backlog/tasks/task-17 - Investigate-dynamic-overlay-window-sizing-and-decoupled-secondary-subtitle-bar.md index c289848..4595a8e 100644 --- a/backlog/tasks/task-17 - Investigate-dynamic-overlay-window-sizing-and-decoupled-secondary-subtitle-bar.md +++ b/backlog/tasks/task-17 - Investigate-dynamic-overlay-window-sizing-and-decoupled-secondary-subtitle-bar.md @@ -5,14 +5,14 @@ status: Done assignee: - codex created_date: '2026-02-12 02:27' -updated_date: '2026-02-12 02:56' +updated_date: '2026-02-12 09:42' labels: - overlay - ux - investigation dependencies: [] documentation: - - docs/overlay-window-sizing-investigation.md + - overlay_window.md 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. 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. ## Final Summary diff --git a/backlog/tasks/task-20 - Implement-content-bounded-overlay-windows-and-decoupled-secondary-top-bar.md b/backlog/tasks/task-20 - Implement-content-bounded-overlay-windows-and-decoupled-secondary-top-bar.md index 145a894..4b4182e 100644 --- a/backlog/tasks/task-20 - Implement-content-bounded-overlay-windows-and-decoupled-secondary-top-bar.md +++ b/backlog/tasks/task-20 - Implement-content-bounded-overlay-windows-and-decoupled-secondary-top-bar.md @@ -4,6 +4,7 @@ title: Implement content-bounded overlay windows and decoupled secondary top bar status: To Do assignee: [] created_date: '2026-02-12 08:47' +updated_date: '2026-02-12 09:42' labels: [] dependencies: [] priority: high @@ -12,5 +13,14 @@ priority: high ## Description -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. + +## Acceptance Criteria + +- [ ] #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. + diff --git a/backlog/tasks/task-20.1 - Refactor-overlay-runtime-to-use-per-layer-window-bounds-ownership.md b/backlog/tasks/task-20.1 - Refactor-overlay-runtime-to-use-per-layer-window-bounds-ownership.md index 40fa55c..3ee146e 100644 --- a/backlog/tasks/task-20.1 - Refactor-overlay-runtime-to-use-per-layer-window-bounds-ownership.md +++ b/backlog/tasks/task-20.1 - Refactor-overlay-runtime-to-use-per-layer-window-bounds-ownership.md @@ -4,6 +4,7 @@ title: Refactor overlay runtime to use per-layer window bounds ownership status: To Do assignee: [] created_date: '2026-02-12 08:47' +updated_date: '2026-02-12 09:42' labels: [] dependencies: [] parent_task_id: TASK-20 @@ -13,5 +14,13 @@ priority: medium ## Description -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. + +## Acceptance Criteria + +- [ ] #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. + diff --git a/backlog/tasks/task-20.2 - Add-renderer-to-main-IPC-contract-for-measured-overlay-content-bounds.md b/backlog/tasks/task-20.2 - Add-renderer-to-main-IPC-contract-for-measured-overlay-content-bounds.md index 473fc6d..d3ba2eb 100644 --- a/backlog/tasks/task-20.2 - Add-renderer-to-main-IPC-contract-for-measured-overlay-content-bounds.md +++ b/backlog/tasks/task-20.2 - Add-renderer-to-main-IPC-contract-for-measured-overlay-content-bounds.md @@ -4,6 +4,7 @@ title: Add renderer-to-main IPC contract for measured overlay content bounds status: To Do assignee: [] created_date: '2026-02-12 08:47' +updated_date: '2026-02-12 09:42' labels: [] dependencies: [] parent_task_id: TASK-20 @@ -13,5 +14,13 @@ priority: medium ## Description -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. + +## Acceptance Criteria + +- [ ] #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. + diff --git a/backlog/tasks/task-20.3 - Implement-content-bounded-sizing-algorithm-for-visible-and-invisible-overlay-windows.md b/backlog/tasks/task-20.3 - Implement-content-bounded-sizing-algorithm-for-visible-and-invisible-overlay-windows.md index 2cf757c..2576f0d 100644 --- a/backlog/tasks/task-20.3 - Implement-content-bounded-sizing-algorithm-for-visible-and-invisible-overlay-windows.md +++ b/backlog/tasks/task-20.3 - Implement-content-bounded-sizing-algorithm-for-visible-and-invisible-overlay-windows.md @@ -6,6 +6,7 @@ title: >- status: To Do assignee: [] created_date: '2026-02-12 08:47' +updated_date: '2026-02-12 09:42' labels: [] dependencies: [] parent_task_id: TASK-20 @@ -15,5 +16,13 @@ priority: medium ## Description -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. + +## Acceptance Criteria + +- [ ] #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. + diff --git a/backlog/tasks/task-20.4 - Implement-dedicated-secondary-top-bar-overlay-window.md b/backlog/tasks/task-20.4 - Implement-dedicated-secondary-top-bar-overlay-window.md new file mode 100644 index 0000000..8080fe2 --- /dev/null +++ b/backlog/tasks/task-20.4 - Implement-dedicated-secondary-top-bar-overlay-window.md @@ -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 + + +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. + + +## Acceptance Criteria + +- [ ] #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. + diff --git a/backlog/tasks/task-20.5 - Add-rollout-guards-tests-and-validation-matrix-for-content-bounded-overlays.md b/backlog/tasks/task-20.5 - Add-rollout-guards-tests-and-validation-matrix-for-content-bounded-overlays.md new file mode 100644 index 0000000..347ac99 --- /dev/null +++ b/backlog/tasks/task-20.5 - Add-rollout-guards-tests-and-validation-matrix-for-content-bounded-overlays.md @@ -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 + + +Add safety controls and verification coverage for the new content-bounded overlay architecture and secondary top-bar window. + + +## Acceptance Criteria + +- [ ] #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). +