Verify six app seams and record Phase 4 performance measurements
This commit is contained in:
@@ -271,3 +271,43 @@ Legacy pages cannot report their selected layout. Their one-time migration block
|
||||
all layouts to preserve immediate offline selection; modern pages block only the
|
||||
reported layout and its shared controls. Executing groups never re-evaluate live.
|
||||
See plans/phase3-staged-apply-decision.md: Phase 4 must add disposal/state handoff.
|
||||
|
||||
## Phase 4 seams and verification
|
||||
|
||||
The dependency inventory in `plans/phase4-seams.md` records Phase 3 declarations,
|
||||
resolved outside references and byte/coupling rankings. Reproduce its source using
|
||||
`npm install --prefix perf/.tmp/analysis --no-audit --no-fund acorn@8 eslint-scope@8`
|
||||
and `node perf/analyze-app.cjs cd4a25a` (development scratch dependencies only).
|
||||
Shell/shared view/Settings/section-rail definitions remain eager before app.js.
|
||||
Presenter, Remote client, Watch party, Share/External and Stats view register
|
||||
classic singletons on `window.YT`; synchronous playback hooks remain facades.
|
||||
Executing chunks remain pinned: disposal/state handoff is still required before
|
||||
any live replacement can be enabled.
|
||||
|
||||
```bash
|
||||
node --test frontend/*.test.js
|
||||
(cd server && bun install && bun run test)
|
||||
node perf/hidden-timers.mjs
|
||||
node perf/seams.mjs --browser all
|
||||
node perf/lazy.mjs --browser all
|
||||
node perf/migration.mjs --browser all --profile lossy \
|
||||
--out perf/results/phase4-migration-lossy-2026-10-08.json
|
||||
node perf/migration.mjs --browser all --profile unthrottled \
|
||||
--out perf/results/phase4-migration-unthrottled-2026-10-08.json
|
||||
node perf/baseline.mjs --runs 1 --browser all --profile lte --scenario all \
|
||||
--out perf/results/phase4-final-2026-10-08.json \
|
||||
--compare perf/results/after-phase0-2026-10-07.json
|
||||
node perf/baseline.mjs --runs 3 --browser chromium --profile lte --scenario cold \
|
||||
--out perf/results/phase4-cold-isolated-2026-10-08.json
|
||||
```
|
||||
|
||||
`update-feature` appends one comment to presenter.js in scratch, installs the worker,
|
||||
explicitly activates, then waits for the changed background chunk to be verified
|
||||
in CacheStorage. It asserts that no other application JS/CSS/font/icon payload
|
||||
transfers; derived index/manifest and worker script checks are included in totals.
|
||||
`all` includes this scenario when the source contains presenter.js. Cold records
|
||||
now include individual long-task timing without changing the aggregate metric,
|
||||
plus the source frontend build tag. WebKit does not expose the long-task API.
|
||||
Migration supports `--out` to preserve earlier phase evidence. Existing lazy
|
||||
harness results are copied to `phase4-lazy-2026-10-08.json` after each Phase 4 run
|
||||
and the Phase 3 result is restored. No production requests or deploys are needed.
|
||||
|
||||
Reference in New Issue
Block a user