BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2878 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.

252security candidates603second-pass queue1022AI analyses
208commits · 30 days
493commits · 60 days
1523commits · 180 days
2878commits · 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
917Strong · 80–100
1187Adequate · 60–79
686Thin · 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 Poinsot2248170
Ava Chow15649127064
MarcoFalke40721105074
Lőrinc1772169081
fanquake2271960057
Hennadii Stepanov2081443063
rkrux57944074
Sjors Provoost89824074
Sebastian Falbesoner33717073
David Gumberg55638072
Pieter Wuille95518066
Hodlinator66520076
Analysis record

Published AI watches

Last scanned 10 minutes ago

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 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

kernel, node: colocate dbcache bounds

This commit is a small code cleanup: it moves two constants that define the minimum and maximum size of the database cache (dbcache) into a shared kernel header so that both the node and kernel code use the same limits. There is no change …

8aa21e11by Lőrinc+7−74 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci, iwyu: Enforce warning-free `src/common`

This is a routine code cleanup commit. It adjusts which C++ header files are included in the `src/common` part of Bitcoin Core so that an automated tool called Include What You Use (IWYU) reports no warnings. It also tells the continuous i…

50145f62by Hennadii Stepanov+75−3822 files
No security note in commit
Informational 15 AI analysisMessage 55 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: Rework rpc fuzz target

This commit rewrites an internal fuzz-testing harness for Bitcoin Core's RPC interface. It changes how fake RPC arguments are generated so the test can feed more realistic JSON data (numbers, booleans, nested arrays/objects, raw JSON) dire…

No changes to runtime consensus, networking, wallet, or RPC server logicOnly src/test/fuzz/rpc.cpp is modifiedChange improves fuzzer fidelity by removing RPCConvertValues string-to-JSON conversion
fa895bb7by MarcoFalke+64−481 file
No security note in commit
Informational 20 AI analysisMessage 73 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

wallet: Remove meaningless bool fallback in FundTransaction

This commit removes an old backward-compatibility feature in Bitcoin Core's wallet RPC command `fundrawtransaction`. Previously, callers could pass a plain `true` or `false` as the second argument, which was silently ignored. Now, passing …

Removal of a no-op backward-compatibility code path that silently accepted arbitrary boolean valuesStricter RPC input validation: bare booleans now rejected with a JSON type errorNo memory safety, cryptographic, or consensus changes observed
fa7fe798by MarcoFalke+60−652 files
No security note in commit
Informational 15 AI analysisMessage 35 · Opaque
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

guix: consolidate config flags

This commit is a housekeeping change to Bitcoin Core's Guix build scripts. It only reorders and consolidates CMake configuration flags, and adds a couple of disabled test/build options. There is no change to the actual Bitcoin software cod…

683ae4c5by fanquake+16−146 files
No security note in commit
Informational 17 AI analysisMessage 45 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

gui: Menu action for exporting a watchonly wallet

This commit adds a new menu item in the Bitcoin Core desktop wallet that lets users export a 'watch-only' copy of their wallet. A watch-only wallet can see transactions and balances but cannot spend funds. The change only wires up an exist…

No security-relevant signals detected in the diffNew GUI feature exposing existing wallet export functionalityAction is disabled for wallets with private keys disabled
cb51f97fby Ava Chow+30−04 files
No security note in commit
Repository ledger

Explore captured commits

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

AI review queuedleveldb: remove unused filesby fanquake · 3feabb20 · Feb 20, 2026 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · fanquake

leveldb: remove unused files

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit removes three source files from the LevelDB build list in Bitcoin Core's CMake configuration. The files (c.cc, dumpfile.cc, histogram.cc) are reportedly unused. This is a routine build cleanup with no apparent security relevance.

AI review queuedguix: use a temporary file over spongeby fanquake · c86bce59 · Feb 20, 2026 · 3 filesMessage 25 · OpaqueInformational 17Details
Commit message · fanquake

guix: use a temporary file over sponge

Remove sponge (moreutils).

25/100 · OpaqueMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit changes the Bitcoin Core Guix build scripts to stop using the 'sponge' tool from the 'moreutils' package. Instead of writing a checksum file directly through a pipeline, the scripts now write to a temporary file and then move it into place. This removes a third-party dependency from the trusted build environment, which is a hardening improvement rather than a fix for a known active vulnerability.

AI review queuedqa: Disable parts of the test when running under Windows or rootby Hodlinator · 850a80c1 · Feb 19, 2026 · 1 fileMessage 91 · StrongInformational 15Details
Commit message · Hodlinator

qa: Disable parts of the test when running under Windows or root

test_scanning_sub_dir():
- Remove try/finally - we don't need to clean up after a failed test (done in this commit to maintain indentation).

Regarding symlinks: https://github.com/bitcoin/bitcoin/pull/31410#issuecomment-3554721014

Kept some symlink creation which didn't disrupt Windows cross builds to make for a smaller diff and less cumbersome code. There is some hope of eventually getting better symlink support via #34603.

Co-authored-by: Ava Chow <github@achow101.com>

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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only changes a Bitcoin Core test script. It disables certain file-permission and symlink checks when the test runs on Windows or as the root/admin user, because those checks rely on Unix-style behavior that doesn't apply in those environments. There is no change to the actual Bitcoin Core wallet software that users run, and no security vulnerability is being fixed or introduced.

AI review queuedqa: Check for platform-independent part of error messageby Hodlinator · ed43ce57 · Feb 19, 2026 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Hodlinator

qa: Check for platform-independent part of error message

On Windows one gets different exception messages depending on whether running a native build or cross build.

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 is a minor test-only change. It updates a single automated test in Bitcoin Core so that it checks for a stable, platform-independent error message ('Wallet file verification failed.') instead of a Windows-specific filesystem error string. There is no change to the actual Bitcoin Core wallet code that users run, and no security issue is present.

AI review queuedrefactor(qa): Break apart ginormous run_test()by Hodlinator · 64a098a9 · Feb 19, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Hodlinator

refactor(qa): Break apart ginormous run_test()

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a simple cleanup of a test file. It takes one very long test function and splits it into smaller, named helper functions without changing what the test actually does. There is no change to Bitcoin Core's production code or to how wallets behave.

AI review queuedqa: Test scanning errors individuallyby Hodlinator · fb803e3c · Feb 19, 2026 · 1 fileMessage 78 · AdequateInformational 12Details
Commit message · Hodlinator

qa: Test scanning errors individually

This change ensures that each condition potentially triggering the
"Error while scanning" log message is tested independently, avoiding
false positives.

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>

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

This commit only changes a test file. It reorganizes existing wallet-scanning tests so each error condition is checked separately, rather than lumping them together. There is no change to the actual Bitcoin Core wallet code, so it does not fix or introduce a security issue in the software users run.

AI review queuedscripted-diff: self.nodes[0] => nodeby Hodlinator · c811e473 · Feb 19, 2026 · 1 fileMessage 78 · AdequateInformational 15Details
Commit message · Hodlinator

scripted-diff: self.nodes[0] => node

-BEGIN VERIFY SCRIPT-
sed --in-place 's/self\.nodes\[0\]/node/g; s/node \= node/node \= self\.nodes\[0\]/' ./test/functional/wallet_multiwallet.py
-END VERIFY SCRIPT-

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

This is a purely cosmetic code cleanup in a Bitcoin Core test file. It replaces repeated references to `self.nodes[0]` with a local variable named `node`. No production code, no behavior changes, and no security implications.

AI review queuedrefactor(qa): Remove unused optionby Hodlinator · 73cf8589 · Feb 19, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · Hodlinator

refactor(qa): Remove unused option

Last use was removed in 0d32d661481f099af572e7a08a50e17bcc165c44.

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

This commit simply removes an unused command-line option from a single test script. It is a cleanup change with no effect on Bitcoin Core's runtime behavior, network security, or user funds.

AI review queuedmove-only(qa): Move wallet creation check down to othersby Hodlinator · bb1aff7e · Feb 19, 2026 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Hodlinator

move-only(qa): Move wallet creation check down to others

Makes the functions broken out from run_test() in the next commit more cohesive.

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 is a test-only change that moves a single error-checking test case from one place to another within the same functional test file. It does not change any production code, wallet behavior, or security logic. The commit message explicitly calls it 'move-only'.

AI review queuedrefactor(qa): Lift out functions to outer scopesby Hodlinator · d1a4ddb5 · Feb 19, 2026 · 1 fileMessage 92 · StrongInformational 15Details
Commit message · Hodlinator

refactor(qa): Lift out functions to outer scopes

This prepares for later breaking apart of run_test().

Note that the "wallet" lambda was renamed to "get_wallet" since otherwise the Python interpreter emitted:
"UnboundLocalError: cannot access local variable 'wallet' where it is not associated with a value"

92/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ 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 harmless code cleanup in a test file. It moves some helper functions from inside a test method to the top of the file and renames one variable to avoid a Python language quirk. There is no change to Bitcoin Core's actual wallet behavior or security.

AI review queuedclusterlin: count chunk deps without loop (optimization)by Pieter Wuille · d69c9f56 · Feb 17, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Pieter Wuille

clusterlin: count chunk deps without loop (optimization)

This small optimization avoids the need to loop over the parents of each
transaction when initializing the dependency-counting structures inside
GetLinearization().

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100

This is a small internal code cleanup in Bitcoin Core's transaction clustering/linearization logic. It replaces a loop that counted parent dependencies one-by-one with a faster set-difference count. There is no user-facing change, no network change, and no security-relevant behavior change.

AI review queuedclusterlin: inline GetReachable into Deactivate (optimization)by Pieter Wuille · c2fcf250 · Feb 17, 2026 · 1 fileMessage 85 · StrongInformational 12Details
Commit message · Pieter Wuille

clusterlin: inline GetReachable into Deactivate (optimization)

Avoid two full iterations over all of a chunks' transactions to
recompute the reachable sets, by inlining them into the
dependency-updating loops.

Note that there is no need to do the same for Activate, because the
reachable sets after merging can be computed directly from the input
chunks' reachable sets. Deactivate needs to recompute them, however.

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
second-pass: broader security terminology
AI analysis · Informational 12/100

This is a routine code optimization in Bitcoin Core's transaction clustering logic. It rewrites how one internal data structure (reachable transaction sets) is maintained when chunks of related transactions are split apart. The change is described by the author as a performance improvement and includes no indication of a security fix.

AI review queuedclusterlin: special-case self-merges (optimization)by Pieter Wuille · ae16485a · Feb 17, 2026 · 1 fileMessage 73 · AdequateInformational 13Details
Commit message · Pieter Wuille

clusterlin: special-case self-merges (optimization)

After a split, if the top part has a dependency on the bottom part, the
first MergeSequence will always perform this merge and then stop. This
is referred to as a self-merge.

We can special case these by detecting self-merges early, and avoiding
the overhead of a full MergeSequence which involves two
PickMergeCandidate calls (a succesful and an unsuccesful one).

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 13/100

This is a pure performance optimization inside Bitcoin Core's transaction-cluster linearization code. It detects a common situation called a 'self-merge' earlier in the process and skips unnecessary work. There is no user-visible behavior change, no consensus change, and no security fix.

AI review queuedclusterlin: pool SetInfos (preparation)by Pieter Wuille · 7c6f63a8 · Feb 17, 2026 · 2 filesMessage 58 · ThinInformational 14Details
Commit message · Pieter Wuille

clusterlin: pool SetInfos (preparation)

This significantly changes the data structures used in SFL, based on the
observation that the DepData::top_setinfo fields are quite wasteful:
there is one per dependency (up to n^2/4), but we only ever need one per
active dependency (of which there at most n-1). In total, the number of
chunks plus the number of active dependencies is always exactly equal to
the number of transactions, so it makes sense to have a shared pool of
SetInfos, which are used for both chunks and top sets.

To that effect, introduce a separate m_set_info variable, which stores a
SetInfo per transaction. Some of these are used for chunk sets, and some
for active dependencies' top sets. Every activation transforms the
parent's chunk into the top set for the new dependency. Every
deactivation transforms the top set into the new parent chunk.

With indexes into m_set_data (SetIdx) becoming bounded by the number of
transactions, we can use a SetType to represent sets of SetIdxs.
Specifically, an m_chunk_idxs is added which contains all SetIdx
referring to chunks. This leads to a much more natural way of iterating
over chunks.

Also use this opportunity to normalize many variable names.

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 14/100

This commit is an internal refactoring of Bitcoin Core's transaction-cluster linearization code. It replaces a wasteful data structure (one 'SetInfo' per dependency) with a shared pool of SetInfos indexed separately from transactions. There is no user-facing change, no network protocol change, and no obvious security bug introduced. It is a preparation/cleanup change.

AI review queuedutil: Remove brittle and confusing sp::Popen(std::string)by MarcoFalke · fa626bd1 · Feb 17, 2026 · 6 filesMessage 50 · ThinLow 42Details
Commit message · MarcoFalke

util: Remove brittle and confusing sp::Popen(std::string)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 42/100

This commit refactors how Bitcoin Core launches external helper programs (used for hardware wallet signing). Previously, commands were passed as a single string that the library split into arguments automatically. Now, callers must provide the command and its arguments as a pre-split list. The change reduces the risk of shell-style injection or mis-parsing when command paths or arguments contain spaces or special characters, but it is a code-quality and hardening change rather than a fix for a known exploitable bug.

AI review queuedguix: fix typo in guix-codesignby fanquake · badcf1c6 · Feb 17, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · fanquake

guix: fix typo in guix-codesign

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit fixes a typo in a comment inside a Guix codesigning helper script. The comment incorrectly named the build script as 'build.sh' when it should read 'codesign.sh'. No executable code was changed, so this has no effect on Bitcoin Core's behavior or security.

AI review queuedqt: Use plurals where necessaryby Hennadii Stepanov · 746d8cdd · Feb 17, 2026 · 1 fileMessage 45 · ThinInformational 20Details
Commit message · Hennadii Stepanov

qt: Use plurals where necessary

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 20/100

This commit changes two user-facing text strings in the Bitcoin Core wallet's PSBT (Partially Signed Bitcoin Transaction) dialog so they correctly use singular/plural forms in different languages. It is a localization/translation fix with no security relevance.

AI review queuedlog: fix minor formatting in debug logsby Lőrinc · 736b17c0 · Feb 15, 2026 · 7 filesMessage 80 · StrongInformational 15Details
Commit message · Lőrinc

log: fix minor formatting in debug logs

Tidy a few debug log strings to avoid double spaces, concatenated status words, and mismatched format specifiers.

Co-authored-by: naiyoma <lankas.aurelia@gmail.com>

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 or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a cosmetic cleanup of debug log messages in Bitcoin Core. It removes extra spaces, fixes a couple of mismatched format specifiers (using %s instead of %i for a transaction ID), and makes a status string clearer. There is no security issue here.

AI review queuedrelease noteby Pol Espinasa · 24f93c9a · Feb 13, 2026 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · Pol Espinasa

release note

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only adds a release note documenting that two old Bitcoin Core features, the `-paytxtxfee` startup option and the `settxfee` RPC, have been removed after being deprecated. It is a documentation-only change and does not modify any code.

AI review queuedwallet, rpc:remove settxfee and paytxfeeby Pol Espinasa · 331a5279 · Feb 13, 2026 · 26 filesMessage 45 · ThinInformational 21Details
Commit message · Pol Espinasa

wallet, rpc:remove settxfee and paytxfee

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 21/100

This commit removes two old Bitcoin Core fee-setting mechanisms: the command-line option `-paytxfee` and the RPC command `settxfee`. These had already been marked as deprecated. Users must now set fees per transaction using explicit options like `fee_rate` instead of a global default. There is no security vulnerability here; it is a planned API cleanup that may break old scripts or workflows that still rely on the removed options.

AI review queued[doc] coin selection filters by max cluster count, not descendantby glozow · a067ca34 · Feb 11, 2026 · 7 filesMessage 73 · AdequateInformational 15Details
Commit message · glozow

[doc] coin selection filters by max cluster count, not descendant

Avoid confusion by clarifying the docs and renaming the variables that
now hold cluster count rather than descendant count. No behavior change.

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

This commit only renames variables and updates comments in Bitcoin Core's coin selection code. It changes names like 'descendants' to 'cluster_count' to make the code match what it actually does, with no change in behavior. There is no security issue here.

AI review queuedrefactor: fees: split fee rate format from fee estimate modeby ismaelsadeeq · c1355493 · Feb 11, 2026 · 10 filesMessage 95 · StrongInformational 14Details
Commit message · ismaelsadeeq

refactor: fees: split fee rate format from fee estimate mode

- Introduce a `FeeRateFormat` enum and change `CFeeRate::ToString()`
to use it for `BTC/kvB` vs `sat/vB` output formatting.
- Handle all enum values, hence remove default case in `CFeeRate::ToString()`
and `assert(False)` when a `FeeRateFormat` value is not handled.
- Keep `FeeEstimateMode` focused on fee estimation behavior by removing fee rate format
values from `FeeEstimateMode`.
- Update all formatting call sites and tests to pass `FeeRateFormat` explicitly, separating fee rate format
from fee-estimation mode selection.

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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 14/100

This is a code cleanup change that separates how fee rates are displayed (BTC/kvB versus sat/vB) from how fees are estimated. It introduces a new FeeRateFormat enum and removes display-only values from the FeeEstimateMode enum. There is no security fix or behavior change visible in the diff.

AI review queued[refactor] rename variable to clarify it is unused and cluster countby glozow · f7be5fb8 · Feb 10, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · glozow

[refactor] rename variable to clarify it is unused and cluster count

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! 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 simple code cleanup: it renames a local variable from 'descendant_count' to 'unused_cluster_count' in two wallet files to make clear that the value is not actually used. There is no functional change, no bug fix, and no security relevance.

AI review queuedtxgraph: pass fallback_order to TxGraph (preparation)by Pieter Wuille · fba004a3 · Feb 9, 2026 · 7 filesMessage 73 · AdequateInformational 15Details
Commit message · Pieter Wuille

txgraph: pass fallback_order to TxGraph (preparation)

This adds an std::function<strong_ordering(Ref&,Ref&)> argument to the
MakeTxGraph function, which can be used by the caller (e.g., mempool
code) to provide a fallback order to TxGraph.

This is just preparation; TxGraph does not yet use this fallback order
for anything.

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

This commit is a pure internal refactoring in Bitcoin Core. It adds a new optional tie-breaker function (called fallback_order) to the transaction graph (TxGraph) code, but explicitly does not use it yet. It is preparation for future work and does not change any network behavior, consensus rules, or security properties.

AI review queuedrefactor: interfaces, make 'createTransaction' less error-proneby furszy · 4c0d4f6f · Feb 6, 2026 · 3 filesMessage 85 · StrongInformational 19Details
Commit message · furszy

refactor: interfaces, make 'createTransaction' less error-prone

Bundle all function's outputs inside the util::Result returned object.

Reasons for the refactoring:
- The 'change_pos' ref argument has been a source of bugs in the past.
- The 'fee' ref argument is currently only set when the transaction creation process succeeds.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This is a code cleanup change in Bitcoin Core. It bundles the outputs of the 'createTransaction' function into a single result object instead of using separate reference arguments. The commit message says this makes the function less error-prone because the old way of passing back 'change position' and 'fee' through reference arguments had caused bugs before. There is no direct evidence in the diff of a currently exploitable security vulnerability being fixed.