Record post-crash phase 6 verification
This commit is contained in:
7441
perf/results/phase6-cold-smoke-2026-10-09.json
Normal file
7441
perf/results/phase6-cold-smoke-2026-10-09.json
Normal file
File diff suppressed because it is too large
Load Diff
135
perf/results/phase6-hashing-rollback-2026-10-09.json
Normal file
135
perf/results/phase6-hashing-rollback-2026-10-09.json
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
{
|
||||||
|
"date": "2026-10-09T01:16:09.809Z",
|
||||||
|
"frontendCommit": null,
|
||||||
|
"sourceRoot": null,
|
||||||
|
"sourceCommit": "71608c2ce81207ca21c8adbc49edbc2893f5170e",
|
||||||
|
"frontendBuildTag": "bb9fea44045d",
|
||||||
|
"commit": "71608c2ce81207ca21c8adbc49edbc2893f5170e",
|
||||||
|
"runsConfigured": 1,
|
||||||
|
"browsers": {
|
||||||
|
"chromium": {
|
||||||
|
"lte": {
|
||||||
|
"offline": {
|
||||||
|
"requestCount": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wireBytes": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"fcp": {
|
||||||
|
"median": 108,
|
||||||
|
"min": 108,
|
||||||
|
"max": 108,
|
||||||
|
"values": [
|
||||||
|
108
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"lcp": {
|
||||||
|
"median": 108,
|
||||||
|
"min": 108,
|
||||||
|
"max": 108,
|
||||||
|
"values": [
|
||||||
|
108
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"domContentLoaded": {
|
||||||
|
"median": 345,
|
||||||
|
"min": 345,
|
||||||
|
"max": 345,
|
||||||
|
"values": [
|
||||||
|
345
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bootDone": {
|
||||||
|
"median": 353,
|
||||||
|
"min": 353,
|
||||||
|
"max": 353,
|
||||||
|
"values": [
|
||||||
|
353
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"reloadDuration": {
|
||||||
|
"median": 401,
|
||||||
|
"min": 401,
|
||||||
|
"max": 401,
|
||||||
|
"values": [
|
||||||
|
401
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"webkit": {
|
||||||
|
"lte": {
|
||||||
|
"offline": {
|
||||||
|
"requestCount": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wireBytes": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"fcp": {
|
||||||
|
"median": 127,
|
||||||
|
"min": 127,
|
||||||
|
"max": 127,
|
||||||
|
"values": [
|
||||||
|
127
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"lcp": {
|
||||||
|
"median": 184,
|
||||||
|
"min": 184,
|
||||||
|
"max": 184,
|
||||||
|
"values": [
|
||||||
|
184
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"domContentLoaded": {
|
||||||
|
"median": 180,
|
||||||
|
"min": 180,
|
||||||
|
"max": 180,
|
||||||
|
"values": [
|
||||||
|
180
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bootDone": {
|
||||||
|
"median": 187,
|
||||||
|
"min": 187,
|
||||||
|
"max": 187,
|
||||||
|
"values": [
|
||||||
|
187
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"reloadDuration": {
|
||||||
|
"median": 213,
|
||||||
|
"min": 213,
|
||||||
|
"max": 213,
|
||||||
|
"values": [
|
||||||
|
213
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
97
perf/results/phase6-lazy-2026-10-09.json
Normal file
97
perf/results/phase6-lazy-2026-10-09.json
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
{
|
||||||
|
"results": [
|
||||||
|
{
|
||||||
|
"browser": "chromium",
|
||||||
|
"sourceBuildTag": "31617662d2f0",
|
||||||
|
"classicSharedDefaults": true,
|
||||||
|
"cssOrderPreserved": true,
|
||||||
|
"settingsSearch": true,
|
||||||
|
"carControls": 4,
|
||||||
|
"offlineFeature": true,
|
||||||
|
"firstUseNetwork": 0,
|
||||||
|
"layoutsOffline": [
|
||||||
|
"glass-stage",
|
||||||
|
"bento-hub",
|
||||||
|
"f7-swipe",
|
||||||
|
"classic"
|
||||||
|
],
|
||||||
|
"pinned": true,
|
||||||
|
"compatibleUnexecutedNewURL": true,
|
||||||
|
"incompatibleN1ReloadRequired": true,
|
||||||
|
"stagedN1": true,
|
||||||
|
"appEvictionN1Offline": true,
|
||||||
|
"playbackGuard": true,
|
||||||
|
"prePaintLayout": true,
|
||||||
|
"offlineSettingsPanels": true,
|
||||||
|
"scriptErrors": [],
|
||||||
|
"offlineTransportErrors": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"browser": "webkit",
|
||||||
|
"sourceBuildTag": "31617662d2f0",
|
||||||
|
"classicSharedDefaults": true,
|
||||||
|
"cssOrderPreserved": true,
|
||||||
|
"settingsSearch": true,
|
||||||
|
"carControls": 4,
|
||||||
|
"offlineFeature": true,
|
||||||
|
"firstUseNetwork": 0,
|
||||||
|
"layoutsOffline": [
|
||||||
|
"glass-stage",
|
||||||
|
"bento-hub",
|
||||||
|
"f7-swipe",
|
||||||
|
"classic"
|
||||||
|
],
|
||||||
|
"pinned": true,
|
||||||
|
"compatibleUnexecutedNewURL": true,
|
||||||
|
"incompatibleN1ReloadRequired": true,
|
||||||
|
"stagedN1": true,
|
||||||
|
"appEvictionN1Offline": true,
|
||||||
|
"playbackGuard": true,
|
||||||
|
"prePaintLayout": true,
|
||||||
|
"offlineSettingsPanels": true,
|
||||||
|
"scriptErrors": [],
|
||||||
|
"offlineTransportErrors": [
|
||||||
|
{
|
||||||
|
"message": "TypeError: Load failed",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "/127.0.0.1:38297/api/version.",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "TypeError: Load failed",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "/127.0.0.1:38297/api/recommendations?fp=163577c02a53bc40.",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "TypeError: Load failed",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "/127.0.0.1:38297/api/version.",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "TypeError: Load failed",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "/127.0.0.1:38297/api/recommendations?fp=163577c02a53bc40.",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "TypeError: Load failed",
|
||||||
|
"disconnected": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"message": "/127.0.0.1:38297/api/version.",
|
||||||
|
"disconnected": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
41
perf/results/phase6-migration-lossy-2026-10-09.json
Normal file
41
perf/results/phase6-migration-lossy-2026-10-09.json
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"commit": "b77938a",
|
||||||
|
"results": [
|
||||||
|
{
|
||||||
|
"browser": "chromium",
|
||||||
|
"oldTag": "1175f1a1d2c1",
|
||||||
|
"newTag": "31617662d2f0",
|
||||||
|
"banners": 1,
|
||||||
|
"updateReloads": 1,
|
||||||
|
"cachedFiles": 122,
|
||||||
|
"durationMs": 27355,
|
||||||
|
"wireBytes": 631091,
|
||||||
|
"offline": true,
|
||||||
|
"legacyURLs": 21,
|
||||||
|
"profile": "lossy",
|
||||||
|
"userInitiatedOnly": true,
|
||||||
|
"playbackGuard": true,
|
||||||
|
"evictionRepair": true,
|
||||||
|
"incrementalRefresh": true,
|
||||||
|
"offlineTransportErrors": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"browser": "webkit",
|
||||||
|
"oldTag": "1175f1a1d2c1",
|
||||||
|
"newTag": "31617662d2f0",
|
||||||
|
"banners": 1,
|
||||||
|
"updateReloads": 1,
|
||||||
|
"cachedFiles": 122,
|
||||||
|
"durationMs": 24426,
|
||||||
|
"wireBytes": 730395,
|
||||||
|
"offline": true,
|
||||||
|
"legacyURLs": 21,
|
||||||
|
"profile": "lossy",
|
||||||
|
"userInitiatedOnly": true,
|
||||||
|
"playbackGuard": true,
|
||||||
|
"evictionRepair": true,
|
||||||
|
"incrementalRefresh": true,
|
||||||
|
"offlineTransportErrors": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
41
perf/results/phase6-migration-unthrottled-2026-10-09.json
Normal file
41
perf/results/phase6-migration-unthrottled-2026-10-09.json
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"commit": "b77938a",
|
||||||
|
"results": [
|
||||||
|
{
|
||||||
|
"browser": "chromium",
|
||||||
|
"oldTag": "1175f1a1d2c1",
|
||||||
|
"newTag": "31617662d2f0",
|
||||||
|
"banners": 1,
|
||||||
|
"updateReloads": 1,
|
||||||
|
"cachedFiles": 122,
|
||||||
|
"durationMs": 13290,
|
||||||
|
"wireBytes": 640960,
|
||||||
|
"offline": true,
|
||||||
|
"legacyURLs": 21,
|
||||||
|
"profile": "unthrottled",
|
||||||
|
"userInitiatedOnly": true,
|
||||||
|
"playbackGuard": true,
|
||||||
|
"evictionRepair": true,
|
||||||
|
"incrementalRefresh": true,
|
||||||
|
"offlineTransportErrors": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"browser": "webkit",
|
||||||
|
"oldTag": "1175f1a1d2c1",
|
||||||
|
"newTag": "31617662d2f0",
|
||||||
|
"banners": 1,
|
||||||
|
"updateReloads": 1,
|
||||||
|
"cachedFiles": 122,
|
||||||
|
"durationMs": 11711,
|
||||||
|
"wireBytes": 766828,
|
||||||
|
"offline": true,
|
||||||
|
"legacyURLs": 21,
|
||||||
|
"profile": "unthrottled",
|
||||||
|
"userInitiatedOnly": true,
|
||||||
|
"playbackGuard": true,
|
||||||
|
"evictionRepair": true,
|
||||||
|
"incrementalRefresh": true,
|
||||||
|
"offlineTransportErrors": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
28
perf/results/phase6-seams-2026-10-09.json
Normal file
28
perf/results/phase6-seams-2026-10-09.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"browser": "chromium",
|
||||||
|
"checked": [
|
||||||
|
"shell",
|
||||||
|
"presenter",
|
||||||
|
"remote",
|
||||||
|
"party",
|
||||||
|
"share",
|
||||||
|
"stats"
|
||||||
|
],
|
||||||
|
"offlineNetworkRequests": 0,
|
||||||
|
"errors": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"browser": "webkit",
|
||||||
|
"checked": [
|
||||||
|
"shell",
|
||||||
|
"presenter",
|
||||||
|
"remote",
|
||||||
|
"party",
|
||||||
|
"share",
|
||||||
|
"stats"
|
||||||
|
],
|
||||||
|
"offlineNetworkRequests": 0,
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
|
]
|
||||||
135
perf/results/phase6-sync-rollback-2026-10-09.json
Normal file
135
perf/results/phase6-sync-rollback-2026-10-09.json
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
{
|
||||||
|
"date": "2026-10-09T01:15:49.802Z",
|
||||||
|
"frontendCommit": null,
|
||||||
|
"sourceRoot": null,
|
||||||
|
"sourceCommit": "71608c2ce81207ca21c8adbc49edbc2893f5170e",
|
||||||
|
"frontendBuildTag": "2bf76ad9d08e",
|
||||||
|
"commit": "71608c2ce81207ca21c8adbc49edbc2893f5170e",
|
||||||
|
"runsConfigured": 1,
|
||||||
|
"browsers": {
|
||||||
|
"chromium": {
|
||||||
|
"lte": {
|
||||||
|
"offline": {
|
||||||
|
"requestCount": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wireBytes": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"fcp": {
|
||||||
|
"median": 88,
|
||||||
|
"min": 88,
|
||||||
|
"max": 88,
|
||||||
|
"values": [
|
||||||
|
88
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"lcp": {
|
||||||
|
"median": 88,
|
||||||
|
"min": 88,
|
||||||
|
"max": 88,
|
||||||
|
"values": [
|
||||||
|
88
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"domContentLoaded": {
|
||||||
|
"median": 299,
|
||||||
|
"min": 299,
|
||||||
|
"max": 299,
|
||||||
|
"values": [
|
||||||
|
299
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bootDone": {
|
||||||
|
"median": 305,
|
||||||
|
"min": 305,
|
||||||
|
"max": 305,
|
||||||
|
"values": [
|
||||||
|
305
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"reloadDuration": {
|
||||||
|
"median": 349,
|
||||||
|
"min": 349,
|
||||||
|
"max": 349,
|
||||||
|
"values": [
|
||||||
|
349
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"webkit": {
|
||||||
|
"lte": {
|
||||||
|
"offline": {
|
||||||
|
"requestCount": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wireBytes": {
|
||||||
|
"median": 0,
|
||||||
|
"min": 0,
|
||||||
|
"max": 0,
|
||||||
|
"values": [
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"fcp": {
|
||||||
|
"median": 164,
|
||||||
|
"min": 164,
|
||||||
|
"max": 164,
|
||||||
|
"values": [
|
||||||
|
164
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"lcp": {
|
||||||
|
"median": 253,
|
||||||
|
"min": 253,
|
||||||
|
"max": 253,
|
||||||
|
"values": [
|
||||||
|
253
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"domContentLoaded": {
|
||||||
|
"median": 241,
|
||||||
|
"min": 241,
|
||||||
|
"max": 241,
|
||||||
|
"values": [
|
||||||
|
241
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bootDone": {
|
||||||
|
"median": 256,
|
||||||
|
"min": 256,
|
||||||
|
"max": 256,
|
||||||
|
"values": [
|
||||||
|
256
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"reloadDuration": {
|
||||||
|
"median": 299,
|
||||||
|
"min": 299,
|
||||||
|
"max": 299,
|
||||||
|
"values": [
|
||||||
|
299
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -168,3 +168,52 @@ Cache responses are exact-key checked; stale bodies under a new URL are no-store
|
|||||||
and carry no decoded transport encoding. Core contract 2 blocks loader-free N-1
|
and carry no decoded transport encoding. Core contract 2 blocks loader-free N-1
|
||||||
packing, while same-contract app fallback and executed feature pinning remain
|
packing, while same-contract app fallback and executed feature pinning remain
|
||||||
covered by both-engine smoke. Failed quota writes never delete saved music.
|
covered by both-engine smoke. Failed quota writes never delete saved music.
|
||||||
|
|
||||||
|
## Post-crash completion — 2026-10-09
|
||||||
|
|
||||||
|
Resumed from ff3f934 on codex/phase6. Commit 71608c2 clarifies the diagnostic
|
||||||
|
waterfall provenance; product code and served build 31617662d2f0 are unchanged.
|
||||||
|
The durable five-run/120-sample final measurements above were preserved.
|
||||||
|
Reinstalled Playwright browsers passed fresh compatibility checks:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
node perf/migration.mjs --browser all --profile unthrottled --out perf/results/phase6-migration-unthrottled-2026-10-09.json
|
||||||
|
node perf/migration.mjs --browser all --profile lossy --out perf/results/phase6-migration-lossy-2026-10-09.json
|
||||||
|
node perf/hidden-timers.mjs
|
||||||
|
node perf/lazy.mjs --browser all --out perf/results/phase6-lazy-2026-10-09.json
|
||||||
|
node perf/seams.mjs --browser all
|
||||||
|
ASSET_SYNC=0 node perf/baseline.mjs --runs 1 --browser all --profile lte --scenario offline --out perf/results/phase6-sync-rollback-2026-10-09.json
|
||||||
|
ASSET_HASHING=0 node perf/baseline.mjs --runs 1 --browser all --profile lte --scenario offline --out perf/results/phase6-hashing-rollback-2026-10-09.json
|
||||||
|
node --test frontend/*.test.js
|
||||||
|
node --test perf/measurement.test.mjs
|
||||||
|
(cd server && bun install && PATH="$PWD/../perf/.tmp/test-venv/bin:$PATH" bun run test)
|
||||||
|
```
|
||||||
|
|
||||||
|
Fresh output excerpts (all commands exited successfully):
|
||||||
|
|
||||||
|
```text
|
||||||
|
Migration unthrottled: chromium durationMs=13290; webkit durationMs=11711
|
||||||
|
Migration lossy: chromium durationMs=27355; webkit durationMs=24426
|
||||||
|
All four: banners=1 updateReloads=1 cachedFiles=122 legacyURLs=21
|
||||||
|
All four: userInitiatedOnly=true offline=true playbackGuard=true evictionRepair=true incrementalRefresh=true
|
||||||
|
Hidden timers: Page errors: none; Result: ALL ASSERTIONS PASSED
|
||||||
|
Lazy: chromium PASS; webkit PASS
|
||||||
|
Seams: chromium and webkit checked=[shell,presenter,remote,party,share,stats] offlineNetworkRequests=0 errors=[]
|
||||||
|
Both rollback flags, both engines: requestCount=0 wireBytes=0
|
||||||
|
Frontend: tests 223; pass 223; fail 0; skipped 0
|
||||||
|
Measurement: tests 3; pass 3; fail 0
|
||||||
|
Server: per-file totals 184 pass; 0 fail
|
||||||
|
```
|
||||||
|
|
||||||
|
The seam output is saved as phase6-seams-2026-10-09.json; the historical Phase 4
|
||||||
|
result was restored. Offline API transport errors remain distinguished from
|
||||||
|
script failures. No playback or sw-update.js changes were added. bun.lock is
|
||||||
|
excluded from commits.
|
||||||
|
|
||||||
|
Post-crash cold smoke command:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
node perf/baseline.mjs --runs 1 --browser webkit --profile all --scenario cold --assert-cold --out perf/results/phase6-cold-smoke-2026-10-09.json
|
||||||
|
```
|
||||||
|
|
||||||
|
LTE/lossy FCP was 1253/2881 ms, wire 983326/990152 bytes; both samples passed exactly one positive-byte app.js response. These single-run rechecks do not replace the durable five-run medians.
|
||||||
|
|||||||
Reference in New Issue
Block a user