Record combined migration, offline and cold-start verification

This commit is contained in:
Jonathan Sykes
2026-10-09 15:47:35 +08:00
parent 6ae81d1024
commit 0a5b113ebe
10 changed files with 51008 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
# 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.