Skip to content

fix(v1.7.2): close JACKAL checker request contracts + package inventory tuple - #9

Merged
AnubisQuantumCipher merged 2 commits into
masterfrom
fix/range-checker-ordering
Aug 18, 2026
Merged

fix(v1.7.2): close JACKAL checker request contracts + package inventory tuple#9
AnubisQuantumCipher merged 2 commits into
masterfrom
fix/range-checker-ordering

Conversation

@AnubisQuantumCipher

Copy link
Copy Markdown
Owner

Discharges the eight Gate-0 semantic-premise blockers documented in
docs/superpowers/plans/2026-08-17-jackal-gate0-checker-contract.md.
Ships a coherent v1.7.2 Apple-Silicon macOS package with the archival
inventory tuple explicitly pinned across code, docs, and gates.

Summary of load-bearing changes

  • Blocker Areceipt-context-unsupported added to REASON_CLASSES in
    tools/claim_bundle_verify.py. Before: Refusal("receipt-context-unsupported", …)
    hit the assert cls in REASON_CLASSES, so normal Python silently downgraded to
    verifier-internal while -O accepted the raw class — a two-Python taxonomy
    divergence. tests/claim_receipt_context_unsupported_v172_test.py locks the
    invariant with unit + CLI cases for v1.7.0 int_cert, arbitrary int/range epochs,
    unknown/non-string variants, under both plain Python and -O, plus a cross-context
    substitution control (9/9 PASS).
  • Blocker Btests/fail_closed_sweep.py migrated to coherent v1.7.2 tuple
    (current checker + current inventory + range_proof_identity_v172.json + epoch
    v1.7.2). 21/21 rows refuse cleanly; no formal-* leak.
  • Blocker Ctests/seal_audit_receipts_v150.py migrated to genuine archival
    tuple (archival checker 05c3518…de8a, archival inventory 18ff7b1d…ba6,
    archival proof identity, epoch v1.5.0). 5/5 archival probes PASS.
  • Blocker DNON-CLAIMS.txt states archival replay needs both historical
    checker AND historical coverage inventory; PROVENANCE-RECEIPT.txt records the
    archival inventory path/digest; release/claim/SPEC.md §10 enumerates all four
    context tuples' CLI arguments; release/compat/v172_floor.json and the
    code-authoritative formal_receipt.proof_compatibility_policy_document() gain
    inventory_file / inventory_file_sha256 on every archival_v1 entry.
  • Blocker Erun_gates_v172.py preflight now require_digests the installed
    v1.7.0 coverage inventory (not only the checker); the fresh extract gate directly
    pins the packaged archival checker AND archival inventory bytes and refuses a
    current/archive inventory collision. New contract assertions in
    tests/release_wiring_v172_contract_test.py and tests/package_contract_v172_test.py.
  • Blocker F — final publication check adds ! -L to ! -e on $FINAL_PKG
    and $FINAL_TARBALL so a dangling symlink race cannot smuggle a target through mv.
    Regression tests: test_final_publication_refuses_dangling_symlink +
    test_final_publication_dangling_symlink_regression.
  • Blocker Gtests/plugin_context_matrix_v172_test.py runs the plugin CLI
    end-to-end for the closed context matrix — current range receipt accepted,
    current int-cert accepted, archival v1.5.0 receipt accepted via
    jackal_verify_receipt, cross-context epoch swap refused, v1.7.0 int_cert refused
    with stable proof-compatibility, jackal_verify_bundle actually invoked with
    report transcript, plus stable refusal when the JACKAL_V170_RUNTIME env points at
    an empty tree. 9/9 PASS.
  • Blocker Hrepin_v172.py --write on frozen bytes; rebuilt package. Two
    superseded pre-fix package snapshots preserved under release/dist/.superseded-*
    and release/dist/.prebuild-preserve-*, not deleted.

Evidence — full aggregate driver green

python3.11 release/tools/run_gates_v172.pyGATES: PASS (68 gates) (about 44
minutes wall). Every gate: preflight, lake-build, proof-identity contracts
(range/int-cert/gaussian), current + optimized suites, Lean int-premise contract,
engine self-test (104/104), positive corpus, negative controls, aba-mutations,
mutations-11 (11/11), formal-status-gate, seven rational-variant releases,
rational-receipt output (current + -O), gaussian emitter/checker/mutations/receipt,
receipt-semantic-mutations (42/42), plugin-smoke, output-path-safety, fail-closed-sweep
(21/21), seal-audit (83/83), seal-audit-receipts (5/5), exact-verify (34 + 91),
branch-discontinuity (19/19), evidence-verify (GAUSSIAN_EVIDENCE_PASS), compat-floor,
evidence-determinism, claim-router-output (current + -O), claim-hostile (108/108),
claim-dogfood (18/18), claim-aba (7 layers), int-cert matrix (31/31) / aba /
differential (5/5) / release, package-contract, package-build,
package-fresh-extract-parity, archival-range-replay, archival-int-cert-revocation, and
manifest-v172-final.

python3 release/tools/repin_v172.py --checkREPIN_V172_CHECK_PASS rows=40
before and after the build.

Final v1.7.2 package

Apple-Silicon macOS only, 79 files:

  • tarball_sha256 = 6b5f09eb82aa4257dda3e4dca09eed1b6f8b8834b19a4d852e50dd8250f04518
  • SHA256SUMS root = 328121533382ed9b9d3e58315bb90e867ea4c24e0520b18c3268f7f8e27b9300
  • MANIFEST.sha256 = b8927e72606ca103f1b5eb39b2da2a0a7306047d8365b55001bb15fdb252c149

Non-claims (unchanged)

  • Apple-Silicon macOS only; unsigned, not notarized.
  • No universal correctness, source-to-native refinement, input-truth,
    operating-system, or authenticated-builder claim.
  • Archived v1 range identity replay requires the exact historical checker AND
    historical coverage inventory bytes; reversed intervals refuse.
  • Archived v1 composed-integral identity is historical revocation evidence only;
    request-unbound checker is not shipped or admitted; every v1.7.0 int-certificate
    receipt refuses formal replay.

Reproduce

git checkout fix/range-checker-ordering
python3 release/tools/repin_v172.py --check
python3.11 release/tools/run_gates_v172.py

Base: 7a834efbd6fff816a781a7bc3ac4d255f103574d (feat: add fail-closed JACKAL Codex plugin (#8)).

…ry tuple

Discharge the eight Gate-0 semantic-premise blockers documented in
docs/superpowers/plans/2026-08-17-jackal-gate0-checker-contract.md,
regenerate all v1.7.2 evidence on frozen bytes, and rebuild the
Apple-Silicon macOS package with the coherent archival tuple.

Semantic fixes:

* Blocker A: add `receipt-context-unsupported` to REASON_CLASSES so all
  four raise sites (`variant`/`epoch` selection, non-string variant)
  print a stable reason under regular Python; previously the assert in
  `Refusal.__init__` fired and silently downgraded to `verifier-internal`
  under normal Python while `-O` accepted the raw class — a two-Python
  divergence in the stable refusal taxonomy.  New guard:
  `tests/claim_receipt_context_unsupported_v172_test.py` locks the
  invariant with unit + CLI cases for v1.7.0 int_cert, arbitrary int/range
  epochs, unknown/non-string variants under both normal Python and `-O`,
  plus a cross-context substitution control (9/9 PASS).
* Blocker B: migrate `tests/fail_closed_sweep.py` to the coherent v1.7.2
  tuple (current checker + current inventory + `range_proof_identity_v172.
  json` + epoch v1.7.2). 21/21 rows refuse cleanly; no `formal-*` leak.
* Blocker C: migrate `tests/seal_audit_receipts_v150.py` to the genuine
  archival tuple (archival checker `05c3518…de8a`, archival inventory
  `18ff7b1d…ba6`, archival proof identity, epoch v1.5.0).  5/5 archival
  probes PASS with correct refusal classes.
* Blocker D: `NON-CLAIMS.txt` states archival replay requires both the
  historical checker AND the historical coverage inventory;
  `PROVENANCE-RECEIPT.txt` records the archival inventory path/digest;
  `release/claim/SPEC.md` §10 enumerates the four context tuples’ CLI
  arguments; `release/compat/v172_floor.json` and the code-authoritative
  `formal_receipt.proof_compatibility_policy_document()` add
  `inventory_file`/`inventory_file_sha256` to every `archival_v1` entry
  and the file matches the code exactly (`test_code_authority_matches_
  committed_compatibility_record` PASS).
* Blocker E: `run_gates_v172.py` preflight now `require_digest`s the
  installed v1.7.0 coverage inventory (not only the checker); the fresh
  extract gate directly pins the packaged archival checker AND archival
  inventory bytes and refuses a current/archive inventory collision.
  New contract assertions in `tests/release_wiring_v172_contract_test.py`
  and `tests/package_contract_v172_test.py` lock both requirements.
* Blocker F: final publication check adds `! -L` to `! -e` on
  `$FINAL_PKG` and `$FINAL_TARBALL` so a dangling symlink race cannot
  smuggle a target through `mv`.  `test_final_publication_refuses_
  dangling_symlink` + `test_final_publication_dangling_symlink_
  regression` guard both.
* Blocker G: `tests/plugin_context_matrix_v172_test.py` runs the plugin
  CLI end-to-end for the closed context matrix — current range receipt
  accepted, current int-cert accepted, archival v1.5.0 receipt accepted
  via `jackal_verify_receipt`, cross-context epoch swap refused, v1.7.0
  int_cert refused with stable `proof-compatibility`, `jackal_verify_
  bundle` actually invoked with report transcript, plus a stable refusal
  when the JACKAL_V170_RUNTIME env points at an empty tree. 9/9 PASS.
* Blocker H: `repin_v172.py --write` on frozen bytes; rebuild package.
  Superseded pre-fix packages preserved under `release/dist/.superseded-
  v172-*` and `release/dist/.prebuild-preserve-*`, not deleted.

Evidence — full aggregate driver green:

* `python3.11 release/tools/run_gates_v172.py` → `GATES: PASS (68 gates)`
  (44 min wall).  Every gate — preflight, lake-build, proof-identity
  contracts (range/int-cert/gaussian), current + optimized suites,
  Lean int-premise contract, engine self-test (104/104), positive
  corpus, negative controls, aba-mutations, mutations-11 (11/11),
  formal-status-gate, seven rational-variant releases, rational-receipt
  output (current + `-O`), gaussian emitter/checker/mutations/receipt,
  receipt-semantic-mutations (42/42), plugin-smoke, output-path-safety,
  fail-closed-sweep (21/21), seal-audit (83/83), seal-audit-receipts
  (5/5), exact-verify (34+91), branch-discontinuity (19/19),
  evidence-verify (GAUSSIAN_EVIDENCE_PASS), compat-floor, evidence-
  determinism, claim-router-output (current + `-O`), claim-hostile
  (108/108), claim-dogfood (18/18), claim-aba (7 layers), int-cert
  matrix (31/31) / aba / differential (5/5) / release, package-contract,
  package-build, package-fresh-extract-parity, archival-range-replay,
  archival-int-cert-revocation, and manifest-v172-final.
* `python3 release/tools/repin_v172.py --check` → `REPIN_V172_CHECK_PASS
  rows=40` before and after the build.

Final v1.7.2 package (frozen, 79 files, Apple-Silicon macOS only):

* tarball_sha256 = 6b5f09eb82aa4257dda3e4dca09eed1b6f8b8834b19a4d852e50dd8250f04518
* SHA256SUMS root = 328121533382ed9b9d3e58315bb90e867ea4c24e0520b18c3268f7f8e27b9300
* MANIFEST.sha256 = b8927e72606ca103f1b5eb39b2da2a0a7306047d8365b55001bb15fdb252c149

Load-bearing pinned identities preserved:

* Anubis compiler         a733565f237df171e7cf93b9b37700a42d8713576818fd92f8cd23a8ad7a69e2
* jackal-native evaluator 20b80827d3c5c2a5d0d5d6f5a84c692f230fb0f55b9c7d1fcad02a1d0b3a1083
* current range checker   f7a82524d082b51a8d66f9bed653b9c8da51b5424386659c9048b9c0ae276545
* current int checker     f8347cbd18d520852aff56920d41f5e5b496ff192f584e41d84d1a818ff29617
* archival range checker  05c3518b836f239712f897c483a2ddadad9f544e0887b1b7bb1424a27289de8a
* archival range inventory 18ff7b1d428dbc6f807fd4de27751ba415b33ef0b356088d7fa316ed74bb0ba6
* revoked v1.7.0 int checker c858e3bfc0ff2809a808170caabbf090077cb54996e76f065dbcd26ffb067d49 (deliberately absent from package)

Non-claims (unchanged):

* Apple-Silicon macOS only; unsigned, not notarized.
* No universal correctness, source-to-native refinement, input-truth,
  operating-system, or authenticated-builder claim.
* Archived v1 range identity replay requires the exact historical
  checker AND historical coverage inventory bytes; reversed intervals
  refuse.
* Archived v1 composed-integral identity is historical revocation
  evidence only; its request-unbound checker is not shipped or
  admitted; every v1.7.0 int-certificate receipt refuses formal replay.

Base: 7a834ef (feat: add fail-closed
JACKAL Codex plugin (#8)).
@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Important

Review available on request

  • 🔍 Trigger review

Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment @coderabbitai review to review the latest changes. For a full review, comment @coderabbitai full review.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1572688d-3eae-4ac9-8f8c-dd4f50930ae9


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

….py, refresh CI claim fixture, loosen mac timing assertion

Three narrow CI-only fixes on top of the v1.7.2 Gate-0 commit; each was
observed on the initial hosted run of PR #9 and is verified locally.

* `.github/workflows/gaussian-proof-gate.yml` — call
  `release/tools/range_proof_identity.py` for the `range` and
  `int-cert` lanes.  The Gate-0 slice introduced this lane-specific
  generator (documented in its own docstring: "The stable proof-identity
  engine remains in gaussian_proof_identity.py so archival v1 identity
  bytes and their generator remain untouched. This lane-specific
  entrypoint supplies only the new v2 lane contracts and records itself
  as the generator."), and the committed
  `range_proof_identity_v172.json` records that generator.  Reproduces
  locally as `FAIL proof identity drift: $.source_closure.aggregate_sha256`
  under the old command; both lanes PASS with the correct tool.
* `release/evidence/ci_claim_fixture_v160/bundle.json` +
  `pins.json` — regenerated against the current inference registry
  (`e7134ec3…082`); the Gate-0 registry added `formal.integral` as a
  new admissible fn.  The exact-lane bundle contents are byte-preserved
  apart from `registries.inference_registry_sha256` and the recomputed
  `bundle_digest_sha256=6467fcd3…35bd` /
  `bundle_sha256=b8eb6893…5f68`.  Local
  `python3 -I -S -B release/tools/ci_claim_admission.py` →
  `CI_CLAIM_ADMISSION_PASS checks=3`
  (fixture-bundle-hash, positive-replay, tamper-refusal all PASS with
  the intended semantic reason `node-id-mismatch`).
* `tests/codex_plugin/test_runtime_provisioner.py` —
  `test_stream_download_interrupts_one_blocking_read_at_total_deadline`
  loosens the elapsed-time upper bound from 0.15s to 0.5s.  Hosted mac
  arm64 runners observed 0.17s of scheduling jitter on top of the 0.05s
  deadline (`AssertionError: 0.17095866700014994 not less than 0.15`).
  The test's intent — the interrupt fires within a small multiple of
  the total timeout, not a broken-deadline multi-second wait — is
  preserved; a genuinely broken deadline would elapse many seconds.

Repin re-check: `REPIN_V172_CHECK_PASS rows=40`.  Package/frozen
identities from the previous commit remain unchanged.
@AnubisQuantumCipher
AnubisQuantumCipher merged commit 54461bb into master Aug 18, 2026
7 checks passed
AnubisQuantumCipher pushed a commit that referenced this pull request Aug 18, 2026
Records the honest state of the program after this session:

* Gate-0 v1.7.2: SHIPPED (PR #9 merged into master 54461bb, tag v1.7.2
  at that merge SHA, four-asset release published and byte-cmp
  read-back verified).
* Navier v1.8.0: PARTIAL — isolated snapshot + Gate-0 merge pushed to
  feat/navier-stokes-v180 (af8d507); ship blocked on Anubis 30s
  timeout in the mutation sweep, Lean rebuild in this worktree, and
  Navier-identity regeneration.
* W2-W11: OPEN with concrete next actions.

No unauthorized external comms sent; no new public repository created;
no financial or legal filing executed.
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