BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2900 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
206commits · 30 days
502commits · 60 days
1535commits · 180 days
2884commits · 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
937Strong · 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 46 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.

Lower-prioritytest: misc interface_ipc_mining.py improvementsby Sjors Provoost · 633d1831 · Feb 6, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · Sjors Provoost

test: misc interface_ipc_mining.py improvements

- share miniwallet and block create options between tests
- documentation fixes
- use assert_equal instead of assert ==

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This is a routine cleanup of a Bitcoin Core functional test file. It moves shared test setup out of individual test methods, fixes a couple of log comments, and replaces a plain Python assert with a proper test-framework assertion. There is no change to production code or to any security-sensitive behavior.

Lower-prioritytest: add interface_ipc_mining.pyby Sjors Provoost · 4e49fa2a · Feb 6, 2026 · 3 filesMessage 80 · StrongInformational 15Details
Commit message · Sjors Provoost

test: add interface_ipc_mining.py

Split Mining interface tests into interface_ipc_mining.py and keep
interface_ipc.py for echo + simple inspectors.

Register the new test in test_runner.py.

The setup code around "Create Mining proxy object" is duplicated
in the new test file, but the simple insector checks below it
are not moved.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit is a routine test-code refactor. It splits the existing IPC (inter-process communication) functional tests into two files: one for simple echo/inspector checks and a new one specifically for mining-interface checks. No production code, consensus rules, or network behavior were changed.

Lower-prioritytest: move IPC helpers to ipc_util.pyby Sjors Provoost · 01a1ae88 · Feb 6, 2026 · 2 filesMessage 90 · StrongInformational 15Details
Commit message · Sjors Provoost

test: move IPC helpers to ipc_util.py

Move IPC helpers into ipc_util.py and update interface_ipc.py
to use them.

Rename some helpers for clarity:
- parse_and_deserialize_block -> mining_get_block
- parse_and_deserialize_coinbase_tx -> mining_get_coinbase_tx
- get_coinbase_raw_tx -> mining_get_coinbase_raw_tx
- wait_next_template -> mining_wait_next_template

90/100 · StrongMessage clarity
✓ 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 commit is a simple code cleanup in Bitcoin Core's test suite. It moves helper functions used by the IPC (inter-process communication) tests from one file into a new shared utility file and renames some functions for clarity. No production code, consensus rules, or wallet/security logic is changed.

Lower-priorityqt: Update the `src/qt/locale/bitcoin_en.xlf` translation source fileby Hennadii Stepanov · 576f8920 · Feb 6, 2026 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source file

Steps to reproduce the diff on Ubuntu 25.10:
```
cmake --preset dev-mode
cmake --build build_dev_mode --target translate
```

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

This commit is a routine update of the English translation source files for the Bitcoin Core graphical user interface. It adds, removes, and reorders user-facing text strings so that translators can keep the application's messages up to date. There is no code change that affects how Bitcoin Core behaves, processes transactions, or secures funds.

Lower-priorityUpdate Transifex slug for 31.xby Hennadii Stepanov · 4b9f5bea · Feb 6, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Hennadii Stepanov

Update Transifex slug for 31.x

Update the Transifex slug to match the new resource created for the
upcoming 31.x branch.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit changes a single configuration line that tells Bitcoin Core's translation system which online Transifex resource to use for the 31.x release. It is a routine version-string update with no security relevance.

AI review queuedrefactor: [rpc] Remove confusing and brittle integral casts (take 2)by MarcoFalke · fa680136 · Feb 6, 2026 · 10 filesMessage 62 · AdequateInformational 18Details
Commit message · MarcoFalke

refactor: [rpc] Remove confusing and brittle integral casts (take 2)

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 18/100

This commit is a code cleanup in Bitcoin Core's RPC (remote procedure call) output code. It removes explicit type casts when adding numeric values to JSON responses, relying on the underlying types instead. There is no direct evidence this fixes a security vulnerability; it is presented by the author as a refactoring to make the code less confusing and brittle.

Lower-priorityci: add chimera Linux LTO CI jobby fanquake · d79249d2 · Feb 6, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · fanquake

ci: add chimera Linux LTO CI job

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit adds a new automated testing configuration file for Bitcoin Core's continuous integration (CI) system. It sets up a build environment using Chimera Linux with link-time optimization (LTO) enabled. There is no code change to Bitcoin Core itself, no bug fix, and no security-relevant change.

AI review queuedwallet: remove PreSelectedInputsby stratospher · b7fa609e · Feb 6, 2026 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · stratospher

wallet: remove PreSelectedInputs

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply removes an unused internal data structure called PreSelectedInputs from a wallet header file. It is a code cleanup change with no functional behavior change and no apparent security relevance.

AI review queuedwallet: introduce "tx amount exceeds balance when fees are included" errorby stratospher · 48161f6a · Feb 6, 2026 · 3 filesMessage 73 · AdequateInformational 20Details
Commit message · stratospher

wallet: introduce "tx amount exceeds balance when fees are included" error

This was previously implemented at the GUI level but we never hit that
code path.

Co-authored-by: furszy <matiasfurszyfer@protonmail.com>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 20/100

This change improves the error message shown when a Bitcoin wallet user tries to send an amount that fits their balance but leaves no room for the network transaction fee. Previously the wallet just said 'Insufficient funds.' Now it explains that the total exceeds the balance once the fee is included. It is a user-experience and diagnostic improvement, not a security fix.

AI review queuedwalllet: use CoinsResult instead of PreSelectedInputsby stratospher · 7819da2c · Feb 6, 2026 · 4 filesMessage 85 · StrongLow 27Details
Commit message · stratospher

walllet: use CoinsResult instead of PreSelectedInputs

PreSelectedInputs is confusing to use. it's `total_amount`
might store total amount or effective amount based on SFFO.
ex: we might accidentally sum preselected inputs effective
amount (named `total_amount`) with automatically selected
inputs actual total amount.

CoinsResult has a cleaner interface with separate fields
for both these amounts.

2 behavioural changes:

1. no more default assert error if effective value is unset
- previously PreSelectedInputs::Insert() called
COutput::GetEffectiveValue() which assert failed
if the optional was unset.
- now we don't default assert anymore.
* in GUI/getAvailableBalance better not to assert.
* SelectCoins's preselected inputs always contain a
feerate, so effective amount should be set.
explicitly added an assertion to ensure this.

2. FetchSelectedInputs uses OutputType::UNKNOWN as key to
populate CoinsResult's coins map. it's discarded later.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This is a Bitcoin Core wallet code cleanup that replaces an internal data structure called PreSelectedInputs with a cleaner one called CoinsResult. The commit message says the old structure was confusing because a field named total_amount could hold two different kinds of amounts, which could lead to accidentally mixing them. The patch separates those amounts and adds an explicit safety check where it matters. It is a defensive refactor rather than a fix for a known live bug or exploit.

Lower-priorityci: [refactor] Add .github/ci-windows.py prepare_tests stepby MarcoFalke · fa561682 · Feb 6, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

ci: [refactor] Add .github/ci-windows.py prepare_tests step

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
documentation-only discount
AI analysis · Informational 15/100

This commit is a pure cleanup of the Windows CI (Continuous Integration) script. It moves two test-preparation tasks—installing a Python package for normal tests and cloning test data for fuzz tests—into a single helper function. There is no change to Bitcoin Core's actual code, no security fix, and no new vulnerability.

Lower-priorityci: Print verbose Windows CI build failureby MarcoFalke · fa3e607c · Feb 6, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · MarcoFalke

ci: Print verbose Windows CI build failure

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This change only affects how Bitcoin Core's automated Windows build system reports failures. It makes the CI (continuous integration) script retry a failed parallel build with a single-threaded verbose build to get clearer logs. There is no change to Bitcoin's networking, consensus, wallet, or any code users run.

Lower-priorityci: [refactor] Add .github/ci-windows.py build stepby MarcoFalke · 4444808d · Feb 6, 2026 · 2 filesMessage 100 · StrongInformational 15Details
Commit message · MarcoFalke

ci: [refactor] Add .github/ci-windows.py build step

Note, the use of process_cpu_count() is intentional. It was only added
in Python 3.13, according to
https://docs.python.org/3/library/os.html#os.process_cpu_count .

However, Python 3.13 is also the minimum required version on Windows,
according to
https://github.com/bitcoin/bitcoin/issues/29897#issuecomment-2940318094
to avoid intermittent test failures.

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✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit is a pure CI (Continuous Integration) refactor for Windows builds. It moves the existing Windows build command from the GitHub Actions YAML file into a shared Python helper script, using a new Python 3.13 function to count CPU cores. There is no change to Bitcoin Core's actual code, no security fix, and no vulnerability introduced.

AI review queuedci: Refactor Windows CI into scriptby MarcoFalke · fabdd4e8 · Feb 6, 2026 · 2 filesMessage 90 · StrongInformational 15Details
Commit message · MarcoFalke

ci: Refactor Windows CI into script

This makes it easier to:

* Run the exact command of any CI type and step locally
* Re-Run older CI tasks on GHA and using the latest merged config.
(.github/ci-windows.py is merged with master on re-runs, but
.github/workflows/ci.yml is NOT)

Also, writing it in Python has benefits:

* Any developer (even non-Windows ones) can read and modify the script.
* Python is already required for tests, so no new dependency is needed.

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
documentation-only discountsecond-pass: broader security terminology
AI analysis · Informational 15/100

This commit simply moves the Windows CI build command out of the GitHub Actions YAML file and into a small Python helper script. It does not change what software is built, how it is built, or any user-facing behavior. There is no security issue here.

Lower-prioritydoc: Clarify why performance-move-const-arg.CheckTriviallyCopyableMove=falseby MarcoFalke · fa88ac3f · Feb 6, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

doc: Clarify why performance-move-const-arg.CheckTriviallyCopyableMove=false

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Explains rationale or failure mode! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds a comment to a configuration file explaining why a clang-tidy linting option is turned off. It does not change any executable code, build settings, or security behavior. It is purely documentation.

AI review queuedrefactor: Use SpanReader over DataStreamby MarcoFalke · fa0677d1 · Feb 6, 2026 · 23 filesMessage 90 · StrongInformational 14Details
Commit message · MarcoFalke

refactor: Use SpanReader over DataStream

This refactor does not change behavior. However, it avoids a vector
copy, which can lead to a minimal speed-up of 1%-5%, depending on the
call-site. This is mostly relevant for the fuzz tests and utils that
read large blobs of data (like a full block).

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencesigning or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 14/100

This is a routine code cleanup in Bitcoin Core that swaps one internal data-reading helper (DataStream) for another (SpanReader) across many files. The commit message explicitly says it does not change behavior, and the diff only shows mechanical replacements with no new logic. There is no security issue visible in the change.

AI review queuedwallet: ensure COutput added in set are uniqueby stratospher · 7072d825 · Feb 6, 2026 · 7 filesMessage 76 · AdequateLow 32Details
Commit message · stratospher

wallet: ensure COutput added in set are unique

before #25806, set<COutput> was used and would not
contain same COutputs in the set.

now we use set<shared_ptr<COutput>> and it might be
possible for 2 distinct shared_ptr (different pointer
address but same COutputs) to be added into the set.

so preserve previous behaviour by making sure values
in the set are also distinct

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 32/100

This Bitcoin Core change fixes a subtle bug in how the wallet keeps track of selected coins. Previously, the wallet used a set of coin objects directly, which automatically prevented duplicates. After a recent refactor, it started using a set of pointers to coin objects, where the default behavior only prevents duplicate pointer addresses—not duplicate coins. This meant two different pointers representing the same coin could both end up in the selection, potentially causing the wallet to try to spend the same coin twice or miscalculate fees and change. The fix makes the set compare the actual coin data, not just pointer addresses, restoring the old duplicate-prevention behavior.

AI review queuedwallet: introduce GetAppropriateTotal() in CoinsResultby stratospher · e5474079 · Feb 6, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · stratospher

wallet: introduce GetAppropriateTotal() in CoinsResult

returns the total amount (if SFFO), otherwise the effective amount.
previously, this was the logic in calculating
PreSelectedInputs::total_amount when PreSelectedInputs::Insert()
was called.

return optional to force callers to explicitly handle the case
when effective amount optional is not set.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a small, clean code refactor inside the Bitcoin Core wallet. It moves an existing calculation into a new helper function and makes a few methods 'const' (read-only). There is no change to behavior, no bug fix, and no security issue visible in the diff.

AI review queuedwallet: correctly reserve in CoinsResult::All()by stratospher · d8ea921d · Feb 6, 2026 · 1 fileMessage 68 · AdequateInformational 16Details
Commit message · stratospher

wallet: correctly reserve in CoinsResult::All()

coins.size() would be the number of the OutputType keys in the map.
whereas Size() would return total number of COutput objects when
flattening the map.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This is a tiny performance fix in the Bitcoin Core wallet code. A helper function that gathers all spendable coins into one flat list was reserving memory based on the number of coin categories (for example, how many output types exist) rather than the actual total number of coins. The change makes it reserve the correct, larger amount of memory up front. It does not change any security logic, balances, or transaction construction rules.

AI review queuedwallet: fix, make 'total_effective_amount' optional actually optionalby stratospher · fefa3be7 · Feb 6, 2026 · 2 filesMessage 81 · StrongLow 30Details
Commit message · stratospher

wallet: fix, make 'total_effective_amount' optional actually optional

this is not needed for the remaining commits but good to fix
and came up in #25269 review.

Co-authored-by: furszy <matiasfurszyfer@protonmail.com>

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 30/100

This is a small code cleanup in Bitcoin Core's wallet coin-selection logic. The change makes a cached optional value behave as actually optional (unset by default) and only updated when it has a value. It fixes a logic inconsistency found during code review, but there is no direct evidence it prevents a real-world exploit or user-visible bug on its own.

Lower-prioritybuild: replace WERROR with CMAKE_COMPILE_WARNING_AS_ERRORby fanquake · 322c4ec4 · Feb 5, 2026 · 5 filesMessage 93 · StrongInformational 15Details
Commit message · fanquake

build: replace WERROR with CMAKE_COMPILE_WARNING_AS_ERROR

-Werror is added to the previous releases job, given it runs on Ubuntu
22.04, which uses an older CMake.

`--compile-no-warning-as-error` can be used, if needed, in future, to
suppress the `CMAKE_COMPILE_WARNING_AS_ERROR` behaviour from a CI
config.

CMAKE_COMPILE_WARNING_AS_ERROR was added to CMake in 3.24.
See https://cmake.org/cmake/help/latest/prop_tgt/COMPILE_WARNING_AS_ERROR.html.

Co-authored-by: willcl-ark <will8clark@gmail.com>

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

This is a build-system cleanup. It swaps a custom Bitcoin Core option called WERROR for a standard CMake option called CMAKE_COMPILE_WARNING_AS_ERROR, which does the same thing: turn compiler warnings into build errors. No security vulnerability is present; it is purely a maintenance change to use upstream CMake functionality.

Lower-prioritysignals: remove forward-declare for signalsby Cory Fields · 9ade3929 · Feb 5, 2026 · 2 filesMessage 60 · AdequateInformational 15Details
Commit message · Cory Fields

signals: remove forward-declare for signals

This eases the transition to a replacement signals implementation

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This is a routine code cleanup change. It removes forward declarations of the Boost signals2 library and replaces them with a direct include of a project header named btcsignals.h. There is no functional change to program behavior and no security relevance visible in the diff.

AI review queuedsignals: use an alias for the boost::signals2 namespaceby Cory Fields · edc29780 · Feb 5, 2026 · 10 filesMessage 65 · AdequateInformational 15Details
Commit message · Cory Fields

signals: use an alias for the boost::signals2 namespace

The next commit will add a real implementation in this namespace.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a simple code cleanup: it creates a project-specific alias `btcsignals` for the external library namespace `boost::signals2`, and replaces all direct uses of `boost::signals2` with the new alias. There is no functional change, no bug fix, and no security-relevant behavior change.

AI review queuedsignals: use forwarding header for boost signalsby Cory Fields · 037e58b5 · Feb 5, 2026 · 9 filesMessage 60 · AdequateInformational 15Details
Commit message · Cory Fields

signals: use forwarding header for boost signals

For now, including btcsignals.h simply includes boost's signals. A follow-up
commit will replace the implementation.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a simple code cleanup: it creates a new internal header file called btcsignals.h that currently just forwards to Boost's signals library, and then replaces direct Boost signals includes across several source files with this new header. There is no functional change, no bug fix, and no security-relevant behavior change.

Lower-prioritycmake: Add missed `USDT::headers`by Hennadii Stepanov · 94a692b6 · Feb 5, 2026 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · Hennadii Stepanov

cmake: Add missed `USDT::headers`

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 18/100

This is a one-line CMake build fix that adds a missing reference to USDT (Userland Statically Defined Tracing) headers for the test_bitcoin target. It ensures the test suite compiles correctly when USDT tracing support is enabled. There is no indication this is a security vulnerability or that it affects runtime behavior of Bitcoin Core.