Skip to content

Unify episode and import states in the desktop app - #2

Open
meoyawn wants to merge 1 commit into
masterfrom
codex/unify-episode-imports
Open

meoyawn wants to merge 1 commit into
masterfrom
codex/unify-episode-imports

Conversation

@meoyawn

@meoyawn meoyawn commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Replace the separate episode and transfer sections with one podcast-scoped list. Published episodes and active imports share source identity and playlist order; the Not imported filter retains skip/failure reasons and a YouTube action across client restarts. Published backend state resolves overlapping transfer rows.

Persist source metadata and outcomes in the shared sync journal, and leave user cancellation queued. Project the parent DESIGN.md contract into generated desktop tokens and an explicit native theme, with lint rejecting raw color, typography, and radius overrides. The canonical journal schema is version 2; version 1 journals require a fresh journal under the greenfield contract.

Validation:

  • Four headless desktop E2Es passed, including real-client persistence, deduplication, playlist ordering, podcast isolation, and light/dark layouts at compact width with 125% text scaling.
  • Parent API suite passed 24 real Dart CLI / embedded YouTube.js scenarios using local YouTube fixtures and actual RSS rendering, including removal, quota release, and media cleanup.
  • Client lint, parent design parity check, and macOS release build passed.
  • Fresh Impeccable finish review: ship.

Paired backend episode paging, RSS acceptance coverage, and parent submodule pin: listenbox2 #103.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant