Twitch-VOD-Manager/tasks/v5.0.0-roadmap.md
xRangerDE 5b1c68a122 release: 5.0.0 — vitest + SQLite + OAuth storage/flow + Smart-Resume foundation
Major bump. v5.0.0-GA umfasst:

Foundation
- vitest test infrastructure
- 11 neue Module in src/main/{infra,domain}/
- main.ts: -198 LoC pure helpers extracted
- 164 unit tests + full e2e:release suite gruen

Persistence (Pillar 3 — done)
- better-sqlite3 mit WAL + 5s busy_timeout
- schema v5 (9 tables: schema_meta, config_kv, queue_items, downloaded_vods,
  streamers, archive_files, migrations_applied, oauth_accounts, chunk_index)
- Idempotenter JSON to SQLite Migrator (shadow-write, .v4-backup)
- Long-lived DB-Handle Singleton mit shutdown-close

Auth (Pillar 2 — scaffold done)
- SecureStorage (Electron safeStorage + Memory-Impl)
- token-store CRUD auf oauth_accounts (encrypted)
- PKCE pair + state generator
- Loopback HTTP server (127.0.0.1, ephemeral port)
- Twitch OAuth 2.1 Authorization Code Flow + PKCE module
- IPC wiring + Client ID config + Renderer button kommen in 5.1.x

Smart-Resume (Pillar 6 — foundation done)
- chunk_index table
- sha1 buffer + streaming file hash helpers
- chunk-index-store CRUD
- Integration in den Live-Recorder kommt in 5.1.x

Post-5.0 Roadmap
- Plan 04b: Resume in Recorder
- Plan 05: Live-Rec Polish + Sub-only (braucht Twitch Client ID)
- Plan 06: UI Power (virtual list, mini-player, command palette)
- Plan 07-09: Architektur-Split (Pillar 4 Rest)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 23:48:02 +02:00

5.4 KiB

v5.0.0 Roadmap (Reality-Aligned)

Baseline: v4.6.155 Spec: tasks/v5.0.0-goal.md Last verified: 2026-05-11


Reality Check vs. Goal

Beim Vergleich der echten Codebase (src/main.ts 7485 LoC mit 30+ Sektionen) gegen die Goal-Annahmen zeigt sich: einige "neu zu bauenden" Features existieren teilweise schon.

Pillar Goal sagt Reality Restarbeit %
P1 — Live Stream Recording "neu" Auto-Record-Poller, Live-Recording-Events-Log, Live-Chat-Capture existieren ~30% (Polish + Sub-only-Pfad nach OAuth)
P2 — Twitch OAuth "neu" App nutzt nur public Web-Client-ID, keine User-Auth 100%
P3 — SQLite-Migration "Breaking" Config + Queue + Stats sind JSON-Files 100%
P4 — main.ts Split "neu" 7485 LoC Monolith, 30 Sektionen, schon klar getrennt 100% (mechanische Arbeit)
P5 — UI Power-Features "neu" Vanilla DOM, keine Virtualisierung, kein Mini-Player, ein Theme 90%
P6 — Smart-Resume "neu" auto_resume_live_recording Flag existiert, auto_merge_resumed_parts, Crash-Recovery rudimentaer ~60% (Chunk-Hash + Integrity-Check fehlen)
P7 — Scheduled/Auto-Discovery "neu" Auto-VOD-Download-Poller + Live-Status-Batch-Poller schon implementiert ~30% (Top-Clip-Crawler, Follow-Sync fehlen)

Konsequenz: Reihenfolge der Plane orientiert sich am Restarbeits-Volumen und Dependencies.


Execution Order (reordered post Plan 01)

Plan 01: Foundation — Vitest + Pure-Utility-Extraction          [DONE — v5.0.0-alpha.0]
  └─> Plan 02: SQLite-Foundation (P3)                            [DONE — v5.0.0-alpha.1]
       └─> Plan 03: OAuth Foundation Storage (P2)                [DONE — v5.0.0-alpha.2]
            └─> Plan 04: Smart-Resume Foundation (P6)            [DONE — v5.0.0-alpha.3]
                 └─> DB-Singleton Lift + Plan 03b: OAuth Flow Scaffold   [DONE — v5.0.0]

Post-5.0 (5.1.x):
  Plan 04b Resume Integration (recorder hook) — touches main.ts state
  Plan 05  Live-Rec Polish + Sub-only — needs user-supplied Twitch Client ID
  Plan 06  UI Power (virtual list, mini-player, command palette) — renderer work
  Plan 07-09 Architektur-Split Rest (Pillar 4) — state-strategy zuerst
            └─> Plan 04: Live-Recording Polish + Sub-only (P1)
                 ├─> Plan 05: Auto-Discovery Erweiterung (P7)
                 └─> Plan 06: UI Power-Features (P5)
                      └─> Plan 07: Smart-Resume Finalisierung (P6)
                           └─> Plan 08: Architektur-Split Pt. 1 (state-coupled modules)
                                └─> Plan 09: Architektur-Split Pt. 2 (final split)
                                     └─> Plan 10: v5.0.0-rc.1 → GA

Begruendung der Umordnung: Plan 01 hat das Pure-Extraktion-Pattern validiert (Pillar 4 Teil-1). Weiter splitten der state-gekoppelten Module braucht zuerst eine State-Container-Strategie — das ist besser informiert nachdem Features (SQLite, OAuth, Live-Rec) ins System gehen und die echten Querverbindungen sichtbar sind. Bis dahin lebt das Pattern aus Plan 01 weiter (neue Module landen in src/main/{infra,domain}/), nur die alten in main.ts steckenden Stateful-Funktionen bleiben dort.

Plan 02 = Pillar 3 (SQLite). Plan 03 = Pillar 2 (OAuth). Plan 04 = Pillar 1. Plan 05 = Pillar 7. Plan 06 = Pillar 5. Plan 07 = Pillar 6. Plan 08-09 = Pillar 4 Rest. Plan 10 = Release.


Plan Status

# Plan Datei Status
01 Foundation: Vitest + Pure-Utility-Extraction tasks/v5.0.0-plan-01-foundation.md DONE (v5.0.0-alpha.0)
02 SQLite-Foundation (Pillar 3) tasks/v5.0.0-plan-02-sqlite.md DONE (v5.0.0-alpha.1)
03 OAuth Foundation Storage (Pillar 2) tasks/v5.0.0-plan-03-oauth-foundation.md DONE (v5.0.0-alpha.2)
03b OAuth Flow Scaffold (Pillar 2) tasks/v5.0.0-plan-03b-oauth-flow.md DONE (v5.0.0) — PKCE + Loopback + Twitch flow modules, scaffold complete
04 Smart-Resume Foundation (Pillar 6) tasks/v5.0.0-plan-04-resume-foundation.md DONE (v5.0.0-alpha.3)
04b Smart-Resume Integration (Pillar 6) (5.1.x) post-5.0 — recorder integration
05 Live-Recording Polish (Pillar 1) (5.1.x) post-5.0 — needs OAuth Client ID + IPC + UI
05 Auto-Discovery Erweiterung (Pillar 7) tasks/v5.0.0-plan-05-auto-disc.md nach Plan 04
06 UI Power (Pillar 5) tasks/v5.0.0-plan-06-ui-power.md nach Plan 04
07 Smart-Resume Final (Pillar 6) tasks/v5.0.0-plan-07-smart-resume.md nach Plan 06
08 Architektur-Split Pt. 1 (Pillar 4) tasks/v5.0.0-plan-08-split-pt1.md nach Plan 07
09 Architektur-Split Pt. 2 (Pillar 4) tasks/v5.0.0-plan-09-split-pt2.md nach Plan 08
10 Release 5.0.0 GA tasks/v5.0.0-plan-10-release.md nach Plan 09

Versionsstrategie (post Reorder)

Plan abgeschlossen Version
Plan 01 5.0.0-alpha.0 Foundation, vitest + pure modules (DONE)
Plan 02 5.0.0-alpha.1 SQLite Migrator (Breaking, opt-in next-channel)
Plan 03 5.0.0-alpha.2 OAuth
Plan 04 5.0.0-beta.0 Live-Recording Polish + Sub-only
Plan 05 5.0.0-beta.1 Auto-Discovery
Plan 06 5.0.0-beta.2 UI Power
Plan 07 5.0.0-beta.3 Smart-Resume
Plan 08-09 5.0.0-rc.0 / rc.1 Architektur-Split
Plan 10 5.0.0 stable

Pro Plan: ein Release-Tag, Auto-Updater Channel next. 4.6-User bleiben auf stable.