(+)#35814 carloantinarella contrib: Autogenerate bitcoin-cli bash completion file from getopenrpcinfo- Autogenerate bitcoin-cli bash completions directly from RPC metadata
- Stop completions from falling out of sync whenever RPC commands or arguments change
- Add shell autocompletion support for named RPC arguments
| P3 · developer tool- P3 because it automates bash completions to keep them in sync with RPC changes
- Improves CLI ergonomics for operators and developers by adding named argument completion
| Ready- Ready for review, applies cleanly with passing CI
| 0- No review verdicts recorded
| Crickets- No reviews or comments have been posted yet
- Awaiting initial feedback from maintainers and CLI users
| 0 + 1,574 tests- 0 lines added or modified outside tests
- 1,574 lines added or modified in tests
- 68 lines removed in total
- 3 files, 2 commits
|
(+)#36190 Bortlesboat test: Check bitcoin wrapper child exit status on windows- Verify that the Windows bitcoin wrapper blocks until its child finishes and correctly forwards exit codes
- Ensure scripts and callers invoking bitcoind via the wrapper get reliable exit codes and error reports
| P3 · test coverage- P3 because it validates wrapper tool behavior on Windows
- Ensures exit codes are preserved reliably for scripts and callers invoking the wrapper
| Review #36105 first- Review #36105 first
- Code is ready, but it depends on the runtime wrapper fixes in base PR #36105
| 1 | Strong- Strong support with cross-platform testing
- Verified on native Windows runners with UCRT and MSVCRT (cyb3ralbert)
- Supported splitting this test out into a dedicated PR (ryanofsky)
| 27 + 52 tests- 27 lines added or modified outside tests
- 52 lines added or modified in tests
- 19 lines removed in total
- 6 files, 6 commits
|
(+)#36106 ryanofsky bitcoin wrapper: respect CMAKE_INSTALL_BINDIR/LIBEXECDIR- Allow distributions with custom install paths to run the bitcoin wrapper without execution errors
- Fixes broken binary discovery when launching components on systems like Arch Linux
| P3 · bug fix- P3 because it resolves a complete failure of the wrapper executable on affected distributions
- Users on distributions like Arch Linux can invoke wrapper subcommands reliably
| Ready- Ready to review
- Code is clean, test suite issues are resolved, and CI is passing
| 0 | Strong- Strong support across reviewers with all prior feedback addressed
- Approach approved after testing with custom install prefixes (hebasto)
- Verified by testing on Arch Linux directory layouts (cyb3ralbert)
| 42 + 71 tests- 42 lines added or modified outside tests
- 71 lines added or modified in tests
- 6 lines removed in total
- 6 files, 2 commits
|
(+)#27409 ryanofsky Make GUI and CLI tools use the same datadir- Ensure CLI tools automatically use the custom data directory selected in the GUI
- Prevent tools from downloading blocks to the wrong location or missing user wallets
| P3 · cleanup- P3 because bitcoin-wallet ignores configuration files placed in the custom datadir
- Brings bitcoin-wallet configuration handling into parity with other CLI binaries
| Author reworking- Author stated it is not ready while working on complex Qt tests
- PR is currently marked draft and needs a rebase
| 0- No review verdicts recorded
| Mild- Positive concept feedback on resolving long-standing datadir divergence
- Welcomed as closing issue 8106 (pinheadmz)
- Clarified that custom datadir config files are still loaded properly (luke-jr)
| 455 + 10 tests- 455 lines added or modified outside tests
- 10 lines added or modified in tests
- 103 lines removed in total
- 13 files, 3 commits
|
(+)#36105 ryanofsky bitcoin wrapper: Fix Windows exec so wrapper waits for child process- Make the Windows bitcoin wrapper wait for child processes to finish and propagate their exit codes
- Allow test frameworks and caller scripts on Windows to capture output and monitor child exit status
| P3 · bug fix- P3 because the Windows CLI wrapper terminated immediately instead of awaiting subcommands
- Enables scripts and users on Windows to receive accurate exit codes and output
| Ready- Ready to review
- All CI checks are passing and recent review comments have been addressed
| 0 | Mild- Strong support for fixing Windows child process waiting without objections to the approach
- Concept approval and runtime error handling review (hodlinator)
- Concept approval with notes on future UCRT transitions (hebasto)
- Collaborated on child exit code resolution logic (Bortlesboat)
| 27 + 11 tests- 27 lines added or modified outside tests
- 11 lines added or modified in tests
- 20 lines removed in total
- 6 files, 4 commits
|
(+)#35788 ajtowns bitcoin-util: Add evalscript subcommand- Let script developers evaluate isolated script fragments offline using node consensus rules
- Avoids needing to construct full transactions in test harnesses to debug scripts
| P3 · new feature- P3 because it adds an offline CLI tool for developers to evaluate scripts directly
- Reduces reliance on custom test scripts and third-party interpreters
| Ready- Worth reviewing now with a clean mergeable state and passing CI
- Open test coverage feedback is an optional improvement rather than a blocker
| 1 | Strong- Positive sentiment with no objections raised
- Verified by testing script unit tests and taproot features (jeanpablojp)
- Suggested adding test coverage for the transaction option (jeanpablojp)
| 325 + 235 tests- 325 lines added or modified outside tests
- 235 lines added or modified in tests
- 17 lines removed in total
- 13 files, 4 commits
|
(+)#36151 aman21-droid makeseeds: fix off-by-one in field count check- Prevent seed generation tooling from crashing on malformed crawler output during release preparation
| P3 · bug fix- P3 because this is a minor fix to release seed generation tooling used only by maintainers
- Prevents a crash on malformed inputs without altering normal seed generation behavior
- Ranking pass: Moved up 7: seed generation is the first thing this category says matters; a crash in makeseeds during release preparation outranks developer helper scripts even though the fix is small.
| Ready- Ready to review
- Open question remains on whether to keep or remove the added unit tests
| 1 | Positive- Support and testing for the bug fix (l0rinc)
- Questioned whether unit tests are worthwhile for a rarely used script (achow101)
- Author offered to drop the test commit if maintainers prefer
| 0 + 22 tests- 0 lines added or modified outside tests
- 22 lines added or modified in tests
- 1 lines removed in total
- 1 files, 2 commits
|
(+)#35608 HowHsu contrib: Skip llvm-cov rendering for deterministic fuzz inputs- Accelerate fuzz coverage determinism checks by skipping redundant report rendering
- Save developer time during long fuzz testing runs
| P3 · speedup- P3 because it provides a substantial speedup for an offline developer helper script
- Cuts execution times from hours down to minutes on larger fuzz targets
- Ranking pass: Moved down 7: a large speedup, but it only affects an offline fuzz-coverage helper, which the category ranks below tool correctness and seed/wallet tooling.
| Ready- Ready for review, with CI passing and all reviewer feedback addressed
| 0 (+1) | Strong- Strong support with confirmed performance gains and accepted cleanups
- Verified massive speedup across fuzz corpora testing (jeanpablojp)
- Approved with code simplification suggestions adopted by the author (maflcko)
| 0 + 71 tests- 0 lines added or modified outside tests
- 71 lines added or modified in tests
- 36 lines removed in total
- 1 files, 1 commits
|
(+)#35167 ajtowns Convert check-deps.sh to python- Automate library dependency boundary enforcement directly from documentation diagrams
- Eliminate manual dependency tracking and fix macOS symbol parsing false passes
| P3 · cleanup- P3 because it simplifies internal tool maintenance without affecting node operators
- Resolves macOS symbol demangling bugs to make local boundary checks reliable
- Ranking pass: Moved down 5: internal dependency-check tooling with a real macOS false-pass fix, but below user-facing tool fixes in this category.
| Needs rebase- Needs rebase due to merge conflicts with master while author has been inactive
| 1 | Mild- Broad concept support for migrating dependency checks to Python (sedited, ryanofsky)
- Verified symbol parsing fixes on macOS (janb84)
- Nonblocking objection: moving init code breaks logging in auxiliary binaries (ryanofsky)
- Nonblocking objection: prefers suppressions over adding undesirable dependency edges (ryanofsky)
| 5 + 291 tests- 5 lines added or modified outside tests
- 291 lines added or modified in tests
- 219 lines removed in total
- 5 files, 4 commits
|
(+)#36022 cyb3ralbert test: add coverage for bitcoin wrapper argument handling- Verify command-line argument parsing and error handling in the bitcoin CLI wrapper
- Prevents regressions when users request help or version information or pass invalid options
| P3 · test coverage- P3 because it exercises untested argument parsing and early exit paths in the wrapper tool
- Raises test coverage for the wrapper from zero to nearly half without affecting core consensus
| Ready- Ready for review with all CI checks passing and previous feedback addressed
| 0- No review verdicts recorded
| Positive- Constructive feedback on instrumenting tests under Valgrind addressed by the author (mercie-ux)
- No open objections or unresolved concerns
| 0 + 51 tests- 0 lines added or modified outside tests
- 51 lines added or modified in tests
- 0 lines removed in total
- 1 files, 2 commits
|
(+)#19460 ryanofsky multiprocess: Add bitcoin-wallet -ipcconnect option- Allow the wallet tool to connect directly to a running node over IPC
- Lays the transport foundation for future online wallet subcommands without HTTP RPC
| P3 · new feature- P4 because it only verifies socket connectivity and adds no operational subcommands
- The tool cannot yet perform node-backed user actions over the new connection option
| Waiting on author- Review #29409 first
- Stacked on top of unmerged multiprocess prerequisite PRs #29409 and #10102
| 0- No review verdicts recorded
| Blocked- Unaddressed question whether adding IPC to an offline CLI tool creates user footguns (ajtowns)
- Cautioned against conflating offline wallet tooling with online daemon features (jonasschnelli)
- Author clarified that standard offline wallet usage remains intact and default
| 3,873 + 135 tests- 3,873 lines added or modified outside tests
- 135 lines added or modified in tests
- 549 lines removed in total
- 139 files, 25 commits
|
(+)#35831 pablomartin4btc argsman, cli: Allow options after non-option arguments (GNU-style)- Allow CLI options to be placed after commands without being silently ignored or misparsed
- Prevents confusing errors or targeting the wrong wallet when passing options after an RPC command
| P3 · bug fix- P3 because it brings consistent option handling after positional arguments to offline tools
- Improves usability for tools like bitcoin-tx and bitcoin-wallet when passing trailing options
| Ready- Ready to review because the author addressed previous feedback on edge cases and CI passes
| 1 | Strong- Strong support across the approach with edge cases tested and addressed
- Full support after suggesting edge-case fixes that the author incorporated (w0xlt)
- Verified tool consistency after concerns about bitcoin-tx behavior were resolved (vicjuma)
| 103 + 182 tests- 103 lines added or modified outside tests
- 182 lines added or modified in tests
- 38 lines removed in total
- 7 files, 3 commits
|
(+)#35903 CapThunder19 contrib: fix crash in message-capture-parser.py on non-printable msgtype- Prevent message capture parser crashes when encountering unprintable message types
- Ensure developers analyzing network traffic can parse full capture files without losing output
| P4 · bug fix- P4 because message capture parsing is a niche developer script with low overall usage
- Fixes a genuine script crash but only impacts developers inspecting traffic captures
- Ranking pass: Moved up 5: among the niche contrib script fixes it is the clearest crash-with-total-output-loss, so it leads the P4 script group.
| Ready- Ready to review because the change is tiny and CI passes
| 0- No review verdicts recorded
| Crickets- No formal reviews or approvals yet
- Questioned whether the crash remains reachable after recent message validation changes (sedited)
| 0 + 2 tests- 0 lines added or modified outside tests
- 2 lines added or modified in tests
- 4 lines removed in total
- 1 files, 1 commits
|
(+)#36157 aman21-droid contrib: fix dead null-byte check in linearize-data.py- Prevent linearize-data.py from hanging indefinitely on zero-padded block files
- Ensure the script cleanly finishes or advances to the next file instead of looping forever
| P4 · bug fix- P4 after comparing with the other PRs here (assessed alone as P3): Lowered to P4 for consistency with #31888, the other linearize-data.py fix: a reliable hang, but in a niche offline contrib script.
- P3 because it resolves an infinite read loop in a niche offline utility
- The tool has a limited user base so this is routine maintenance rather than an urgent fix
| Ready- Ready for review
- Clean one-line fix with a straightforward reproduction step
| 0- No review verdicts recorded
| Crickets- No reviews or comments yet
- Recently opened PR awaiting initial feedback
| 0 + 1 tests- 0 lines added or modified outside tests
- 1 lines added or modified in tests
- 1 lines removed in total
- 1 files, 1 commits
|
(+)#31888 midnightmagic contrib: Support re-writing linearize-data dumps- Let linearize-data rerun safely without truncating existing dumps to zero bytes
- Prevent disruptions to processes reading linearize output while it runs
- Ensure obsolete trailing block data is removed after chain reorganizations
| P4 · bug fix- P4 because linearize-data is a niche offline contrib script rather than essential tooling
- Only affects operators who repeatedly rerun block data linearization in place
- Ranking pass: Moved up 5 to sit next to #36157, the other linearize-data.py fix, since the two overlap and should be looked at together.
| Author silent- Author agreed to update the commit message and description but has been silent
| 1 | Strong- Strong support with no remaining objections
- Helps downstream users rerunning dumps without hurting existing workflows (sedited)
- Initial question about the file open mode rationale was clarified (theStack)
| 0 + 6 tests- 0 lines added or modified outside tests
- 6 lines added or modified in tests
- 1 lines removed in total
- 1 files, 1 commits
|
(+)#35809 HowHsu contrib: add deterministic fuzz coverage mode- Let fuzz developers run only individual or combined coverage checks instead of always running both
- Saves significant time when debugging specific fuzz determinism failures or cross-input state leaks
| P4 · new feature- P4 because it adds a minor convenience flag to an offline developer script in contrib
- Saves time for developers diagnosing fuzz coverage nondeterminism
- Affects only a niche internal developer tool with no impact on core development
| Ready- Ready for review
- Clean patch with passing CI and only a trivial unaddressed documentation nit
| 2 (+1) | Strong- Strong consensus with multiple approvals and no objections
- Approved after author switched CLI arguments to string mode (maflcko)
- Verified by code review and testing (Crypt-iQ, marcofleon)
- Verified earlier version by testing on instrumented binaries (jeanpablojp)
| 0 + 83 tests- 0 lines added or modified outside tests
- 83 lines added or modified in tests
- 43 lines removed in total
- 2 files, 1 commits
|
(+)#33828 151henry151 Check required interfaces before generating manpages- Prevents maintainers from accidentally generating incomplete manpages when build options are missing
- Ensures release documentation does not silently drop wallet or ZMQ command-line options
| P4 · bug fix- P4 because it only protects an infrequent release-preparation workflow
- Prevents accidental omission of CLI documentation during manual manpage generation
| Author silent- Author has been silent for months awaiting build maintainer input on CMake conventions
| 0 (+1) | Mild- Concept approval and request for re-review (sedited)
- Concern raised about mixing compile definitions and header defines (maflcko)
- Awaiting feedback from build maintainers on CMake naming conventions
| 3 + 53 tests- 3 lines added or modified outside tests
- 53 lines added or modified in tests
- 0 lines removed in total
- 2 files, 1 commits
|
(+)#35569 purpleKarrot Encapsulation for CTransaction- Decouple transaction internal storage representation from caller code
- Lay the groundwork for future transaction memory optimizations
| P4 · new feature- P4 after comparing with the other PRs here (assessed alone as P3): Lowered to P4: within tools its contribution is a reusable bitcoin-tidy check with speculative payoff, the same treatment given to #35054, whose tools-relevant part is one maintenance script.
- P3 because it adds an automated tooling check to rewrite member access
- The tool can be reused for future encapsulation refactorings across the codebase
| Ready- Ready to review
- CI is passing and the mechanical migration is verified reproducible
| 2 -2 | Disputed- Concept objection: massive churn in consensus code with no immediate benefit (ajtowns)
- Approach objection: premature churn across call sites that should be split up (l0rinc)
- Supports decoupling caller code from transaction internal layout (josibake, ryanofsky)
- Verified the automated migration is reproducible and tests pass (alexanderwiederin)
| 407 + 203 tests- 407 lines added or modified outside tests
- 203 lines added or modified in tests
- 514 lines removed in total
- 93 files, 7 commits
|
(+)#35054 fjahr p2p: UTXO set sharing- Allow nodes to fetch assumeutxo snapshots directly across the P2P network instead of via out-of-band sources
- Enable fast, frictionless node bootstrapping for regular users and prepackaged node projects
| P4 · cleanup- P4 because it adds an internal maintenance script to compute snapshot Merkle roots
- Utility script restricted to generating roots for chainparams
| Needs rebase, CI failing- Review is blocked: PR is a draft, has merge conflicts, failing CI, and author has been silent for 115 days
| 0 -6 | Disputed- Heavily disputed, with strong opposition against expanding assumeutxo into the P2P network
- Concept approval because it provides in-band snapshot acquisition (andrewtoth, svanstaa)
- Concept rejection: adds validation complexity and dual chainstate maintenance burden (stickies-v, l0rinc)
- Concept rejection: introduces undesirable trust assumptions to the P2P protocol (evoskuil, eynhaender)
- Concept rejection: uncertain demand and excessive long-term maintenance costs (narula, nkaretnikov)
| 943 + 771 tests- 943 lines added or modified outside tests
- 771 lines added or modified in tests
- 1 lines removed in total
- 27 files, 13 commits
|
(+)#35733 achow101 sign: Remove FillableSigningProvider- Remove outdated signing abstractions left over from the legacy wallet
- Confine legacy signing logic strictly to migration code paths and clean up tool signing interfaces
| P4 · cleanup- P3 because it modernizes bitcoin-tx signing to use standard flat keystores
- Ensures correct script size constraints are enforced when signing transactions
| Ready- Ready for review; clean PR with feedback incorporated and passing CI
| 0 | Strong- Broad support for isolating legacy wallet codepaths and modernizing signing providers
- Concept approval because it containerizes legacy wallet code paths (rkrux)
- Approach approval after verifying tests and script size limits (jeanpablojp)
- Verified by testing bitcoin-tx commands (vicjuma)
| 86 + 104 tests- 86 lines added or modified outside tests
- 104 lines added or modified in tests
- 288 lines removed in total
- 22 files, 7 commits
|
(+)#35994 purpleKarrot Primitives: Combine assignments- Help developers replace procedural member mutation with declarative constructors across tests and tools
- Paves the way toward making core transaction primitives immutable
| P4 · cleanup- P4 because the developer tool requires intrusive header annotations
- Author views the linter check as better suited for local use rather than being committed to the repo
| Needs rebase- Needs rebase, CI is failing, and author expressed preference to abandon rather than merge
| 0 | Mild- General support for declarative setup in principle, but implementation has bugs and unwanted annotations
- Concept approval without stated reasons, noting unclear naming (l0rinc)
- Concerned intrusive macro annotations pollute core headers (maflcko)
- Automated rewrite erroneously dropped witness data in test helpers (alexanderwiederin)
- Author leans toward manual rewrites instead of merging this PR (purpleKarrot)
| 22 + 372 tests- 22 lines added or modified outside tests
- 372 lines added or modified in tests
- 366 lines removed in total
- 42 files, 8 commits
|