# 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) [NEXT] └─> Plan 03: OAuth Device Code (P2) └─> 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` | **NEXT** | | 03 | OAuth Device Code (Pillar 2) | `tasks/v5.0.0-plan-03-oauth.md` | nach Plan 02 | | 04 | Live-Recording Polish (Pillar 1) | `tasks/v5.0.0-plan-04-live-rec.md` | nach Plan 03 | | 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`.