Document Phase 4 seams, measurements and remaining limitations

This commit is contained in:
Jonathan Sykes
2026-10-08 05:03:55 +08:00
parent a7473cbca2
commit f133e1bb9f

48
plans/phase4-report.md Normal file
View File

@@ -0,0 +1,48 @@
# Phase 4 report
Shipped on `codex/phase4`: plan cdd26b6; six seams 3c9a24a, 5fb9564,
8e7fa19, 94ea211, 0475a18, b335f95; failure handling 2c50035.
Scope-resolved dependency inventory and byte/coupling rankings are in
phase4-seams.md; commands, output excerpts and results in phase4-verification.md.
Original source bytes moved:
| Seam | Bytes |
|---|---:|
| Eager shell/shared views/Settings/rail | 98,378 |
| Presenter | 9,492 |
| Remote client | 30,421 |
| Watch party | 22,833 |
| Share/External | 13,334 |
| Stats view | 7,074 |
`app.js`: **587,029 → 408,473 bytes, −30.42%** (178,556 net; 2,976 bytes
facade overhead). Shell definitions load before app; required eager features
stay in RAM. Lazy classic clients register on window.YT. Synchronous playback
hooks remain synchronous; configured/URL sessions resume. Stats tracking loads
without parsing its view. New chunks are manifested and retained in legacy SHELL.
Player, queue, persistence, boot, Notes/editor, service mode, EQ/level, sleep/drift,
Gestures and remaining editor/export glue stay in app.js. Exact source fingerprints
protect playback/tracking bodies. Now-playing metadata mutations inside Player
remain there; markup, action paint and mini bar are eager. Stateful groups remain
pinned; live replacement stays disabled without disposal/state handoff.
Actual LTE measurements, Chromium/WebKit: initial compressed JS/CSS
**210,419/255,200** versus Phase 3 221,307/274,813; matched Phase 0
276,414/338,940. Isolated three-run Chromium median boot **7,010 ms**, long tasks
**275 ms** versus Phase 0 10,480/454 (Phase 3 7,193/287).
WebKit boot 2,977 ms; no long-task API. Presenter edit transfers only its chunk
(3,118/3,587 bytes), plus index/manifest/worker checks: total **33,408/41,364**.
Core updates: 125,795/147,259 bytes. Offline boot: 180/90 ms, zero network.
Verification: **198 frontend/183 server tests**, no skips; both-engine cache smoke,
hidden timers, layouts/staged contracts/pinning/playback guard, b77938a migration
with/without stalls, and both rollback flags pass. Each seam had its own green
checks/commit. No deployment.
Limits: WebKit FCP 2,401 versus Phase 0 1,100 ms still regresses. Concurrent-run
Chromium long tasks were 495 ms; isolated repeat is reported separately. Warm
counters include idle downloads; five-run comparisons await Phase 5. Owner must
check real-iPhone cached first-use/layouts, Remote/Party/Presenter, update guard,
30-minute locked audio/resume and OPFS quota coexistence.