Files
ytplayer/plans/phase4-report.md

49 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.