refactor(ceremony): the token request commits nothing, as a rule - #45
Open
SupremaLex wants to merge 1 commit into
Open
SupremaLex wants to merge 1 commit into
SupremaLex wants to merge 1 commit into
Conversation
`_tokenBody` requires one revealed run and no commitment, in the base verifier, for every profile. The virtual `_tokenSentCommitments` and its two overrides go, together with the profile field that fed them: `secretField` leaves profiles.json, and the generator stops emitting `*_TOKEN_SENT_COMMITMENTS`, `secret_field` and `secretField` in Solidity, Rust and TypeScript. The body's length now comes from the revealed run, which is the whole request. Every launch profile answered zero, so no verifier accepts anything it did not accept before, and none refuses anything it accepted. The count moves from a per-profile answer to a fixed rule because both profiles state one shape and the specification has no committed body field left to order. `TokenSession` in the published libid-profiles crate loses `secret_field`. That ships in the same release as the whole-range reveal, so libid-rs takes both in one bump. Assisted-by: Claude Fable 5.1 Signed-off-by: SupremaLex <georglutsenko@gmail.com>
This was referenced Sep 17, 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.
Stacked on #44. Merge after it and before
release/v0.13.0, so one crate release carries both changes and libid-rs takes them in one bump.What
_tokenBodyrequires one revealed run and no commitment, in the base verifier, for every profile. The virtual_tokenSentCommitmentsand its two overrides go, together with the field that fed them:secretFieldleavesprofiles.json, and the generator stops emitting*_TOKEN_SENT_COMMITMENTS,secret_fieldandsecretFieldin Solidity, Rust and TypeScript. The body's length comes from the revealed run, which is the whole request.Why it changes no acceptance
Every launch profile answered zero after #44 — one consumer (
_tokenBody), two overrides returning a generated0. Hard-coding the rule accepts nothing new and refuses nothing that verified before;test_rejectsAnExchangeThatCommitsABodySuffixnow pins the fixed rule rather than the generated constant. The specification is going the same way: libid-org/libID#35 removes REQ-COMMON-22, the rule that gave a committed body field its ordering, so there is no concept left for the hook to configure.Crate shape
TokenSessionin the publishedlibid-profilescrate losessecret_field. In libid-rs that makesLayout::token_requesttake only the request bytes and become infallible —token_request(sent) -> Layout— with theLayoutError::MissingCredentialvariant and the committing-path tests gone. Those edits are written and held for libid-org/libID-rs#25, which takes them together with the0.13pin.Verification
forge test483/483;forge fmt --check,forge lint -D notes,regen-ceremony-profiles.py --check;rust/: 29 tests,fmt --check,clippy -D warnings;ts/: build, 24 tests, lint, fmt — all clean.secretField,secret_field,SENT_COMMITMENTSand_tokenSentCommitmentsacross Solidity, Rust, TypeScript, JSON and the generator finds nothing.rust/profilesas a path dependency: workspace tests and clippy clean, andceremony_fixturesregenerates byte-identicalgithub-ceremony-session.jsonandx-ceremony-session.jsonto the ones feat(ceremony)!: github reveals its token request whole #44 carries — the layout the signature change produces is the layout already verified.