BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2888 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 candidates604second-pass queue1207AI analyses
207commits · 30 days
501commits · 60 days
1527commits · 180 days
2882commits · 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
926Strong · 80–100
1188Adequate · 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 Chow15649132064
MarcoFalke40921113074
Lőrinc1772191081
fanquake2271990057
Hennadii Stepanov2091474063
rkrux57944074
Sjors Provoost89826074
Sebastian Falbesoner33717073
David Gumberg55638072
Pieter Wuille95520066
Hodlinator66523076
Analysis record

Published AI watches

Last scanned 25 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 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
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: update NetBSD cross-build SDK

This is a routine maintenance update to Bitcoin Core's continuous integration (CI) system. It changes the version number of the NetBSD operating system used for cross-compilation testing from a release candidate (11.0_RC6) to the final rel…

2c87337eby Lőrinc+1−11 file
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: require `TryGetTotalRam()` detection

This commit only changes a test file and build configuration. It removes the option to skip a test when the system cannot detect total RAM, and instead requires the RAM detection to succeed. It does not change any production wallet, networ…

6a2de55aby Lőrinc+3−112 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: use `MIN_DBCACHE_BYTES`

This commit is a simple automated rename of a constant from MIN_DB_CACHE to MIN_DBCACHE_BYTES across five files. The value stays the same (4 MiB), and no behavior changes. It is a code-cleanup/refactoring change with no security relevance.

7cfa21d6by Lőrinc+5−55 files
No security note in commit
Informational 20 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

kernel: allow setting chainstate `dbcache`

This commit adds a new public API knob to the Bitcoin Core 'libbitcoinkernel' library so that programs using the kernel can choose how much memory to use for the chainstate database cache. It also enforces minimum and maximum size limits. …

New configurable cache-size API with explicit min/max validationReplaces hard-coded DEFAULT_KERNEL_CACHE with caller-supplied valueAdds unit tests for out-of-range rejection and 32-bit upper-bound rejection
8bd9f460by Lőrinc+41−14 files
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 62 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

node, qt: inline `DEFAULT_DB_CACHE`

This is a small code cleanup change in Bitcoin Core. It removes a misleading alias named DEFAULT_DB_CACHE and replaces it with the underlying name DEFAULT_KERNEL_CACHE in a few places. The behavior of the program is unchanged; only the nam…

cd086c16by Lőrinc+5−74 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.

Lower-priorityguix: Update `python-signapple` and wrap with OpenSSL pathsby Hennadii Stepanov · 0b9e10ad · May 26, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Hennadii Stepanov

guix: Update `python-signapple` and wrap with OpenSSL paths

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-prioritymining: add submitBlock IPC method to Mining interfaceby woltx · 5b60f69e · May 26, 2026 · 4 filesMessage 73 · AdequateInformational 23Details
Commit message · woltx

mining: add submitBlock IPC method to Mining interface

Add a submitBlock method to the Mining IPC interface, similar to the
submitblock RPC. This accepts a fully assembled block, validates it, and
if accepted as new, processes it into chainstate.

This is needed for Stratum v2 Job Declarator Server (JDS), where accepted
solutions may correspond to jobs not tied to a Bitcoin Core BlockTemplate.
JDS receives PushSolution fields and reconstructs full blocks; without an
IPC submitBlock method, final submission requires the submitblock RPC.

The method returns detailed status (reason/debug strings) matching the
checkBlock pattern, giving callers enough information to handle
validation failures.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
defensive validation
AI analysis · Informational 23/100

This commit adds a new internal 'submitBlock' method to Bitcoin Core's Mining interface, used by external mining software (like Stratum v2 servers) to submit fully assembled blocks for validation. It is a feature addition that mirrors the existing submitblock RPC. There is no direct evidence in the commit of a security vulnerability, but it exposes block submission over the IPC interface, which carries the same general risks as any block-submission path: a compromised or buggy caller could submit invalid or duplicate blocks. The implementation explicitly rejects duplicates and requires a complete block, including coinbase witness data when needed.

AI review queuedtest: add IPC submitBlock functional testby woltx · 3962138c · May 26, 2026 · 2 filesMessage 100 · StrongInformational 15Details
Commit message · woltx

test: add IPC submitBlock functional test

Test the new Mining.submitBlock IPC method:
- Invalid block (bad version) returns failure with reason
- Valid block (with a real mempool tx) is accepted and propagates
- Duplicate block returns failure with "duplicate" reason
- Witness commitment without coinbase witness nonce is rejected
(bad-witness-nonce-size), confirming no auto-fix behavior
- submitBlock then submitSolution: duplicate is accepted (submitSolution
returns true for already-known blocks)
- submitSolution then submitBlock interaction (duplicate)

Build candidate blocks from BlockTemplate data in the existing coinbase and
submission test, then exercise checkBlock(), submitSolution(), and
submitBlock() against those candidates. submitBlock() uses an isolated IPC
node for cases that would otherwise affect the main submitSolution() and
checkBlock() assertions.

100/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✓ Mentions testing or verification
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 15/100

This commit only adds new automated tests for the Bitcoin Core IPC mining interface. It does not change any production node code, consensus rules, or network behavior. The tests verify that a new submitBlock IPC method correctly accepts valid blocks and rejects invalid, duplicate, or malformed ones. There is no security vulnerability here.

Lower-priorityrefactor: introduce SubmitBlock helperby w0xlt · 813b4a80 · May 26, 2026 · 3 filesMessage 70 · AdequateTriage 0Details
Commit message · w0xlt

refactor: introduce SubmitBlock helper

Introduce a SubmitBlock() helper in node/miner.cpp that wraps
ProcessNewBlock submission and captures validation state through
the BlockChecked callback.

Route submitSolution through the helper before adding any new IPC method.

No behavior change.

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI review queuedwallet: refactor to read -walletrbf only once instead of twiceby rkrux · a3fe455a · May 26, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · rkrux

wallet: refactor to read -walletrbf only once instead of twice

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 is a tiny code cleanup in Bitcoin Core's wallet setup. It changes how the deprecated '-walletrbf' setting is read so the value is fetched once and reused, rather than checked for existence and then fetched separately. There is no security issue here.

AI review queuedtest: Allow --usecli in tests that already support itby MarcoFalke · fa246938 · May 26, 2026 · 5 filesMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Allow --usecli in tests that already support it

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

This commit only changes Bitcoin Core's internal test scripts. It removes five lines that previously told the test framework these particular tests cannot be run with the command-line bitcoin-cli tool. There is no change to the actual Bitcoin node software, no security fix, and no vulnerability.

Lower-prioritytest: Catch CalledProcessError to support --usecli in feature_dbcrash.pyby MarcoFalke · fa8d4d5c · May 26, 2026 · 1 fileMessage 72 · AdequateTriage 0Details
Commit message · MarcoFalke

test: Catch CalledProcessError to support --usecli in feature_dbcrash.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
Lower-prioritytest: use echojson to allow rpc_named_arguments.py --usecliby MarcoFalke · faf0f848 · May 26, 2026 · 1 fileMessage 95 · StrongTriage 0Details
Commit message · MarcoFalke

test: use echojson to allow rpc_named_arguments.py --usecli

The echo and echojson RPCs are identical in the server. The only
difference is that echojson is in the client conversion table.

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
Lower-prioritytest: Stop node before modifying config to support rpc_users.py --usecliby MarcoFalke · faf993ee · May 26, 2026 · 1 fileMessage 99 · StrongTriage 0Details
Commit message · MarcoFalke

test: Stop node before modifying config to support rpc_users.py --usecli

Otherwise, bitcoin-cli will read the wrong config from the "future".

99/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode✓ Mentions testing or verification
Lower-prioritychainparams: add overloads for RegTest and SigNet with no optionsby Antoine Poinsot · 801e3bfe · May 25, 2026 · 3 filesMessage 85 · StrongTriage 0Details
Commit message · Antoine Poinsot

chainparams: add overloads for RegTest and SigNet with no options

For consistency with the overloads introduced in the previous commit,
and because there is already a few places where they are useful.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Lower-prioritychainparams: make deployment configuration available on all test networksby Antoine Poinsot · 4995c00a · May 25, 2026 · 5 filesMessage 83 · StrongTriage 0Details
Commit message · Antoine Poinsot

chainparams: make deployment configuration available on all test networks

This allows unit tests to set `-testactivationheight` and `-vbparams` on
all networks instead of exclusively on regtest. Those are kept
test-network-only when used as startup parameters.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Security candidateutil: Require integers for SaturatingAdd() and AdditionOverflow()by Hodlinator · 0774eaaf · May 25, 2026 · 1 fileMessage 73 · AdequateLow 33Details
Commit message · Hodlinator

util: Require integers for SaturatingAdd() and AdditionOverflow()

Previously we could fall back to using an unspecialized implementation of std::numeric_limits<T> which would compile as long as the numeric operators existed, but would return 0 for min() & max().

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
memory safety
AI analysis · Low 33/100

This change tightens two low-level math helper functions so they only accept whole-number (integer) types. Previously, a non-integer type could slip through and silently produce wrong min/max values because the generic fallback for numeric limits returns 0. The patch prevents that misuse at compile time rather than relying on an internal check.

Lower-prioritydoc: add release notes for #35319by Vasil Dimov · 32d072a4 · May 25, 2026 · 1 fileMessage 53 · ThinTriage 0Details
Commit message · Vasil Dimov

doc: add release notes for #35319

53/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
documentation-only discount
Lower-prioritynet: ensure no direct private broadcast connectionsby Vasil Dimov · d01b461f · May 25, 2026 · 2 filesMessage 85 · StrongTriage 0Details
Commit message · Vasil Dimov

net: ensure no direct private broadcast connections

Private broadcast connections use either Tor or I2P, which require a
proxy intrinsically or IPv4 or IPv6 which must use a proxy in the
context of private broadcast to avoid leaking the originator's IP
address.

Add a safety check to guard against future mistakes.

Co-authored-by: Andrew Toth <andrewstoth@gmail.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Lower-prioritynet: use the proxy if overriden when doing v2->v1 reconnectionsby Vasil Dimov · fd230f94 · May 25, 2026 · 2 filesMessage 73 · AdequateTriage 0Details
Commit message · Vasil Dimov

net: use the proxy if overriden when doing v2->v1 reconnections

`OpenNetworkConnection()` supports overriding the proxy to use for
connecting. However when v2 connection is attempted and it fails a v1
connection is tried without that proxy.

Store the override proxy in `CNode` and pass it to
`CConnman::m_reconnections` to be used for v1 retries.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-priorityrpc: Correct type for tx_sigopsby Hodlinator · a815e3e2 · May 25, 2026 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · Hodlinator

rpc: Correct type for tx_sigops

Broken out from larger effort to make CAmount more type safe.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Security candidatetest: remove the lazy import of util in authproxyby rkrux · 7be0d6fa · May 25, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · rkrux

test: remove the lazy import of util in authproxy

This lazy import prompted the removal of the circular dependency, so
remove it now that we can.

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
Why it was queued
authentication path
AI analysis · Informational 15/100

This is a minor code cleanup in Bitcoin Core's test framework. It removes a lazy (deferred) import and replaces it with a normal import at the top of the file. There is no security issue here—it's purely a refactoring change to simplify the code after an earlier dependency cleanup.

Security candidatetest: move out JSONRPCException from authproxy to utilby rkrux · 779f4446 · May 25, 2026 · 10 filesMessage 100 · StrongInformational 15Details
Commit message · rkrux

test: move out JSONRPCException from authproxy to util

So that util is not dependent on authproxy at all and going
forward authproxy can use util methods.

Reviewing with --color-moved=dimmed-zebra option can be helpful.

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
Why it was queued
signing or wallet pathauthentication path
AI analysis · Informational 15/100

This is a harmless internal code cleanup in Bitcoin Core's test suite. It moves a Python exception class named JSONRPCException from one test helper file (authproxy.py) to another (util.py) and updates the files that import it. There is no change to how Bitcoin nodes behave, no fix for a security bug, and no change that affects real users or live networks.

Lower-prioritydoc: add feature deprecation and removal process to developer notesby Guillermo Fernandes · 2e9fdcc6 · May 22, 2026 · 1 fileMessage 81 · StrongTriage 0Details
Commit message · Guillermo Fernandes

doc: add feature deprecation and removal process to developer notes

Adds a dedicated "Feature deprecation and removal process" section to
developer-notes.md covering the deprecation lifecycle for RPC methods,
startup options, REST interface, and ZMQ.

Closes #31980

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
documentation-only discount
Lower-prioritytest: Set TestNode url field early, so that feature_loadblock.py --usecli worksby MarcoFalke · fa4fc8c1 · May 22, 2026 · 2 filesMessage 84 · StrongTriage 0Details
Commit message · MarcoFalke

test: Set TestNode url field early, so that feature_loadblock.py --usecli works

84/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Explains rationale or failure mode✓ Mentions testing or verification! No meaningful explanatory body
Lower-prioritydoc: add release notes for deprecation of wallet rbf & bip125 fieldsby rkrux · 5faf2ad8 · May 22, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · rkrux

doc: add release notes for deprecation of wallet rbf & bip125 fields

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI review queuedwallet: remove "RPC Only" from -walletrbf option help descriptionby rkrux · aba24a9b · May 22, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · rkrux

wallet: remove "RPC Only" from -walletrbf option help description

Effective post https://github.com/bitcoin-core/gui/pull/936.

Co-authored-by: Pol Espinasa <pol.espinasa@uab.cat>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ 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 is a one-word documentation update. It removes the phrase 'RPC only' from the help text of the -walletrbf command-line option because the feature is now also available through the graphical user interface. There is no code behavior change and no security impact.

Security candidateci: switch to GitHub cache for all runnersby willcl-ark · c03107ac · May 22, 2026 · 5 filesMessage 80 · StrongInformational 15Details
Commit message · willcl-ark

ci: switch to GitHub cache for all runners

Cirrus is winding down and github now offers more than 10GB cache.

Switch to GH cache for all runner-types. Simplify docker build arg
construction, and reduce the number of needed action permissions.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
credential or privilege statedocumentation-only discount
AI analysis · Informational 15/100

This commit is a routine infrastructure change for Bitcoin Core's continuous integration (CI) system. It switches the CI cache provider from Cirrus to GitHub's own cache service because Cirrus is being phased out and GitHub now offers more cache storage. The changes only affect how build artifacts and dependencies are stored between automated test runs; they do not modify the Bitcoin Core software that users run, nor do they introduce any known security vulnerability.

Lower-priorityrpc: avoid moving RPC enum typesby Lőrinc · d9f94aa8 · May 22, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · Lőrinc

rpc: avoid moving RPC enum types

`RPCArg::Type` and `RPCResult::Type` are enum values, so moving them in constructors is no different from copying them.

Initialize the stored type fields directly.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-prioritytxgraph: avoid moving primitive membersby Lőrinc · 3e8e21b2 · May 22, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · Lőrinc

txgraph: avoid moving primitive members

`CommitStaging()` moved primitive staging members into the main cluster set even though moving them only copies the values.

Assign the primitive members directly and keep moves for the owning containers.

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