docs: record P1 status for 1.24.15

This commit is contained in:
mARTin-B78 2026-09-04 10:15:56 +02:00
parent 0f1d93c9df
commit 06763a4602
3 changed files with 21 additions and 4 deletions

View File

@ -7,6 +7,11 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
## [Unreleased] ## [Unreleased]
### Changed
- **P1 Roadmap status.** Documented the completed namespace/manifest foundations and durable background artifacts,
while keeping true lazy feature loading, responsibility-level frontend extraction, provider-health consolidation,
full workload measurements, and browser image-cache eviction explicitly open.
### Added ### Added
- **Bounded Rehearser Audio Cache.** Decoded/synthesized line audio now uses a 128-entry LRU cache so long scripts - **Bounded Rehearser Audio Cache.** Decoded/synthesized line audio now uses a 128-entry LRU cache so long scripts
cannot grow browser memory without limit. cannot grow browser memory without limit.

18
TODO.md
View File

@ -15,6 +15,17 @@ hours, **M** = 1–2 days, **L** = several days, **XL** = multi-week or iterativ
Within each priority, tasks are ordered from smallest to largest effort. Complete Within each priority, tasks are ordered from smallest to largest effort. Complete
the first block before investing in architecture or polish. the first block before investing in architecture or polish.
## Current status — 2026-09-04
All P0 safety, security, data-integrity, and release-protection work is complete.
P1 implementation is active: pagination, shared voice caching, bounded decoded-audio
caching, background jobs, canonical character identity, forms, and the frontend
namespace/manifest foundations are working and regression-tested. Remaining P1 work
is intentionally open where it needs a real architecture change or workload
measurement: true feature-module lazy loading, the larger Audiobook/Rehearser/style
split, centralized provider-health handling, full constrained-device workloads, and
browser image/profile-cache eviction.
### P0 — do first ### P0 — do first
- [x] **S — Stop provider API keys from reaching frontend JavaScript or logs.** Provider keys are masked in settings - [x] **S — Stop provider API keys from reaching frontend JavaScript or logs.** Provider keys are masked in settings
@ -67,7 +78,7 @@ the first block before investing in architecture or polish.
- [x] **L — Add background jobs and bounded queues.** Image generation already has the full interactive job path, - [x] **L — Add background jobs and bounded queues.** Image generation already has the full interactive job path,
and transcription, voice design, and casting now have optional ID/status/cancel/timeout paths while preserving and transcription, voice design, and casting now have optional ID/status/cancel/timeout paths while preserving
synchronous callers. Job metadata now persists in SQLite and marks interrupted work after restart; durable binary synchronous callers. Job metadata now persists in SQLite and marks interrupted work after restart; durable binary
result storage remains; outbound TTS and LLM calls now share a bounded transient-failure retry policy, and `/api/jobs` result storage is bounded and authenticated; outbound TTS and LLM calls now share a bounded transient-failure retry policy, and `/api/jobs`
exposes sanitized recent job history. Completed voice-design audio and consistent-image outputs now use bounded, exposes sanitized recent job history. Completed voice-design audio and consistent-image outputs now use bounded,
atomic artifact files with authenticated download URLs; transcription text remains deliberately non-persistent. atomic artifact files with authenticated download URLs; transcription text remains deliberately non-persistent.
Failed live transcription, voice-design, and casting jobs now offer bounded in-memory retries; after restart they Failed live transcription, voice-design, and casting jobs now offer bounded in-memory retries; after restart they
@ -78,8 +89,9 @@ the first block before investing in architecture or polish.
- [x] **L — Add character forms inside one character record.** `sheet.forms[]` stores bounded alternate appearances, - [x] **L — Add character forms inside one character record.** `sheet.forms[]` stores bounded alternate appearances,
prompts, and per-form visual assets; the detail-page switcher preserves one character ID and voice, and selected prompts, and per-form visual assets; the detail-page switcher preserves one character ID and voice, and selected
forms feed prompt generation and identity fingerprints. forms feed prompt generation and identity fingerprints.
- [ ] **L — Modularize the frontend.** Split Audiobook, Rehearser and styles, replace - [ ] **L — Modularize the frontend.** The shared manifest and compatibility namespace
broad globals with namespaces, and consolidate the loader/module manifest. bridge are complete foundations; responsibility-level extraction, true feature-module
lazy loading, and the Audiobook/Rehearser/style split remain.
### P2 — after behavior and safety stabilize ### P2 — after behavior and safety stabilize

View File

@ -1 +1 @@
1.24.14 1.24.15