- Route default `subminer stats` through attached `--stats`; keep daemon path for `--background`/`--stop` - Update overview metrics: lookup rate uses lifetime Yomitan lookups per 100 tokens; new words dedupe by headword - Suppress repeated macOS `Overlay loading...` OSD during fullscreen tracker flaps and improve session-detail chart scaling - Add/adjust launcher, tracker query, stats server, IPC, overlay, and stats UI regression tests; add changelog fragments
3.7 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, references, parent_task_id, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | references | parent_task_id | priority | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-177.3 | Fix attached stats command flow and browser config | Done |
|
2026-03-19 20:15 | 2026-03-19 20:17 |
|
|
TASK-177 | medium |
Description
Make subminer stats stay attached to the foreground app process instead of routing through daemon startup, while keeping background/stop behavior on the daemon path. Ensure browser opening for stats respects only stats.autoOpenBrowser in the normal stats flow.
Acceptance Criteria
- #1 Default
subminer statsforwards through the attached foreground stats command path instead of the daemon-start path - #2
subminer stats --backgroundandsubminer stats --stopcontinue using the daemon control path - #3 Normal stats launches do not open a browser when
stats.autoOpenBrowseris false, and automated tests cover the launcher/runtime regressions
Implementation Plan
- Add failing launcher tests first so default
statsexpects--statsforwarding while--backgroundand--stopcontinue to expect daemon control flags. - Add/adjust runtime stats command tests to prove
stats.autoOpenBrowser=falsesuppresses browser opening on the normal attached stats path. - Patch launcher forwarding logic in
launcher/commands/stats-command.tsto choose foreground vs daemon flags correctly without changing cleanup handling. - Run targeted launcher and stats runtime tests, then record verification results and blockers.
Implementation Notes
Confirmed root cause: launcher default stats flow always forwarded --stats-daemon-start plus --stats-daemon-open-browser, which detached the terminal process and bypassed stats.autoOpenBrowser because browser opening happened in daemon control instead of the normal stats CLI handler.
Updated launcher forwarding so plain subminer stats now uses the attached --stats path, while explicit --background and --stop continue using daemon control flags.
Added launcher regression coverage for the attached/default path and preserved background/stop expectations; added runtime coverage proving stats.autoOpenBrowser=false suppresses browser opening on the normal stats path.
Verifier passed for launcher-plugin and runtime-compat lanes. Artifact: .tmp/skill-verification/subminer-verify-20260319-131703-ZaAaUV.
Final Summary
Fixed subminer stats so the default command now forwards to the normal attached --stats app path instead of the daemon-start path. That keeps the foreground process attached to the terminal as expected, while subminer stats --background and subminer stats --stop still use daemon control. Because the normal stats CLI path already respects config.stats.autoOpenBrowser, this also fixes the unwanted browser-open behavior that previously bypassed config via --stats-daemon-open-browser.
Added launcher command and launcher integration regressions for the new forwarding behavior, plus a runtime stats CLI regression that asserts stats.autoOpenBrowser=false suppresses browser opening. Verification passed with targeted launcher tests, targeted runtime stats tests, and the SubMiner verifier launcher-plugin + runtime-compat lanes.