mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
feat(overlay): split secondary subtitles into dedicated top window
This commit is contained in:
@@ -87,3 +87,4 @@ Read first. Keep concise.
|
||||
| `opencode-task103-jellyfin-main-composer-20260222T221152Z-n3p7` | `opencode-task103-jellyfin-main-composer` | `Implement TASK-103 Jellyfin runtime wiring extraction from main.ts into composer module(s), tests, docs, and required validations (no commit).` | `in_progress` | `docs/subagents/agents/opencode-task103-jellyfin-main-composer-20260222T221152Z-n3p7.md` | `2026-02-22T22:11:52Z` |
|
||||
| `opencode-task109-discord-presence-20260223T011027Z-j9r4` | `opencode-task109-discord-presence` | `Finalize TASK-109 Discord Rich Presence with plan-first workflow and backlog closure.` | `in_progress` | `docs/subagents/agents/opencode-task109-discord-presence-20260223T011027Z-j9r4.md` | `2026-02-23T01:15:39Z` |
|
||||
| `codex-task88-yomitan-flow-20260223T012755Z-x4m2` | `codex-task88-yomitan-flow` | `Execute TASK-88 remove MeCab fallback tokenizer and simplify Yomitan token flow via plan-first workflow (no commit).` | `handoff` | `docs/subagents/agents/codex-task88-yomitan-flow-20260223T012755Z-x4m2.md` | `2026-02-23T01:44:16Z` |
|
||||
| `codex-overlay-three-window-layout-20260223T021606Z-9z2t` | `codex-overlay-three-window-layout` | `Implement top-anchored secondary subtitle overlay window (20%) plus swappable primary overlay region (80%).` | `handoff` | `docs/subagents/agents/codex-overlay-three-window-layout-20260223T021606Z-9z2t.md` | `2026-02-23T02:29:51Z` |
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# Agent Session: codex-overlay-three-window-layout-20260223T021606Z-9z2t
|
||||
|
||||
- alias: `codex-overlay-three-window-layout`
|
||||
- started_utc: `2026-02-23T02:16:06Z`
|
||||
- status: `handoff`
|
||||
- mission: `Implement top-anchored secondary subtitle overlay window (20%) plus swappable primary overlay region (80%).`
|
||||
- linked_backlog: `TASK-110`
|
||||
|
||||
## Intent
|
||||
|
||||
- Convert overlay runtime from 2 fullscreen windows to 3 windows:
|
||||
- `secondary` window anchored top (max 20% height).
|
||||
- `visible` / `invisible` windows constrained to remaining 80%.
|
||||
- Keep secondary subtitle bar independent from visible/invisible swapping.
|
||||
|
||||
## Planned Files
|
||||
|
||||
- `src/core/services/overlay-window.ts`
|
||||
- `src/core/services/overlay-runtime-init.ts`
|
||||
- `src/core/services/overlay-manager.ts`
|
||||
- `src/main.ts`
|
||||
- `src/preload.ts`
|
||||
- `src/types.ts`
|
||||
- `src/renderer/utils/platform.ts`
|
||||
- `src/renderer/renderer.ts`
|
||||
- `src/renderer/style.css`
|
||||
- `src/main/runtime/overlay-window-factory*.ts`
|
||||
- `src/main/runtime/overlay-window-runtime-handlers*.ts`
|
||||
- `src/main/runtime/overlay-runtime-options*.ts`
|
||||
- focused tests under `src/main/runtime/*` + `src/core/services/*`
|
||||
|
||||
## Assumptions
|
||||
|
||||
- Secondary bar window should remain independently present while visible/invisible overlays toggle.
|
||||
- Top bar height fixed at 20% of tracked mpv bounds (clamped to valid integer px).
|
||||
- Existing secondary mode semantics (`hidden`/`visible`/`hover`) remain; hover behavior stays functional.
|
||||
|
||||
## Phase Log
|
||||
|
||||
- `2026-02-23T02:16:06Z` plan: read overlay/runtime wiring, implement secondary window + geometry split, run focused tests.
|
||||
- `2026-02-23T02:24:10Z` implementation: added `secondary` overlay window kind/wiring, overlay-manager secondary window ownership, and geometry split helper (`top 20%` secondary + `bottom 80%` primary).
|
||||
- `2026-02-23T02:27:40Z` renderer updates: added `secondary` layer detection, disabled measurement reports for secondary layer, and CSS layer split (secondary hidden in primary layers; subtitle/modals hidden in secondary layer).
|
||||
- `2026-02-23T02:29:51Z` validation: `bun run tsc --noEmit`; `bun 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.ts`; `bun run build`; `node --test dist/core/services/overlay-manager.test.js`.
|
||||
|
||||
## Files Touched
|
||||
|
||||
- `src/main.ts`
|
||||
- `src/core/services/overlay-window.ts`
|
||||
- `src/core/services/overlay-window-geometry.ts`
|
||||
- `src/core/services/overlay-window.test.ts`
|
||||
- `src/core/services/overlay-manager.ts`
|
||||
- `src/core/services/overlay-manager.test.ts`
|
||||
- `src/main/runtime/overlay-window-factory.ts`
|
||||
- `src/main/runtime/overlay-window-factory-main-deps.ts`
|
||||
- `src/main/runtime/overlay-window-runtime-handlers.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.ts`
|
||||
- `src/preload.ts`
|
||||
- `src/types.ts`
|
||||
- `src/renderer/utils/platform.ts`
|
||||
- `src/renderer/overlay-content-measurement.ts`
|
||||
- `src/renderer/error-recovery.ts`
|
||||
- `src/renderer/style.css`
|
||||
- `backlog/tasks/task-110 - Split-overlay-into-top-secondary-bar-and-bottom-primary-region.md`
|
||||
|
||||
## Handoff
|
||||
|
||||
- Implemented requested 3-window behavior:
|
||||
- dedicated top secondary overlay window anchored by mpv geometry split,
|
||||
- visible/invisible overlays constrained to lower region.
|
||||
- Secondary mode state now syncs window visibility (`hidden` hides window; non-hidden shows + interactive).
|
||||
- Remaining caution: source-level `overlay-manager.test.ts` still requires dist/node path (Bun ESM + electron named export limitation), but dist test lane passes.
|
||||
@@ -150,3 +150,5 @@ Shared notes. Append-only.
|
||||
- [2026-02-23T01:15:39Z] [opencode-task109-discord-presence-20260223T011027Z-j9r4|opencode-task109-discord-presence] user feedback from real Discord session: status resumed to Playing with noticeable delay; tuned default `discordPresence.updateIntervalMs` from 15000 to 3000 in defaults/docs/examples and updated focused config expectations; reran focused config + discord presence tests green.
|
||||
- [2026-02-23T01:27:55Z] [codex-task88-yomitan-flow-20260223T012755Z-x4m2|codex-task88-yomitan-flow] starting TASK-88 via Backlog MCP + writing-plans/executing-plans; expected overlap in tokenizer modules (`src/core/services/tokenizer*`, Yomitan flow wiring/tests); will keep scope to MeCab fallback removal and token flow simplification.
|
||||
- [2026-02-23T01:44:16Z] [codex-task88-yomitan-flow-20260223T012755Z-x4m2|codex-task88-yomitan-flow] completed TASK-88 implementation pass: removed MeCab fallback branch from `tokenizeSubtitle`, restricted parser-selection to `scanning-parser` candidates, refreshed tokenizer regressions for Yomitan-only flow, updated usage/troubleshooting docs, and verified tokenizer+subtitle suites/build/docs-build green.
|
||||
- [2026-02-23T02:16:06Z] [codex-overlay-three-window-layout-20260223T021606Z-9z2t|codex-overlay-three-window-layout] overlap note: implementing user-requested 3-window overlay layout (`secondary` top bar + `visible|invisible` bottom region) in `src/core/services/overlay-window.ts`, `src/core/services/overlay-runtime-init.ts`, `src/main.ts`, renderer layer handling/CSS, and focused runtime/core tests.
|
||||
- [2026-02-23T02:29:51Z] [codex-overlay-three-window-layout-20260223T021606Z-9z2t|codex-overlay-three-window-layout] completed TASK-110 implementation: added `secondary` overlay window kind + manager ownership, enforced top-20%/bottom-80% bounds split in main runtime updates, hid secondary bar in primary renderer layers, and validated via focused tests + tsc + build + dist overlay-manager test.
|
||||
|
||||
Reference in New Issue
Block a user