Pin the frozen semantic corpus by its blob id, not a rewritten-away commit - #31
Closed
Parad0x-Labs wants to merge 1 commit into
Closed
Parad0x-Labs wants to merge 1 commit into
Parad0x-Labs wants to merge 1 commit into
Conversation
…ommit The differential driver froze its turn universe as git show c23257da...:ops/semantic_phase0_frozen_corpus.json -- a commit that no longer exists in the public tree (history rewritten at migration, public root 78f818b). Every public clone exited 128 and the loader correctly refused, failing the three eligibility cases in CI since the root. The corpus is now addressed by its content-addressed BLOB id: the loader still reads the trusted repository's object database, never the candidate worktree, a tampered corpus committed anywhere mints a different blob id that the pin refuses, and the pinned sha256 digest and count checks are unchanged. 3 CI failures (35570948370) -> 30 passed; the package's remaining 4 failures are the pre-existing replay/shadow/nonconsuming baseline clusters.
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 failed
tests/semantic_phase0/test_semantic_differential_eligibility.py— 3 cases red in the mainCI census (run 35570948370) and every PR run since; deterministic locally since the public
root:
test_the_corpus_is_a_pinned_artifact_the_candidate_does_not_computetest_loader_refuses_a_trusted_object_that_disagrees_with_the_digest_pintest_candidate_files_and_import_shadows_have_zero_corpus_authorityRoot error:
git show c23257da…:ops/semantic_phase0_frozen_corpus.jsonexits 128 —CorpusIntegrityError: the immutable frozen corpus object is unavailable.Root cause
Same genus as the legacy-migration fixture (PR #21): the differential driver froze its turn
universe at a specific commit (
c23257da…), a commit that no longer exists in the publictree — the repository's history was rewritten at migration (public root
78f818b). Theloader correctly refuses closed, so the whole eligibility proof has been unavailable on
every public clone.
Repair — same content-addressed guarantee, rewrite-proof anchor
The corpus is now pinned by its blob object id
(
c606c81b7b7b95abea94731c361037473df109a6) instead of<commit>:<path>:worktree, never a worktree path, symlink, or import helper;
(the original sabotage property is preserved);
history rewrites that a commit-scoped pin cannot;
The eligibility test's constant pin and its
git showread are updated to the same blob-idsemantics (the test's sabotage assertions — AST scan for candidate replay_texts calls,
digest tampering, worktree/symlink/shadow attacks — are unchanged and still pass).
Validation
test_nonconsuming_policy_preview+ the repaired file in one process:35 passed (the one failure is that file's own pre-existing CI-baseline case).
tests/semantic_phase0/package: 630 passed, 4 failed = exactly the pre-existingreplay-equivalence (2) / shadow-equivalence (1) / nonconsuming-preview (1) CI-baseline
clusters — none in this PR's scope.
ruff check .clean (pinned 0.16.7).Base: main
8153a96. Two files changed:scripts/semantic_phase0_base_differential.py(pin + loader read),
tests/semantic_phase0/test_semantic_differential_eligibility.py(constant + read, assertions unchanged).