Files
SubMiner/backlog/tasks/task-228 - Assess-and-address-PR-31-subsequent-CodeRabbit-review-round.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.0 KiB
Raw Blame History

id, title, status, assignee, created_date, updated_date, labels, dependencies, references, priority, ordinal
id title status assignee created_date updated_date labels dependencies references priority ordinal
TASK-228 Assess and address PR #31 subsequent CodeRabbit review round Done
codex
2026-03-24 04:10 2026-03-24 06:41
pr-review
coderabbit
PR #31 feat: add app-owned YouTube subtitle flow with absPlayer-style parsing
commit cdb12827 fix: address PR #31 latest review follow-ups
medium 146500

Description

Inspect the subsequent CodeRabbit review round on PR #31 after commit cdb12827, verify each newly reported issue against the current branch, implement the valid fixes with regression coverage where appropriate, and prepare/update PR thread replies.

Acceptance Criteria

  • #1 New CodeRabbit comments after cdb12827 are triaged into valid fixes vs declined suggestions with rationale.
  • #2 Confirmed issues are fixed with regression coverage where appropriate.
  • #3 Relevant verification passes for the touched areas.
  • #4 PR threads are updated for the addressed comments.

Implementation Plan

  1. Verify the new CodeRabbit comments after cdb12827 and separate valid bugs from refactor-only suggestions.
  2. Add failing regression coverage for the valid runtime issues: track.selected fallback in the YouTube primary-subtitle notifier and consistent no-track handling in the picker.
  3. Inspect existing test seams for the main.ts flow-entry guards; if lightweight coverage exists, add it before patching. Otherwise apply the minimal main.ts fixes and rely on typecheck plus targeted regression tests around the affected runtime helpers.
  4. Implement the confirmed fixes: picker re-entry guard, broader inFlight cleanup, track.selected fallback, and a single canonical hasTracks check.
  5. Run targeted tests/typecheck and update the new PR threads with landed fix refs.

Implementation Notes

Triaged the post-cdb12827 CodeRabbit round. Implemented the 4 concrete follow-ups: manual picker re-entry guard, broader setAppOwnedFlowInFlight(...) cleanup, track.selected fallback in the YouTube primary-subtitle notifier, and a single canonical payloadHasTracks(...) helper in the picker. Also took the adjacent replaceChildren() cleanup while touching the same picker paths.

Verification passed: bun test src/main/runtime/youtube-primary-subtitle-notification.test.ts src/renderer/modals/youtube-track-picker.test.ts launcher/commands/playback-command.test.ts src/core/services/cli-command.test.ts and bun run typecheck.

Updated the new CodeRabbit inline threads with landed fix refs and left a top-level PR comment noting the large refactor suggestions are intentionally out of scope for this bugfix round.

Final Summary

Assessed the subsequent CodeRabbit review round on PR #31 after cdb12827 and applied the valid follow-ups in commit 5f6f93cd. Added a guard in openYoutubeTrackPickerFromPlayback() so the manual picker cannot re-enter while another YouTube flow session is active, widened the app-owned in-flight suppression to cover synchronous Windows mpv bootstrap and connect failures, taught the primary-subtitle notifier to honor track.selected before sid arrives, and unified the pickers subtitle-availability logic behind payloadHasTracks(...) while swapping node clearing to replaceChildren().

Verification passed with bun test src/main/runtime/youtube-primary-subtitle-notification.test.ts src/renderer/modals/youtube-track-picker.test.ts launcher/commands/playback-command.test.ts src/core/services/cli-command.test.ts and bun run typecheck.

Updated the latest inline CodeRabbit threads plus a top-level PR comment summarizing the round and explicitly deferred the large refactor suggestions as non-blocking maintainability nits.