Document incremental sync verification and performance gaps
This commit is contained in:
43
plans/phase2-report.md
Normal file
43
plans/phase2-report.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Phase 2 report
|
||||
|
||||
Shipped on `codex/phase2`: plan `a1f16f2`; incremental sync/playback guards
|
||||
`54a07a0`; atomic state, exact hash rejection and retention `5b25cca`;
|
||||
single-tag rollback compatibility `bb446c7`; migration verification `5d1e5ec`;
|
||||
fail-closed status handling `9240456`.
|
||||
|
||||
Persistent `ytplayer-assets` stores verified exact URLs and current/previous
|
||||
manifests. Downloads resume, use six workers/three attempts, and publish only
|
||||
complete blocking sets. Activation retains N-1 changed/removed files, prunes
|
||||
N-2, then deletes legacy caches; quota is logged. All current groups block;
|
||||
lazy parsing/background warming await Phase 3.
|
||||
|
||||
Server gaps addressed: inject ASSET_SYNC and the hashed sync-core import,
|
||||
hash final worker bytes, compress manifest responses while preserving build
|
||||
ETags. ASSET_SYNC=0 selects legacy sync; ASSET_HASHING=0 also selects legacy.
|
||||
|
||||
Verification: 168 frontend/181 server tests pass without skips. Chromium/WebKit
|
||||
migration passes with and without stalls using actual b77938a code: ready:true,
|
||||
zero legacy refresh downloads, one banner/user-triggered reload, N-1 open tab,
|
||||
eviction repair, incremental refresh and offline boot. Both rollback flags
|
||||
pass offline browser checks. Async polling fixes the Playwright harness race.
|
||||
|
||||
Accepted legacy exception: b77938a retains its four-second timer after the USER
|
||||
presses Refresh UI and does not report playback. New pages guard playback,
|
||||
offer explicit override and post PLAYING; workers defer known-playing requests
|
||||
and never call skipWaiting during installation.
|
||||
|
||||
Final one-run LTE measurements (`phase2-final-2026-10-07.json`, Chromium/WebKit):
|
||||
JS updates 155,648/189,354 bytes versus 611,338/680,822; CSS 31,476/30,545 versus
|
||||
611,476/680,831. Sync fetches changed app/style + index/manifest; fonts/icons transfer
|
||||
zero bytes. Browser worker checks add overhead: Chromium downloads sw.js twice;
|
||||
WebKit also downloads the unchanged imported core. Thus total CSS exceeds
|
||||
30,000 bytes.
|
||||
|
||||
Cold bytes: 624,762/1,191,130 versus 1,040,158/1,180,749. Chromium transfers app.js
|
||||
once; WebKit transfers it twice despite HTTP-cache reuse attempts. Cache sharing
|
||||
remains unresolved. Cold boot: 11,155/4,327 ms versus 10,480/3,290; warm:
|
||||
671/121 versus 692/139; offline: 264/133 versus 259/137. Single-run cold regressions
|
||||
need further investigation; no claim that every performance target was met.
|
||||
|
||||
Owner iPhone checks: locked playback, override/cancel, stall recovery, offline
|
||||
launch and OPFS/quota coexistence. No push, merge or deployment.
|
||||
Reference in New Issue
Block a user