Files
SubMiner/backlog/tasks/task-221 - Assess-and-address-PR-31-latest-CodeRabbit-review.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

3.0 KiB

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-221 Assess and address PR #31 latest CodeRabbit review Done
2026-03-23 07:53 2026-03-24 06:41
pr-review
coderabbit
PR #31 feat: add app-owned YouTube subtitle flow with absPlayer-style parsing
medium 152500

Description

Inspect the latest CodeRabbit review on PR #31, evaluate each actionable comment against the current branch, implement valid fixes, verify the changes, and prepare PR thread updates.

Implementation Plan

  1. Inspect latest CodeRabbit review on PR #31 and separate valid action items from non-blocking suggestions.
  2. Add regression coverage for any real bugs before changing production code.
  3. Implement the minimal fixes for confirmed issues in runtime, renderer modal flow, and test fixtures.
  4. Run targeted tests plus repo-native verification lanes.
  5. Update PR threads with fix status and rationale for any comments not actioned yet.

Implementation Notes

Implemented and pushed commit 207151db to PR #31.

Replied in-thread to the CodeRabbit comments for YouTube host matching, duplicate picker submissions, and missing MediaDetailView test fixture videoId fields.

Follow-up scope added: update release-facing docs/changelog for the YouTube subtitle picker work and run a release-readiness gate before handoff.

Added release-facing docs/changelog updates in commit b7e0026d and pushed them to PR #31.

Ran the release-readiness gate: changelog:lint, changelog:pr-check, verify:config-example, typecheck, test:fast, test:env, build, test:smoke:dist, docs:test, docs:build.

Final Summary

Assessed the latest CodeRabbit review on PR #31 and applied the confirmed fixes. Tightened isYoutubeMediaPath() to match only exact YouTube hosts or subdomains with a regression test for notyoutube.com, added an in-flight guard plus temporary control disabling to the YouTube track picker with a duplicate-submit regression test, replaced the picker empty-state innerHTML fallback with explicit DOM construction, and added the missing videoId fields to the MediaDetailView test fixtures. Verified with targeted Bun tests and the runtime-compat verification lane (build, test:runtime:compat, test:smoke:dist).

Updated README.md, docs-site/usage.md, and changes/2026-03-23-immersion-youtube.md so the PR is release-facing and user-visible surfaces describe the YouTube subtitle picker flow plus its latest hardening.

Release-readiness checks passed locally: bun run changelog:lint, bun run changelog:pr-check, bun run verify:config-example, bun run typecheck, bun run test:fast, bun run test:env, bun run build, bun run test:smoke:dist, bun run docs:test, and bun run docs:build.