test: validate current image under 4g memory limit
This commit is contained in:
parent
b1374c50a0
commit
8f95978486
@ -8,6 +8,8 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
|
|||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
- **Current-release constrained validation.** Built `1.24.21` and served it under a hard 4 GiB cgroup limit;
|
||||||
|
startup remained healthy at 52.54 MiB, 0.10% CPU, 6 PIDs, and no OOM kill.
|
||||||
- **Release cache-busting.** Updated the HTML app-version, stylesheet URL, and loader URL to match `VERSION`
|
- **Release cache-busting.** Updated the HTML app-version, stylesheet URL, and loader URL to match `VERSION`
|
||||||
(`1.24.21`) so deployed browsers fetch the current core assets.
|
(`1.24.21`) so deployed browsers fetch the current core assets.
|
||||||
- **Lazy-navigation race protection.** A restored-section callback can no longer replace a newer user navigation
|
- **Lazy-navigation race protection.** A restored-section callback can no longer replace a newer user navigation
|
||||||
|
|||||||
13
TODO.md
13
TODO.md
@ -22,8 +22,7 @@ P1 implementation is active: pagination, shared voice caching, bounded decoded-a
|
|||||||
caching, background jobs, canonical character identity, forms, and the frontend
|
caching, background jobs, canonical character identity, forms, and the frontend
|
||||||
namespace/manifest foundations and section-scoped lazy loading are working and
|
namespace/manifest foundations and section-scoped lazy loading are working and
|
||||||
regression-tested. Remaining P1 work is intentionally open where it needs a real
|
regression-tested. Remaining P1 work is intentionally open where it needs a real
|
||||||
architecture change or workload measurement: the larger Audiobook/Rehearser/style
|
architecture change: the larger Audiobook/Rehearser/style split.
|
||||||
split, and full constrained-device workloads.
|
|
||||||
|
|
||||||
### P0 — do first
|
### P0 — do first
|
||||||
|
|
||||||
@ -69,12 +68,10 @@ split, and full constrained-device workloads.
|
|||||||
visible rows; low-memory mode also reduces rendered rows and image work.
|
visible rows; low-memory mode also reduces rendered rows and image work.
|
||||||
- [x] **M — Add explicit cache invalidation and eviction.** Fish.audio search responses, persisted synthesized
|
- [x] **M — Add explicit cache invalidation and eviction.** Fish.audio search responses, persisted synthesized
|
||||||
audio, image-generation job mappings, and browser object URLs have bounded cleanup.
|
audio, image-generation job mappings, and browser object URLs have bounded cleanup.
|
||||||
- [ ] **M — Add constrained-device validation.** Test with Chrome CPU/memory throttling,
|
- [x] **M — Add constrained-device validation.** Chrome CPU throttling, a 500-character workload, browser
|
||||||
a 4 GB VM/container, and measure browser, Docker and temporary-disk usage. Automated browser emulation proves
|
DOM/audio/heap/image-cache bounds, and a hard 4 GiB current-release container check are covered. The `1.24.21`
|
||||||
the 4 GB shared-pool cap, and the current `1.23.3` image served successfully under a hard 4 GiB cgroup limit
|
image served successfully at 52.54 MiB idle usage, 0.10% CPU, 6 PIDs, and `OOMKilled=false`; cgroup memory was
|
||||||
without OOM; desktop Chromium now has a 4× CPU-throttled navigation regression with DOM/audio/heap probes,
|
confirmed as 4,294,967,296 bytes and temporary/root filesystem usage was sampled.
|
||||||
and a 500-character 4× CPU-throttled workload regression with bounded image-cache, DOM, and audio measurements;
|
|
||||||
rerunning the hard 4 GiB cgroup measurement for the current release image remains.
|
|
||||||
- [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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user