Repository navigation
Upload the three floor disposition receipts the job already writes and discards - #8875
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…s disk The modeling landed one commit earlier and the emitted projection did not, so the step existed in .dag and not in the workflow GitHub runs. Regenerated via the sanctioned actuator (dag/tools/generated_artifact_gate.dag main_wet) in one remote dispatch; witnesses.yml was the ONLY path the regen modified, so nothing else drifted in with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
briansrls
pushed a commit
that referenced
this pull request
Aug 22, 2026
…orrection was in review My own correction went stale inside a day, which is the failure mode it exists to name, so it is fixed here rather than merged as written. gunbc#8875 (2026-08-22) added an upload step to `witnesses.yml`. A `required-floor-receipts` artifact DOES leave the runner today, carrying `required_floor_disposition.tsv`, `expected_red_roster_join.tsv`, and `long_home_storage_agreement.tsv`. My prose said "No live workflow carries that step" full stop, and the PR body said "witnesses.yml uploads nothing" -- the second is now flatly false, and the first is true only of the specific deleted `ci_floor_receipts_upload_step` while reading as a claim about all transport. WHY THE COARSER CLAIM WAS WRONG EVEN BEFORE #8875 MADE IT FALSE: it answered "does any upload exist" when the fact that matters is "is THIS receipt retrievable". Those come apart exactly when someone restores transport for a different population, which is what happened. A reader on current main sees an `upload-artifact` step in `witnesses.yml` and a note saying no workflow uploads anything, and cannot tell whether the note is stale or the artifact is something else. So the claim is now made at the population grain: transport exists and carries the DISPOSITION receipts; none of the cost receipts these two notes name is among them. The gap is no longer "no transport" but "the transport that exists carries a different population" -- and a reader must not infer from a green run's artifact that these receipts are in it. The producer half is unchanged and unaffected: required CI still reaches none of the three cost producers, so even complete transport would not restore either protocol. Comment-only, as before. No declaration touched, no behavior changed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD
briansrls
pushed a commit
that referenced
this pull request
Aug 22, 2026
…both present-tense claims, keep both open (#8906) * Two evidence protocols name a transport that does not exist: correct both present-tense claims, keep both open `gunbc.witness_row_cost` `placement_workstream_task_20_open_unknown_note` and `gunbc.ci_spec` `gunbc_ci_compile_clean_clamp_note` each tell a reader to retrieve a receipt from the `floor-receipts` artifact, citing `gunbc.ci_workflow ci_floor_receipts_upload_step`. No live workflow carries that step -- it died with `ci.yml` in the floor cut. `witnesses.yml` uploads nothing. WHAT MAKES THIS WORSE THAN AN ORDINARY STALE LINE: both notes had already CORRECTED THEMSELVES away from log scraping toward the artifact, and each says so emphatically -- the row-cost note records that its drift tag "now has zero emit sites and the row bodies are no longer mirrored to stderr on any cadence", and the compile-clean note that "the log lines are GONE, not merely deprecated: a seeding attempt that greps a run log for them will find nothing". So each note closes the only alternative route it names, and the route it endorsed instead was then deleted underneath it. A reader following either one finds nothing and has no reason to suspect the transport rather than their own procedure. THE PRODUCERS ARE ALSO UNREACHABLE ON THE NAMED INVOCATION, so this is not a transport-only gap and correcting only the upload sentence would have left a second false premise standing. Measured against certified main run 32553487573 (967b5bc), not inferred: required CI produces NONE of the three receipts and the run log carries zero markers for any of them. The row-cost and drift writers sit inside `run_walk`, below the `required_floor_mode` early return. `install_floor_compile_clean_receipt`'s `claim_executor` caller sits below that same return, and the one path that could reach it under required CI -- the `consume_floor_compile_clean_gate_verdict` builtin via `tools.dag_compile_clean_transport` -- is reached only by compile-clean witnesses that are themselves route-gapped and never arrive at their subject. Both notes keep their STATUS and DISSOLVE-ON unchanged in substance. TASK #20 stays `OpenUnknown`: this records that its reproduction protocol has no operative leg, which is a declared evidence-route refusal, not a resolution -- the precise thing its own "never silently closed again" clause exists to forbid. The compile-clean note keeps its `BasisAbsent` requirement, which is what already forbids inferring a basis from the aggregate log or fabricating one from an absent receipt. Comment-only; no declaration touched and no behavior changed. Historical rationale for retiring the log route is preserved in both, since that reasoning is still correct and is what makes the current gap legible. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD * Transport is partial, not absent: #8875 landed an upload while this correction was in review My own correction went stale inside a day, which is the failure mode it exists to name, so it is fixed here rather than merged as written. gunbc#8875 (2026-08-22) added an upload step to `witnesses.yml`. A `required-floor-receipts` artifact DOES leave the runner today, carrying `required_floor_disposition.tsv`, `expected_red_roster_join.tsv`, and `long_home_storage_agreement.tsv`. My prose said "No live workflow carries that step" full stop, and the PR body said "witnesses.yml uploads nothing" -- the second is now flatly false, and the first is true only of the specific deleted `ci_floor_receipts_upload_step` while reading as a claim about all transport. WHY THE COARSER CLAIM WAS WRONG EVEN BEFORE #8875 MADE IT FALSE: it answered "does any upload exist" when the fact that matters is "is THIS receipt retrievable". Those come apart exactly when someone restores transport for a different population, which is what happened. A reader on current main sees an `upload-artifact` step in `witnesses.yml` and a note saying no workflow uploads anything, and cannot tell whether the note is stale or the artifact is something else. So the claim is now made at the population grain: transport exists and carries the DISPOSITION receipts; none of the cost receipts these two notes name is among them. The gap is no longer "no transport" but "the transport that exists carries a different population" -- and a reader must not infer from a green run's artifact that these receipts are in it. The producer half is unchanged and unaffected: required CI still reaches none of the three cost producers, so even complete transport would not restore either protocol. Comment-only, as before. No declaration touched, no behavior changed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PgpEN2jnUGsLhM5vRKH6fD --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
The three identity-grain receipts the witness floor already computes on every run —
required_floor_disposition.tsv,expected_red_roster_join.tsv,long_home_storage_agreement.tsv— were written to the runner's working directory and then discarded with the runner. This uploads them.Why
A PR was blocked by sixteen failures in witness families its diff could not reach; the summary counters said fifteen identities had moved between dispositions, and the incident could not be closed because the rows naming which fifteen no longer existed anywhere. Two independent recomputations from the trees then disagreed with the floor's own counts at both ends — so the only instrument that could settle it is the one the job was deleting. A receipt computed and dropped is worse than one never computed, because the summary it backs keeps being quoted as though the detail were available.
long_home_storage_agreement.tsvis in the set deliberately: it records a file whose PATH and whose declared MODULE disagree about long-home, which is the first hypothesis any recurrence has to eliminate.Verified, not assumed
cli_run.rsreads all three env vars and callswrite_required_floor_disposition_tsv/write_expected_red_roster_join_tsv/write_long_home_storage_agreement_tsvat the end of the run. All three vars are already in the committed job env, so all three files exist on every run today.upload_artifact_actionis single-bound — one declaration indag/extdeps/github/actions.dag. The v2/v4 double binding thattool_pin_witness_test.dagrecords was deleted; every other reference is a consumer.dag/tools/generated_artifact_gate.dagmain_wetin one remote dispatch (amd64 build + run together).witnesses.ymlwas the only path the regen modified, so no unrelated drift rode in.Two deliberate choices
if: "!cancelled()"rather thansuccess(): the run this evidence is for is the failing one, so a step that only fires after a green floor would capture exactly the runs nobody needs it for. Cancellation is excluded because a cancelled run's TSVs are partial by construction, and a partial receipt read as a complete one is the fabricated-output failure.if-no-files-found: warn: the upload must never turn a green run red. A missing receipt is a gap to notice, not a reason to fail the floor.Scope
This uploads receipts. It changes nothing about what the floor plans, routes, or refuses, and it does not close the open
declined_long558→543 question — it is the instrument that makes the next instance of that question closable.