* chore(bench): move iOS snapshot benchmark evidence to the evidence/ios-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 (commit2d4baf461a); 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. * fix(bench): require the full published evidence corpus and pin an immutable 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 SHA2d4baf461ainstead of FETCH_HEAD. * fix(bench): stop exporting evidence.ts internals with no consumer 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.
iOS snapshot benchmark evidence
The raw pnpm bench:ios-snapshot results measured at commit
71fb2483f30d90e615e949601c836aeebbf450c5 on bench-golden-v2 (iPhone 17 Pro, iOS 27.0) live on
the orphan branch evidence/ios-snapshot, not in this tree. The branch tip is mutable; the durable
ref is the annotated tag evidence/ios-snapshot/71fb2483f, pinned to commit
2d4baf461aa8897d49c6d4683cd16d8f43588ae8 — fetch and read from the tag and that full SHA, never
from the branch tip. Only Markdown summaries are kept here. The published hashes are declared in
../evidence.ts as PUBLISHED_EVIDENCE:
| File | sha256 |
|---|---|
ios-snapshot-cold-local-71fb2483f.json |
532a83247bfbf8ee47039f80ac429f067c84679e92c781768c1044da1ae6e9bf |
ios-snapshot-warm-relaunch-local-71fb2483f.json |
6d299e8baec69662dca2c1ad8f1348e4361d5afaa781080e9a6b9b3dac362cbf |
ios-snapshot-proxy-71fb2483f.json |
b11b7a07be9e4dcf003f3af66943682a6733c6f21f5f43d3d9e88b3fb37b51a7 |
Fetch
One file, from the repository root:
git fetch origin refs/tags/evidence/ios-snapshot/71fb2483f && git show 2d4baf461aa8897d49c6d4683cd16d8f43588ae8:<file> > scripts/ios-snapshot-benchmark/evidence/<file>
The whole corpus, then a schema and hash check:
git fetch origin refs/tags/evidence/ios-snapshot/71fb2483f
for f in ios-snapshot-cold-local-71fb2483f.json \
ios-snapshot-warm-relaunch-local-71fb2483f.json \
ios-snapshot-proxy-71fb2483f.json; do
git show 2d4baf461aa8897d49c6d4683cd16d8f43588ae8:$f > scripts/ios-snapshot-benchmark/evidence/$f
done
pnpm bench:ios-snapshot:evidence
pnpm bench:ios-snapshot:evidence -- --evidence-dir <dir> checks another directory, for example
a fresh --out location. The fetched JSON files are ignored by git under this directory.