Repository navigation
Bind host receipts to landscape winner ids: refuse stack-id aliases, list unbound Mac receipts - #214
Merged
seathatflowsinourveins merged 2 commits intoSep 25, 2026
Conversation
…list unbound Mac receipts A receipt recorded under a manifests/stack.json id that names the same repository as a landscape winner (alpaca-py, duckdb, edgartools, exchange-calendars, nautilus-trader) never joined its winner: the matrix and platform_status join by the winner's own component_id and bind only on the full winner pin, and record skipped the pin check for such an id. The contributing guide told recorders to use stack ids, so the Mac's receipts left every macos-arm64 entry untested. - host_receipts: one repository-normalizing alias resolver; record refuses an alias (exit 2, names the winner id and its full pin) and --from-stack-commands still reaches the alias's documented commands; validate rejects alias receipts except GRANDFATHERED_ALIAS_RECEIPTS, each pinned by claim_sha256 (canonical JSON of the receipt without its append-only reviews), so review keeps the exemption and an edited claim loses it; stale, corrupt and mis-mapped entries are errors; the explicit receipt-component-aliases.json table is cross-checked both ways. - component_matrix: alias_receipts per winner x platform, never counted; data-derived prose. receipt_staleness: grandfathered aliases are informational, other aliases are flagged stack_alias. - contributing-evidence: record under the winner component_id. Evidence files are byte-identical. The three Mac alias receipts still do not bind; re-recording them on the Mac under the winner ids is the path. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
# Conflicts: # docs/component-evidence-matrix.md # manifests/evidence.json # scripts/host_receipts.py
seathatflowsinourveins
enabled auto-merge (squash)
September 25, 2026 14:12
seathatflowsinourveins
deleted the
claude/mac-receipt-component-ids-20260924
branch
September 25, 2026 14:46
This was referenced Sep 25, 2026
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.
Problem
Receipts recorded on the Mac (
macos-m5pro-20260924) undermanifests/stack.jsonids never counted toward their landscape winners, so everymacos-arm64matrix entry stayeduntested.docs/contributing-evidence.mdstep 3 told recorders to pass a stack id.platform_status/component_matrixjoin receipts by the winner'scomponent_idand bind only on the full winner pin.recordskipped its winner-pin check for a stack id, because the alias itself has no winner pins.alpaca-py→data-alpaca-py,duckdb→data-duckdb,edgartools→data-edgartools,exchange-calendars→data-exchange-calendars,nautilus-trader→nautilustrader.Change
host_receipts.py recordrefuses a stack alias of a winner (exit 2) and names the winner id and its full pin.--from-stack-commandsstill resolves the alias's documented commands.GRANDFATHERED_ALIAS_RECEIPTS.claim_sha256: canonical JSON of the receipt without its append-onlyreviews. Soreview(as Record independent needs_changes reviews on #201's Mac application receipts #209 did on the duckdb receipt) keeps the exemption, and any edit to the recorded claim loses it.tools/sota-convergence/receipt-component-aliases.jsontable and the repository-inferred aliases are cross-checked in both directions.alias_receiptsper winner × platform. They are never counted in pass/fail,platform_status, the flip rule ore2e_state.receipt_staleness.pyreports grandfathered aliases as informational and flags any other alias asstack_alias.component_idfrom the matrix. Multi-part pins bind in full.This follows current identity practice:
aliasesand CycloneDX identity do.A purl key was judged scope creep for two internal catalogs of one repo.
Not changed / not claimed
git diff --stat origin/main -- evidence/hostsis empty).0.44.0,1.5.5,2.0.0rc5) are not the full winner pins. The nautilus receipt islocal_integration, so it could reachconditionalat most.platform_statuschanges. The verdict-review-gate reports 0 changed rows.Verification (Linux/WSL2; nothing ran on macOS)
validate.ymlthat can run locally passed:validate.pyhost_receipts.py validate(16 receipts)validate_catalogs,validate_foundation,landscape.pybuild_verdicts --check,component_matrix --check,new_host_grand_list --checkverdict_flip_candidates,gap_crosswalk build --check,build_ecosystem --checkevidence_manifest --checkverdict_review_gate --base origin/main(0 changed rows)receipt_staleness,release_due,audit_reports --check,validate_convergencepython -m unittest: Ran 4450, OK (skipped=430). The base ran the same skips; they are runtime-gated.review; an altered claim loses it; a lone surrogate gives a mismatch, not a crash), stale and corrupt entries, the non-counting matrix listing, and staleness info versus flag.Follow-up on the Mac (to make the receipts count)
Re-record under the winner ids from a checkout that contains this change.
tool_versionsthen defaults to the full winner pin:python3 scripts/host_receipts.py record --host-id macos-m5pro-20260924 --platform-id macos-arm64 \ --component-id data-alpaca-py --stage use --evidence-class native_proven --second-physical-machine \ --cmd "<the functional command the original receipt ran>"Do the same for
data-duckdbandnautilustrader(the latter islocal_integration). Then add an independentreviewfrom a different identity;acceptedneeds a reviewednative_provenuse-stage pass.🤖 Generated with Claude Code