Files
SubMiner/docs/plans/2026-06-06-early-managed-overlay-startup-design.md
T
sudacode d033884b09 feat(notifications): add notification history panel and overlay UX fixes
- New toggleNotificationHistory (Ctrl+N) session-scoped history panel; slides in from same edge as notification stack
- Overlay error/recovery toast follows notifications.overlayPosition; stack and history side seeded at startup
- Cold managed background startup initializes tray and visible overlay shell before tokenization warmups finish
- Add Update button to overlay update-available notifications
- Fix Ctrl+S sentence-card flow: only Anki progress notification, no duplicate status toast
- Fix overlay notification close/actions clickability above subtitle bars on Linux
- Increase pause-until-ready default timeout from 15s to 30s
2026-06-08 02:22:54 -07:00

1.3 KiB

Early Managed Overlay Startup Design

Status: approved Date: 2026-06-06

Problem

Managed mpv startup can pause playback immediately, then leave SubMiner's tray and visible overlay unavailable until Yomitan/tokenization warmups finish. Startup notifications therefore miss the overlay surface and fall back to non-overlay status paths.

Chosen Approach

For cold --start --background --managed-playback launches, handle initial args before waiting for the deferred overlay warmup. That lets the tray and visible overlay shell initialize immediately while the existing tokenization warmups continue in the background.

The mpv plugin pause gate stays armed. Playback release still waits for SubMiner's autoplay-ready signal, which is emitted only after tokenization warmup and visible-overlay readiness. Existing second-instance attach behavior remains unchanged: when the launcher finds an already-running background app, it sends the same control command to that process and reuses its warmups/tokenizer.

Checks

  • Add a startup ordering regression test for managed background playback.
  • Keep the existing deferred startup ordering for non-managed launches.
  • Run the startup/runtime test slice plus SubMiner verification lane.