Record combined migration, offline and cold-start verification
This commit is contained in:
51
plans/integration-report.md
Normal file
51
plans/integration-report.md
Normal 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.
|
||||
Reference in New Issue
Block a user