BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2902 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

254security candidates607second-pass queue2881AI analyses
194commits · 30 days
489commits · 60 days
1508commits · 180 days
2875commits · 365 days
Backfill bands
Aug 5 → Feb 61351 seen45 candidatesComplete
Feb 6 → Jun 61033 seen63 candidatesComplete
Jun 6 → Jul 6281 seen11 candidatesComplete
Jul 6 → Aug 5207 seen5 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

70/100 average clarity
939Strong · 80–100
1188Adequate · 60–79
687Thin · 40–59
88Opaque · 0–39
6security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Antoine Poinsot22422170
Ava Chow15750157064
MarcoFalke41021406074
Lőrinc17721177081
fanquake22719226057
Hennadii Stepanov20914208063
rkrux57957074
Sjors Provoost89889074
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95595066
Hodlinator66566076
Analysis record

Published AI watches

Last scanned 2 minutes ago

Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35928: doc: mention -DWITH_ZMQ=ON in macOS build guide

This is a one-line documentation update to the macOS build guide. It adds a note telling users to pass a specific CMake option if they want ZeroMQ notification support. There is no code change and no security impact.

8397e09eby merge-script+1−11 file
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35482: fuzz: exercise the transaction-handling path in process_message(s)

This commit only changes Bitcoin Core's internal fuzz testing code. It makes the fuzz tests exercise more of the transaction-handling code path by toggling Initial Block Download mode and resetting the mempool between test runs. There is n…

No production code modifiedNo consensus, validation, net_processing, or wallet logic changedOnly fuzz test harnesses and test utilities affected
f11dc617by merge-script+105−798 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35914: test, fuzz: Remove unused variables

This commit removes unused variables from Bitcoin Core's test and fuzzing code. It is a cleanup/refactoring change with no effect on the live network software or user funds. It does not fix or introduce any security vulnerability.

d36bf709by merge-script+1−138 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35896: refactor: Default uint256::operator==, add operator<=>

This commit is a routine code cleanup in Bitcoin Core. It switches the uint256 equality and comparison operators to use standard C++20 defaults, removes an old custom Compare() helper, and marks an internal assertion-failure function as ne…

ed2c59abby merge-script+99−245 files
No security note in commit
Moderate 62 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35872: rpc: avoid descriptor range counter overflow

This update fixes a counting bug in several Bitcoin Core RPC commands that scan descriptors. When a user requested a descriptor range ending at the maximum allowed value (2,147,483,647), the internal counter used a smaller integer type and…

Signed integer overflow in descriptor expansion loopCrash/undefined behavior on maximum-range descriptor scansAuthenticated RPC surface affected (scantxoutset, scanblocks, getdescriptoractivity, utxoupdatepsbt, descriptorprocesspsbt)
b388674aby Ava Chow+3−12 files
Vendor flagged security relevance
Informational 19 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35842: rpc: Properly make RPCResult::Type::ANY non-test-only

This is a small cleanup and documentation fix for Bitcoin Core's RPC help system. It removes a comment that incorrectly said a certain output type was 'for testing only' and makes the help text properly display those outputs. There is no d…

No memory safety, cryptography, consensus, or authorization changes observedChange is confined to RPC help/schema metadata generationComment-only/type-label change from 'for testing only' to general use
c36ffd87by merge-script+42−364 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reject anon namespace in header

This is a code cleanup change that turns on a static-analysis rule to prevent a specific C++ coding pattern (anonymous namespaces in header files) and updates two headers to comply. It does not change how Bitcoin Core behaves at runtime an…

No security-relevant code changeNo memory safety, cryptography, consensus, or network changesTooling-only refactor (clang-tidy configuration)
c4fbd3c7by merge-script+9−123 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error test coverage

This commit only adds new test cases to Bitcoin Core's functional test suite. It does not change any production wallet, node, or RPC code. The tests verify that the importdescriptors RPC reports errors in the right order, rejects bad times…

465196d0by merge-script+77−11 file
No security note in commit
Informational 15 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35180: coins: group private cache helpers

This change is purely a code cleanup: it moves two internal helper functions of a Bitcoin Core cache class into the private section of the class and removes a duplicate 'private:' label. There is no change to what the code does, no bug fix…

c940fd75by merge-script+13−141 file
No security note in commit
Low 29 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35582: rpc: reject null for optional parameters

This Bitcoin Core change tightens how three RPC commands (scantxoutset, scanblocks, deriveaddresses) handle the value null when it is passed for optional parameters. Previously, explicitly passing null could be treated differently from sim…

RPC parameter validation changeNull value handling changeAddition of explicit error checks for missing required contextual parameters
3db96eb5by merge-script+18−75 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable misc-definitions-in-headers

This commit is a code cleanup: it turns on a clang-tidy style check called 'misc-definitions-in-headers' and suppresses that check around a large inline implementation block in a benchmark header. There is no change to Bitcoin's runtime be…

fa93132dby MarcoFalke+3−02 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable clang-tidy rule to reject anon namespace in header

This commit only changes a linting configuration file for the project's code style checker. It enables a rule that prevents anonymous namespaces from being used in header files, which is a code-quality and build-hygiene practice. There is …

No security-relevant signals in the diff or commit message.Change is purely a static-analysis/linting configuration update.
fa5ca877by MarcoFalke+2−11 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Use C++20 std::identity over IntIdentity

This commit is a straightforward code cleanup: it replaces a small custom helper named IntIdentity with the standard C++20 std::identity from the <functional> header. The behavior of the ConvertBits function is unchanged; only the implemen…

fafe5042by MarcoFalke+4−111 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test the result order of a multiple import request is correct

This commit only adds a new automated test to Bitcoin Core. It checks that when a user asks the wallet to import multiple descriptors at once, the list of results comes back in the same order as the original request, including any error me…

3ac8b806by Pol Espinasa+40−01 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test invalid or missing timestamp throws importdescriptors

This commit only adds new automated tests for the Bitcoin Core wallet's importdescriptors RPC. It checks that the command correctly rejects requests with a missing or invalid timestamp. No production wallet code is changed, so this cannot …

No changes to consensus, networking, wallet logic, or cryptographyOnly functional test code is modifiedAdded assertions are for expected error handling paths
e4732bf0by Pol Espinasa+28−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Remove unused #include in common/system

This is a minor code cleanup that removes one unused header file include and swaps another for a more specific one. It does not change any program behavior or fix any security issue.

fa7304f3by MarcoFalke+1−22 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

iwyu: Fix warnings in `src/consensus` and treat them as errors

This commit is a routine code cleanup: it adjusts which C++ header files are included in several consensus-related source files and turns on a stricter compiler hygiene check (Include What You Use, or IWYU) for the src/consensus directory.…

13b53f8bby Hennadii Stepanov+42−79 files
No security note in commit
Informational 15 AI analysisMessage 55 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: don't connman.ReceiveMsgFrom oversized msg

This is a small fix to a Bitcoin Core fuzz test (an automated internal testing harness), not to the live network code. The fuzzer was sometimes creating fake P2P messages larger than the real protocol allows and passing them into a test he…

Test-only fuzz harness hardeningOversized message guard added before ReceiveMsgFrom() in fuzz targetNo change to production P2P message acceptance logic
bb19f1daby Greg Sanders+5−01 file
No security note in commit
Informational 15 AI analysisMessage 97 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: Temporarily remove riscv32 config from GHA matrix

This commit simply removes one failing test configuration (RISC-V 32-bit bare metal) from the project's GitHub Actions CI matrix because it was failing. It is a routine CI maintenance change with no security implications.

fa06ea42by MarcoFalke+0−61 file
No security note in commit
Low 47 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: verify cross-build SDK archives

This change adds checksum verification to the build system's downloads of Apple, FreeBSD, NetBSD, and OpenBSD software development kits (SDKs). Before this patch, those SDK archives were downloaded at build time and extracted without confi…

Adds cryptographic digest verification for downloaded SDK archivesRemoves unchecked extraction of remote SDK archives in CIHardens CI supply chain for macOS/BSD cross-builds
873550beby Lőrinc+25−126 files
Vendor flagged security relevance
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidateguix: stop passing depends sources to codesigningby fanquake · d94d7b1a · Jan 15, 2026 · 1 fileMessage 80 · StrongInformational 17Details
Commit message · fanquake

guix: stop passing depends sources to codesigning

I think this is just a copy-pasta from the build container. I don't see
why we'd need the depends sources available when performing codesigning.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 17/100

This commit removes leftover code that unnecessarily shared Bitcoin's dependency source files into the isolated Guix container used for codesigning release binaries. The change is described by the author as a cleanup of copy-pasted build-container options, not a security fix. It slightly reduces the attack surface of the codesigning environment by exposing fewer files, but there is no direct evidence of an exploitable vulnerability.

Lower-priorityutil: Implement Expected::value()&& and Expected::error()&&by MarcoFalke · fab97214 · Jan 15, 2026 · 2 filesMessage 65 · AdequateInformational 15Details
Commit message · MarcoFalke

util: Implement Expected::value()&& and Expected::error()&&

They are currently unused, but implementing them is closer to the
std::expected.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit adds two new ways to access values and errors from a custom 'Expected' helper type in Bitcoin Core: rvalue (move) overloads for value() and error(). It also tightens error() to use an assertion helper instead of a manual assert. The changes are purely internal utility improvements, currently unused elsewhere in the codebase, and do not fix or introduce any security vulnerability.

Lower-priorityutil: Add Expected<void, E> specializationby MarcoFalke · fac48009 · Jan 15, 2026 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · MarcoFalke

util: Add Expected<void, E> specialization

This is not needed, but a bit closer to the std lib, because
std::monostate is no longer leaked through ValueType from the value()
method.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 15/100

This is a small internal code cleanup in Bitcoin Core's utility library. It adds a dedicated specialization for 'Expected<void, E>' so that when no return value is needed, the code no longer exposes a placeholder type (std::monostate) through the public value() method. It also adds a couple of unit tests. There is no security fix, behavior change, or externally visible vulnerability addressed.

Lower-priorityutil: Make Expected::value() throwby MarcoFalke · fa6575d6 · Jan 15, 2026 · 2 filesMessage 68 · AdequateInformational 18Details
Commit message · MarcoFalke

util: Make Expected::value() throw

This is not expected to be needed in this codebase, but brings the
implementation closer to std::expected::value().

Also, add noexcept, where std::expected has them. This will make
operator-> and operator* terminate, when has_value() is false.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 18/100

This commit changes a Bitcoin Core utility class so that a specific programming mistake now throws a catchable exception instead of crashing the program with an assertion failure. It also marks two operators as 'noexcept', meaning misuse of those operators will terminate the program rather than throw. The change is defensive and aligns the custom class with the C++ standard library's std::expected behavior. There is no direct evidence this fixes an exploitable security bug.

Lower-priorityfuzz: Restore SendMessages coverage in process_message(s) fuzz targetsby MarcoFalke · fabf8d1c · Jan 15, 2026 · 3 filesMessage 60 · AdequateInformational 15Details
Commit message · MarcoFalke

fuzz: Restore SendMessages coverage in process_message(s) fuzz targets

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit only changes Bitcoin Core's internal fuzz testing code (test harnesses that randomly feed network messages to the software to find bugs). It does not alter the live Bitcoin network node code that users run. The change restores a previously dropped test step (calling SendMessages during fuzzing) and fixes how test objects are reset between runs so that memory-sanitizing tools can catch dangling pointers. There is no direct security impact on production Bitcoin nodes.

Lower-priorityrefactor: Use std::reference_wrapper<AddrMan> in Connmanby MarcoFalke · fac7fed3 · Jan 15, 2026 · 2 filesMessage 100 · StrongInformational 15Details
Commit message · MarcoFalke

refactor: Use std::reference_wrapper<AddrMan> in Connman

The addrman field is already a reference. However, some tests would
benefit from the reference being re-seatable, so that they do not have
to create a full Connman each time.

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
AI analysis · Informational 15/100

This is a straightforward internal code cleanup. It changes how CConnman stores its reference to the address manager from a plain C++ reference to std::reference_wrapper, which behaves the same way at runtime but can be reassigned in tests. No behavior of the live Bitcoin node changes, and there is no security fix or vulnerability here.

Lower-priorityp2p: add validation check for initial self-announcementby frankomosh · 6a8dbf9b · Jan 15, 2026 · 1 fileMessage 73 · AdequateLow 37Details
Commit message · frankomosh

p2p: add validation check for initial self-announcement

The direct send path for the initial self-announcement was bypassing
IsAddrCompatible() check that PushAddress() performs

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 37/100

This Bitcoin Core patch fixes a small inconsistency in how a node tells other nodes about its own network address. Normally, before sharing any address, the code checks whether the receiving peer can actually understand that address type. The very first self-announcement was skipping that check, which could cause a peer to receive an address format it does not support. The patch adds the missing compatibility check so the first announcement follows the same rule as all later ones.

Lower-prioritytest: use ephemeral ports in p2p_private_broadcast.pyby w0xlt · 3e340672 · Jan 15, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · w0xlt

test: use ephemeral ports in p2p_private_broadcast.py

The test `p2p_private_broadcast.py` gets some Python P2P nodes to listen
and instructs the SOCKS5 proxy to redirect connections to them instead
of to the requested addresses. This way the `bitcoind` which uses the
proxy is tricked to think it has connected to real routable internet
IP addresses or `.onion` addresses.

Picking the ports where to Python P2P nodes to listen however is tricky
to be done in a non-conflicting way, given that other tests may run in
parallel. https://github.com/bitcoin/bitcoin/pull/34186 made it possible
to let the OS select a free port, so use that in
`p2p_private_broadcast.py`.

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This is a minor test-only change. It updates one Bitcoin Core functional test to let the operating system pick a free network port automatically, instead of the test guessing a port number. This prevents the test from failing when another test is already using the guessed port. It does not change the Bitcoin Core software that users run, and it has no security impact on the live Bitcoin network or user wallets.

Security candidaterefactor: Enforce readability-avoid-const-params-in-declsby MarcoFalke · fa64d842 · Jan 14, 2026 · 48 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: Enforce readability-avoid-const-params-in-decls

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a pure code-style cleanup. It removes unnecessary 'const' keywords from function parameter declarations in header files across the Bitcoin Core codebase and adds a clang-tidy rule to prevent them from being reintroduced. The 'const' on a value parameter in a declaration has no effect on callers and does not change program behavior, security, or runtime semantics. There is no vulnerability here.

AI review queuedrefactor: Avoid copies by using const references or by move-constructionby MarcoFalke · faf0c2d9 · Jan 14, 2026 · 10 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: Avoid copies by using const references or by move-construction

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine code cleanup that avoids unnecessary copying of strings and objects by using references or moving values instead. It does not change program behavior or fix any security bug.

Lower-priorityfuzz: Exclude too expensive inputs in miniscript_string targetby MarcoFalke · fac70ea8 · Jan 14, 2026 · 1 fileMessage 60 · AdequateInformational 16Details
Commit message · MarcoFalke

fuzz: Exclude too expensive inputs in miniscript_string target

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 16/100

This commit changes a Bitcoin Core fuzz test (an automated testing tool, not production code) to skip inputs that are unusually complex. The goal is to avoid wasting fuzzing time on strings that would be too slow to parse, not to fix a security bug in live Bitcoin software.

Lower-prioritynoui: Remove always empty caption while formattingby MarcoFalke · fad7bd9b · Jan 14, 2026 · 4 filesMessage 73 · AdequateInformational 17Details
Commit message · MarcoFalke

noui: Remove always empty caption while formatting

The only behavior change is in noui_ThreadSafeQuestion, which can not
detect a style and will log a strCaption=": ".

Fix this by removing it.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 17/100

This commit is a minor cleanup in Bitcoin Core's non-graphical user interface code. It removes a leftover ': ' prefix that was accidentally added to some log and error messages. There is no security vulnerability here—only a small cosmetic fix that makes error messages display correctly in tests and logs.

Lower-priorityrefactor: [gui] Document that the title is always empty for node messageby MarcoFalke · fa8ebeb3 · Jan 14, 2026 · 1 fileMessage 77 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: [gui] Document that the title is always empty for node message

This refactor does not change any behavior.

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100

This is a minor code cleanup in the Bitcoin Core graphical user interface. It removes an unused function parameter and adds a comment explaining that message titles are empty for messages coming from the network node. The commit message explicitly states it does not change any behavior, and the diff confirms this: the same empty title is still passed, just through a local variable instead of a function argument.

Lower-priorityrefactor: Remove empty caption from ThreadSafeMessageBoxby MarcoFalke · fafe71b7 · Jan 14, 2026 · 9 filesMessage 95 · StrongInformational 15Details
Commit message · MarcoFalke

refactor: Remove empty caption from ThreadSafeMessageBox

The caption was empty for all call-sites, so this refactor does not
change any behavior.

Note that noui_ThreadSafeMessageBoxRedirect is test-only, so no end-user
behavior is changed here.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100

This is a simple code cleanup: a function used to show pop-up messages had an unused 'caption' parameter that was always passed as empty. The commit removes that parameter everywhere. The commit message explicitly says it does not change any user-facing behavior, and the code changes match that claim.

Lower-priorityrefactor: Remove empty caption from ThreadSafeQuestionby MarcoFalke · fa8d0088 · Jan 14, 2026 · 7 filesMessage 95 · StrongInformational 15Details
Commit message · MarcoFalke

refactor: Remove empty caption from ThreadSafeQuestion

There is only one call-site, which provided an empty caption.

Note that noui_ThreadSafeQuestionRedirect is test-only and currently
entrirely unused, so the logging format string change is not a behavior
change.

This refactor does not change any behavior.

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100

This is a straightforward code cleanup: a function that asks the user questions used to accept an unused 'caption' parameter. The only caller always passed an empty caption, so the developer removed the parameter entirely. No behavior changes, no security implications.

Lower-priorityiwyu: Fix includes for test/fuzz/util/descriptor moduleby MarcoFalke · fa907864 · Jan 14, 2026 · 2 filesMessage 60 · AdequateInformational 15Details
Commit message · MarcoFalke

iwyu: Fix includes for test/fuzz/util/descriptor module

Also, fix a typo.

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit is a routine code cleanup in Bitcoin Core's test-only fuzzing utilities. It adjusts which C++ header files are included in two test files and fixes two minor comment typos. There is no change to the actual Bitcoin network code, consensus logic, wallet handling, or any code that runs in production.

Lower-priorityci: Install `pyzmq` for functional tests on Windowsby Hennadii Stepanov · f62568c9 · Jan 14, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

ci: Install `pyzmq` for functional tests on Windows

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This change updates Bitcoin Core's Windows CI workflow to install the Python `pyzmq` package before running functional tests. It is a build/test infrastructure fix with no direct effect on the Bitcoin Core software users run, and no security relevance is apparent from the commit itself.

Lower-priorityipc, test: Add tests for unclean disconnect and thread busy behaviorby Ryan Ofsky · 1fea3bae · Jan 14, 2026 · 1 fileMessage 91 · StrongLow 31Details
Commit message · Ryan Ofsky

ipc, test: Add tests for unclean disconnect and thread busy behavior

Upcoming libmultiprocess changes are expected to alter this behavior
(https://github.com/bitcoin/bitcoin/issues/34250#issuecomment-3749243782),
making test coverage useful for documenting current behavior and validating the
intended changes.

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
AI analysis · Low 31/100

This commit adds new automated tests to Bitcoin Core that exercise two known bugs in the experimental multiprocess (IPC) interface: one where disconnecting during a long-running call can crash the node, and another where sending too many calls to the same server thread triggers a 'thread busy' error. The tests document current behavior so future library upgrades can be checked against it. The commit does not fix the bugs; it only adds test coverage.

Lower-prioritybuild: Temporarily remove confusing and brittle -fdebug-prefix-mapby MarcoFalke · fa379285 · Jan 14, 2026 · 2 filesMessage 62 · AdequateInformational 11Details
Commit message · MarcoFalke

build: Temporarily remove confusing and brittle -fdebug-prefix-map

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 11/100

This commit changes Bitcoin Core's build configuration. It removes one compiler flag (-fdebug-prefix-map) from the main CMake build and adds it instead to the Guix reproducible-build script. The change is described by the project as fixing a 'confusing and brittle' build setup, not as a security fix. It primarily affects how source-code paths are embedded in debug information, which can influence build reproducibility and debuggability, but does not by itself create or fix a vulnerability in the running software.

Lower-priorityqa: Fix Windows logging bugby Hennadii Stepanov · 979d41bf · Jan 14, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

qa: Fix Windows logging bug

The regex `(.*)` was capturing `\r` from subprocess output on Windows,
causing the closing parenthesis in logs to wrap to the next line.

Stripping whitespace from the regex match fixes the formatting.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This is a tiny formatting fix in Bitcoin Core's test runner. On Windows, the test output includes a hidden carriage-return character ('\r') that was making the closing parenthesis in log messages appear on a new line. The patch simply trims whitespace from the captured text so the log looks tidy. It does not change any network, wallet, consensus, or node behavior.

Lower-prioritydoc: fix `-logips` description to clarify that non-debug logs can also contain IP addressesby Lőrinc · b39291f4 · Jan 14, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Lőrinc

doc: fix `-logips` description to clarify that non-debug logs can also contain IP addresses

IP addresses controlled by `-logips` are also logged in non-debug outputs:
* LogInfo "outbound peer headers chain has insufficient work" -> src/net_processing.cpp:2909
* LogInfo "Outbound peer has old chain" -> src/net_processing.cpp:5301
* LogInfo "Peer is stalling block download" -> src/net_processing.cpp:6057
* LogInfo "Timeout downloading block" -> src/net_processing.cpp:6076
* LogInfo "Timeout downloading headers" -> src/net_processing.cpp:6092
* LogInfo "Timeout downloading headers from noban peer, not …" -> src/net_processing.cpp:6096
* LogError "Cannot load block from disk" -> src/net_processing.cpp:2386 and src/net_processing.cpp:2399

Co-authored-by: Vasil Dimov <vd@freebsd.org>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit only changes a user-facing help string. It corrects the description of the -logips option from saying it controls IP addresses in 'debug output' to saying it controls IP addresses in 'log output' generally. No code behavior changes, no security fix, no vulnerability.

Lower-priorityinit: log that additional logs may contain privacy-sensitive informationby Lőrinc · c7028d33 · Jan 14, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Lőrinc

init: log that additional logs may contain privacy-sensitive information

Log an info message when any `-debug` categories are enabled, noting they may contain privacy-sensitive information (e.g. transaction IDs) and should not be shared publicly.

Co-authored-by: Vasil Dimov <vd@FreeBSD.org>
Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit adds a simple informational log message warning users that enabling debug logging may write privacy-sensitive details (like transaction IDs) into log files, so they should be careful when sharing logs. It is a user-awareness/privacy-hardening change, not a fix for an exploitable security flaw.

Lower-prioritytest: Fail on self-check warnings in test_runner.pyby MarcoFalke · fa2959e1 · Jan 14, 2026 · 3 filesMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Fail on self-check warnings in test_runner.py

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit changes Bitcoin Core's internal test tooling so that self-check warnings always cause test runs to fail, instead of only doing so when a special '--ci' flag was passed. It also removes the now-unused '--ci' flag from CI scripts. This is a testing-hygiene improvement, not a fix for a security vulnerability in the Bitcoin software itself.

Lower-prioritynet: move `privatebroadcast` logs to debug categoryby Lőrinc · 31b771a9 · Jan 14, 2026 · 2 filesMessage 73 · AdequateLow 49Details
Commit message · Lőrinc

net: move `privatebroadcast` logs to debug category

Private broadcast is a privacy feature, and users may share `debug.log` with support.
Unconditional log messages that mention private broadcast and/or include (w)txids can leak which transactions a user originated.

Move private broadcast event logging from `LogInfo()` to `LogDebug(BCLog::PRIVBROADCAST, ...)` so it is only emitted when debug logging is enabled, and drop the hardcoded "[privatebroadcast]" prefixes.
Keep warnings at the default log level without (w)txids, detailed context remains available under `-debug=privatebroadcast`.

Co-authored-by: Vasil Dimov <vd@FreeBSD.org>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 49/100

This change is a privacy hardening patch for Bitcoin Core's 'private broadcast' feature, which lets users send transactions over anonymity networks like Tor or I2P. Previously, routine log messages about private broadcasts—including transaction identifiers and peer details—were written to the default debug.log file. Because users often share their logs for troubleshooting, this could accidentally reveal which transactions they created. The patch moves those detailed messages behind a special debug logging category, so they only appear when a user explicitly enables it. Warnings stay visible but no longer include sensitive identifiers.

Lower-prioritytest: Check that interrupt results in EXIT_SUCCESSby MarcoFalke · fa16b275 · Jan 14, 2026 · 1 fileMessage 72 · AdequateInformational 12Details
Commit message · MarcoFalke

test: Check that interrupt results in EXIT_SUCCESS

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 12/100

This is a small change to a Bitcoin Core functional test. It adds a check that when the test interrupts (stops) a running node, the node exits with status code 0 (success). Previously the test only waited for the node to stop without checking the exit code. This is a test-hardening improvement, not a fix to the Bitcoin Core software itself.