v21.0.0: adopt CIRISPersist v42.0.0 + CIRISVerify v15.0.0 - #577
Merged
Conversation
A MAJOR because it amends a held contract: CIRISServer is on v20.3.0
(CIRISServer#545 closed), and this cut moves the wheel floor to
ciris-persist>=42,<43 and re-pins the whole CIRISVerify graph to v15. A
consumer holding persist 41 or verify 14 in the same process cannot take it
without moving too. Nothing in edge's public API changed shape.
## persist v42.0.0 — three refusals of previously-valid input, each read
## against edge's code rather than assumed
#811 — an agent member whose only incoming edge is a plain (unmarked)
conferral is no longer steward-bound; its community is refused at the write
gate. NOT EXPOSED in production: edge's only authored community is the pair
chat room, which rosters the two OWNERS (users, as founder), never agents; and
persist exempts node members outright. Edge calls none of is_steward_bound /
steward_bindings_of / live_delegation_granters, so the predicate/fold drift
never ran here. The residual was test fixtures rostering an agent under a
plain delegates_to — the full suite ran against v42 and none reddened.
#814 part 3 — config:admission / config:transport above self refused. NOT
EXPOSED: edge names no config:* dimension anywhere.
#815 — dimensions case-sensitive, per segment. NOT EXPOSED: every edge
dimension is lowercase. Confirmed by execution: chat_message_federates and
chat_two_person_community drive real admission of every chat: row against
v42 and pass.
All four persist ABI constants unchanged; the floor moves for the major.
## verify v15.0.0 — the break is #[non_exhaustive], and it is the one edge
## asked for (CIRISVerify#274)
The code diff is additive: FedCode::new + with_* builders, OwnedNode::new,
and AdmittedHybridKey::admit(&code, pulled) — the ONLY constructor of a hybrid
registration input, fail-closed when the code carries no commitment, so an
unchecked input cannot exist to be passed anywhere. The MAJOR is that FedCode
AND OwnedNode are now #[non_exhaustive]. Edge had thirteen FedCode literals
(contact.rs x9, role_matrix_gauntlet.rs x2, tests/chat_harness_dx.rs x2) plus
one OwnedNode; all use the constructors now. CodeAdmission's doc points hosts
at AdmittedHybridKey::admit instead of the free function they merely had to
remember to call.
Worth recording for the next such bump: `cargo check --lib` caught NONE of the
fourteen — every literal was in test code, and --lib does not compile
#[cfg(test)]. The compile gate after a dependency bump is --all-targets.
All three verify crates move to v15.0.0 in lockstep, matching persist v42's
own pin. cargo tree -i: one copy each.
## Verification
The persist tag was verified from the remote to deref to the exact tree this
was staged, built and tested against (refs/tags/v42.0.0^{} -> 13aa634) before
the pin flipped from rev to tag. clippy -D warnings clean on pyo3-full
--all-targets; 1461 lib + 1867 integration tests (67 binaries), every cargo
exit captured; evidence TSV regenerated for 21.0.0.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NGkrcZ7Fgor8taio1YXVxB
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
A MAJOR, because it amends a held contract — CIRISServer is on v20.3.0 (#545 closed) — by moving the wheel floor to
ciris-persist>=42,<43and re-pinning the whole CIRISVerify graph to v15. Nothing in edge's public API changed shape; the break is the floor and the linked substrate graph.persist v42.0.0 — three refusals, each read against edge's code
founder, never agents; node members exempt by persist's rule; edge calls none of the drifted predicate/fold functionsconfig:admission/config:transportaboveselfrefusedconfig:*dimension anywhere in edgechat_message_federates+chat_two_person_communitydrive real admission of everychat:row against v42 and passThe #811 residual was test fixtures rostering an agent under a plain
delegates_to. The full suite ran against v42 and none reddened — nothing needed fixing. All four persist ABI constants unchanged; the floor moves for the major alone.verify v15.0.0 — the break is
#[non_exhaustive], and it's the one edge asked forThe code diff is additive —
FedCode::new+with_*builders,OwnedNode::new, andAdmittedHybridKey::admit(&code, pulled), now the only constructor of a hybrid registration input (fail-closed on a code with no commitment). That's the class fix CIRISVerify#274 asked for. The MAJOR is thatFedCodeandOwnedNodeare#[non_exhaustive]: edge had thirteenFedCodeliterals plus oneOwnedNode, all moved to the constructors.CodeAdmission's doc points hosts atadmitinstead of the free function they had to remember to call.Worth knowing for the next such bump:
cargo check --libcaught none of the fourteen — all were in test code, and--libdoesn't compile#[cfg(test)]. The compile gate after a dependency bump is--all-targets. (Recorded in memory.)Verify trio moves in lockstep to v15.0.0, matching persist v42's own pin.
Verification
refs/tags/v42.0.0^{}→13aa634) before the pin flipped rev→tagcargo tree -i: one copy each of persist 42.0.0, verify-core/keyring/crypto 15.0.0, leviculum 0.25.0+ciris.1-D warningsclean on pyo3-full--all-targetsevidence_tsv_matches_emittedgreen on the final tree🤖 Generated with Claude Code
https://claude.ai/code/session_01NGkrcZ7Fgor8taio1YXVxB