diff --git a/loop/plan.md b/loop/plan.md index a07e9d66..3fc4b07f 100644 --- a/loop/plan.md +++ b/loop/plan.md @@ -351,7 +351,7 @@ Every test must pass **10 consecutive times** from BOTH .228→.198 AND .198→. - [x] **PERF-02** — Frontend bundle already meets target. Initial load: index.js 110KB gzipped (target: <500KB). All route views lazy-loaded by Vite (code-split per route). Total JS: 947KB raw, ~312KB gzipped across all chunks. No changes needed. -- [ ] **PERF-03** — Optimize container image sizes. Pull all container images and check sizes. Replace any > 1GB images with smaller alternatives (alpine-based). Remove any cached layers for old versions. **Acceptance**: Total container image disk usage reduced by > 20%. +- [x] **PERF-03** — Pruned unused container images on .228: 53.69GB → 26.73GB (50% reduction, freed 26.96GB). Removed 54 dangling/unused images (old versions, intermediate layers). Active images: 35 (matching 35 running containers). Largest: Jellyfin (986MB), Penpot Backend (854MB), Immich Postgres (764MB). - [x] **PERF-04** — Added ResponseCache to RpcHandler. TTL-based cache (5s) for `system.stats` and `federation.list-nodes`. Cache check before dispatch returns cached result immediately. Successful results stored after dispatch. Thread-safe via `tokio::sync::RwLock`.