Accepted findings
474
264 unique; 210 shared
claude-opus-5-5
Candidate rows can merge into one accepted finding. Publish is the verifier decision; accepted attribution is recorded separately.
| PR | Finding | Verifier decision | Attribution | Report |
|---|---|---|---|---|
| #34778 | `-loglevelalways` omits the category on Info, Warning, and Error linessrc/logging.cpp:359adversarial_claude:1 | publish | Accepted, shared | report |
| #34778 | Disabled Debug and Trace calls acquire the logger mutexsrc/logging.cpp:625adversarial_claude:2 | publish | Accepted, shared | report |
| #34778 | Argument-evaluation test never enables the categorysrc/test/logging_tests.cpp:592adversarial_claude:3 | publish | Accepted, sole | report |
| #34778 | Developer notes do not explain how to pass `ratelimit = false`doc/developer-notes.md:818adversarial_claude:4 | publish | Accepted, sole | report |
| #29409 | UnstableChain.isRBFOptIn with no tx set aborts bitcoin-node via an assert in the IPC layersrc/ipc/capnp/chain.capnp:68adversarial_claude:1 | unresolved | Not accepted | report |
| #29409 | An IPC-registered RPC handler can be removed while RPC execution is using itsrc/ipc/capnp/chain.cpp:186adversarial_claude:2 | publish | Accepted, sole | report |
| #29409 | The generated C++ `makeChain()` bypasses the unstable-interface version checksrc/ipc/capnp/init.capnp:31adversarial_claude:3 | publish | Accepted, sole | report |
| #29409 | Remote callbacks block node-wide locks during IPC callssrc/ipc/capnp/chain.capnp:103adversarial_claude:4 | publish | Accepted, sole | report |
| #29409 | Remote callbacks block node-wide locks during IPC callssrc/ipc/capnp/chain.capnp:103adversarial_claude:5 | publish | Accepted, sole | report |
| #29409 | The broad C++23 warning suppression is added whenever supportedCMakeLists.txt:521adversarial_claude:6 | publish | Accepted, sole | report |
| #36437 | Honest peer always has NodeId 0, so the new lowest-NodeId hand-over always goes straight to itsrc/test/fuzz/p2p_1p1c_liveness.cpp:297adversarial_claude:1 | drop | Not accepted | report |
| #36343 | analyzepsbt reports a finalizer role for inputs that cannot be finalizedsrc/psbt.cpp:814adversarial_claude:1 | publish | Accepted, sole | report |
| #36343 | The new comment misstates how SignPSBTInput handles final fieldssrc/psbt.cpp:812adversarial_claude:2 | publish | Accepted, sole | report |
| #36167 | The `-Wunused` flag adds no diagnostics beyond the effective `-Wunused-parameter` changeCMakeLists.txt:483adversarial_claude:1 | publish | Accepted, sole | report |
| #36167 | Dead parameters in internal functions are silenced instead of removedsrc/init.cpp:909adversarial_claude:2 | publish | Accepted, sole | report |
| #36167 | The leveldb subtree edits have no linked upstream pathsrc/leveldb/db/db_impl.cc:1062adversarial_claude:3 | publish | Accepted, shared | report |
| #36167 | RPC argument parsing changes the accepted `maxtries` and `psbt_version` rangessrc/rpc/mining.cpp:317adversarial_claude:4 | publish | Accepted, shared | report |
| #36167 | The alias test does not check that `Arg` rejects the legacy namesrc/test/rpc_tests.cpp:650adversarial_claude:5 | publish | Accepted, sole | report |
| #36167 | Unnamed same-typed callback arguments obscure their meaningsrc/kernel/bitcoinkernel_wrapper.h:1124adversarial_claude:6 | publish | Accepted, shared | report |
| #36641 | A large PSBT can evict its own MuSig2 nonces while publishing pubnoncessrc/musig.cpp:133adversarial_claude:1 | publish | Accepted, sole | report |
| #36641 | Evicted MuSig2 sessions are not distinguishable from rounds awaiting cosignerssrc/musig.cpp:134adversarial_claude:2 | publish | Accepted, shared | report |
| #36641 | The bounded-store test does not verify the cap or FIFO removal ordersrc/wallet/test/scriptpubkeyman_tests.cpp:79adversarial_claude:3 | publish | Accepted, shared | report |
| #29491 | A worker can be counted twice before all batches finish verificationsrc/checkqueue.h:138adversarial_claude:1 | publish | Accepted, shared | report |
| #29491 | A public batch seed can let cancelling invalid signatures pass verificationsrc/secp256k1/src/modules/schnorrsig/batch_add_impl.h:133adversarial_claude:2 | publish | Accepted, shared | report |
| #29491 | The reject reason for a failed Schnorr batch varies with `-par`src/validation.cpp:2713adversarial_claude:3 | publish | Accepted, shared | report |
| #29491 | Unparsable pubkey rejection relies on every caller checking Add()'s return valuesrc/batchverify.cpp:32adversarial_claude:4 | drop | Not accepted | report |
| #29491 | A scratch-allocation failure can make batch verification accept an invalid tweak checksrc/secp256k1/src/modules/batch/main_impl.h:191adversarial_claude:5 | publish | Accepted, shared | report |
| #29491 | The batched check-queue protocol has no isolated test coveragesrc/checkqueue.h:45adversarial_claude:6 | publish | Accepted, sole | report |
| #35728 | The release note misstates the RPC error codedoc/release-notes-35728.md:4adversarial_claude:1 | publish | Accepted, sole | report |
| #35728 | Corrupt txindex LevelDB blocks in the prefix scan are still reported as "not found"src/index/txindex.cpp:183adversarial_claude:2 | drop | Not accepted | report |
| #35728 | A damaged txindex candidate aborts lookups that could still succeedsrc/index/txindex.cpp:216adversarial_claude:3 | publish | Accepted, shared | report |
| #35728 | `GetTransaction` and `FindTx` declarations omit their new exceptionssrc/node/transaction.cpp:165adversarial_claude:4 | publish | Accepted, sole | report |
| #36696 | The anti-aliasing reason for copying each element is not true for CTransaction as a wholesrc/primitives/transaction.cpp:109adversarial_claude:1 | drop | Not accepted | report |
| #36696 | ToVector's comment suggests a replacement that can transfer the caller's vectorsrc/util/vector.h:23adversarial_claude:2 | publish | Accepted, shared | report |
| #36696 | Elements of rvalue ranges are always copied, but the PR text says copied/movedsrc/util/vector.h:31adversarial_claude:3 | drop | Not accepted | report |
| #36696 | The new CTransaction range constructor permits implicit conversionssrc/primitives/transaction.h:319adversarial_claude:4 | publish | Accepted, sole | report |
| #36696 | New range code omits headers for the standard facilities it usessrc/util/vector.h:20adversarial_claude:5 | publish | Accepted, shared | report |
| #36696 | CTxIn copies rvalue witnessessrc/primitives/transaction.h:123adversarial_claude:6 | publish | Accepted, sole | report |
| #36697 | Exporting a child key from a default wallet also reveals the account private key to anyone holding the public xpubsrc/wallet/scriptpubkeyman.cpp:1447adversarial_claude:1 | drop | Not accepted | report |
| #36697 | Direct-address lookup can export an HD master private keysrc/wallet/scriptpubkeyman.cpp:1386adversarial_claude:2 | publish | Accepted, sole | report |
| #36697 | Top-level aliases create a new, duplicated RPC result formatsrc/wallet/export.cpp:273adversarial_claude:3 | publish | Accepted, sole | report |
| #36697 | Hex-only exported keys require conversion for Core’s WIF-only interfacessrc/wallet/rpc/backup.cpp:127adversarial_claude:4 | publish | Accepted, sole | report |
| #36697 | A required safety check runs inside a function named for MuSig2 metadatasrc/wallet/scriptpubkeyman.cpp:1346adversarial_claude:5 | drop | Not accepted | report |
| #36697 | The secret-returning `ExportKey(script, key_id)` overload is unused by production and tests another pathsrc/wallet/scriptpubkeyman.h:405adversarial_claude:6 | publish | Accepted, sole | report |
| #35932 | Disconnected connections are never erased, so their EventLoopRefs keep the event loop alive and ~CapnpProtocol hangs at shutdownsrc/ipc/capnp/protocol.cpp:160adversarial_claude:1 | undisposed | Not accepted | report |
| #35932 | Drain happens after ResetCoinsViews(), so in-flight checkBlock/submitBlock bodies can still abort on Assert(m_coins_views)src/ipc/capnp/protocol.cpp:121adversarial_claude:2 | undisposed | Not accepted | report |
| #35932 | -Wno-c++23-extensions is added project-wide on every compiler that accepts the flag, not only on older clangCMakeLists.txt:518adversarial_claude:3 | undisposed | Not accepted | report |
| #35932 | Tracker comments wrongly claim ProxyServerBase is always constructed on the event loop threadsrc/ipc/libmultiprocess/include/mp/proxy-io.h:777adversarial_claude:4 | undisposed | Not accepted | report |
| #35354 | Snapshot sync can park filter requests until the peer times outsrc/net_processing.cpp:3579adversarial_claude:1 | publish | Accepted, shared | report |
| #35354 | Parking requests before validation reveals which stop hashes are knownsrc/net_processing.cpp:3653adversarial_claude:2 | publish | Accepted, shared | report |
| #35354 | The test comment and PR description do not match the implemented mechanismsrc/test/cfilter_race_tests.cpp:79adversarial_claude:3 | publish | Accepted, sole | report |
| #35354 | A failed assertion can leave the scheduler blocked and hang the test suitesrc/test/cfilter_race_tests.cpp:110adversarial_claude:4 | publish | Accepted, shared | report |
| #10102 | CoinControl maximum depth is replaced by the minimum depth over IPCsrc/ipc/capnp/wallet.cpp:196adversarial_claude:1 | publish | Accepted, shared | report |
| #10102 | CoinControl lock time, version, and weight limit are lost over IPCsrc/ipc/capnp/wallet.cpp:198adversarial_claude:2 | publish | Accepted, shared | report |
| #10102 | PayToAnchor destinations are not serializedsrc/ipc/capnp/wallet.cpp:113adversarial_claude:3 | publish | Accepted, shared | report |
| #10102 | Restoring without loading aborts the reply-reading processsrc/ipc/capnp/common-types.h:371adversarial_claude:4 | publish | Accepted, sole | report |
| #10102 | Spawn-only Init methods are also served to running-node socket clientssrc/ipc/capnp/init.capnp:33adversarial_claude:5 | publish | Accepted, sole | report |
| #10102 | SecureString passphrase copies in IPC buffers are not cleansedsrc/ipc/capnp/common-types.h:198adversarial_claude:6 | publish | Accepted, shared | report |
| #25573 | Static PIE flags omit fatal linker warningscontrib/guix/libexec/build_linux.sh:48adversarial_claude:1 | publish | Accepted, sole | report |
| #25573 | Static binaries embed a pinned glibc resolver without a stated update processcontrib/guix/toolchains.scm:297adversarial_claude:2 | publish | Accepted, sole | report |
| #25573 | Static ELF FORTIFY check accepts binaries without checking Bitcoin Core's codecontrib/guix/security-check.py:130adversarial_claude:3 | publish | Accepted, shared | report |
| #25573 | Linux runtime requirements omit bitcoin-gui and conflict with INSTALL.mddoc/release-notes-25573.md:4adversarial_claude:4 | publish | Accepted, shared | report |
| #25573 | remap-guix-store-paths joins existing CFLAGS/CPPFLAGS without a separatorcontrib/guix/toolchains.scm:338adversarial_claude:5 | unresolved | Not accepted | report |
| #29418 | Sent counts include messages that were not fully writtensrc/net.cpp:1640adversarial_claude:1 | publish | Accepted, shared | report |
| #29418 | Type-check bypass leaves `detailed` unchecked and undocumented in OpenRPCsrc/rpc/net.cpp:652adversarial_claude:2 | publish | Accepted, sole | report |
| #29418 | Every call builds maps for all 3,626 cells and emits keys in unspecified ordersrc/rpc/net.cpp:696adversarial_claude:3 | publish | Accepted, shared | report |
| #29418 | The new `getnettotals` field has no release notesrc/rpc/net.cpp:731adversarial_claude:4 | publish | Accepted, shared | report |
| #29418 | `NUM_CONNECTION_TYPES` is hard-coded, and a stale value would crash the networking threadssrc/node/connection_types.h:90adversarial_claude:5 | drop | Not accepted | report |
| #30437 | Final tip comparison dereferences an empty optionalsrc/bitcoin-mine.cpp:159adversarial_claude:1 | publish | Accepted, shared | report |
| #30437 | Null IPC connection results make bitcoin-mine abortsrc/bitcoin-mine.cpp:119adversarial_claude:2 | publish | Accepted, shared | report |
| #30437 | bitcoin-mine can shrink and append to the node's debug.logsrc/bitcoin-mine.cpp:101adversarial_claude:3 | publish | Accepted, shared | report |
| #30437 | StartLogging errors lose their specific messagesrc/bitcoin-mine.cpp:101adversarial_claude:4 | publish | Accepted, sole | report |
| #30437 | The functional test accepts a failed block submissiontest/functional/feature_mine.py:28adversarial_claude:5 | publish | Accepted, shared | report |
| #30437 | bitcoin-mine submits the template's dummy coinbasesrc/bitcoin-mine.cpp:157adversarial_claude:6 | publish | Accepted, shared | report |
| #30437 | The generated bitcoin-mine man page is not installedcontrib/devtools/gen-manpages.py:16adversarial_claude:7 | publish | Accepted, sole | report |
| #30437 | The .rc file is added unconditionally instead of through add_windows_resourcessrc/CMakeLists.txt:344adversarial_claude:8 | drop | Not accepted | report |
| #30437 | The test name conflicts with functional-test naming conventionstest/functional/feature_mine.py:5adversarial_claude:9 | publish | Accepted, sole | report |
| #30951 | Scheduled probes select clearnet addresses that the v2-only guard later skipssrc/net.cpp:450adversarial_claude:1 | publish | Accepted, shared | report |
| #30951 | The new test does not exercise v1 retry suppression or the name-proxy branchtest/functional/p2p_v2_encrypted.py:144adversarial_claude:2 | publish | Accepted, shared | report |
| #30951 | A v1 `addnode` request for a clearnet peer is accepted but never connectssrc/net.cpp:451adversarial_claude:3 | publish | Accepted, sole | report |
| #30951 | The non-routable v1 exemption is broader than the comment and help text describesrc/net.h:1441adversarial_claude:4 | publish | Accepted, sole | report |
| #35662 | txsdata[i] is now in bounds only because of the fScriptChecks guard; add an assert at the accesssrc/validation.cpp:2513adversarial_claude:1 | undisposed | Not accepted | report |
| #35662 | Add a test that a script-cache hit leaves the txdata optional emptysrc/test/txvalidationcache_tests.cpp:155adversarial_claude:2 | undisposed | Not accepted | report |
| #31507 | CI-only warning downgrades make native builds behave differently from CI.github/ci-windows.py:71adversarial_claude:1 | publish | Accepted, sole | report |
| #31507 | Windows presets can mismatch the target and vcpkg dependency architecturesCMakePresets.json:12adversarial_claude:2 | publish | Accepted, shared | report |
| #31507 | Builtins archive selection follows the host processor rather than the compiler targetCMakeLists.txt:329adversarial_claude:3 | publish | Accepted, shared | report |
| #31507 | Builtins are linked for every MSVC-like compiler, contradicting the comment and the stated cl.exe policyCMakeLists.txt:338adversarial_claude:4 | drop | Not accepted | report |
| #31507 | The native Windows guide does not specify the clang-cl version requirementdoc/build-windows-native.md:32adversarial_claude:5 | publish | Accepted, shared | report |
| #31507 | /sdl was removed but clang-cl builds get no replacement hardeningCMakeLists.txt:331adversarial_claude:6 | drop | Not accepted | report |
| #31507 | The MSVC-only `<cstdlib>` include is no longer usedsrc/compat/byteswap.h:29adversarial_claude:7 | publish | Accepted, sole | report |
| #30988 | Wildcard listeners use the unspecified address as each inbound peer’s local addresssrc/common/sockman.cpp:514adversarial_claude:1 | publish | Accepted, shared | report |
| #30988 | An I2P connection attempt without a proxy aborts in debug and fuzz buildssrc/common/sockman.cpp:157adversarial_claude:2 | publish | Accepted, shared | report |
| #30988 | Unpolled connections skip the per-connection I/O completion hooksrc/common/sockman.cpp:432adversarial_claude:3 | publish | Accepted, sole | report |
| #30988 | The `connman` fuzz target no longer exercises the socket I/O loopsrc/test/fuzz/connman.cpp:213adversarial_claude:4 | publish | Accepted, shared | report |
| #36628 | 10,000-job queue cap kept, but jobs now start one at a time 35–55 s apart, so the queue can take days to drainsrc/privbcast/params.h:112adversarial_claude:1 | drop | Not accepted | report |
| #36628 | `StartPolicy::Decide` rules lack unit tests, and a comment refers to absent coveragesrc/test/privbcast_queue_tests.cpp:16adversarial_claude:2 | publish | Accepted, sole | report |
| #32387 | Windows spawn pipe can be claimed by another local usersrc/ipc/libmultiprocess/src/mp/util.cpp:419adversarial_claude:1 | publish | Accepted, shared | report |
| #32387 | Early-startup retry loop catches every OSError on all platforms and has no deadlinetest/functional/interface_ipc_mining.py:182adversarial_claude:10 | drop | Not accepted | report |
| #32387 | MinGW retains ThreadContext for every completed IPC workersrc/ipc/libmultiprocess/src/mp/proxy.cpp:67adversarial_claude:2 | publish | Accepted, shared | report |
| #32387 | Windows IPC bind can delete an unrelated empty filesrc/ipc/process.cpp:160adversarial_claude:3 | publish | Accepted, shared | report |
| #32387 | Blocking AF_UNIX connect on Windows may hang bitcoin-cli's default -ipcconnect=autosrc/ipc/process.cpp:122adversarial_claude:4 | unresolved | Not accepted | report |
| #32387 | Functional tests remove stale Windows sockets before bind can clean them uptest/functional/test_framework/test_node.py:289adversarial_claude:5 | publish | Accepted, sole | report |
| #32387 | The bitcoin.exe wrapper now outlives its child but does not propagate terminationsrc/util/exec.cpp:44adversarial_claude:6 | drop | Not accepted | report |
| #32387 | Windows GUI version metadata drops the “Core” product namecmake/module/AddWindowsResources.cmake:19adversarial_claude:7 | publish | Accepted, sole | report |
| #32387 | Build documentation gives outdated IPC defaults for Windowsdepends/Makefile:43adversarial_claude:8 | publish | Accepted, sole | report |
| #32387 | capnp receives a Windows-only define on every depends hostdepends/packages/capnp.mk:14adversarial_claude:9 | publish | Accepted, sole | report |
| #35444 | Notification handling is duplicated across six public methodssrc/wallet/scriptpubkeyman.cpp:896adversarial_claude:1 | publish | Accepted, sole | report |
| #35444 | First-key-time notification runs while `m_desc_mutex` is heldsrc/wallet/scriptpubkeyman.cpp:1753adversarial_claude:2 | publish | Accepted, sole | report |
| #35444 | Lock annotations on three definitions conflict with their declarationssrc/wallet/scriptpubkeyman.cpp:1294adversarial_claude:3 | publish | Accepted, shared | report |
| #35444 | Renaming helpers changes user-visible exception text built from __func__src/wallet/scriptpubkeyman.cpp:1777adversarial_claude:4 | drop | Not accepted | report |
| #35444 | Three fields lack lock annotationssrc/wallet/scriptpubkeyman.h:284adversarial_claude:5 | publish | Accepted, sole | report |
| #35444 | The fuzz harness bypasses the wallet-level descriptor update pathsrc/wallet/test/fuzz/scriptpubkeyman.cpp:119adversarial_claude:6 | publish | Accepted, sole | report |
| #32468 | Custom amounts are added to an equal share instead of setting exact payoutssrc/rpc/mining.cpp:499adversarial_claude:1 | publish | Accepted, sole | report |
| #32468 | Extra coinbase outputs are not included in the mempool template's weight and sigops reservationssrc/rpc/mining.cpp:457adversarial_claude:2 | publish | Accepted, shared | report |
| #32468 | Help omits that explicit transaction lists forfeit transaction feessrc/rpc/mining.cpp:337adversarial_claude:3 | publish | Accepted, shared | report |
| #32468 | Use the template's `required_outputs`/`block_reward_remaining` instead of clearing all outputs and re-adding only the witness commitmentsrc/rpc/mining.cpp:497adversarial_claude:4 | drop | Not accepted | report |
| #32468 | The OpenRPC schema does not describe the supported `output` formssrc/rpc/mining.cpp:339adversarial_claude:5 | publish | Accepted, shared | report |
| #32468 | Mempool-mode tests do not check fee payouts across multiple outputs or fresh witness validationtest/functional/rpc_generate.py:130adversarial_claude:6 | publish | Accepted, sole | report |
| #32468 | Mempool-mode blocks are fully validated twicesrc/rpc/mining.cpp:457adversarial_claude:7 | drop | Not accepted | report |
| #33117 | loadtxoutset now reports a bad path or a malformed snapshot header as an internal node errorsrc/rpc/blockchain.cpp:3561adversarial_claude:1 | undisposed | Not accepted | report |
| #33117 | New Snapshot interface returns internal pointers and implements node logic in the interface layersrc/interfaces/snapshot.h:26adversarial_claude:2 | undisposed | Not accepted | report |
| #33117 | Progress reaches 100% before the long hashing and validation phase, and nothing signals the endsrc/validation.cpp:5848adversarial_claude:3 | undisposed | Not accepted | report |
| #33117 | No test covers the new progress notificationsrc/validation.cpp:5850adversarial_claude:4 | undisposed | Not accepted | report |
| #33324 | Symlinked block files are copied into the blocks directorysrc/node/blockstorage.cpp:191adversarial_claude:1 | publish | Accepted, sole | report |
| #33324 | Migration errors omit the underlying filesystem failuresrc/node/blockstorage.cpp:265adversarial_claude:2 | publish | Accepted, shared | report |
| #33324 | DirectoryCommit now fails and logs on EINVAL, unlike FileCommitsrc/util/fs_helpers.cpp:143adversarial_claude:3 | drop | Not accepted | report |
| #33324 | Key-file state check treats stat errors as "missing", and the destructive branches are taken on that signalsrc/node/blockstorage.cpp:219adversarial_claude:4 | drop | Not accepted | report |
| #35307 | Changing the height check only fixes the base block; a block one height above it still aborts the nodesrc/node/blockstorage.cpp:801adversarial_claude:1 | undisposed | Not accepted | report |
| #35307 | VerifyDB stop at the snapshot base returns SUCCESS and the comment gives the wrong reasonsrc/validation.cpp:4710adversarial_claude:2 | undisposed | Not accepted | report |
| #35307 | Flush special case checks the tip height, not whether the tip is the snapshot basesrc/node/blockstorage.cpp:808adversarial_claude:3 | undisposed | Not accepted | report |
| #35307 | New test covers only the restart path, not the in-session aborttest/functional/feature_assumeutxo.py:242adversarial_claude:4 | undisposed | Not accepted | report |
| #32575 | TestBlockValidity lacks regression coverage for deferred script-cache writessrc/validation.cpp:2725adversarial_claude:1 | publish | Accepted, shared | report |
| #32575 | Mempool and block validation duplicate script-check constructionsrc/validation.cpp:2686adversarial_claude:2 | publish | Accepted, sole | report |
| #32575 | GetScriptCacheEntry omits its erase-on-hit behavior and input preconditionsrc/validation.cpp:2073adversarial_claude:3 | publish | Accepted, sole | report |
| #32575 | CheckInputScriptsFor::Block is unreachable after block validation movedsrc/validation.cpp:2137adversarial_claude:4 | publish | Accepted, sole | report |
| #32575 | GetScriptCacheEntry's declaration is duplicated instead of sharedsrc/test/txvalidationcache_tests.cpp:25adversarial_claude:5 | publish | Accepted, sole | report |
| #32575 | p2p_segwit's reason for -par=1 is now stalesrc/validation.cpp:2616adversarial_claude:6 | drop | Not accepted | report |
| #36688 | An urgent pointer ahead of received data can still spin the macOS/BSD net threadsrc/netbase.cpp:573adversarial_claude:1 | publish | Accepted, sole | report |
| #36688 | Inbound sockets get SO_OOBINLINE only by inheritance from the listener, unlike TCP_NODELAYsrc/netbase.cpp:575adversarial_claude:2 | drop | Not accepted | report |
| #36697 | Direct-address lookup can export the HD master private keysrc/wallet/scriptpubkeyman.cpp:1386adversarial_claude:1 | publish | Accepted, sole | report |
| #36697 | The BIP341 vector path fails for non-symlink functional teststest/functional/wallet_exportaddresskey.py:699adversarial_claude:2 | publish | Accepted, sole | report |
| #36697 | Taproot discovery repeats key scans and private descriptor expansion under `cs_wallet`src/wallet/export.cpp:198adversarial_claude:3 | publish | Accepted, shared | report |
| #36697 | `ExportKey(script, key_id)` is unused by production code and tests a different pathsrc/wallet/scriptpubkeyman.h:405adversarial_claude:4 | publish | Accepted, sole | report |
| #36697 | `GetMuSig2KeyInfo` also carries the general cache-consistency checksrc/script/descriptor.h:203adversarial_claude:5 | drop | Not accepted | report |
| #33922 | Template destruction can access BlockTemplateManager after shutdown resets itsrc/node/interfaces.cpp:894adversarial_claude:1 | publish | Accepted, shared | report |
| #33922 | Wtxid-keyed tracking merges separate allocations of the same transactionsrc/node/block_template_manager.h:46adversarial_claude:2 | publish | Accepted, shared | report |
| #33922 | New `SanityCheck()` helper is never calledsrc/node/block_template_manager.cpp:110adversarial_claude:3 | publish | Accepted, sole | report |
| #33922 | Template refcounting test relies on a crash unavailable in release buildstest/functional/interface_ipc_mining.py:328adversarial_claude:4 | publish | Accepted, shared | report |
| #34038 | No-log-file contexts leave trace logging enabled in hot loopssrc/test/util/setup_common.cpp:167adversarial_claude:1 | publish | Accepted, shared | report |
| #34038 | `include`/`debug` in the logging RPC now lowers traced categories to debug, and "all" wipes per-category tracesrc/logging.cpp:132adversarial_claude:2 | drop | Not accepted | report |
| #34038 | Runtime trace changes do not enable tracing on existing wallets or IPC loopssrc/rpc/node.cpp:297adversarial_claude:3 | publish | Accepted, shared | report |
| #34038 | The release note incorrectly says wallet SQL is the only supported trace outputdoc/release-notes-34038.md:4adversarial_claude:4 | publish | Accepted, shared | report |
| #34038 | New flag-based SetCategoryLogLevel skips the NONE guard, so "libevent" stores a stray levelsrc/logging.cpp:648adversarial_claude:5 | drop | Not accepted | report |
| #36673 | Any matching issue can permanently suppress the certificate-expiry alert.github/workflows/code-signing-certificate.yml:52adversarial_claude:1 | publish | Accepted, shared | report |
| #36673 | Only master is checked, but release branches sign with their own copy of the certificate.github/workflows/code-signing-certificate.yml:27adversarial_claude:2 | drop | Not accepted | report |
| #36673 | Closing the warning also suppresses an alert at expiry.github/workflows/code-signing-certificate.yml:50adversarial_claude:3 | publish | Accepted, sole | report |
| #36673 | actions/checkout@v7 does not match the v6 used everywhere else in the repo.github/workflows/code-signing-certificate.yml:25adversarial_claude:4 | drop | Not accepted | report |
| #36673 | An unrelated issue can permanently suppress the certificate expiry alert.github/workflows/code-signing-certificate.yml:52adversarial_claude:1 | publish | Accepted, shared | report |
| #36673 | Release branches, which point releases are signed from, are never checked.github/workflows/code-signing-certificate.yml:27adversarial_claude:2 | drop | Not accepted | report |
| #36673 | Closing the warning also suppresses the later expiry alert.github/workflows/code-signing-certificate.yml:54adversarial_claude:3 | publish | Accepted, sole | report |
| #36673 | A failed certificate-monitoring run does not notify maintainers with an issue.github/workflows/code-signing-certificate.yml:41adversarial_claude:4 | publish | Accepted, sole | report |
| #36673 | Uses actions/checkout@v7 while ci.yml uses v6.github/workflows/code-signing-certificate.yml:25adversarial_claude:5 | drop | Not accepted | report |
| #34405 | Preset-only selections trigger a redundant APS retrysrc/wallet/spend.cpp:1255adversarial_claude:1 | publish | Accepted, sole | report |
| #34405 | Partial-spend counting adds overhead when the retry cannot use itsrc/wallet/spend.cpp:1255adversarial_claude:2 | publish | Accepted, shared | report |
| #34405 | Changed tracepoint firing conditions and -maxapsfee behaviour are not documentedsrc/wallet/spend.cpp:1500adversarial_claude:3 | drop | Not accepted | report |
| #34603 | Top-level BDB symlinks appear in wallet lists but cannot be migrated on MinGWsrc/wallet/db.cpp:34adversarial_claude:1 | publish | Accepted, sole | report |
| #34603 | Wallet-path validation rejects some Windows reparse-point data filessrc/wallet/wallet.cpp:2974adversarial_claude:2 | publish | Accepted, shared | report |
| #34603 | Windows attribute lookup failures lose the underlying OS errorsrc/util/fs_helpers.cpp:352adversarial_claude:3 | publish | Accepted, shared | report |
| #34603 | Wallet scans warn about supported symlinked wallet directoriessrc/wallet/db.cpp:35adversarial_claude:4 | publish | Accepted, sole | report |
| #34775 | Callback documentation does not define supported re-entry or self-destructionsrc/kernel/bitcoinkernel.h:432adversarial_claude:1 | publish | Accepted, sole | report |
| #34775 | Concurrency test can hang instead of reporting a failuresrc/test/kernel/test_kernel.cpp:810adversarial_claude:2 | publish | Accepted, sole | report |
| #29491 | A stale script-check failure can make the next valid block permanently invalidsrc/checkqueue.h:209adversarial_claude:1 | publish | Accepted, shared | report |
| #29491 | A worker can be counted twice before every batch is verifiedsrc/checkqueue.h:138adversarial_claude:2 | publish | Accepted, shared | report |
| #29491 | Schnorr batch failures have different reject reasons depending on `-par`src/validation.cpp:2654adversarial_claude:3 | publish | Accepted, shared | report |
| #29491 | A public batch seed can let invalid Schnorr signatures cancelsrc/secp256k1/src/modules/schnorrsig/batch_add_impl.h:133adversarial_claude:4 | publish | Accepted, shared | report |
| #29491 | Batch verification can fail open if Strauss scratch allocation failssrc/secp256k1/src/modules/batch/main_impl.h:191adversarial_claude:5 | publish | Accepted, sole | report |
| #29491 | The unit test never verifies an invalid signature in a multi-signature batchsrc/test/key_tests.cpp:449adversarial_claude:6 | publish | Accepted, sole | report |
| #34864 | `Next()` and `Prev()` comments describe a removed FRESH-only statesrc/coins.h:202adversarial_claude:1 | publish | Accepted, shared | report |
| #34864 | Unit tests still give spent+FRESH entries defined results as parent/cache fixtures, which the PR now treats as invalidsrc/test/coins_tests.cpp:810adversarial_claude:2 | drop | Not accepted | report |
| #36673 | Any user's matching issue can permanently suppress the expiry alert.github/workflows/code-signing-certificate.yml:48adversarial_claude:1 | publish | Accepted, shared | report |
| #36673 | Closing the warning also suppresses a later expired-certificate alert.github/workflows/code-signing-certificate.yml:47adversarial_claude:2 | publish | Accepted, sole | report |
| #36673 | Release branches can continue using an expired certificate without an alert.github/workflows/code-signing-certificate.yml:27adversarial_claude:3 | publish | Accepted, sole | report |
| #36673 | A failed monitoring run does not alert maintainers with an issue.github/workflows/code-signing-certificate.yml:39adversarial_claude:4 | publish | Accepted, sole | report |
| #36673 | checkout@v7 differs from the repository's other workflows.github/workflows/code-signing-certificate.yml:25adversarial_claude:5 | drop | Not accepted | report |
| #36696 | ToVector moves from elements of temporary views and transfers nested bufferssrc/util/vector.h:31adversarial_claude:1 | publish | Accepted, shared | report |
| #36696 | ToVector moves from elements of temporary views and transfers nested bufferssrc/util/vector.h:31adversarial_claude:2 | publish | Accepted, shared | report |
| #36696 | The range constructor has no direct tests for hashes, witnesses, or copy and move behaviorsrc/primitives/transaction.h:318adversarial_claude:3 | publish | Accepted, shared | report |
| #36696 | SetupDummyInputs copies transactions unnecessarily before AddCoinssrc/test/util/transaction_utils.cpp:68adversarial_claude:4 | publish | Accepted, sole | report |
| #36696 | util/vector.h relies on transitive includes for ranges and concepts facilitiessrc/util/vector.h:20adversarial_claude:5 | publish | Accepted, shared | report |
| #35858 | Wallet rebroadcast can later announce privately broadcast transactions to all peersdoc/privacy.md:14adversarial_claude:1 | publish | Accepted, sole | report |
| #35858 | Private broadcast destinations are described too narrowlydoc/privacy.md:12adversarial_claude:2 | publish | Accepted, sole | report |
| #35858 | Prerequisites omit a Tor setup route, the `-connect` conflict, and what reachability meansdoc/privacy.md:25adversarial_claude:3 | publish | Accepted, shared | report |
| #35858 | Scope paragraph omits `submitpackage`’s standard broadcast behaviordoc/privacy.md:30adversarial_claude:4 | publish | Accepted, sole | report |
| #35858 | Queue cap and abort-by-txid behavior are missing from the RPC sectiondoc/privacy.md:38adversarial_claude:5 | drop | Not accepted | report |
| #36677 | Only Linux gets native 'e'; FreeBSD/NetBSD/OpenBSD use a hand-written fopen replacement that CI never runssrc/util/fs.cpp:30adversarial_claude:1 | undisposed | Not accepted | report |
| #36677 | Test checks close-on-exec for one mode only, not the mode behavior the fallback re-implementssrc/test/fs_tests.cpp:153adversarial_claude:2 | undisposed | Not accepted | report |
| #35027 | Name-proxy connections can bypass `-outboundbind` without a startup warningsrc/init.cpp:2245adversarial_claude:1 | publish | Accepted, shared | report |
| #35027 | A repeated same-family value on the command line is silently ignored (first wins), unlike other command-line options (last wins)src/init.cpp:2220adversarial_claude:2 | drop | Not accepted | report |
| #35027 | Startup validation accepts loopback (and other non-unicast) sources that cannot reach remote peers, and the resulting failures are only logged at debug levelsrc/init.cpp:2214adversarial_claude:3 | drop | Not accepted | report |
| #35071 | Resume checkpoint can be saved without the block index it lets the next run skipsrc/node/blockstorage.cpp:1349adversarial_claude:1 | publish | Accepted, shared | report |
| #35071 | Reindex completion is synced to disk before the scanned block index is writtensrc/node/blockstorage.cpp:1355adversarial_claude:2 | publish | Accepted, shared | report |
| #35071 | Interrupted-reindex test depends on the stop arriving before the last file is scannedtest/functional/feature_reindex.py:128adversarial_claude:3 | publish | Accepted, shared | report |
| #35071 | Resume test never restores a non-empty orphan maptest/functional/feature_reindex.py:106adversarial_claude:4 | publish | Accepted, shared | report |
| #36521 | Witness enumeration through the kernel API becomes quadraticsrc/kernel/bitcoinkernel.cpp:892adversarial_claude:1 | publish | Accepted, shared | report |
| #36521 | Script verification copies the witness before determining whether it is neededsrc/script/interpreter.cpp:1933adversarial_claude:2 | publish | Accepted, shared | report |
| #36521 | `SpanReader::Remaining()` has no use beyond its testsrc/streams.h:104adversarial_claude:3 | publish | Accepted, sole | report |
| #36122 | CISA spends are relayed on networks where consensus leaves v2 outputs anyone-can-spendsrc/policy/policy.h:133adversarial_claude:1 | publish | Accepted, sole | report |
| #36122 | PSBT completion accepts CISA aggregate witnesses without verifying themsrc/psbt.cpp:938adversarial_claude:2 | publish | Accepted, shared | report |
| #36122 | `descriptorprocesspsbt` cannot retain fullagg secret noncessrc/rpc/rawtransaction.cpp:2157adversarial_claude:3 | publish | Accepted, shared | report |
| #36122 | Mempool acceptance verifies each aggregate signature twicesrc/validation.cpp:2133adversarial_claude:4 | publish | Accepted, sole | report |
| #36477 | Resolved transactions overstate remaining send attemptssrc/private_broadcast.cpp:195adversarial_claude:1 | publish | Accepted, shared | report |
| #36477 | Re-adding an exhausted transaction can silently schedule no sendssrc/private_broadcast.cpp:27adversarial_claude:2 | publish | Accepted, sole | report |
| #36477 | Documentation omits eviction of exhausted, never-echoed transactionssrc/private_broadcast.h:47adversarial_claude:3 | publish | Accepted, sole | report |
| #36477 | Receive-metadata tests do not check which peer and time are retainedtest/functional/p2p_private_broadcast.py:323adversarial_claude:4 | publish | Accepted, sole | report |
| #36477 | Keeping finished entries makes per-node linear scans cover the full historysrc/private_broadcast.h:47adversarial_claude:5 | drop | Not accepted | report |
| #36607 | Peers can still request suppressed transactions from the mempoolsrc/net_processing.cpp:2494adversarial_claude:1 | publish | Accepted, sole | report |
| #36607 | A local resubmission can stop retries without announcing the transactionsrc/net_processing.cpp:2491adversarial_claude:2 | publish | Accepted, shared | report |
| #36607 | The guard does not suppress announcements of same-txid witness variantssrc/private_broadcast.cpp:89adversarial_claude:3 | publish | Accepted, shared | report |
| #35994 | BuildSpendingTransaction drops the supplied script witnesssrc/test/util/transaction_utils.cpp:33adversarial_claude:1 | publish | Accepted, shared | report |
| #35994 | Compound assignments are rewritten as plain assignmentscontrib/devtools/bitcoin-tidy/combine-assignments.cpp:72adversarial_claude:2 | publish | Accepted, shared | report |
| #35994 | The fix-it can change side effects, dependencies, and repeated assignmentscontrib/devtools/bitcoin-tidy/combine-assignments.cpp:169adversarial_claude:3 | publish | Accepted, shared | report |
| #35994 | The new check makes tidy CI fail on an unconverted test filecontrib/devtools/bitcoin-tidy/bitcoin-tidy.cpp:15adversarial_claude:4 | publish | Accepted, sole | report |
| #35994 | The fix-it deletes comments between combined statementscontrib/devtools/bitcoin-tidy/combine-assignments.cpp:174adversarial_claude:5 | publish | Accepted, shared | report |
| #35994 | Annotations reach ordinary Clang builds of hot transaction fieldssrc/attributes.h:29adversarial_claude:6 | publish | Accepted, sole | report |
| #35994 | Whole-object assignment may conflict with the stated goal of immutable typescontrib/devtools/bitcoin-tidy/combine-assignments.cpp:172adversarial_claude:7 | drop | Not accepted | report |
| #34400 | Parallel read-ahead uses a stale still_active flag, so blocks already reorged out can be scannedsrc/wallet/scan.cpp:669adversarial_claude:1 | drop | Not accepted | report |
| #34400 | Skipped blocks can carry a scan past the wallet tipsrc/wallet/scan.cpp:652adversarial_claude:2 | publish | Accepted, sole | report |
| #34400 | Rescan cancellation waits for the current batch to finishsrc/wallet/scan.cpp:663adversarial_claude:3 | publish | Accepted, shared | report |
| #34400 | A mocked clock can prevent parallel rescan work from being submittedsrc/wallet/scan.cpp:353adversarial_claude:4 | publish | Accepted, sole | report |
| #36696 | ToVector moves elements from caller-owned containers through temporary viewssrc/util/vector.h:31adversarial_claude:1 | publish | Accepted, sole | report |
| #36696 | The anti-aliasing rationale for copying elements is not a CTransaction invariant: the refactored CMutableTransaction&& path still moves the containersrc/primitives/transaction.cpp:109adversarial_claude:2 | drop | Not accepted | report |
| #36696 | CTxIn copies witnesses even when callers pass rvaluessrc/primitives/transaction.cpp:26adversarial_claude:3 | publish | Accepted, shared | report |
| #36696 | util/vector.h omits direct includes for range and concept facilitiessrc/util/vector.h:20adversarial_claude:4 | publish | Accepted, shared | report |
| #35229 | A concurrent chain change makes `scanblocks` report an internal bugsrc/rpc/blockchain.cpp:2719adversarial_claude:1 | publish | Accepted, sole | report |
| #35229 | Historical-range pointers lose their only explicit non-null checksrc/net_processing.cpp:6550adversarial_claude:2 | drop | Not accepted | report |
| #35286 | Test mode skips the post-acceptance trim, so a "success" result can be "mempool full" on real submissionsrc/validation.cpp:1755adversarial_claude:1 | unresolved | Not accepted | report |
| #35286 | The CPFP preflight is outside package validationsrc/rpc/mempool.cpp:1716adversarial_claude:2 | publish | Accepted, shared | report |
| #35286 | The parameter documentation contradicts an assertionsrc/validation.h:283adversarial_claude:3 | publish | Accepted, sole | report |
| #35286 | The constructor comment contradicts the sibling-eviction invariantsrc/validation.cpp:574adversarial_claude:4 | publish | Accepted, sole | report |
| #35286 | The new test-accept package mode lacks fuzz and unit coveragesrc/validation.cpp:1846adversarial_claude:5 | publish | Accepted, sole | report |
| #35558 | Compact-block nonces draw from the global RNG on worker threadssrc/net_processing.cpp:2272adversarial_claude:1 | publish | Accepted, sole | report |
| #35558 | The TCP window check measures the local proxy connection, not the peer pathsrc/net.cpp:4251adversarial_claude:2 | publish | Accepted, shared | report |
| #35558 | Queued-byte estimates omit data on FreeBSD, OpenBSD, and Windowssrc/util/sock.cpp:121adversarial_claude:3 | publish | Accepted, shared | report |
| #35558 | Expected TCP_INFO failures produce warning- and error-level logssrc/util/sock.h:371adversarial_claude:4 | publish | Accepted, sole | report |
| #35558 | Deterministic tests do not cover prefill candidates or window selectionsrc/net_processing.cpp:2348adversarial_claude:5 | publish | Accepted, shared | report |
| #35558 | The compact-block getdata path updates pindexBestHeaderSentsrc/net_processing.cpp:2392adversarial_claude:6 | publish | Accepted, sole | report |
| #36688 | An urgent pointer ahead of received data can keep `select()` reporting an exceptionsrc/netbase.cpp:573adversarial_claude:1 | publish | Accepted, sole | report |
| #36688 | Inbound sockets get SO_OOBINLINE only by inheriting it from the listener, unlike the explicit TCP_NODELAY re-applicationsrc/netbase.cpp:575adversarial_claude:2 | drop | Not accepted | report |
| #36629 | Rows left over from a block that is no longer active are read against the new block at that heightsrc/index/txoscriptindex.cpp:155adversarial_claude:1 | unresolved | Not accepted | report |
| #36629 | A stale spender-index row can make an asof query report the wrong spentnesssrc/rpc/blockchain.cpp:4097adversarial_claude:2 | publish | Accepted, sole | report |
| #36629 | cs_main is held for one uncached coins lookup per matching outputsrc/rpc/blockchain.cpp:4009adversarial_claude:3 | drop | Not accepted | report |
| #36629 | Every call scans the whole mempool under pool->cs, with a SHA256 per output for scripthash queriessrc/rpc/blockchain.cpp:4022adversarial_claude:4 | drop | Not accepted | report |
| #36628 | SOCKS5 handshake failures are silently dropped for all functional teststest/functional/test_framework/socks5.py:164adversarial_claude:1 | publish | Accepted, sole | report |
| #36594 | Test header omits the per-call limit on orphan reconsiderationsrc/test/denialofservice_tests.cpp:540adversarial_claude:1 | publish | Accepted, sole | report |
| #36542 | Retry test never successfully loads over a leftover snapshot directorytest/functional/feature_assumeutxo.py:221adversarial_claude:1 | publish | Accepted, sole | report |
| #36542 | Startup warning omits how to remove a leftover snapshot directorysrc/node/utxo_snapshot.cpp:60adversarial_claude:2 | publish | Accepted, sole | report |
| #36434 | `reset_conn()` drops the configured socket timeouttest/functional/interface_http.py:48adversarial_claude:1 | publish | Accepted, shared | report |
| #36434 | Startup replaces an existing live Unix RPC socketsrc/netbase.cpp:801adversarial_claude:2 | publish | Accepted, shared | report |
| #36434 | Unix RPC sockets cannot grant group accesssrc/httpserver.cpp:840adversarial_claude:3 | publish | Accepted, sole | report |
| #36434 | The negative log assertion cannot match, and the tests do not check socket permissionstest/functional/rpc_bind.py:242adversarial_claude:4 | publish | Accepted, sole | report |
| #36434 | Connection errors can report an address `bitcoin-cli` did not trysrc/bitcoin-cli.cpp:1296adversarial_claude:5 | publish | Accepted, shared | report |
| #35728 | A stale txindex row can make lookups fail until the index is rebuiltsrc/index/txindex.cpp:195adversarial_claude:1 | publish | Accepted, shared | report |
| #35728 | A corrupt txindex row can block an explicit-blockhash lookupsrc/node/transaction.cpp:164adversarial_claude:2 | publish | Accepted, sole | report |
| #35728 | The release note's “internal error” wording does not match the RPC error codedoc/release-notes-35728.md:4adversarial_claude:3 | publish | Accepted, sole | report |
| #35728 | `WarnAndThrowErr` has external linkage despite being used only in this filesrc/index/txindex.cpp:161adversarial_claude:4 | publish | Accepted, sole | report |
| #35642 | The attack budget uses in-memory header size instead of wire sizesrc/headerssync.cpp:579adversarial_claude:1 | publish | Accepted, sole | report |
| #35642 | The production-parameter wrapper lacks direct unit coveragesrc/test/headerssync_tests.cpp:236adversarial_claude:2 | publish | Accepted, sole | report |
| #35522 | Tx-inventory helper comments omit the required trickle-timer gatesrc/net_processing.cpp:853adversarial_claude:1 | publish | Accepted, sole | report |
| #35522 | Early-return helpers can have their results ignored without a warningsrc/net_processing.cpp:882adversarial_claude:2 | publish | Accepted, sole | report |
| #35511 | QAmount allows implicit raw-integer use at the GUI amount fieldsrc/qt/bitcoinamountfield.h:35adversarial_claude:1 | publish | Accepted, sole | report |
| #35511 | Explicit CAmount construction accepts unsigned values that wrapsrc/consensus/amount.h:36adversarial_claude:2 | publish | Accepted, shared | report |
| #35387 | Unknown categories in a `categories` object dereference an empty optionalsrc/rpc/node.cpp:273adversarial_claude:1 | publish | Accepted, shared | report |
| #35387 | A config-file global `loglevel` overrides per-category command-line levelssrc/init/common.cpp:85adversarial_claude:2 | publish | Accepted, sole | report |
| #35387 | The test fixture's `-loglevel=trace` re-enables logging in no-log and benchmark setupssrc/init/common.cpp:89adversarial_claude:3 | publish | Accepted, shared | report |
| #35387 | A global `-loglevel` broadens an existing `-debug=<category>` allowlistsrc/init/common.cpp:86adversarial_claude:4 | publish | Accepted, sole | report |
| #35387 | The `libevent` examples for the `loglevel` RPC are rejecteddoc/release-notes-35387.md:25adversarial_claude:5 | publish | Accepted, shared | report |
| #35387 | The `all:<level>` forms apply the default threshold instead of the requested levelsrc/init/common.cpp:97adversarial_claude:6 | publish | Accepted, sole | report |
| #35387 | Runtime trace changes do not update existing SQLite and IPC trace sourcessrc/rpc/node.cpp:204adversarial_claude:7 | publish | Accepted, shared | report |
| #35377 | Odd-parity x-only Taproot keys are not matched to wallet-held private keyssrc/wallet/imports.cpp:149adversarial_claude:1 | publish | Accepted, shared | report |
| #35377 | MuSig missing-participant-key warnings are no longer coveredtest/functional/wallet_importdescriptors.py:296adversarial_claude:2 | publish | Accepted, sole | report |
| #35377 | MuSig participants change `gethdkeys` results and HD-key defaultingsrc/script/descriptor.cpp:1117adversarial_claude:3 | publish | Accepted, sole | report |
| #35377 | Descriptors become mutable in place; ID and canonical-hash consistency now depend on callerssrc/script/descriptor.cpp:878adversarial_claude:4 | drop | Not accepted | report |
| #35377 | Batch imports repeatedly copy and decrypt wallet root keyssrc/wallet/imports.cpp:124adversarial_claude:5 | publish | Accepted, shared | report |
| #35377 | `SubstituteMasterExtPubs` comment misstates what the function doessrc/script/descriptor.h:215adversarial_claude:6 | publish | Accepted, sole | report |
| #35355 | MakeNoLogFileContext leaves debug and trace logging on for all categoriessrc/test/util/setup_common.cpp:167adversarial_claude:1 | publish | Accepted, shared | report |
| #35355 | Kernel log masks can be left stale when SetMinLevel races with connection create/destroysrc/kernel/bitcoinkernel.cpp:548adversarial_claude:2 | publish | Accepted, shared | report |
| #35355 | `logging` include/debug now removes trace logging from categories that were at tracesrc/rpc/node.cpp:279adversarial_claude:3 | publish | Accepted, sole | report |
| #35355 | Concurrent logging RPC updates can leave a category traced but not debug-loggedsrc/logging.cpp:565adversarial_claude:4 | publish | Accepted, shared | report |
| #35355 | Release note says wallet SQL is the only supported trace loggingdoc/release-notes-34038.md:4adversarial_claude:5 | publish | Accepted, shared | report |
| #35307 | The restart in the new test masks the missing-cursor failuretest/functional/feature_assumeutxo.py:242adversarial_claude:1 | publish | Accepted, shared | report |
| #35307 | Snapshot activation can leave the ASSUMED blockfile cursor unsetsrc/node/blockstorage.cpp:801adversarial_claude:2 | publish | Accepted, shared | report |
| #35307 | Loading the block index can duplicate an unlinked base entrysrc/node/blockstorage.cpp:500adversarial_claude:3 | publish | Accepted, sole | report |
| #35302 | bumpfee can direct change to an address-less scriptsrc/wallet/feebumper.cpp:328adversarial_claude:1 | publish | Accepted, sole | report |
| #35302 | Silent-payments fallback can bypass avoid-partial-spends groupingsrc/wallet/spend.cpp:1020adversarial_claude:2 | publish | Accepted, shared | report |
| #35302 | Fee-bump behavior for relearned silent-payments transactions is unclearsrc/wallet/feebumper.cpp:263adversarial_claude:3 | publish | Accepted, shared | report |
| #35302 | Placeholder replacement metadata affects wallet behavior after downgradesrc/wallet/transaction.h:304adversarial_claude:4 | publish | Accepted, sole | report |
| #35302 | A silent payments recipient without m_silent_payments set crashes the node instead of returning an errorsrc/wallet/spend.cpp:1513adversarial_claude:5 | drop | Not accepted | report |
| #35302 | Silent-payments RPC behavior and address validation are undocumentedsrc/rpc/output_script.cpp:81adversarial_claude:6 | publish | Accepted, shared | report |
| #34132 | Startup database corruption aborts before reindex recovery is offeredsrc/dbwrapper.cpp:358adversarial_claude:1 | publish | Accepted, shared | report |
| #34132 | Kernel database read failures abort without notifying the hostsrc/kernel/chainstatemanager_opts.h:47adversarial_claude:2 | publish | Accepted, shared | report |
| #34132 | Corruption in an optional index can now be used by peers to crash the node repeatedlysrc/init.cpp:2018adversarial_claude:3 | drop | Not accepted | report |
| #34132 | Read-error test accepts the old RPC error pathtest/functional/feature_coinsdb_read_error.py:43adversarial_claude:4 | publish | Accepted, sole | report |
| #32575 | Block validation duplicates script-check constructionsrc/validation.cpp:2604adversarial_claude:1 | publish | Accepted, sole | report |
| #32575 | No regression test covers cache writes from TestBlockValiditysrc/validation.cpp:2642adversarial_claude:2 | publish | Accepted, shared | report |
| #32575 | The cache lookup comment omits its erase-on-hit behaviorsrc/validation.cpp:2071adversarial_claude:3 | publish | Accepted, sole | report |
| #32575 | The cache lookup comment omits its erase-on-hit behaviorsrc/validation.cpp:2071adversarial_claude:4 | publish | Accepted, sole | report |
| #32575 | p2p_segwit -par=1 comment is outdated now that HasThreads is gonesrc/validation.cpp:2533adversarial_claude:5 | drop | Not accepted | report |
| #35570 | Fatal errors overwrite the original block-validation reasonsrc/validation.cpp:2323adversarial_claude:1 | publish | Accepted, sole | report |
| #35570 | Peer-reachable hard asserts protect a contract that net_processing already handles gracefullysrc/validation.cpp:4277adversarial_claude:2 | drop | Not accepted | report |
| #35570 | Commit message inaccurately describes a kernel C API changesrc/kernel/bitcoinkernel.cpp:1437adversarial_claude:3 | publish | Accepted, sole | report |
| #35671 | A null-coinbase template can approve transactions that do not fit with the real coinbasesrc/interfaces/mining.h:167adversarial_claude:1 | publish | Accepted, sole | report |
| #35671 | The new test-framework constant and helper parameter are unusedtest/functional/test_framework/messages.py:40adversarial_claude:2 | publish | Accepted, sole | report |
| #36525 | Fee getter documentation omits prioritisation deltassrc/interfaces/mining.h:50adversarial_claude:1 | publish | Accepted, sole | report |
| #35728 | Persistent stale-row errors do not explain how to rebuild the txindexsrc/index/txindex.cpp:195adversarial_claude:1 | publish | Accepted, sole | report |
| #35728 | An unusable txindex row can prevent an explicit-block lookupsrc/node/transaction.cpp:164adversarial_claude:2 | publish | Accepted, shared | report |
| #35728 | The release note misstates the RPC error codedoc/release-notes-35728.md:4adversarial_claude:3 | publish | Accepted, sole | report |
| #35728 | Header documentation omits the new exceptionssrc/node/transaction.cpp:165adversarial_claude:4 | publish | Accepted, shared | report |
| #36124 | TryReadRequestInternal() has no documented or checked preconditions, and the old ReadRequest contract was droppedsrc/httpserver.h:552adversarial_claude:1 | drop | Not accepted | report |
| #35763 | The temporary JSON file is renamed into place without being synced to disksrc/common/settings.cpp:153adversarial_claude:1 | publish | Accepted, shared | report |
| #35763 | The helper name does not match the name promised in the PR descriptionsrc/common/settings.h:48adversarial_claude:2 | publish | Accepted, sole | report |
| #35763 | Test requires a stale .tmp to remain after a failed writesrc/test/banman_tests.cpp:73adversarial_claude:3 | drop | Not accepted | report |
| #35763 | The directory-iterator variable shadows the test's `CBanEntry` variablesrc/test/banman_tests.cpp:75adversarial_claude:4 | publish | Accepted, sole | report |
| #35786 | Spent parents are still marked dirty on spend in avoid_reuse wallets, via MarkDestinationsDirtysrc/wallet/wallet.cpp:1059adversarial_claude:1 | drop | Not accepted | report |
| #35786 | Keypool top-up can leave a parent’s cached credit stalesrc/wallet/wallet.cpp:1418adversarial_claude:2 | publish | Accepted, sole | report |
| #35786 | SyncTransaction is now a pure pass-throughsrc/wallet/wallet.cpp:1397adversarial_claude:3 | drop | Not accepted | report |
| #35788 | A negative spent-output amount aborts `bitcoin-util`src/bitcoin-util.cpp:378adversarial_claude:1 | publish | Accepted, shared | report |
| #35788 | Even-length decimal script tokens are interpreted as raw hexsrc/bitcoin-util.cpp:312adversarial_claude:2 | publish | Accepted, shared | report |
| #35788 | Tapscript budget omits the control block and annexsrc/bitcoin-util.cpp:414adversarial_claude:3 | publish | Accepted, shared | report |
| #35788 | Base mode accepts initial stack elements that scriptSig cannot producesrc/bitcoin-util.cpp:447adversarial_claude:4 | publish | Accepted, sole | report |
| #35788 | Base-mode sigop cost overstates P2SH redeem-script countssrc/bitcoin-util.cpp:484adversarial_claude:5 | publish | Accepted, sole | report |
| #35788 | Options for other commands and ignored `evalscript` arguments are accepted silentlysrc/bitcoin-util.cpp:64adversarial_claude:6 | publish | Accepted, sole | report |
| #35788 | Transaction-checker tests do not cover tapscript or witness_v0src/bitcoin-util.cpp:381adversarial_claude:7 | publish | Accepted, sole | report |
| #35793 | BIP54 sigops rejections no longer cache the txidsrc/consensus/tx_verify.cpp:205adversarial_claude:1 | publish | Accepted, sole | report |
| #35793 | No release note covers BIP54's regtest and mempool changessrc/kernel/chainparams.cpp:639adversarial_claude:2 | publish | Accepted, sole | report |
| #35793 | The Taproot vector generator no longer reproduces the published BIP341 wallet vectorstest/functional/feature_taproot.py:1668adversarial_claude:3 | publish | Accepted, sole | report |
| #36494 | Explicit null options fail after coin selection and signingsrc/wallet/rpc/spend.cpp:1405adversarial_claude:1 | publish | Accepted, sole | report |
| #36494 | Dropping PreventOutdatedOptions removes the migration hints and changes the error code for legacy camelCase keyssrc/wallet/rpc/spend.cpp:1387adversarial_claude:2 | drop | Not accepted | report |
| #36494 | Tests do not pin option checking before fee-argument mergingtest/functional/wallet_sendall.py:288adversarial_claude:3 | publish | Accepted, sole | report |
| #36494 | The new allowlist still accepts `solving_data`, which sendall never readssrc/wallet/rpc/spend.cpp:1403adversarial_claude:4 | drop | Not accepted | report |
| #35820 | Assumevalid test does not pin the exact two-week thresholdtest/functional/feature_assumevalid.py:190adversarial_claude:1 | publish | Accepted, sole | report |
| #36325 | Key matching calls derivehdkey with paths the RPC rejectscontrib/multisig/wizard.py:274adversarial_claude:1 | publish | Accepted, shared | report |
| #36325 | Repeated keys are counted as separate multisig cosignerscontrib/multisig/wizard.py:201adversarial_claude:2 | publish | Accepted, shared | report |
| #36325 | Importing a second multisig makes it active and redirects changecontrib/multisig/wizard.py:345adversarial_claude:3 | publish | Accepted, sole | report |
| #36325 | The account parameter derives from a new seed on every callcontrib/multisig/wizard.py:51adversarial_claude:4 | publish | Accepted, sole | report |
| #36325 | Importing with timestamp "now" can hide payments made before importcontrib/multisig/wizard.py:345adversarial_claude:5 | publish | Accepted, shared | report |
| #36325 | verify() fetches private keys it does not usecontrib/multisig/wizard.py:277adversarial_claude:6 | publish | Accepted, sole | report |
| #36325 | Origin-tagged raw public keys pass validation but cannot be rangedcontrib/multisig/wizard.py:81adversarial_claude:7 | publish | Accepted, shared | report |
| #36325 | The NUMS xpub check rejects derived and test-network formscontrib/multisig/wizard.py:247adversarial_claude:8 | publish | Accepted, shared | report |
| #36628 | A valid IPv4-only configuration can be rejected despite having a Tor proxysrc/init.cpp:2450adversarial_claude:1 | publish | Accepted, sole | report |
| #36628 | Queued jobs are never checked again before they start, so a deep queue can send stale or superseded transactions days latersrc/node/privbcast.cpp:354adversarial_claude:2 | drop | Not accepted | report |
| #35855 | RISC-V Guix builds pass an empty argument to CMakecontrib/guix/libexec/build_linux.sh:65adversarial_claude:1 | publish | Accepted, sole | report |
| #35855 | Confirm CMAKE_LINK_WARNING_AS_ERROR really adds --fatal-warnings for these cross linkerscontrib/guix/libexec/build_linux.sh:42adversarial_claude:2 | drop | Not accepted | report |
| #35855 | The Windows GUI build still uses the old fatal-link-warning flagcontrib/guix/libexec/build_win.sh:53adversarial_claude:3 | publish | Accepted, shared | report |
| #35855 | Unpinned upstream osslsigncode must be ≥2.14, but nothing records thatcontrib/guix/manifest_codesign.scm:183adversarial_claude:4 | drop | Not accepted | report |
| #35855 | The pinned Guix commit differs from the revision describedcontrib/guix/libexec/prelude.bash:74adversarial_claude:5 | publish | Accepted, sole | report |
| #35918 | ParsePubkey applies taproot rules to keys intended for P2WSHsrc/script/descriptor.cpp:2920adversarial_claude:1 | publish | Accepted, sole | report |
| #35918 | HavePrivateKeys() misses partially private musig() expressionssrc/script/descriptor.h:171adversarial_claude:2 | publish | Accepted, sole | report |
| #36629 | Stale script-index rows survive a restart and are read against the wrong blocksrc/index/txoscriptindex.cpp:81adversarial_claude:1 | publish | Accepted, shared | report |
| #36629 | A spender after the asof block is re-read once for each matched output it spendssrc/rpc/blockchain.cpp:4095adversarial_claude:2 | publish | Accepted, shared | report |
| #36629 | Spentness check holds cs_main for one UTXO lookup per matched outputsrc/rpc/blockchain.cpp:4007adversarial_claude:3 | publish | Accepted, sole | report |
| #36629 | Verbosity-2 block and undo reads are not charged to the lookup budgetsrc/rpc/blockchain.cpp:4148adversarial_claude:4 | publish | Accepted, shared | report |
| #36000 | bitcoinkernel C API users cannot turn off or resize the new block read-ahead threadssrc/kernel/chainstatemanager_opts.h:56adversarial_claude:1 | drop | Not accepted | report |
| #36002 | A readable stale copy masks the pruned active-chain blocksrc/index/txindex.cpp:223adversarial_claude:1 | publish | Accepted, sole | report |
| #36015 | Cheap parent variants repeatedly deserialize the same missing-input orphansrc/node/txdownloadman_impl.cpp:321adversarial_claude:1 | publish | Accepted, shared | report |
| #36015 | The orphan RPC rebuilds every transaction while holding the download mutexsrc/node/txorphanage.cpp:783adversarial_claude:2 | publish | Accepted, shared | report |
| #36015 | The test comment misstates the orphanage usage metricsrc/test/orphanage_tests.cpp:113adversarial_claude:3 | publish | Accepted, sole | report |
| #36033 | Two CI jobs use compilers that cannot build the treeCMakeLists.txt:84adversarial_claude:1 | publish | Accepted, shared | report |
| #36033 | The Cap'n Proto and Clang incompatibility check is skipped in C++23 modeCMakeLists.txt:84adversarial_claude:2 | publish | Accepted, shared | report |
| #36033 | The std::expected alias removes always-on wrong-state access checkssrc/util/expected.h:14adversarial_claude:3 | publish | Accepted, sole | report |
| #36042 | The NetBSD build guide selects a GCC version below the new minimumdoc/dependencies.md:14adversarial_claude:1 | publish | Accepted, sole | report |
| #36042 | The format check misidentifies a missing standard-library feature as an old compilercmake/module/CheckCXXFeatures.cmake:52adversarial_claude:2 | publish | Accepted, shared | report |
| #36042 | Moving the Ubuntu 22.04 job removes CI coverage of the documented CMake and Python minimumsci/test/00_setup_env_native_previous_releases.sh:9adversarial_claude:3 | publish | Accepted, sole | report |
| #36042 | NetBSD job is removed from GHA in the same PR that adds new NetBSD CI logic, so that logic never runs in CIci/test/00_setup_env_netbsd_cross.sh:17adversarial_claude:4 | drop | Not accepted | report |
| #36042 | PR approves std::format for new code but records no in-tree guidance next to the tinyformat conventionssrc/bench/wallet_migration.cpp:77adversarial_claude:5 | drop | Not accepted | report |
| #36060 | Exception-symbol probe likely rejects older Cap'n Proto releases that are still supportedcmake/module/CheckKjExceptions.cmake:110adversarial_claude:1 | unresolved | Not accepted | report |
| #36060 | External libmultiprocess builds leave Core IPC targets on KJ autodetectionsrc/ipc/CMakeLists.txt:65adversarial_claude:2 | publish | Accepted, shared | report |
| #36060 | Per-target PRIVATE defines depend on every target that includes mp/kj headers remembering to add themcmake/libmultiprocess.cmake:22adversarial_claude:3 | drop | Not accepted | report |
| #36060 | The in-tree KJ probe re-resolves libkj instead of using IPC's Cap'n Proto targetcmake/libmultiprocess.cmake:13adversarial_claude:4 | publish | Accepted, shared | report |
| #36060 | Cached probe results undo the reconfigure protection the NO_CACHE comment claimscmake/module/CheckKjExceptions.cmake:24adversarial_claude:5 | drop | Not accepted | report |
| #36434 | `BitcoinHTTPConnection.reset_conn()` drops the configured timeouttest/functional/interface_http.py:48adversarial_claude:1 | publish | Accepted, shared | report |
| #36434 | Startup can replace another node’s live Unix RPC socketsrc/netbase.cpp:801adversarial_claude:2 | publish | Accepted, shared | report |
| #36434 | Unix RPC sockets cannot grant group accesssrc/httpserver.cpp:835adversarial_claude:3 | publish | Accepted, sole | report |
| #36434 | The negative log check in `rpc_bind.py` cannot matchtest/functional/rpc_bind.py:242adversarial_claude:4 | publish | Accepted, sole | report |
| #36434 | --httpunix adds -rpcbind=unix to previous-release nodes that don't support ittest/functional/test_framework/test_node.py:175adversarial_claude:5 | drop | Not accepted | report |
| #36434 | Release notes overstate when a non-socket path stops startupdoc/release-notes-36434.md:20adversarial_claude:6 | publish | Accepted, sole | report |
| #36434 | `SocketAddr::GetHost()` is unused and returns an invalid IPv6 Host valuesrc/netbase.h:228adversarial_claude:7 | publish | Accepted, sole | report |
| #36548 | Signet serving adds a redundant solution check and caller preconditionsrc/node/blockstorage.cpp:1158adversarial_claude:1 | publish | Accepted, sole | report |
| #36356 | The PR description names a method that does not existsrc/node/block_template_manager.h:77adversarial_claude:1 | publish | Accepted, sole | report |
| #36677 | Custom open()/fdopen() fallback covers every non-Linux POSIX libc, but CI only runs it on macOSsrc/util/fs.cpp:32adversarial_claude:1 | drop | Not accepted | report |
| #36677 | The new test does not cover exclusive-create or append semanticssrc/test/fs_tests.cpp:153adversarial_claude:2 | publish | Accepted, shared | report |
| #36677 | FileLock in the same file still opens the long-lived .lock fd without O_CLOEXECsrc/util/fs.cpp:86adversarial_claude:3 | drop | Not accepted | report |
| #35714 | Flush failure leaves the coins tip ahead of the active chainsrc/validation.cpp:2784adversarial_claude:1 | publish | Accepted, sole | report |
| #35714 | A flush failure during pruning drops the prune set after the in-memory pruning has already been applied, so the files are never deletedsrc/validation.cpp:2784adversarial_claude:2 | drop | Not accepted | report |
| #35714 | Flush failure leaves the coins tip ahead of the active chainsrc/validation.cpp:2784adversarial_claude:3 | publish | Accepted, sole | report |
| #36434 | `BitcoinHTTPConnection.reset_conn()` drops the configured timeouttest/functional/interface_http.py:48adversarial_claude:1 | publish | Accepted, shared | report |
| #36434 | Startup can replace an active Unix RPC socketsrc/netbase.cpp:801adversarial_claude:2 | publish | Accepted, shared | report |
| #36434 | Unix RPC sockets cannot grant group accesssrc/httpserver.cpp:840adversarial_claude:3 | publish | Accepted, sole | report |
| #36434 | The negative log check in `rpc_bind.py` cannot matchtest/functional/rpc_bind.py:242adversarial_claude:4 | publish | Accepted, sole | report |
| #36434 | Connection error can name an address that `bitcoin-cli` never triedsrc/bitcoin-cli.cpp:1296adversarial_claude:5 | publish | Accepted, sole | report |
| #36124 | TryReadRequestInternal() has no docstring, and its m_req precondition is uncheckedsrc/httpserver.h:549adversarial_claude:1 | drop | Not accepted | report |
| #36114 | Already-finalized inputs cause external-signer requests to failsrc/external_signer.cpp:170adversarial_claude:1 | publish | Accepted, shared | report |
| #36114 | Unsafe-sighash check also flags other participants' signatures and declarationssrc/external_signer.cpp:175adversarial_claude:2 | drop | Not accepted | report |
| #36114 | PSBTv2 responses can change an omitted input sequencesrc/external_signer.cpp:181adversarial_claude:3 | publish | Accepted, shared | report |
| #36677 | The unconditional `<cstring>` include fails IWYU on Linuxsrc/util/fs.cpp:11adversarial_claude:1 | publish | Accepted, sole | report |
| #36677 | A hand-written copy of fopen's mode parsing is compiled only on macOS/BSD, so most CI never runs itsrc/util/fs.cpp:33adversarial_claude:2 | drop | Not accepted | report |
| #36677 | The test does not cover key fopen mode semantics on macOS and BSDsrc/test/fs_tests.cpp:153adversarial_claude:3 | publish | Accepted, shared | report |
| #36677 | The PR does not state what problem it fixes; other long-lived inheritable descriptors remainsrc/util/fs.cpp:26adversarial_claude:4 | drop | Not accepted | report |
| #36677 | Fixup commits leave the history non-bisectable and messages describe superseded codesrc/util/fs.cpp:26adversarial_claude:5 | publish | Accepted, sole | report |
| #36677 | New code has formatting inconsistencies and an unused test includesrc/util/fs.cpp:37adversarial_claude:6 | publish | Accepted, sole | report |
| #36122 | Witness-v2 spends are standard on networks where CISA is inactivesrc/policy/policy.h:133adversarial_claude:1 | publish | Accepted, sole | report |
| #36122 | PSBT completion accepts unverified CISA aggregate witnessessrc/psbt.cpp:938adversarial_claude:2 | publish | Accepted, shared | report |
| #36122 | Aggregate signatures are verified serially in one check-queue jobsrc/validation.cpp:2134adversarial_claude:3 | publish | Accepted, sole | report |
| #36122 | Mempool acceptance verifies each aggregate signature twicesrc/validation.cpp:2133adversarial_claude:4 | publish | Accepted, sole | report |
| #36122 | `descriptorprocesspsbt` cannot retain fullagg secret noncessrc/rpc/rawtransaction.cpp:2157adversarial_claude:5 | publish | Accepted, shared | report |
| #35731 | A block-file flush error leaves the coins tip ahead of the active chainsrc/validation.cpp:2797adversarial_claude:1 | publish | Accepted, shared | report |
| #35731 | The flush-error notification guarantee covers only file-sequence flush failuressrc/node/blockstorage.cpp:750adversarial_claude:2 | publish | Accepted, sole | report |
| #35731 | Undo-failure test builds the rev path by string manipulation instead of asking BlockManagersrc/test/blockmanager_tests.cpp:397adversarial_claude:3 | drop | Not accepted | report |
| #36688 | Urgent pointers ahead of received data can still cause a busy loopsrc/netbase.cpp:573adversarial_claude:1 | publish | Accepted, sole | report |
| #36688 | Urgent-data test does not check that the pending state clearssrc/test/netbase_tests.cpp:658adversarial_claude:2 | publish | Accepted, sole | report |
| #36434 | Startup unlinks an active RPC socket instead of reporting a conflictsrc/netbase.cpp:801adversarial_claude:1 | publish | Accepted, shared | report |
| #36434 | Unix RPC socket cannot grant group accesssrc/httpserver.cpp:842adversarial_claude:2 | publish | Accepted, sole | report |
| #36434 | Release notes overstate when a non-socket path prevents startupdoc/release-notes-36434.md:21adversarial_claude:3 | publish | Accepted, shared | report |
| #36434 | Negative log check in `rpc_bind.py` never matchestest/functional/rpc_bind.py:242adversarial_claude:4 | publish | Accepted, sole | report |
| #36434 | Unix peer-path filter depends on plain `char` signednesssrc/netbase.cpp:736adversarial_claude:5 | publish | Accepted, sole | report |
| #36188 | ECC context creation races with SHA256 dispatch updatessrc/ecc_context.cpp:32adversarial_claude:1 | publish | Accepted, shared | report |
| #36188 | Signature verification now reads a caller-managed global, but libbitcoinkernel never creates onesrc/ecc_context.cpp:22adversarial_claude:2 | drop | Not accepted | report |
| #36648 | Parse errors do not identify which key or descriptor failedsrc/script/descriptor.cpp:2007adversarial_claude:1 | publish | Accepted, sole | report |
| #36648 | Parse errors do not identify which key or descriptor failedsrc/script/descriptor.cpp:2007adversarial_claude:2 | publish | Accepted, sole | report |
| #36648 | Functional leak check only looks for a 4-character prefix and matches messages as substringstest/functional/rpc_getdescriptorinfo.py:71adversarial_claude:3 | drop | Not accepted | report |
| #36648 | The don't-quote-long-text rule exists in two places with separate copies of the limitsrc/util/bip32.cpp:34adversarial_claude:4 | drop | Not accepted | report |
| #36142 | A fake Tor endpoint can replace an existing onion key with a key it controlssrc/torcontrol.cpp:536adversarial_claude:1 | publish | Accepted, sole | report |
| #36142 | Malformed-cache warning omits the required restartsrc/torcontrol.cpp:575adversarial_claude:2 | publish | Accepted, sole | report |
| #36628 | The check that the proxy reaches Tor before any IPv4/IPv6 connection was removed; only RESOLVE support now gates clearnet connectionssrc/init.cpp:2046adversarial_claude:1 | drop | Not accepted | report |
| #36628 | The descriptor check rejects private broadcast on select() builds with `FD_SETSIZE` 256src/init.cpp:1182adversarial_claude:2 | publish | Accepted, sole | report |
| #36628 | The cap test assumes the first job stays running for the entire testtest/functional/p2p_private_broadcast_cap.py:54adversarial_claude:3 | publish | Accepted, sole | report |
| #35793 | BIP54 sigops rejections no longer cache the transaction IDsrc/consensus/tx_verify.cpp:205adversarial_claude:1 | publish | Accepted, shared | report |
| #35793 | Release notes omit BIP54's regtest and mempool behavior changessrc/kernel/chainparams.cpp:639adversarial_claude:2 | publish | Accepted, shared | report |
| #35793 | The end-to-end test does not exercise the coinbase nSequence (bad-cb-sequence) ruletest/functional/feature_bip54.py:409adversarial_claude:3 | drop | Not accepted | report |
| #35793 | Unused tx_verify include and library move remain after the policy check was removedsrc/policy/policy.cpp:13adversarial_claude:4 | publish | Accepted, sole | report |
| #33904 | REST results can differ from request ordersrc/rest.cpp:987adversarial_claude:1 | publish | Accepted, shared | report |
| #33904 | Successful responses omit a cache directivesrc/rest.cpp:1014adversarial_claude:2 | publish | Accepted, shared | report |
| #33904 | Duplicate outpoints with return_spending_tx multiply disk reads and response size on the unauthenticated interfacesrc/rest.cpp:920adversarial_claude:3 | drop | Not accepted | report |
| #33904 | Docs example blockhash is not a valid 64-character hex hashdoc/REST-interface.md:198adversarial_claude:4 | drop | Not accepted | report |
| #33904 | The new REST endpoint is missing a release notedoc/REST-interface.md:166adversarial_claude:5 | publish | Accepted, sole | report |
| #36677 | POSIX close-on-exec is not atomic with opening the filesrc/util/fs.cpp:26adversarial_claude:1 | publish | Accepted, shared | report |
| #36677 | Test only covers "wb", but Windows now appends "N" to every caller's mode stringsrc/test/fs_tests.cpp:153adversarial_claude:2 | drop | Not accepted | report |
| #36608 | Test acceptance pools replacement checks for a parent and childsrc/validation.cpp:1761adversarial_claude:1 | publish | Accepted, shared | report |
| #36608 | Private broadcast transport IDs overlap node peer IDs in debug logssrc/privbcast/job.cpp:270adversarial_claude:2 | publish | Accepted, sole | report |
| #36628 | The not-Tor proxy test relies on four exchanges finishing within 240 mstest/functional/p2p_private_broadcast_proxy.py:54adversarial_claude:1 | publish | Accepted, sole | report |
| #36628 | Queued jobs are never rechecked before they start, while starts are now serialized 35-55 s apart behind up to 10,000 queued jobssrc/node/privbcast.cpp:354adversarial_claude:2 | drop | Not accepted | report |
| #36124 | Document that callers of the now-public HTTPRequest::Load() must drop the bytes it consumedsrc/httpserver.h:170adversarial_claude:1 | drop | Not accepted | report |
| #33904 | Mixed mempool and index results do not preserve request ordersrc/rest.cpp:987adversarial_claude:1 | publish | Accepted, shared | report |
| #33904 | Successful responses omit `Cache-Control: no-store`src/rest.cpp:1014adversarial_claude:2 | publish | Accepted, shared | report |
| #33904 | An unavailable index returns 503 even when retrying cannot helpsrc/rest.cpp:994adversarial_claude:3 | publish | Accepted, sole | report |
| #33904 | An empty `mempool_only` parameter uses the default instead of returning 400src/rest.cpp:929adversarial_claude:4 | publish | Accepted, shared | report |
| #33904 | The 15-outpoint cap borrowed from getutxos does not limit response size when return_spending_tx=truesrc/rest.cpp:920adversarial_claude:5 | drop | Not accepted | report |
| #33904 | The new REST endpoint is missing a release notedoc/REST-interface.md:166adversarial_claude:6 | publish | Accepted, shared | report |
| #33904 | Example blockhash is not valid hexdoc/REST-interface.md:198adversarial_claude:7 | drop | Not accepted | report |
| #33904 | Mixed lookups return results out of request ordersrc/rest.cpp:986adversarial_claude:1 | publish | Accepted, shared | report |
| #33904 | Successful responses omit `Cache-Control: no-store`src/rest.cpp:1013adversarial_claude:2 | publish | Accepted, shared | report |
| #36167 | The new `-Wunused` flag is redundant; the effective change enables `-Wunused-parameter`CMakeLists.txt:483adversarial_claude:1 | publish | Accepted, sole | report |
| #36167 | Dead parameters remain in internal functions after being silencedsrc/init.cpp:909adversarial_claude:2 | publish | Accepted, sole | report |
| #36167 | Unnamed interface parameters make callback arguments harder to distinguishsrc/kernel/bitcoinkernel_wrapper.h:1124adversarial_claude:3 | publish | Accepted, sole | report |
| #36167 | `maxtries` and `psbt_version` now accept different integer rangessrc/rpc/mining.cpp:317adversarial_claude:4 | publish | Accepted, shared | report |
| #36167 | The alias test does not verify that the legacy name is rejectedsrc/test/rpc_tests.cpp:650adversarial_claude:5 | publish | Accepted, sole | report |
| #36167 | The leveldb edits bypass the subtree and can be replaced by a targeted warning suppressionsrc/leveldb/db/db_impl.cc:1062adversarial_claude:6 | publish | Accepted, sole | report |
| #36676 | Send timeouts are reported as generic send failuressrc/bitcoin-cli.cpp:917adversarial_claude:1 | publish | Accepted, sole | report |
| #36676 | No test covers the stalled-send timeout pathsrc/bitcoin-cli.cpp:917adversarial_claude:2 | publish | Accepted, shared | report |
| #36188 | Run SHA256 autodetection once per processsrc/ecc_context.cpp:32adversarial_claude:1 | publish | Accepted, sole | report |
| #36188 | Require a 32-byte seed for the signing contextsrc/ecc_context.cpp:47adversarial_claude:2 | publish | Accepted, sole | report |
| #36677 | Fix the syntax errors in the Windows test branchsrc/test/fs_tests.cpp:157adversarial_claude:1 | publish | Accepted, shared | report |
| #36677 | Set close-on-exec atomically or document the POSIX guarantee as best-effortsrc/util/fs.cpp:26adversarial_claude:2 | publish | Accepted, shared | report |
| #29843 | -acceptnonstdtxn now drops SCRIPT_VERIFY_CONST_SCRIPTCODE, a DoS guard rather than an upgrade hooksrc/validation.cpp:1140adversarial_claude:1 | drop | Not accepted | report |
| #29843 | Sync nodes between cross-node steps in `test_uncompressed_pubkey`test/functional/p2p_segwit.py:1478adversarial_claude:2 | publish | Accepted, shared | report |
| #29843 | Restore coverage of policy-before-consensus first-error reportingtest/functional/data/invalid_txs.py:287adversarial_claude:3 | publish | Accepted, sole | report |
| #36628 | Queue full, networking off and shutting down all return RPC_LIMIT_EXCEEDEDsrc/rpc/util.cpp:405adversarial_claude:1 | drop | Not accepted | report |
| #36477 | Count only remaining planned sends for resolved transactionssrc/private_broadcast.cpp:195adversarial_claude:1 | publish | Accepted, shared | report |
| #36477 | Test that eviction removes the oldest finished entrysrc/private_broadcast.cpp:49adversarial_claude:2 | publish | Accepted, shared | report |
| #36477 | Check the values in `received_by_us`, not only that its keys existtest/functional/p2p_private_broadcast.py:323adversarial_claude:3 | publish | Accepted, shared | report |
| #36477 | Update comments that say exhausted transactions stay trackedsrc/private_broadcast.h:47adversarial_claude:4 | publish | Accepted, sole | report |
| #35793 | BIP54 always active on regtest stops existing fuzz harnesses from mining valid blockssrc/kernel/chainparams.cpp:639adversarial_claude:1 | undisposed | Not accepted | report |
| #35793 | Reclassifying BIP54 sigops failures as TX_CONSENSUS stops their txid from entering the reject filtersrc/consensus/tx_verify.cpp:205adversarial_claude:2 | undisposed | Not accepted | report |
| #35793 | Regtest getblocktemplate now requires the 'consensuscleanup' rule, with no release notesrc/deploymentinfo.cpp:18adversarial_claude:3 | undisposed | Not accepted | report |
| #35793 | bip54_sigops fuzz target throws away the result, so it only detects crashessrc/test/fuzz/bip54.cpp:53adversarial_claude:4 | undisposed | Not accepted | report |
| #36343 | Handle invalid final fields in analyzepsbt role reportingsrc/psbt.cpp:814adversarial_claude:1 | publish | Accepted, sole | report |
| #36343 | Clarify how SignPSBTInput handles invalid final fieldssrc/psbt.cpp:812adversarial_claude:2 | publish | Accepted, sole | report |
| #36343 | Release note covers only finalizepsbt, but other callers of FinalizePSBT also changedoc/release-notes-36343.md:4adversarial_claude:3 | drop | Not accepted | report |
| #36677 | Windows branch of the new test does not compilesrc/test/fs_tests.cpp:159adversarial_claude:1 | undisposed | Not accepted | report |
| #36677 | FD_CLOEXEC is set after fopen, so a concurrent exec can still inherit the fdsrc/util/fs.cpp:27adversarial_claude:2 | undisposed | Not accepted | report |
| #36677 | Squash the fixup commits and correct the first commit messagesrc/util/fs.cpp:26adversarial_claude:3 | undisposed | Not accepted | report |
| #36157 | Zero-padding check runs on de-XORed bytes, so the hang remains for obfuscated block dirs (the default)contrib/linearize/linearize-data.py:212adversarial_claude:1 | drop | Not accepted | report |
| #36157 | Do not treat every zero-leading magic as paddingcontrib/linearize/linearize-data.py:212adversarial_claude:2 | publish | Accepted, shared | report |
| #36452 | Limit missing-undo skips to blocks that can legitimately lack undosrc/validation.cpp:4702adversarial_claude:1 | publish | Accepted, sole | report |
| #36452 | Continue shallow checks after encountering missing undosrc/validation.cpp:4705adversarial_claude:2 | publish | Accepted, sole | report |
| #36607 | Match the privacy guard on txid as well as wtxidsrc/private_broadcast.cpp:89adversarial_claude:1 | publish | Accepted, shared | report |
| #36607 | Consider routing suppressed requested broadcasts through private broadcastsrc/net_processing.cpp:2496adversarial_claude:2 | publish | Accepted, sole | report |
| #36607 | Test unbroadcast-set removal with a non-vacuous casetest/functional/p2p_private_broadcast_then_public.py:176adversarial_claude:3 | publish | Accepted, sole | report |
| #36607 | Report remaining planned sends for resolved transactionssrc/private_broadcast.cpp:202adversarial_claude:4 | publish | Accepted, shared | report |
| #36607 | Guard checks only the exact wtxid, so a same-txid witness variant in the mempool is still announcedsrc/net_processing.cpp:2491adversarial_claude:1 | undisposed | Not accepted | report |
| #36607 | Suppressed broadcast is dropped silently and permanently, with no private fallbacksrc/net_processing.cpp:2494adversarial_claude:2 | undisposed | Not accepted | report |
| #36607 | New Contains() API, which the guard depends on, is not exercised by fuzz or unit testssrc/test/fuzz/private_broadcast.cpp:280adversarial_claude:3 | undisposed | Not accepted | report |
| #36681 | Free selected prune files before the coins disk-space preflightsrc/validation.cpp:2829adversarial_claude:1 | publish | Accepted, shared | report |
| #36681 | Sync prune-forced coins batches before committing the prune indexsrc/validation.cpp:2828adversarial_claude:2 | publish | Accepted, shared | report |
| #36607 | Keep private retries active after a blocked local submissionsrc/net_processing.cpp:2491adversarial_claude:1 | publish | Accepted, sole | report |
| #36607 | Prevent GETDATA from revealing a suppressed transactionsrc/net_processing.cpp:2494adversarial_claude:2 | publish | Accepted, sole | report |
| #36607 | Match the privacy guard on txid as well as wtxidsrc/private_broadcast.cpp:89adversarial_claude:3 | publish | Accepted, shared | report |
| #36607 | Make suppressed broadcasts visible to callerssrc/net_processing.cpp:2495adversarial_claude:4 | publish | Accepted, sole | report |
| #36607 | Test `Contains()` and oldest-first eviction in the fuzz modelsrc/test/fuzz/private_broadcast.cpp:140adversarial_claude:5 | publish | Accepted, shared | report |
| #36680 | Warn that accepting the prompt can redownload the entire blockchainsrc/node/chainstate.cpp:133adversarial_claude:1 | publish | Accepted, sole | report |
| #29843 | Sync the nodes between subtest stepstest/functional/p2p_segwit.py:1478adversarial_claude:1 | publish | Accepted, shared | report |
| #29843 | Clarify which transactions can become consensus-invaliddoc/release-notes-29843.md:7adversarial_claude:2 | publish | Accepted, sole | report |
| #29843 | Restore coverage of first-error reporting under standard flagstest/functional/data/invalid_txs.py:287adversarial_claude:3 | publish | Accepted, sole | report |
| #36603 | Finish the serializer input queue when a database write failssrc/node/utxo_snapshot.cpp:162adversarial_claude:1 | publish | Accepted, shared | report |
| #36603 | Support non-seekable snapshot inputsrc/utxo_snapshot.h:228adversarial_claude:2 | publish | Accepted, shared | report |
| #36603 | Test that the persisted chainstate matches the commitmentsrc/node/utxo_snapshot.cpp:276adversarial_claude:3 | publish | Accepted, sole | report |
| #36603 | Add a functional test for `txoutsetsummary`src/bitcoin-util.cpp:56adversarial_claude:4 | publish | Accepted, sole | report |
| #36603 | Make the existing-directory error match the caller's behaviorsrc/node/utxo_snapshot.cpp:299adversarial_claude:5 | publish | Accepted, sole | report |
| #36677 | Windows branch of the new test does not compilesrc/test/fs_tests.cpp:157adversarial_claude:1 | undisposed | Not accepted | report |
| #36677 | POSIX close-on-exec is set after fopen, not atomicallysrc/util/fs.cpp:27adversarial_claude:2 | undisposed | Not accepted | report |
| #36677 | Test covers only "wb" although 'N' is appended to every caller modesrc/test/fs_tests.cpp:145adversarial_claude:3 | undisposed | Not accepted | report |
| #36292 | Distinguish LevelDB cleanup failures from leftover-file errorssrc/index/coinstatsindex.cpp:101adversarial_claude:1 | publish | Accepted, sole | report |
| #36292 | Name the release note file after the PR numberdoc/release-notes-coinstatsindex-cleanup.md:1adversarial_claude:2 | publish | Accepted, sole | report |
| #36677 | New test calls fcntl/F_GETFD/FD_CLOEXEC with no WIN32 guard, so test_bitcoin no longer builds on Windowssrc/test/fs_tests.cpp:153adversarial_claude:1 | undisposed | Not accepted | report |
| #36677 | Setting FD_CLOEXEC after fopen leaves a fork/exec race; the PR text and first commit describe the atomic 'e' approachsrc/util/fs.cpp:27adversarial_claude:2 | undisposed | Not accepted | report |
| #36326 | Preserve snapshot-validation details in the kernel logsrc/validation.cpp:6025adversarial_claude:1 | publish | Accepted, sole | report |
| #36326 | Preserve dynamic fatal-error details for C API consumerssrc/kernel/bitcoinkernel.cpp:368adversarial_claude:2 | publish | Accepted, sole | report |
| #36326 | Make fatal-error rendering exhaustivesrc/validation.cpp:2147adversarial_claude:3 | publish | Accepted, shared | report |
| #36188 | Run SHA256 autodetection once per processsrc/ecc_context.cpp:32adversarial_claude:1 | publish | Accepted, shared | report |
| #36188 | BIP324 ECDH now silently requires an ECC_Contextsrc/key.cpp:336adversarial_claude:2 | drop | Not accepted | report |
| #36328 | Trimmed-package regression test only covers a parent whose txid differs from its wtxidtest/functional/p2p_opportunistic_1p1c.py:254adversarial_claude:1 | drop | Not accepted | report |
| #36180 | Warn when the intro applies pruning but cannot save itsrc/node/interfaces.cpp:184adversarial_claude:1 | publish | Accepted, shared | report |
| #36180 | Migration guard checks for -nosettings instead of whether the write succeededsrc/qt/optionsmodel.cpp:766adversarial_claude:2 | drop | Not accepted | report |
| #36180 | Include `-prev` writes in `setOption`'s success trackingsrc/qt/optionsmodel.cpp:509adversarial_claude:3 | publish | Accepted, shared | report |
| #36343 | analyzepsbt still routes invalid final inputs to the finalizer, which now rejects themsrc/psbt.cpp:814adversarial_claude:1 | drop | Not accepted | report |
| #36628 | With -onlynet=onion, private broadcast now goes through Tor exits, and startup gives no warningsrc/init.cpp:2452adversarial_claude:1 | drop | Not accepted | report |
| #36628 | Removed the check that the proxy is really Tor before sending to clearnet peers; any SOCKS5 proxy that accepts random credentials and answers RESOLVE is now trusted as Torsrc/init.cpp:2046adversarial_claude:2 | drop | Not accepted | report |
| #36628 | Check the `-privatebroadcast` refusal messagetest/functional/feature_init.py:431adversarial_claude:3 | publish | Accepted, sole | report |
| #36677 | New test calls POSIX-only fcntl/F_GETFD/FD_CLOEXEC without a WIN32 guard, so it breaks the Windows test buildsrc/test/fs_tests.cpp:153adversarial_claude:1 | undisposed | Not accepted | report |
| #36677 | Close-on-exec relies on unconditional support for the fopen "e" mode, with no fallbacksrc/util/fs.cpp:26adversarial_claude:2 | undisposed | Not accepted | report |
| #36677 | Long-lived POSIX FileLock descriptor in the same file is still opened without O_CLOEXECsrc/util/fs.cpp:49adversarial_claude:3 | undisposed | Not accepted | report |
| #36346 | Test rejection of a concurrent `loadtxoutset` calltest/functional/feature_assumeutxo.py:247adversarial_claude:1 | publish | Accepted, shared | report |
| #36346 | Report `snapshot-loading` rejections through the mempool tracepointsrc/validation.cpp:1778adversarial_claude:2 | publish | Accepted, sole | report |
| #36676 | Add a regression test for a stalled request sendsrc/bitcoin-cli.cpp:917adversarial_claude:1 | publish | Accepted, shared | report |
| #36676 | Report send timeouts as timeoutssrc/bitcoin-cli.cpp:917adversarial_claude:2 | publish | Accepted, sole | report |
| #36539 | GUI external-signer send still gives users v2 PSBTs, which contradicts the PR descriptionsrc/qt/sendcoinsdialog.cpp:507adversarial_claude:1 | undisposed | Not accepted | report |
| #36539 | Release note mentions only bitcoind and leaves out the GUI change back to v0doc/release-notes-hwi-minver.md:7adversarial_claude:2 | undisposed | Not accepted | report |
| #36477 | Count only planned sends for resolved transactionssrc/private_broadcast.cpp:195adversarial_claude:1 | publish | Accepted, shared | report |
| #36477 | Clarify when re-adding a transaction with no attempts remaining has no effectsrc/private_broadcast.cpp:27adversarial_claude:2 | publish | Accepted, sole | report |
| #36477 | Test that eviction removes the oldest finished entrysrc/private_broadcast.cpp:49adversarial_claude:3 | publish | Accepted, shared | report |
| #36477 | Check the values in `received_by_us`, not only that its keys existtest/functional/p2p_private_broadcast.py:323adversarial_claude:4 | publish | Accepted, shared | report |
| #36677 | Test that `fsbridge::fopen` returns noninheritable handlessrc/util/fs.cpp:26adversarial_claude:1 | publish | Accepted, shared | report |
| #36677 | Use `fsbridge::fopen` in the commit subjectsrc/util/fs.cpp:23adversarial_claude:2 | publish | Accepted, sole | report |
| #36305 | On Windows, SO_EXCLUSIVEADDRUSE may make the P2P port unbindable on restart while old inbound connections are still closingsrc/net.cpp:3400adversarial_claude:1 | unresolved | Not accepted | report |
| #36675 | SOCKS5 name rewriting uses the mockable DNS hook in the connman fuzz targetsrc/netbase.cpp:405adversarial_claude:1 | publish | Accepted, sole | report |
| #36124 | A complete request can remain undispatched after the receive buffer emptiessrc/httpserver.cpp:1101adversarial_claude:1 | publish | Accepted, shared | report |
| #35855 | Fatal linker warnings now depend on CMake's linker detection instead of an explicit flagcontrib/guix/libexec/build_linux.sh:42adversarial_claude:1 | drop | Not accepted | report |
| #35855 | RISC-V configure passes an empty CMake argumentcontrib/guix/libexec/build_linux.sh:65adversarial_claude:2 | publish | Accepted, sole | report |
| #35855 | Windows GUI build still uses the old fatal-warnings flagcontrib/guix/libexec/build_win.sh:53adversarial_claude:3 | publish | Accepted, sole | report |
| #35855 | Unversioned `libcxx` may no longer match clang-toolchain-19 after the bumpcontrib/guix/manifest_build.scm:38adversarial_claude:4 | unresolved | Not accepted | report |
| #35855 | Pinned Guix commit differs from the PR descriptioncontrib/guix/libexec/prelude.bash:74adversarial_claude:5 | publish | Accepted, sole | report |
| #35855 | Going back to upstream osslsigncode depends on the pin providing version 2.14 or latercontrib/guix/manifest_codesign.scm:183adversarial_claude:6 | unresolved | Not accepted | report |
| #35855 | Explain why fixincludes is disabled for the sans-libc cross GCCcontrib/guix/toolchains.scm:72adversarial_claude:7 | publish | Accepted, sole | report |
| #36374 | Hex-encoding the password, as the SAFECOOKIE path already does, would avoid quoting rules altogethersrc/torcontrol.cpp:670adversarial_claude:1 | undisposed | Not accepted | report |
| #36374 | Release note needed: -torpassword values containing backslashes are now interpreted differentlysrc/torcontrol.cpp:668adversarial_claude:2 | undisposed | Not accepted | report |
| #36360 | No 34-byte test isolates the Taproot push-length checksrc/test/script_segwit_tests.cpp:116adversarial_claude:1 | publish | Accepted, shared | report |
| #36676 | Send timeouts are reported as generic send failuressrc/bitcoin-cli.cpp:917adversarial_claude:1 | publish | Accepted, sole | report |
| #35728 | Tell users how to recover from persistent stale-row errorssrc/index/txindex.cpp:195adversarial_claude:1 | publish | Accepted, sole | report |
| #35728 | An unusable txindex candidate can preempt a requested-block readsrc/node/transaction.cpp:152adversarial_claude:2 | publish | Accepted, sole | report |
| #35728 | Give `WarnAndThrowErr` internal linkagesrc/index/txindex.cpp:161adversarial_claude:3 | publish | Accepted, sole | report |
| #35728 | Most of the new FindTx/FindLegacyTx error paths have no testssrc/index/txindex.cpp:185adversarial_claude:4 | unresolved | Not accepted | report |
| #36628 | A forward wall-clock step can silently end a job without announcingsrc/privbcast/job.cpp:174adversarial_claude:1 | publish | Accepted, sole | report |
| #36628 | Distinguish private-broadcast transport IDs from node peer IDs in NET logssrc/privbcast/job.h:161adversarial_claude:2 | publish | Accepted, sole | report |
| #36675 | SOCKS5 destination parsing consumes fuzz input through the mock DNS hooksrc/netbase.cpp:405adversarial_claude:1 | publish | Accepted, sole | report |
| #36380 | `initialonly` also skips local mempool restorationsrc/wallet/wallet.cpp:1933adversarial_claude:1 | publish | Accepted, shared | report |
| #36380 | A mistyped `initialonly` silently disables all wallet broadcastingsrc/wallet/wallet.cpp:2939adversarial_claude:2 | publish | Accepted, shared | report |
| #36380 | Add functional coverage for `-walletbroadcast=initialonly`src/wallet/wallet.cpp:2942adversarial_claude:3 | publish | Accepted, shared | report |
| #36673 | Closing the warning suppresses the later expired-certificate alert.github/workflows/code-signing-certificate.yml:47adversarial_claude:1 | publish | Accepted, sole | report |
| #36673 | The check monitors only master, not maintained release branches.github/workflows/code-signing-certificate.yml:27adversarial_claude:2 | publish | Accepted, sole | report |
| #36673 | actions/checkout@v7 is inconsistent with the repo-wide v6 pin.github/workflows/code-signing-certificate.yml:25adversarial_claude:3 | drop | Not accepted | report |
| #36673 | The 'first certificate is the leaf' assumption is not enforced, and a reordered bundle would pass silently.github/workflows/code-signing-certificate.yml:38adversarial_claude:4 | drop | Not accepted | report |
| #36002 | A readable stale copy can mask the pruned active-chain blocksrc/index/txindex.cpp:223adversarial_claude:1 | publish | Accepted, sole | report |
| #36305 | Windows P2P listener drops restart-friendly SO_REUSEADDR, so lingering connections from remote peers may stop the node from restartingsrc/net.cpp:3400adversarial_claude:1 | unresolved | Not accepted | report |
| #36188 | Avoid rerunning global SHA dispatch during ECC context creationsrc/ecc_context.cpp:32adversarial_claude:1 | publish | Accepted, shared | report |
| #36188 | Avoid per-input ECC setup in the DER parser fuzzersrc/test/fuzz/secp256k1_ecdsa_signature_parse_der_lax.cpp:29adversarial_claude:2 | publish | Accepted, shared | report |
| #29843 | Synchronize nodes before cross-node spends and block constructiontest/functional/p2p_segwit.py:1478adversarial_claude:1 | publish | Accepted, shared | report |
| #29843 | Release note overstates the protection against future consensus invaliditydoc/release-notes-29843.md:8adversarial_claude:2 | unresolved | Not accepted | report |
| #29843 | Retain coverage for first-error precedence across script checkstest/functional/data/invalid_txs.py:287adversarial_claude:3 | publish | Accepted, sole | report |
| #36619 | Correct the helper name in the PR descriptionsrc/rest.cpp:377adversarial_claude:1 | publish | Accepted, sole | report |
| #36539 | Clarify the external-signer PSBT version in the PR descriptionsrc/qt/sendcoinsdialog.cpp:507adversarial_claude:1 | publish | Accepted, sole | report |
| #36539 | Reconcile the HWI minimum-version guidancedoc/release-notes-hwi-minver.md:9adversarial_claude:2 | publish | Accepted, sole | report |
| #36539 | Document the GUI unsigned-export version changesrc/qt/sendcoinsdialog.cpp:490adversarial_claude:3 | publish | Accepted, sole | report |
| #35793 | Preserve txid reject caching for BIP54 sigops failuressrc/consensus/tx_verify.cpp:205adversarial_claude:1 | publish | Accepted, sole | report |
| #36623 | Remove the unreachable `OP_RETURN` break and its warning suppressionsrc/script/interpreter.cpp:683adversarial_claude:1 | publish | Accepted, sole | report |
| #36623 | The direct minisketch edit fails the subtree lint checksrc/minisketch/src/minisketch.cpp:104adversarial_claude:2 | publish | Accepted, sole | report |
| #36675 | Log the SOCKS5 destination namesrc/netbase.cpp:421adversarial_claude:1 | publish | Accepted, sole | report |
| #35728 | FindTx stops on an entry whose block is unknown or has no data, even when another entry for the same tx is validsrc/index/txindex.cpp:194adversarial_claude:1 | drop | Not accepted | report |
| #35728 | An unrelated txindex read error can block an explicit-block lookupsrc/index/txindex.cpp:213adversarial_claude:2 | publish | Accepted, sole | report |
| #35728 | Release notes promise an 'internal error', but the RPCs return RPC_MISC_ERROR (-1)doc/release-notes-35728.md:4adversarial_claude:3 | unresolved | Not accepted | report |
| #35728 | WarnAndThrowErr has external linkagesrc/index/txindex.cpp:161adversarial_claude:4 | drop | Not accepted | report |
| #36386 | New oversized-script test does not check that the oversized payload was skippedsrc/test/compress_tests.cpp:178adversarial_claude:1 | unresolved | Not accepted | report |
| #35443 | Taproot example doc leaves out the `finalize=false` step that the key-path spend depends ondoc/descriptors.md:199adversarial_claude:1 | unresolved | Not accepted | report |
| #35443 | 4-of-4 iteration fully signs a script-path transaction, then throws it away and signs a conflicting onetest/functional/wallet_taproot_decaying_multisig_descriptor_psbt.py:150adversarial_claude:2 | drop | Not accepted | report |
| #35443 | The example’s first decay height has already passeddoc/descriptors.md:51adversarial_claude:3 | publish | Accepted, sole | report |
| #35713 | CTest does not discover suites declared with `TEST_SUITE_BEGIN`src/test/util/framework.h:516adversarial_claude:1 | publish | Accepted, shared | report |
| #35713 | CHECK(a == b) on unprintable ranges ignores the type's operator== and compares elements in iteration ordersrc/test/util/framework.h:365adversarial_claude:2 | unresolved | Not accepted | report |
| #35713 | REQUIRE on a non-owner thread skips evaluating the expression and always records a failuresrc/test/util/framework.h:569adversarial_claude:3 | drop | Not accepted | report |
| #35713 | Documented `--catch_system_errors=no` is now rejected, and the unchanged README describes Boost behavioursrc/test/util/framework.cpp:330adversarial_claude:4 | unresolved | Not accepted | report |
| #35713 | Preserve operand values in descriptor-check failuressrc/test/descriptor_tests.cpp:297adversarial_claude:5 | publish | Accepted, shared | report |
| #35713 | Failure text for most existing checks is misleading and missing a spacesrc/test/util/framework.h:553adversarial_claude:6 | unresolved | Not accepted | report |
| #35793 | BIP54 sigops failures no longer put the txid in the P2P reject filtersrc/consensus/tx_verify.cpp:205adversarial_claude:1 | unresolved | Not accepted | report |
| #35793 | On regtest, getblocktemplate now fails unless the client lists `consensuscleanup`src/deploymentinfo.cpp:18adversarial_claude:2 | unresolved | Not accepted | report |
| #35793 | Mempool changes visible over RPC on every network are not documentedsrc/validation.cpp:894adversarial_claude:3 | unresolved | Not accepted | report |
| #36623 | Remove the unreachable `break` and diagnostic pragmassrc/script/interpreter.cpp:683adversarial_claude:1 | publish | Accepted, shared | report |
| #36387 | Deprecation gates only the RPC; the GUI 'Encrypt Wallet…' action still encrypts existing walletssrc/wallet/rpc/encrypt.cpp:238adversarial_claude:1 | unresolved | Not accepted | report |
| #36387 | Retain an exact private-descriptor assertion for encrypted walletstest/functional/wallet_listdescriptors.py:47adversarial_claude:2 | publish | Accepted, shared | report |
| #36387 | User guide still tells users to run encryptwallet; no migration path documenteddoc/release-notes-deprecateencryptwallet.md:4adversarial_claude:3 | unresolved | Not accepted | report |
| #36387 | Deprecation error message ends with a stray newlinesrc/wallet/rpc/encrypt.cpp:239adversarial_claude:4 | drop | Not accepted | report |
| #35229 | Handle active-chain changes during a scansrc/rpc/blockchain.cpp:2719adversarial_claude:1 | publish | Accepted, sole | report |
| #36305 | Test and document the Windows restart tradeoffsrc/net.cpp:3400adversarial_claude:1 | publish | Accepted, shared | report |
| #25573 | FORTIFY check now passes every static release binary without checking anythingcontrib/guix/security-check.py:131adversarial_claude:1 | undisposed | Not accepted | report |
| #25573 | Static-pie link flags drop -Wl,--fatal-warnings for x86_64/aarch64contrib/guix/libexec/build_linux.sh:48adversarial_claude:2 | undisposed | Not accepted | report |
| #25573 | Two -DCMAKE_EXE_LINKER_FLAGS arguments rely on last-wins orderingcontrib/guix/libexec/build_linux.sh:72adversarial_claude:3 | undisposed | Not accepted | report |
| #25573 | Release note exempts only bitcoin-qt, but bitcoin-gui also stays dynamicdoc/release-notes-25573.md:5adversarial_claude:4 | undisposed | Not accepted | report |
| #25573 | Static ELF checks use asserts and bypass the `failed` reporting pathcontrib/guix/symbol-check.py:343adversarial_claude:5 | undisposed | Not accepted | report |
| #36540 | Update the memory estimate after removing the third indexsrc/txmempool.h:226adversarial_claude:1 | publish | Accepted, shared | report |
| #36540 | Keep coverage of resubmitting an absent parent-child chaintest/functional/wallet_resendwallettransactions.py:109adversarial_claude:2 | publish | Accepted, shared | report |
| #36540 | Keep the two nodes' mocktimes synchronizedtest/functional/wallet_resendwallettransactions.py:126adversarial_claude:3 | publish | Accepted, sole | report |
| #36628 | Distinguish private-broadcast transport IDs in network logssrc/privbcast/job.h:161adversarial_claude:1 | publish | Accepted, sole | report |
| #36628 | Remove the unused package-parent summary branchtest/functional/test_framework/privbcast.py:136adversarial_claude:2 | publish | Accepted, sole | report |
| #36539 | Correct the PR description’s external-signer version claimsrc/qt/sendcoinsdialog.cpp:507adversarial_claude:1 | publish | Accepted, sole | report |
| #36539 | Fee-bump 'Create Unsigned' v0 change has no test, but a cheap one is possible with the existing harnesssrc/qt/walletmodel.cpp:504adversarial_claude:2 | unresolved | Not accepted | report |
| #36619 | PR description says CheckBlockDataAvailability() is used, but the code tests the nStatus bit directlysrc/rest.cpp:377adversarial_claude:1 | undisposed | Not accepted | report |
| #36344 | Document the duplicate-input constraint in `sendall` helpsrc/wallet/rpc/spend.cpp:1474adversarial_claude:1 | publish | Accepted, sole | report |
| #36619 | Check BLOCK_HAVE_UNDO directly instead of calling the range helper with one blocksrc/rest.cpp:377adversarial_claude:1 | drop | Not accepted | report |
| #36344 | Document the duplicate-input constraint in `sendall` helpsrc/wallet/rpc/spend.cpp:1474adversarial_claude:1 | publish | Accepted, sole | report |
| #36344 | Document the duplicate-input constraint in `sendall` helpsrc/wallet/rpc/spend.cpp:1474adversarial_claude:1 | publish | Accepted, sole | report |
| #31252 | Show the new script fields in verbosity-2 RPC helpsrc/rpc/rawtransaction.cpp:232adversarial_claude:1 | publish | Accepted, shared | report |
| #31252 | Emit a parseable descriptor for larger inner multisig scriptssrc/core_io.cpp:481adversarial_claude:2 | publish | Accepted, sole | report |
| #31252 | Unvalidated helper is exposed from a kernel-compiled header and documented as returning the script "being executed"src/script/solver.h:87adversarial_claude:3 | drop | Not accepted | report |
| #31252 | Test comment misstates createmultisig output, and the P2SH-P2WSH redeemScript content is not checkedtest/functional/rpc_rawtransaction.py:299adversarial_claude:4 | unresolved | Not accepted | report |
| #31252 | Use a script-bearing input in the no-undo fallback testtest/functional/rpc_rawtransaction.py:260adversarial_claude:5 | publish | Accepted, sole | report |
| #36673 | Any issue author can suppress the expiry alert.github/workflows/code-signing-certificate.yml:48adversarial_claude:1 | undisposed | Not accepted | report |
| #36673 | Only master is checked, but releases sign with the release branch's certificate.github/workflows/code-signing-certificate.yml:27adversarial_claude:2 | undisposed | Not accepted | report |
| #36673 | No new alert when the certificate actually expires.github/workflows/code-signing-certificate.yml:56adversarial_claude:3 | undisposed | Not accepted | report |
| #32861 | Clarify the no-candidate error and mention `hdkey`src/wallet/rpc/wallet.cpp:805adversarial_claude:1 | publish | Accepted, sole | report |
| #32861 | createwalletdescriptor prefers active keys over unused(KEY), the opposite of derivehdkeysrc/wallet/rpc/wallet.cpp:796adversarial_claude:2 | drop | Not accepted | report |
| #32861 | test_from_unused_desc does not check which key was chosen or the documented precedencetest/functional/wallet_createwalletdescriptor.py:128adversarial_claude:3 | drop | Not accepted | report |
| #36451 | Remove the redundant post-assignment null checksrc/node/block_template_manager.h:51adversarial_claude:1 | publish | Accepted, shared | report |
| #36451 | waitNext loses the non-null type at compile time and then re-checks it at runtimesrc/node/interfaces.cpp:928adversarial_claude:2 | drop | Not accepted | report |
| #36452 | Continue shallow checks after missing undo datasrc/validation.cpp:4702adversarial_claude:1 | publish | Accepted, sole | report |
| #36452 | Limit the snapshot missing-undo allowance to snapshot historysrc/validation.cpp:4702adversarial_claude:2 | publish | Accepted, shared | report |
| #36477 | attempts_remaining overstates sends left for resolved transactions that still have initial sends pendingsrc/private_broadcast.cpp:195adversarial_claude:1 | undisposed | Not accepted | report |
| #36477 | Eviction treats exhausted, never-echoed transactions the same as successfully echoed ones, contradicting the 'remains tracked' contractsrc/private_broadcast.cpp:49adversarial_claude:2 | undisposed | Not accepted | report |
| #36477 | Finished entries are now kept with no time limit, up to the 10,000-entry pending capsrc/private_broadcast.cpp:41adversarial_claude:3 | undisposed | Not accepted | report |
| #36477 | received_by_us contents and reset behavior are not testedtest/functional/p2p_private_broadcast.py:323adversarial_claude:4 | undisposed | Not accepted | report |
| #36477 | The 'oldest finished entry is evicted' ordering is not testedsrc/test/fuzz/private_broadcast.cpp:140adversarial_claude:5 | undisposed | Not accepted | report |
| #36481 | GUI rebroadcast silently drops failuressrc/qt/transactionview.cpp:408adversarial_claude:1 | undisposed | Not accepted | report |
| #36481 | Non-ATMP broadcast failures produce an empty RPC error messagesrc/wallet/wallet.cpp:1843adversarial_claude:2 | undisposed | Not accepted | report |
| #36481 | Manual rebroadcast ignores -privatebroadcast, unlike the sendrawtransaction workflow it replacessrc/wallet/wallet.cpp:1842adversarial_claude:3 | undisposed | Not accepted | report |
| #36481 | One-click GUI rebroadcast has no privacy warning or confirmationsrc/qt/transactionview.cpp:172adversarial_claude:4 | undisposed | Not accepted | report |
| #36481 | Copy-pasted 'abandon' doc comments on new rebroadcast interface methodssrc/interfaces/wallet.h:166adversarial_claude:5 | undisposed | Not accepted | report |
| #36481 | Keyboard mnemonic '&b' collides with 'A&bandon transaction'src/qt/transactionview.cpp:172adversarial_claude:6 | undisposed | Not accepted | report |
| #36481 | New RPC error contract is untestedtest/functional/wallet_resendwallettransactions.py:52adversarial_claude:7 | undisposed | Not accepted | report |
| #36637 | Changed -torpassword wire encoding breaks existing workaround configs; consider a release notesrc/torcontrol.cpp:667adversarial_claude:1 | unresolved | Not accepted | report |
| #36637 | Competing fix and pending test PR assume the quoted AUTHENTICATE formatsrc/torcontrol.cpp:667adversarial_claude:2 | drop | Not accepted | report |
| #35026 | Align the PR description with the recalculation triggersrc/validation.cpp:353adversarial_claude:1 | publish | Accepted, sole | report |
| #35026 | Add a negative control for recalculation that still fails sequence lockstest/functional/mempool_reorg_bip68_stale_lockpoints.py:81adversarial_claude:2 | publish | Accepted, sole | report |
| #35026 | Stale lockpoints are handled at this one call site; TestLockPointValidity still describes itself as exactsrc/validation.cpp:353adversarial_claude:3 | drop | Not accepted | report |
| #36628 | Make the queue-cap test independent of the running job's real-time limittest/functional/p2p_private_broadcast_cap.py:54adversarial_claude:1 | publish | Accepted, sole | report |
| #36628 | Distinguish private-broadcast IDs in transport logssrc/privbcast/job.cpp:279adversarial_claude:2 | publish | Accepted, sole | report |
| #36628 | Make private-broadcast refusal causes distinguishable to RPC clientssrc/rpc/util.cpp:404adversarial_claude:3 | publish | Accepted, sole | report |
| #36500 | Rejecting empty groups leaves the interrupt check tied to coin count, not bytes readsrc/validation.cpp:5822adversarial_claude:1 | undisposed | Not accepted | report |
| #36503 | Snapshot-tip data check still runs only in prune modesrc/rpc/blockchain.cpp:3194adversarial_claude:1 | undisposed | Not accepted | report |
| #36503 | 'already pruned' error is wrong for snapshot data that was never downloadedsrc/rpc/blockchain.cpp:3197adversarial_claude:2 | undisposed | Not accepted | report |
| #36628 | Private-broadcast path in BroadcastTransaction now asserts instead of returning an errorsrc/node/transaction.cpp:155adversarial_claude:1 | undisposed | Not accepted | report |
| #36628 | Rewrite drops the EXPERIMENTAL label from -privatebroadcast in the same changesrc/init.cpp:724adversarial_claude:2 | undisposed | Not accepted | report |
Selection uses publish, drop and unresolved candidates; unassessed candidates are excluded.