Skip to content

I2853 — a Pages deploy on a fresh master is not refused for claims newer than the ledger it reads

`scripts/pages published-evidence` reads a `not run` claim whose test exists at none of the commits the ledger was recorded against as not yet recorded: it is named in the output and is not held against the published-not-run baseline. A claim whose test existed when the ledger was recorded still counts, and every claim counts when no commit of the ledger is in the history.

DONE wave 0 · p1 · implementation profile · parallel safe

Part of test-evidence — Every verifiable claim and widget resolves to revision-bound test evidence, on every surface.

Objective

`scripts/pages published-evidence` reads a `not run` claim whose test exists at none of the commits the ledger was recorded against as not yet recorded: it is named in the output and is not held against the published-not-run baseline. A claim whose test existed when the ledger was recorded still counts, and every claim counts when no commit of the ledger is in the history.

Why

The first Pages deploy of 0.30.0 (run 39145730187, master 2dfff96988a, 2026-10-18) failed at ui-snapshot. Master's own validation was still running, so the publication read the previous master's ledger (707a04c7ce83, 141 commits behind). Three guaranteed claims added since then (mcp-client-always-served, release-prerelease-channel, session-start-prompt) read `not run` over a baseline of zero. No run of a test that did not exist when the ledger was recorded can be in that ledger, so every deploy in the ~90 minutes before a fresh master's evidence is recorded was refused for a gap that was not missing evidence. Found by 3e, assigned for 0.30.2 by the release seat.

Current state

published-evidence compares the total `not run` count with the baseline and refuses over it, whatever made each claim `not run`.

Desired state

published-evidence subtracts the `not run` claims whose test path (the file part of `path::name`) exists at none of the ledger's commits that this history holds, names them as newer than the ledger, and compares the rest with the baseline; a ledger outside the history excuses nothing.

Scope

  • scripts/pages
  • test/cases/3242_a_claim_newer_than_the_ledger_is_not_yet_recorded.sh

Out of scope

  • Making the deploy wait for master's evidence artifact: the other remedy the release seat named. Not needed once a newer claim is not a refusal, and it would delay every deploy.
  • How the published UI words a claim newer than the ledger: it reads `not run`, which is true; a distinct `not yet recorded` state in evidence.report is a change to the capability.

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • A not-run claim whose test exists at no ledger commit is named and not counted against the baseline
  • A not-run claim whose test existed at a ledger commit is still refused over the baseline
  • A ledger none of whose commits is in the history excuses no claim

Validation

  • bin/majordomus plan validate
  • bash test/run.sh 3242_a_claim_newer_than_the_ledger_is_not_yet_recorded 3178_the_published_ui_reads_the_evidence_ci_recorded

Evidence required

  • a_claim_newer_than_the_ledger_case

Evidence

coverstypecommandresultat commit
a_claim_newer_than_the_ledger_casecivalidate run 39438896504 at master 9a5a9b77520: suite shards 1-4 (jobs 118683336189 118683338077 118683336157 118683336457) run every case, incl. 3242_a_claim_newer_than_the_ledger_is_not_yet_recorded (29acb77dd13)success (the run's only red job is pages, which runs no test)a81b1e3

Timeline

started
2026-10-20T16:16:37Z
verified
—
completed
2026-10-20T16:30:56Z

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I2853.yaml. Read it back with majordomus plan show I2853.

Searches the titles and descriptions of every page this site publishes.