chore(bench): move iOS snapshot benchmark evidence to the evidence/ios-snapshot branch - #2251
Conversation
|
Size Report
npm unpacked components
Startup median (7 runs, lower is better):
Top changed chunks: no changes in the largest emitted chunks. Top changed packed files
|
|
BLOCKED
Exact-head CI is green, but these are data-integrity and durability blockers. |
…s-snapshot branch The three hash-named raw results under scripts/ios-snapshot-benchmark/evidence/ are measurement output, not fixtures. They now live on the orphan branch evidence/ios-snapshot (commit 2d4baf4); the in-tree README records each file's sha256 and the fetch recipe, and fetched copies are gitignored there. scripts/ios-snapshot-benchmark/evidence.ts validates an evidence directory against the raw-result schema and the published hashes (pnpm bench:ios-snapshot:evidence -- [--evidence-dir <dir>]). Its tests run on a two-cell excerpt of the warm/relaunch result and skip the corpus check, naming the fetch command, when the directory holds no evidence.
…utable ref runEvidenceReport accepted any nonempty schema-valid directory, so the default directory could pass with only one of the three published files present. The default directory now names any missing published filename(s); an explicit --evidence-dir stays permissive by design. The evidence/ios-snapshot branch tip is mutable and was the only fetchable source. Pin every fetch command and the README to the annotated tag evidence/ios-snapshot/71fb2483f and the full commit SHA 2d4baf4 instead of FETCH_HEAD.
96c4e1a to
287dbf5
Compare
|
Addressed both BLOCKED findings.
Head SHA |
EVIDENCE_TAG, EVIDENCE_COMMIT, and missingPublishedEvidence are used only inside evidence.ts. runEvidenceReport is the CLI entry point invoked through the file's own `node evidence.ts` guard, not through an import, matching the unexported runDeepButtonRule pattern in the sibling deep-button.ts script.
|
Fixed the Fallow "Unused exports" finding on
No baseline edits, no new tests (no behavior change, just visibility). Head SHA: Separately, the red The full affected-gate result at this head follows from the serialized gate stage. |
|
BLOCKED at |
|
Both closed at
PR body updated with both. Full affected gate is green at this head (CI run). |
Summary
The three hash-named raw results under
scripts/ios-snapshot-benchmark/evidence/(18,411 lines) are measurement output, not fixtures. They now live on the orphan branchevidence/ios-snapshot(commit2d4baf461aa8897d49c6d4683cd16d8f43588ae8: the files plus a README with each sha256 and the fetch recipe; verified withgit ls-remote), pinned by the annotated tagevidence/ios-snapshot/71fb2483f— the durable ref, since the branch tip is mutable.In tree:
git rmthe three JSON files;evidence/README.mdrecords each sha256 andgit fetch origin refs/tags/evidence/ios-snapshot/71fb2483f && git show 2d4baf461aa8897d49c6d4683cd16d8f43588ae8:<file> > <dest>; fetched copies are gitignored there.evidence.ts+pnpm bench:ios-snapshot:evidence -- [--evidence-dir <dir>]validates a directory against the raw-result schema and the published hashes. The default directory must hold the completePUBLISHED_EVIDENCEfilename set and names the missing file(s) if not; an explicit--evidence-dirstays permissive by design (a fresh--outlocation, a partial re-check).evidence.test.tsruns onevidence-fixture.v1.json, a two-cell excerpt of the warm/relaunch result, and skips the corpus check with the fetch command when the directory holds no evidence.Gross diff 19,065 lines: 18,419 deletions (18,411 the moved JSON), 646 additions.
Validation
npx vitest run --project unit-core scripts/ios-snapshot-benchmark: 17 files, 42 passed, 1 skipped.pnpm bench:ios-snapshot:evidence: empty directory exits 1 with the fetch hint; the full corpus fetched at the tag + commit reports three valid files, hashesmatch.evidence/README.md→README does not cite the sha256 of ios-snapshot-cold-local-71fb2483f.json.ios-snapshot-cold-local-71fb2483f.json differs from the published hash.ios-snapshot-cold-local-71fb2483f.jsonpresent (fetched from the pinned tag, hash-matched) →... is missing published evidence file(s): ios-snapshot-warm-relaunch-local-71fb2483f.json, ios-snapshot-proxy-71fb2483f.json.Also covered by a unit test oncheckEvidenceCorpus.evidence/ios-snapshot/71fb2483fat commit2d4baf461aa8897d49c6d4683cd16d8f43588ae8.pnpm check:quick,oxfmt --check,fallow audit, layering check: clean.806dfb522856397f25232b8c10082940bb49eec0: CI run.smoke:automation-inputwith an accessibility-capture-truncation timing flake in the live simulator harness, unrelated to this evidence-relocation change. Rerun on the same head passed clean, confirming the flake.Tradeoffs / follow-ups
Both durability gaps from review are closed at head
806dfb522856397f25232b8c10082940bb49eec0. The tag pins the corpus to an immutable ref; two applied repository rulesets now protect it:protect-evidence-tagsblocks deletion/update ofrefs/tags/evidence/*,protect-evidence-ios-snapshot-branchblocks deletion/force-push ofrefs/heads/evidence/ios-snapshot. Both active, no bypass actors.