diff --git a/CLAUDE.md b/CLAUDE.md index daad6a5..1ba5a55 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -38,7 +38,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - **Caching**: Multi-tier in-memory caches (user IDs, VOD lists, clip info) with configurable TTL and periodic cleanup. - **Error classification**: Errors categorized as network/rate_limit/auth/tooling/integrity/io/validation/unknown with retry scheduling. - **Secrets**: OAuth-Token (Twitch + spaeter) landen verschluesselt via Electron `safeStorage` (Win Credential Manager) in `oauth_accounts` Tabelle der SQLite. Zugriff ueber `src/main/domain/token-store.ts`. Memory-Impl fuer Tests. -- **Smart-Resume**: HLS-Chunk-sha1-Hashes koennen in `chunk_index` Tabelle protokolliert werden (`src/main/domain/chunk-index-store.ts`, `src/main/infra/chunk-hash.ts`). Vorbereitung fuer Crash-Recovery + Integrity-Check; Integration in Live-Recorder folgt in Plan 04b. +- **Smart-Resume**: HLS-Chunk-sha1-Hashes koennen in `chunk_index` Tabelle protokolliert werden (`src/main/domain/chunk-index-store.ts`, `src/main/infra/chunk-hash.ts`). Vorbereitung fuer Crash-Recovery + Integrity-Check; Integration in Live-Recorder folgt post-5.0. +- **OAuth (Twitch)**: Authorization Code Flow + PKCE via System-Browser + Loopback (127.0.0.1:PORT). Module: `src/main/domain/{pkce,twitch-oauth}.ts`, `src/main/infra/loopback-server.ts`. IPC-Handler + Renderer-Button + Client-ID-Config in 5.1.x — Module sind in 5.0.0 scaffold-complete, brauchen lediglich Twitch-Dev-App-Registration. - **Localization**: EN (`renderer-locale-en.ts`) and DE (`renderer-locale-de.ts`) string tables. ### External Tools diff --git a/package-lock.json b/package-lock.json index 5aca814..b30abfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "twitch-vod-manager", - "version": "5.0.0-alpha.3", + "version": "5.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "twitch-vod-manager", - "version": "5.0.0-alpha.3", + "version": "5.0.0", "license": "MIT", "dependencies": { "axios": "^1.6.0", diff --git a/package.json b/package.json index 9badb2a..f8a7357 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "twitch-vod-manager", - "version": "5.0.0-alpha.3", + "version": "5.0.0", "description": "Twitch VOD Manager - Download Twitch VODs easily", "main": "dist/main.js", "author": "xRangerDE", diff --git a/tasks/v5.0.0-roadmap.md b/tasks/v5.0.0-roadmap.md index 6e127ba..e45494b 100644 --- a/tasks/v5.0.0-roadmap.md +++ b/tasks/v5.0.0-roadmap.md @@ -30,9 +30,14 @@ Beim Vergleich der echten Codebase (`src/main.ts` 7485 LoC mit 30+ Sektionen) ge 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 03b: OAuth Flow Implementation (P2) └─> Plan 04: Smart-Resume Foundation (P6) [DONE — v5.0.0-alpha.3] - └─> Plan 04b: Smart-Resume Integration (P6) [NEXT] + └─> 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) @@ -66,10 +71,10 @@ Plan 10 = Release. | 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 Implementation (Pillar 2) | `tasks/v5.0.0-plan-03b-oauth-flow.md` | nach Plan 04 | +| 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) | `tasks/v5.0.0-plan-04b-resume-integration.md` | **NEXT** | -| 05 | Live-Recording Polish (Pillar 1) | `tasks/v5.0.0-plan-05-live-rec.md` | nach Plan 03b + 04b | +| 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 |