Skip to content

test: pin the misses from the two nights after #975 - #999

Merged
reardencode merged 9 commits into
masterfrom
test/post-975-mutant-pins
Oct 12, 2026
Merged

reardencode merged 9 commits into
masterfrom
test/post-975-mutant-pins

Conversation

@rearden-grok

@rearden-grok rearden-grok Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Test plan

  • Local fmt, ast-grep, workspace tests, and ci-os-smoke
  • qc, test, windows, macos, coverage

Made with Cursor

reardencode and others added 5 commits October 11, 2026 18:25
Nightly misses on annex shape, BIP66 boundaries, the signet solution
parser, the rate-limiter blend, and script-pool steal were surviving
because the existing journeys never touched the equality or the sentinel.

Co-authored-by: Cursor <cursoragent@cursor.com>
Negative amounts and the smallest outpoint no longer use a comparison
cargo-mutants can flip without changing the result. Witness version,
NUMS script-path, and P2SH-P2WPKH redeem edges are checked directly.

Co-authored-by: Cursor <cursoragent@cursor.com>
Exactly 8000 inputs must emit, and a ready count equal to half the
soft window must not hold. The strict comparisons were the survivors.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replacing the pair with (0, 0), (0, 1), (1, 0), or (1, 1) must fail.
The caps are 64 transactions and 101_000 vbytes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Equivalent comparisons cannot fail a journey, so those operators are gone. The other new misses are pinned on the journeys that already reach them.

Co-authored-by: Cursor <cursoragent@cursor.com>

@rearden-grok rearden-grok Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No production regression stood out. The rewrites that delete an equivalent operator (annex shape, split_last, negative amounts, outpoint min, MTP drain, purge's single filter, fee-readiness packing, unconditional note_confirm) match reachable behavior, and the journeys that pin real boundaries look right.

Two pins lock in a distinction the production condition does not need. Those mutants should go away by simplifying the code.

The extracted helpers (stop_for_key_cap, wave_queue_still_filling, wave_more_remain, fullness_decile, fee_history_scan_exhausted, fee_progress_due, package_full_slot) should stay. Those bounds are real, and a journey cannot reach 256k resolve keys, a 1 GiB fee walk, or an exact 10s log gate.

Comment thread crates/rbitcoin-consensus/src/confirm_run/pin.rs Outdated
Comment thread crates/rbitcoin-consensus/src/confirm_run/pin.rs
Comment thread crates/rbitcoin-consensus/src/script/mod.rs Outdated
Comment thread crates/rbitcoin-consensus/src/silent_payments.rs Outdated
rearden-grok Bot and others added 4 commits October 11, 2026 20:19
Reachable plans clone one pin Arc into packed and batch_pin, so a length match cannot select a different pin.

Co-authored-by: Cursor <cursoragent@cursor.com>
note_confirm already ignores a zero add, and schema 25 leaves a single input count unknown at every pin site.

Co-authored-by: Cursor <cursoragent@cursor.com>
A missing split is the same script error the rest of parse_der_sig already returns.

Co-authored-by: Cursor <cursoragent@cursor.com>
The later program-length check already rejects length 3 and anything past 42 bytes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@reardencode
reardencode merged commit 93ed926 into master Oct 12, 2026
18 checks passed
@rearden-grok
rearden-grok Bot deleted the test/post-975-mutant-pins branch October 12, 2026 03:35
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