Repository navigation
test: pin the misses from the two nights after #975 - #999
Conversation
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>
There was a problem hiding this comment.
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.
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>
Summary
Test plan
Made with Cursor