test: make the sign suite and v118 pre-activation probe witness what they claim#1790
Merged
Conversation
…they claim Two vacuous-pass fixes from the 1.2.0 release review: - Sign integration tests destructured and discarded the sign output (RespondDWalletSign(_sign_output)); SignOutput.rejected is a legitimate response variant, so a network rejecting every signature kept the suite green. Assert !rejected + non-empty signature bytes at all sign sites and !rejected at the partial-signature verification. - v118_upgrade's pre-activation-window probe exists to witness the pre-pool global-presign fallback AT protocol v3, but nothing pinned the version; an early capability vote silently degraded it into an ordinary v4 pool test. Add expect_protocol_version_at_most(n) to the scenario harness and bracket the probe with it (the trailing ceiling is load-bearing: the version can flip mid-workload). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Author
|
T3 proof: v118_upgrade run 28577740468 green on this branch, and the log shows both ceiling assertions executed around the pre-activation probe: The probe provably ran at protocol v3, and the trailing ceiling confirms the version did not flip mid-workload — the property the scenario's comment always claimed is now enforced, not assumed. 🤖 Generated with Claude Code |
omersadika
added a commit
that referenced
this pull request
Jul 9, 2026
…they claim (#1790) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.
Two vacuous-pass fixes from the 1.2.0 release review (findings T2 and T3 in the review report) — both gate whether green runs of the release-validation suites actually witness the properties they exist for. Land before the pre-merge validation matrix runs.
Sign tests now assert the signature, not just the flow
The sign integration tests destructured the output and discarded it (
RespondDWalletSign(_sign_output)) at all three sign sites plus the partial-signature site — while the create-dwallet and encrypt-share tests in the same suite assert!rejected.SignOutput.rejectedis a legitimate response variant, so a network that rejects every signature kept the sign suite green, including the v118 workloads the release go/no-go leans on.Now asserted at every site:
!rejectedplus non-empty signature bytes (sign_flow_test,future_sign_flow_test— both the partial-verification and completion steps — and the shared Fast-Schnorrexternal_vss_sign_flow). Cryptographic verification of the signature against the dWallet public key stays with the TS integration suite (hash-signature-validation), which already does it end-to-end.v118 pre-activation probe pinned to the window it claims to test
v118_upgrade'spre-activation-windowworkload exists to witness one thing: global presigns served by the pre-pool fallback at protocol v3 on the new binary (the #1732 network-wedge rehearsal — a pending global presign at v3 blocksadvance_epochforever). The scenario comment says "while the network is still at v3", but nothing enforced it: if the capability vote lands early, the probe silently degrades into an ordinary v4 pool test and the run stays green.Added
expect_protocol_version_at_most(n)to the scenario harness (instantaneous ceiling twin ofexpect_protocol_version_at_least) and bracketed the probe withexpect_protocol_version_at_most(3)before and after — the trailing ceiling is the load-bearing one, since the version can flip mid-workload. If the window ever closes early the run now fails loudly with a message saying exactly what was not witnessed, instead of losing the rehearsal silently. (v118_churnhas no pre-activation probe — it starts its churn post-upgrade — so onlyv118_upgradeis bracketed.)🤖 Generated with Claude Code