Files
ytplayer/plans/integration-report.md

52 lines
2.9 KiB
Markdown
Raw 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.

# Integration verification — 2026-10-09
Merged Phase 6 → hygiene → settings → autosave into `codex/integrate`; measured `6ae81d1`, build `7760d5727244`.
Reconciled response capture, contracts/pinning, resumable completion, Save-Data, stale-header sanitization and cache-poisoning tests. Manifest preserves exclusions/direct hashes, CSP hashes and rollback flags. Harness documentation survives.
Executed:
```sh
node perf/baseline.mjs --runs 5 --browser all --profile all --scenario all --assert-cold --compare perf/results/final-2026-10-08.json --out perf/results/integration-baseline.json
```
Five-run medians; Phase 5 → combination. Wire values are bytes.
| Engine/profile | Cold FCP ms | Cold wire B | Positive app.js bodies |
|---|---:|---:|---:|
| Chromium LTE | 1356 → 1360 | 651,012 → 663,611 | 1 × 5 |
| Chromium LOSSY | 2052 → 1992 | 651,096 → 663,611 | 1 × 5 |
| Webkit LTE | 1739 → 895 | 1,097,048 → 999,794 | 1 × 5 |
| Webkit LOSSY | 4303 → 2744 | 1,105,402 → 1,006,620 | 1 × 5 |
| Engine/profile | Warm boot ms | Offline boot ms | Core update B | CSS update B | Feature update B |
|---|---:|---:|---:|---:|---:|
| Chromium LTE | 410 → 395 | 185 → 236 | 125795 → 126116 | 35363 → 43741 | 33408 → 41769 |
| Chromium LOSSY | 403 → 386 | 189 → 200 | 125795 → 126116 | 35363 → 43741 | 33408 → 41769 |
| Webkit LTE | 83 → 83 | 86 → 78 | 147259 → 148181 | 45659 → 57529 | 43318 → 42636 |
| Webkit LOSSY | 85 → 80 | 81 → 84 | 147259 → 148181 | 43705 → 54421 | 41364 → 42636 |
All cold samples start worker/background transfers after paint: WebKit/LTE sample paint 936 ms, worker 2,989 ms, background CSS 6,637 ms. Controlled-page resumptions remain event-driven.
CSS overhead includes `/sw.js?v=…` (9,439 B) and larger sync-core responses. Chromium cold bytes increase ~2%; LTE offline boot increases 51 ms. These costs remain.
| Verification | Result |
|---|---|
| Frontend / server / measurement suites | 242 / 187 / 3 pass; zero failures |
| Migration: all engines, lossy + unthrottled | pass; one banner/reload, playback guard, offline |
| Offline-complete: all engines + interruption/Save-Data/two tabs | 102/102 runtime files, missing/failures zero |
| Lazy / hidden timers | pass; warmed first-use network zero |
| UI geometry / icons | 384 / 24 cases pass |
| Autosave / persisted settings | Chromium native OPFS pass; both engines preserve 24 keys |
Actual output excerpts:
```text
ℹ pass 242
ℹ fail 0
after: 384 cases; 0 failed checks
Result: ALL ASSERTIONS PASSED
```
Evidence: `perf/results/integration-*.json`, including commands/exits. Linux WebKit lacks native OPFS; offline tests use the documented proxy workaround. Settings records an existing null-listener error. Expected offline API errors are tolerated; asset failures are not. iPhone checks: OPFS, suspension/resumption, quota/eviction, safe areas, locked-screen audio.