Merge persisted-settings verification and retain all harness documentation

This commit is contained in:
Jonathan Sykes
2026-10-09 15:12:46 +08:00
6 changed files with 1684 additions and 0 deletions

View File

@@ -385,3 +385,24 @@ The offline completeness harness compares cache contents with the runtime
manifest dynamically; it must not hard-code the old 151-file inventory. See
`plans/manifest-hygiene-report.md` and `perf/results/hygiene-*.json` for the
before/after measurements and compatibility checks.
## Existing-install settings preservation
```sh
node perf/settings-persist.mjs --browser all --target main --allow-unsupported-webkit
node perf/settings-persist.mjs --browser all --target 0b8e398 --allow-unsupported-webkit --out perf/results/settings-persist-live-base.json
```
The harness archives b77938a and the requested target into worktree-local scratch,
serves actual Bun servers at the same origin, sets values through Settings UI
handlers, reloads, invokes the old banner's actual Refresh UI button, and diffs
every `_ytpdata.settings` key and control. A real local H.264/AAC clip verifies
OPFS storage and blob playback before/after in Chromium. A local HTTP proxy
mocks profile timestamps for worker-owned fetches on both engines and tests
backup import. There are no external profile writes or media requests.
Failures exit 1. Linux WebKit has no native OPFS; without the explicit allowance
the unverified storage capability exits 2. The allowance only skips unsupported
storage assertions; every preservation/profile/import assertion still runs.
No storage shim substitutes for a genuine iPhone test. Snapshot results and the
per-key table are in `plans/settings-persist-investigation.md`.