Skip to content

CI: restore the required-floor-claim-cost upload; RFM row for an instrument artifact that stopped existing while cited - #13227

Merged
gunbai-bot[bot] merged 1 commit into
mainfrom
session/gentle-bear-467-claim-cost-upload
Oct 4, 2026
Merged

gunbai-bot[bot] merged 1 commit into
mainfrom
session/gentle-bear-467-claim-cost-upload

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Restores the required-floor-claim-cost artifact on every required run, and files the class as a recurring failure mode. This is a separate PR from #13225, whose claim-cost row names this as one of its two missing capabilities.

What happened

  • CI: required witnesses check builds only the compiler, on a hosted runner #11742 (85c1356) replaced the whole required floor workflow with a hosted build-only job, and the upload went with it.
  • The floor job later returned under gunbc.compiler_gate_workflow. It kept GUNBC_REQUIRED_FLOOR_CLAIM_COST, so claim_executor kept writing required_floor_claim_cost.tsv on every run.
  • But the upload row lived only in gunbc.witness_floor_workflow's own step list, which no longer emits witnesses.yml.
  • Measured 2026-10-04: required runs publish only required-ci-measurement-receipt and compiler-pair-candidate.
  • required-ci-measurement-receipt cannot stand in for the claim-cost artifact: it is MeasurementCompleted { blockers } | MeasurementUnreached, with no per-witness cost.

Change

  • required_floor_claim_cost_upload_bound_step is one shared bound step. witness_floor_workflow and the required floor job both bind it by name.
  • It is bound after the measurement steps, under the floor's precondition (!cancelled() && build ok).
  • witnesses.yml is regenerated. The diff is the single 8-line upload step and nothing else.

Not repaired here, named in the row: four sibling uploads were lost the same way: the admission roster, the expected-red roster join, the long-home storage agreement and cross-claim demand.

RFM row instrument_artifact_stopped_existing_while_cited gives the recognition rule and states the ceiling as mechanically preventable. Its next rung is an emission-time join between cited artifact-name declarations and the emitted upload steps.

Behaviour note: if-no-files-found: error matches the old step. A floor that refuses before it writes the TSV gets a second red step; that job is already red.

Evidence:

  • Regenerated with the interpreter through gunbc.generated_artifact_emit artifact_generate(WitnessFloorYamlArtifact).
  • The new row type-checks.
  • This PR's own required run is the real test: it should publish required-floor-claim-cost.

🤖 Generated with Claude Code

…r job; RFM row for an instrument artifact that stopped existing while cited

The floor job emitted by gunbc.compiler_gate_workflow kept GUNBC_REQUIRED_FLOOR_CLAIM_COST, so the
TSV was written on every run, but the upload row lived only in gunbc.witness_floor_workflow's own
step list and was lost when #11742 replaced the job. One shared bound step now serves both lists,
and witnesses.yml is regenerated (8 added lines).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed exact head 62ad6a28db5c8a085666fa863317474b506b8be6. Approved.

The repair is correctly placed at the emitted required-floor job rather than at the parser or the later qualification consumer:

  • required_floor_claim_cost_upload_bound_step is now the one step authority, reused by both the retained witness-floor list and compiler_gate_floor_measurement_bound_steps; there is no alias or second hand-written upload definition.
  • Its condition is the floor precondition, not the adjudication verdict. Because it contains the status function cancelled(), it can still run after a red floor/adjudication so long as the build completed, while a cancelled run does not publish a partial receipt.
  • if-no-files-found: error retains the important distinction between an empty/no-site population and a file that was never produced.
  • The generated workflow delta is exactly the one eight-line upload step and no new job or lane.
  • The exact-head required run is green and published a real required-floor-claim-cost artifact (17,551 bytes, 14-day retention), so this is not only an emitter-shape assertion.

Judgment on the four sibling uploads

Leaving the admission roster, expected-red join, long-home agreement, and cross-claim-demand uploads unrepaired is acceptable for this narrow PR. The claim-cost artifact has an immediate production consumer in the runner-qualification stack; restoring all siblings without first re-validating each producer and consumer would mix four separate instrument contracts into the blocker for that route.

The recurring-failure row is honest that those four remain broken and that one shared bound-step repair does not discover or repair the next missing artifact. It must therefore not be cited as closing those instances. Each remaining output still needs one of two explicit outcomes in its own lane:

  • restore the upload after proving the current job still produces a valid file and a current reader still needs it; or
  • delete/retire the stale artifact declaration and every statement claiming required runs publish it.

In particular, required-floor-disposition is still cited by multiple diagnostic and rung-drop records, so its absence is real debt rather than historical trivia. That is a follow-up priority, not a reason to delay the independently valid claim-cost repair.

No semantic blocker remains.

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Oct 4, 2026
Merged via the queue into main with commit 467f1b4 Oct 4, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/gentle-bear-467-claim-cost-upload branch October 4, 2026 12:10
gunbai-bot Bot pushed a commit that referenced this pull request Oct 4, 2026
Main (#13227) restored the per-claim cost receipt upload in the required floor job through one
bound function. This change now adds only what is still missing: the cross-claim demand census
upload, bound the same way (required_floor_cross_claim_demand_upload_bound_step) in both floor
jobs, so gunbc.floor_cost_distribution_instrument has its second input.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot pushed a commit that referenced this pull request Oct 4, 2026
… auth_input, attempt-bound and unambiguous claim-cost read, narrowed claim-cost frontier

(Merges #13211 8bb3f19, which owns github.WorkflowRuns auth_input and the token join.)
1. github.Artifacts declares auth_input: auth_token. collect_qualification_instruments refuses before
   any read unless token_names_registration holds (QualificationCollectUnderAnotherInstallation);
   job_log_standing is admitted to collect_qualification_instruments_under.
2. The claim-cost row no longer says the upload is missing (#13227 restored it); it names binary REST
   transport, the exact TSV member's inflation, parse_claim_cost_tsv, and binding to this run.
3. Same-name duplicates refuse (ClaimCostArtifactAmbiguous); the run is re-read after the listing and a
   run past the collected attempt refuses (ClaimCostRunAdvancedPastAttempt / ClaimCostRunUnreadable).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant