Files
SubMiner/backlog/tasks/task-208 - Assess-newest-PR-19-CodeRabbit-round-after-1227706.md
sudacode 5feed360ca feat: add app-owned YouTube subtitle flow with absPlayer-style parsing (#31)
* fix: harden preload argv parsing for popup windows

* fix: align youtube playback with shared overlay startup

* fix: unwrap mpv youtube streams for anki media mining

* docs: update docs for youtube subtitle and mining flow

* refactor: unify cli and runtime wiring for startup and youtube flow

* feat: update subtitle sidebar overlay behavior

* chore: add shared log-file source for diagnostics

* fix(ci): add changelog fragment for immersion changes

* fix: address CodeRabbit review feedback

* fix: persist canonical title from youtube metadata

* style: format stats library tab

* fix: address latest review feedback

* style: format stats library files

* test: stub launcher youtube deps in CI

* test: isolate launcher youtube flow deps

* test: stub launcher youtube deps in failing case

* test: force x11 backend in launcher ci harness

* test: address latest review feedback

* fix(launcher): preserve user YouTube ytdl raw options

* docs(backlog): update task tracking notes

* fix(immersion): special-case youtube media paths in runtime and tracking

* feat(stats): improve YouTube media metadata and picker key handling

* fix(ci): format stats media library hook

* fix: address latest CodeRabbit review items

* docs: update youtube release notes and docs

* feat: auto-load youtube subtitles before manual picker

* fix: restore app-owned youtube subtitle flow

* docs: update youtube playback docs and config copy

* refactor: remove legacy youtube launcher mode plumbing

* fix: refine youtube subtitle startup binding

* docs: clarify youtube subtitle startup behavior

* fix: address PR #31 latest review follow-ups

* fix: address PR #31 follow-up review comments

* test: harden youtube picker test harness

* udpate backlog

* fix: add timeout to youtube metadata probe

* docs: refresh youtube and stats docs

* update backlog

* update backlog

* chore: release v0.9.0
2026-03-24 00:01:24 -07:00

4.3 KiB

id, title, status, assignee, created_date, updated_date, labels, milestone, dependencies, references, priority, ordinal
id title status assignee created_date updated_date labels milestone dependencies references priority ordinal
TASK-208 Assess newest PR #19 CodeRabbit round after 1227706 Done
@codex
2026-03-20 03:37 2026-03-23 03:22
pr-review
launcher
anki-integration
m-1
launcher/commands/stats-command.ts
launcher/mpv.ts
src/anki-integration.ts
medium 122500

Description

Validate the newest 2026-03-20 03:23 CodeRabbit review round on PR #19 after commit 1227706, implement only the confirmed fixes, and record any bot suggestions that are stale or technically incomplete.

Acceptance Criteria

  • #1 Each newest-round CodeRabbit inline comment posted after commit 1227706 is validated against current branch behavior and classified as actionable or not warranted
  • #2 Confirmed issues are fixed with focused regression coverage where practical
  • #3 Targeted verification runs for the touched areas succeed or remaining unrelated failures are documented

Implementation Plan

  1. Pull the three newest CodeRabbit inline threads posted after commit 1227706 and restate each finding against the current branch code.
  2. For each confirmed behavior bug, add or extend a focused failing test before changing production code; reject any stale or incorrect bot suggestion with notes.
  3. Patch the smallest safe fixes in launcher/commands/stats-command.ts, launcher/mpv.ts, and/or src/anki-integration.ts as warranted, without disturbing unrelated local edits.
  4. Run targeted tests and the cheapest sufficient verifier lanes, then record accepted versus rejected comments in task notes and summary.

Implementation Notes

Validated the newest 2026-03-20 03:23 CodeRabbit round as three comments: two actionable launcher issues and one non-warranted Anki suggestion.

Accepted fixes: cancel the pending stats response poll when the attached app exits non-zero before startup response, and surface spawnSync() launch/stop errors in launcher mpv helpers instead of treating result.status ?? 0 / ignored status as success.

Rejected fix: the src/anki-integration.ts / card-creation suggestion would double count locally mined cards. Local sentence mining already records stats in src/main/runtime/anki-actions.ts when mineSentenceCardCore returns true; adding a second callback in card creation would increment tracker counts twice for the same card.

Final Summary

Assessed the newest CodeRabbit PR #19 round after commit 1227706 and fixed the two confirmed launcher regressions. runStatsCommand() now gives the startup response waiter an abort signal and cancels the polling loop immediately when the attached app exits non-zero before startup response, covering both the normal stats startup race and the cleanup/startup race. launchTexthookerOnly() now fails non-zero when spawnSync() reports an execution error, and stopOverlay() logs a warning when the stop command cannot be spawned or exits non-zero instead of silently treating that path as success.

One bot comment was intentionally rejected: recording mined-card stats inside the direct card-creation path would double count locally mined cards, because the successful local mining flow already records cards in src/main/runtime/anki-actions.ts after mineSentenceCardCore() returns true.

Verification run:

  • bun test launcher/commands/command-modules.test.ts
  • bun test launcher/mpv.test.ts
  • bun run typecheck
  • bash .agents/skills/subminer-change-verification/scripts/classify_subminer_diff.sh launcher/commands/stats-command.ts launcher/commands/command-modules.test.ts launcher/mpv.ts launcher/mpv.test.ts
  • bash .agents/skills/subminer-change-verification/scripts/verify_subminer_change.sh --lane launcher-plugin launcher/commands/stats-command.ts launcher/commands/command-modules.test.ts launcher/mpv.ts launcher/mpv.test.ts

Verifier result:

  • launcher-plugin lane passed (test:launcher:smoke:src, test:plugin:src)
  • typecheck passed
  • Verifier artifacts: .tmp/skill-verification/subminer-verify-20260319-204639-dzUj16