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>
This commit is contained in:
parent
5a5d6f9c47
commit
5b1c68a122
@ -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
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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 |
|
||||
|
||||
Loading…
Reference in New Issue
Block a user