Repository navigation
P6 milestone 3: adjudication, trusted promotion, receipts, leases — 386/386 golden checks - #33
Merged
Merged
Conversation
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
…eases The fold grows the four remaining verification-critical paths, each ported from weave.py semantics and pinned by reference-generated vectors: ATTEST adjudication-collapse for MV/adjudicated cells (ungated in the reference, mirrored honestly); trusted tiered promotion with seq-anchored genesis authority (the anti-grinding fix — a ground smaller-id second parentless event cannot hijack root); EffectReceipt projections with UNKNOWN reconciliation; and LEASE1 lease-expiry derivation (frontier lamport + invoke tally; lapsed lease fails closed and cascades from cascade roots only — fixing an over-closure in the milestone-2 cascade). rust/vectors/extended_vectors_v3.json (generated FROM the Python reference, byte-stable) pins 23 events across all four features. decima-verify now checks three vector files: 386/386 (107 + 109 + 170). cargo test 25/25 incl. 7 adversarial tests (forged promoter ignored, self-grant refused, lease cascade, grinding resistance). fmt/clippy -D warnings/ruff all clean pre-push. Remaining unported, documented in rust/README.md: or-set/counter/ append-log/sequence/map reducers, kernel delegation/authorization, rotation chains, ingest/sync, snapshots, time-travel.
Judge-M
added a commit
that referenced
this pull request
Aug 25, 2026
…pts, leases P6 milestone 3: adjudication, trusted promotion, receipts, leases — 386/386 golden checks
Judge-M
added a commit
that referenced
this pull request
Aug 25, 2026
…pts, leases P6 milestone 3: adjudication, trusted promotion, receipts, leases — 386/386 golden checks
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 landed
Milestone 3 of the Rust port grows the Weave fold by the four remaining verification-critical paths, each ported from
weave.pysemantics and pinned byte-for-byte by reference-generated vectors:predicate: "adjudicates"collapses preserved MV/adjudicated heads; SELECT supersedes the named non-winner evidence (logical, not erasure — losers stay in provenance), and the resolution binds only named evidence so an unobserved concurrent head re-opens the conflict (§4.3).sandbox_only, resolved head kept in sync) ONLY when its author holds a live, root-authoredpromotercell for the candidate's declared tier. The root is anchored on the parentless event with the smallestseq— never on the grindable content-addressed event id. Forged/self-granted/retracted promoter cells are ignored; fail closed.receipts_for_idempotency(canonical fold order) andcanonical_for_idempotency— the latest DEFINITE receipt supersedes an earlier UNKNOWN for the same logical op; all-UNKNOWN folds to None.frontier_lamport(max folded lamport — logical time, never wall-clock) plus the per-capability invoke tally feedcapability::lease_status; a lapsed lease (expires_atreached ormax_usesspent) fails closed exactly like a revoked grant and becomes a DERIVED_AUTHORITY cascade root in the same pure, idempotent derived pass.Cascade over-closure fix
The milestone-2 cascade closed any cell descending from any retracted cell. Milestone 3 scopes descent-closure to cascade roots only (explicit
cascade, TERMINATE→LEASE_TREE, non-SUPERSEDE capability RETRACT→DERIVED_AUTHORITY, and derived lease-expiry roots). A plain WITHDRAW/REDACT tombstone no longer cascades. Lease-expired flags are purely derived — cleared and recomputed per pass, so re-folds and repeatedcascade_retractions()calls are idempotent (pinned by adversarial test).Semantics surprises (mirrored honestly from the reference)
attenuatetakesmin(new, inherited)for shrink-only caveats (budget,expires_at,max_uses), so an attenuated child of a leased cap is itself a lease root when the frontier passes — the subwallet lapses on its own inheritedexpires_at, while the budget-only view child (no lease caveat) fails closed purely by the cascade.attacker_genesis_folds_first: true) — under an id-order anchor it would hijack the root; the seq anchor holds, and the attacker's self-declared "financial" promoter is ignored.Verification evidence
rust/vectors/extended_vectors_v3.json— generated FROM the Python reference (vectors/generate.py, all-zero seed, no wall-clock, pinned nonces; byte-stable), pinning 23 events across all four features.decima-verifynow checks all three vector files: 386/386 (107 v1 + 109 extended + 170 v3).cargo test: 25/25, including 7 new adversarial tests (decima-core/tests/adversarial.rs): forged promoter ignored, self-grant refused, retracted anchor inert, grinding resistance, no-genesis fail-closed, adjudication per §4 (incl. §4.3 unnamed-head reopen), lease lapse + cascade + idempotency, UNKNOWN→definite reconciliation.cargo fmt --check,cargo clippy -- -D warnings,ruff check vectors/generate.py— all clean pre-push.Deferred (documented in rust/README.md)
or-set / counter / append-log / sequence / map reducers; kernel delegation/authorization; key-rotation succession chains; ingest/sync; snapshots; time-travel windows.
Run