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.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This update fixes two bugs in bitcoin-cli, the command-line tool used to talk to a Bitcoin node. First, when a server replied with an empty body but said it was intentionally empty (Content-Length: 0), the client would keep waiting instead…
Client-side hang on empty HTTP body (denial-of-service against bitcoin-cli user)Timeout regression could abort legitimate slow RPC responsesFix distinguishes Content-Length: 0 from absent Content-Length
This commit is a documentation and code-style cleanup for Bitcoin Core's continuous integration (CI) scripts. It changes how build configuration strings are formatted in shell scripts so comments can sit next to the options they describe, …
This update fixes a way that people with limited access to a Bitcoin node could make fake log entries appear real. Normally, the node cleans up special characters in log messages but was leaving newlines alone. A clever user could slip a n…
Log injection / log forgery via embedded newlines in untrusted inputInput from restricted RPC users reaching log output without newline escapingControl-character escaping bypass due to explicit newline exception
This commit fixes a one-word typo in a comment inside a test file. The comment incorrectly referred to 'walletcreatepsbt' when the surrounding test code actually calls 'walletcreatefundedpsbt'. No code behavior changes, and there is no sec…
This commit fixes a typo in a comment within a test file. The comment incorrectly referred to 'walletcreatepsbt' when the surrounding test code actually exercises 'walletcreatefundedpsbt'. No code behavior changes, and there is no security…
This commit is a documentation-only update. It adds a single line to Bitcoin Core's list of implemented BIPs, noting that BIP 461 (a technique for making ECDSA signatures smaller and deterministic) has been implemented since version 0.17.0…
This patch fixes a bug in Bitcoin Core's `sendall` wallet command. If a user typed a bech32 address in uppercase letters, the command would fail with a confusing 'below dust threshold' error instead of sending the funds. The fix compares d…
Functional bug in RPC command causing unexpected transaction failureCase-sensitivity mismatch between user input and canonical address encodingNo memory safety, cryptographic, or authorization issue evident
This commit fixes a flaky automated test in Bitcoin Core. The test was checking the maximum transaction fee rate by creating a transaction at the exact boundary, which sometimes failed because the real transaction size could be slightly sm…
No production code changedTest-only changeNo memory safety, cryptography, consensus, or authorization changes
This is a build-system maintenance update for Bitcoin Core's reproducible build environment (Guix). It updates the Guix time-machine commit and several dependency versions, and temporarily disables some test suites that fail when building …
No direct security-relevant code change in Bitcoin Core consensus, wallet, or P2P layers.Dependency version bumps (git-minimal, linux-headers, python-lief, python-minimal) are routine build-environment updates.Disabling third-party package test suites reduces build-time test coverage but does not alter Bitcoin Core's own test or release binaries.
This change makes three Bitcoin command-line tools (bitcoin-tx, bitcoin-util, and bitcoin-wallet) automatically pick the fastest SHA-256 hashing implementation available on the computer, such as hardware-accelerated versions on modern CPUs…
This is a one-line fix in Bitcoin Core's network code. It changes how the size of a list of block headers is converted to a signed integer inside a loop. Previously, if the list was empty, the conversion could trigger undefined-behavior wa…
UndefinedBehaviorSanitizer integer sanitizer warning addressedImplicit signed/unsigned conversion in loop counterUnsigned integer wraparound on empty vector size
This change fixes a Bitcoin Core wallet bug where the `importprunedfunds` RPC command could only re-import transactions that sent money to the wallet, not transactions that spent money from it. After this fix, both incoming and outgoing tr…
Logic bug in wallet transaction import scopeIncorrect balance possible after removing and re-importing spending transactionFix routes import through existing involvement check (IsMine + IsFromMe)
This commit adds a new Bitcoin Core wallet startup option called -maxfeerate. It lets users set a maximum fee rate (fee per unit of transaction size) that the wallet will allow when creating or broadcasting transactions. Previously, the wa…
New wallet startup option -maxfeerate to cap transaction fee rateNew transaction error type MAX_FEE_RATE_EXCEEDEDBroadcastTransaction now checks both max absolute fee and max fee rate
This Bitcoin Core update fixes a wallet-signing quirk. When a user chose the SIGHASH_SINGLE signature mode, an input that had no matching output index would sign essentially nothing meaningful. That signature could then stay valid even if …
Funds-redirection footgun from SIGHASH_SINGLE signatures with no committed outputInconsistent guard between SignTransaction and SignPSBTInput pathsFix centralizes the guard in the low-level signature creator to cover future signing paths
This change updates Bitcoin Core's I2P (Invisible Internet Project) privacy network settings to use newer, stronger encryption for the published 'leaseset' that describes how other peers can contact a node. The old setting included ElGamal…
Cryptographic algorithm update (ElGamal to MLKEM-768)Use of I2P 'legacy' encryption type removedConfiguration-only change in network privacy layer
This change fixes a labeling bug in Bitcoin Core's first-run disk-space warning. The estimate was stored in GiB (binary gigabytes, 1024-based) but displayed as GB (decimal gigabytes, 1000-based), and for pruned nodes it showed the full-cha…
This is a wallet bug, not a theft or remote-code bug. When a Bitcoin Core user turns on the optional 'avoidpartialspends' or 'avoid_reuse' setting, an output group rejected during coin selection could be counted twice as 'discarded.' That …
Logic error causing double-counting of discarded UTXO groupsCan trigger false 'insufficient funds' failure in coin selectionAffects avoidpartialspends / avoid_reuse wallets only
This is a documentation-only fix in a tutorial file. It changes two shell examples from using '>>' (append to file) to '>' (overwrite file). If a user followed the old instructions and ran the same command twice, the file would contain two…
No security signal: change is limited to documentationNo code changes to Bitcoin Core binaries, RPC, wallet, or consensus logicNo cryptographic, network, or privilege-boundary implications
This is a large internal code reorganization (refactor) in Bitcoin Core. It creates a new BlockTemplateManager class that takes over block-template creation, block submission, and tip-waiting helpers that were previously spread across seve…
Large refactor touching mining, RPC, interfaces, and test shutdown pathsNew object lifetime dependency: BlockTemplateManager holds references to mempool, chainman, and notifications; explicit reset ordering added in Shutdown/InitAndLoadChainstate/test setupsRemoval of early-init node.mining interface; BlockTemplateManager is now created after chainstate load, with a comment that it must exist before setChainstateLoaded(true) unblocks IPC waiters
This commit adds the first implementation of BIP352 (Silent Payments) to Bitcoin Core. Silent Payments are a new type of privacy-preserving Bitcoin address that lets someone receive payments without publicly revealing a fixed address. The …
New cryptographic feature implementation (BIP352 Silent Payments)Extensive use of secp256k1 silentpayments moduleInput public key extraction from P2PKH, P2WPKH, P2SH-P2WPKH, and P2TR inputs
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
AI review queuedwallet: Drain validation interface queue after notifications disconnectby Ava Chow · 98e8af4b · Feb 27, 2026 · 2 filesMessage 73 · AdequateLow 40Details
Commit message · Ava Chow
wallet: Drain validation interface queue after notifications disconnect
When unloading a wallet, there may be unexecuted callbacks in the validation interface queue that can still execute after we have completed all of the other wallet shutdown tasks. Instead of letting these run in the background, once the notifications are disconnected, wait for the queue to drain before continuing with wallet shutdown.
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 · Low 40/100
This change fixes a wallet shutdown timing issue in Bitcoin Core. Previously, when a wallet was unloaded, some background blockchain notifications could still run after the wallet had already finished shutting down. The patch makes the wallet explicitly wait for those pending notifications to finish before completing shutdown, preventing potential crashes or use-after-free problems.
Lower-priorityinterfaces: Add waitForNotifications() to call SyncWithValidationInterfaceQueue()by Ava Chow · 52992ebe · Feb 27, 2026 · 2 filesMessage 65 · AdequateInformational 15Details
Commit message · Ava Chow
interfaces: Add waitForNotifications() to call SyncWithValidationInterfaceQueue()
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit adds a new public interface method that lets callers wait for background notification processing to finish. It is a straightforward API addition with no security relevance visible in the diff or commit message.
AI review queueddoc: Use relative markdown linksby MarcoFalke · fa9d0623 · Feb 27, 2026 · 7 filesMessage 45 · ThinInformational 15Details
Commit message · MarcoFalke
doc: Use relative markdown links
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit only changes documentation links from absolute GitHub URLs to relative markdown links. It does not modify any executable code, network behavior, cryptography, wallet logic, or configuration handling. There is no security relevance.
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit is a straightforward modernization of the Bitcoin Core codebase: it replaces older C++ standard-library iterator-based calls like std::sort and std::unique with their newer C++20 'ranges' equivalents (std::ranges::sort, std::ranges::unique). The behavior of the code is intended to stay exactly the same; only the syntax is updated. There is no security fix or vulnerability being addressed here.
Lower-priorityfeefrac: drop comparison and operator{<<,>>} for sorted wrappersby Pieter Wuille · 747da253 · Feb 27, 2026 · 15 filesMessage 73 · AdequateInformational 19Details
Commit message · Pieter Wuille
feefrac: drop comparison and operator{<<,>>} for sorted wrappers
Instead of having an unintuitive but total implicit sort order on FeeFrac (first increasing feerate, then decreasing size), and separate overloaded operator<< and operator>> for a weak ordering that only looks at feerate, replace these with explicit wrapper classes which make the behavior more explicit.
This allows for things like ByRatio{a} <= ByRatio{b}, instead of the earlier !(a >> b). It also supports usage inside std::max and std::greater, so one can use: * std::max<ByRatioNegSize<FeeFrac>>(a, b) * std::sort(v.begin(), v.end(), std::greater<ByRatioNegSize<FeeFrac>>{})
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 19/100
This is a code-cleanup change in Bitcoin Core that replaces confusing custom comparison operators on a fee/size data structure with clearly named wrapper classes. It does not fix a known vulnerability or change network behavior; it is a refactor to make the code easier to understand and maintain.
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This is a one-line fix in a test script for Bitcoin Core's ZeroMQ (ZMQ) notification interface. It makes a test socket timeout scale with the test framework's configurable slowdown factor, preventing flaky test failures on slow machines. It does not change production code and has no security impact on real Bitcoin nodes or wallets.
AI review queuedtest: add test for rebroadcast of transaction received via p2pby Martin Zumsande · 73e38531 · Feb 27, 2026 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · Martin Zumsande
test: add test for rebroadcast of transaction received via p2p
The wallet doesn't only rebroadcast transactions it created, but also relevant transactions received via p2p. Since this is not self-evident, add test coverage for it.
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 15/100
This commit only adds a new test to Bitcoin Core. It checks that the wallet software will re-broadcast a transaction it learned about from another peer, not just transactions it created itself. There is no change to production code, so it does not fix or introduce a security issue on its own.
Lower-prioritytest: Move valgrind.supp to the other sanitizer_suppressions filesby MarcoFalke · fab51e47 · Feb 27, 2026 · 4 filesMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke
test: Move valgrind.supp to the other sanitizer_suppressions files
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
defensive validation
AI analysis · Informational 15/100
This commit simply moves a Valgrind suppressions file from one directory to another. It does not change any code that runs in production, nor does it alter the suppressions themselves. All references to the file's path are updated so tests and documentation still point to the right location. There is no security issue here.
Normally, when a symlinked test script is executed directly (e.g., `./bld-cmake/test/functional/wallet_disable.py`), Python's default behavior is to resolve the symlink of the script itself, setting `sys.path[0]` to the directory containing the physical source file. Consequently, the test framework util.py is imported from the source tree, and `Path(__file__).parents[3]` correctly resolves to the source root.
However, `feature_framework_testshell.py` is unique because it manually inserts `Path(__file__).parent` into `sys.path`. That refers to the build tree and when importing the test framework util.py, the `Path(__file__).parents[3]` will incorrectly point to the build directory instead of the source root.
Use `.resolve()` to ensure the Valgrind suppressions file path is always calculated relative to the physical source file, regardless of how the framework was imported.
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
AI analysis · Informational 15/100
This is a one-line fix in Bitcoin Core's test framework. It ensures that when running tests under the Valgrind memory-checking tool, the correct suppressions file is found even if the test script is accessed through a symbolic link. It does not change the Bitcoin node software itself and has no security impact on users' funds or the network.
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This commit fixes a single grammar typo in a comment within a test file. It changes 'drain' to 'drains' in a sentence explaining test behavior. There is no code change, no functional change, and no security relevance.
Lower-priorityci: Set TEST_RUNNER_PORT_MIN in test-each after cirrus runner switchby MarcoFalke · fac93269 · Feb 27, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke
ci: Set TEST_RUNNER_PORT_MIN in test-each after cirrus runner switch
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This is a routine continuous-integration (CI) configuration tweak. It changes the starting port number used by Bitcoin Core's test runner in one GitHub Actions workflow, so it no longer overlaps with a port used by the Cirrus CI cache service. There is no security vulnerability here—just a port-collision avoidance fix for automated testing infrastructure.
Lower-prioritynetif: fix compilation warning in QueryDefaultGatewayImpl()by MarcoFalke · c1361fc4 · Feb 27, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · MarcoFalke
netif: fix compilation warning in QueryDefaultGatewayImpl()
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This is a build-fix change only. A developer fixed a compiler warning that caused compilation to fail on FreeBSD 15 because a system header changed the type of a constant used in a network-routing helper. There is no change to program logic, no security bug, and no way to exploit it.
Security candidatetest: remove appveyor reference in commentby Max Edwards · 8834e4e8 · Feb 26, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · Max Edwards
test: remove appveyor reference in comment
Appveyor is not longer used however the test still requires to check for permissions including 666 as otherwise the tests fail on Windows
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
credential or privilege statesigning or wallet path
AI analysis · Informational 15/100
This commit only updates two comments in a test file. It replaces the word 'Appveyor' (an old Windows continuous-integration service) with 'Windows' to reflect that the project no longer uses Appveyor. No actual code behavior changes, and there is no security relevance.
Lower-priorityci: Download script_assets_test.json for Windows CIby MarcoFalke · fa7612f2 · Feb 26, 2026 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke
ci: Download script_assets_test.json for Windows CI
62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100
This change updates Bitcoin Core's Windows continuous integration (CI) scripts to download a test data file used by unit tests. It is a build/test infrastructure fix, not a change to the Bitcoin node software itself, and it does not introduce a security vulnerability.
Lower-prioritytest: Move Fetching-print to download_from_url utilby MarcoFalke · 7777a133 · Feb 26, 2026 · 2 filesMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke
test: Move Fetching-print to download_from_url util
This does not change any behavior.
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This is a harmless test-only code cleanup. It moves a status print statement from one test helper script into another shared test utility, with no change to what the program actually does. There is no security relevance.
test: move-only download_from_url to stand-alone util file
Can be reviewed via --color-moved=dimmed-zebra
87/100 · StrongMessage clarity
✓ Specific, 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 commit simply moves an existing download helper function from one test script into its own small utility file. There are no functional code changes, no bug fixes, and no security-related modifications.
Lower-priorityci: fix vcpkg tools cache key collision between windows matrix jobsby will · 17a079c2 · Feb 26, 2026 · 1 fileMessage 95 · StrongInformational 15Details
Commit message · will
ci: fix vcpkg tools cache key collision between windows matrix jobs
The standard and fuzz matrix jobs share the same github.job value (windows-native-dll), so both try to save the vcpkg tools cache with the same key.
Since the tools are identical across build types, let them share a single cache entry by restricting the save to the standard job only.
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
fuzzing or regression evidencedocumentation-only discount
AI analysis · Informational 15/100
This is a routine fix to Bitcoin Core's GitHub Actions CI workflow. Two Windows test jobs were accidentally trying to save their build-tool cache under the same name, which could cause a harmless cache-save conflict. The patch makes only one of the two jobs save the cache. It does not change Bitcoin Core software, wallet code, networking, or cryptography, and has no security relevance for users.
AI review queuedtest: refactor, decouple HasReason from test framework machineryby furszy · d9c6769d · Feb 26, 2026 · 12 filesMessage 95 · StrongInformational 15Details
Commit message · furszy
test: refactor, decouple HasReason from test framework machinery
Avoid providing the entire unit test framework dependency to tests that only require access to the HasReason utility class.
E.g. reverselock_tests.cpp, sync_tests.cpp, util_check_tests.cpp, util_string_tests.cpp, and script_parse_tests.cpp only require access to HasReason and nothing else.
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
second-pass: broader security terminology
AI analysis · Informational 15/100
This is a harmless code cleanup in Bitcoin Core's test suite. It moves a small helper class called HasReason from a large test-framework header into a smaller, more focused header so that simple unit tests don't need to pull in the entire testing framework. There is no change to how the software behaves in production, no bug fix, and no security issue.
Lower-prioritytest: threadpool, add coverage for all Submit() errorsby furszy · 9dc653b3 · Feb 26, 2026 · 1 fileMessage 87 · StrongInformational 15Details
Commit message · furszy
test: threadpool, add coverage for all Submit() errors
Submit tasks to a non-started, interrupted, or stopped pool and verify the proper error is always returned.
87/100 · StrongMessage clarity
✓ Specific, 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 commit only adds new test code to Bitcoin Core. It expands an existing unit test to check that a background worker pool (ThreadPool) returns the correct error messages when tasks are submitted while the pool is not started, interrupted, or stopped. There is no change to production code and no security fix or vulnerability is introduced.
Lower-prioritytest: cleanup, use HasReason in threadpool_tests.cppby l0rinc · ce2a984e · Feb 26, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · l0rinc
test: cleanup, use HasReason in threadpool_tests.cpp
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This is a minor cleanup of a test file. It changes how one unit test checks that error messages from background tasks are correctly passed back to the caller. There is no change to the actual Bitcoin Core program that users run, only to the test code, and no security relevance.
test: move and simplify BOOST_CHECK ostream helpers
Move the operator<< overloads used by BOOST_CHECK_* out of the unit test machinery test/setup_common, into test/util/common.h.
And replace the individual per-type ToString() overloads with a single concept-constrained template that covers any type exposing a ToString() method. This is important to not add uint256.h and transaction_identifier.h dependencies to the shared test/util/common.h file.
✓ 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
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100
This commit is a pure test-code refactoring. It moves helper functions that let Boost test macros print custom Bitcoin types (like transaction IDs and 256-bit numbers) into a shared test header, and replaces several specific helpers with one generic template. It does not change any production code, network behavior, or wallet logic, and it introduces no security fix or vulnerability.
Security candidatetest: include response body in non-JSON HTTP error msgby Matthew Zipkin · 408d5b12 · Feb 26, 2026 · 1 fileMessage 87 · StrongInformational 15Details
Commit message · Matthew Zipkin
test: include response body in non-JSON HTTP error msg
✓ Specific, 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 tiny test-only change that adds the server's response text to an error message shown when a Bitcoin Core functional test receives an unexpected non-JSON HTTP response. It only affects the test framework's debugging output and does not change production Bitcoin Core code, network behavior, or security boundaries.
Exercise the case where tasks remain pending and verify that the thread calling Stop() participates in draining the queue
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 12/100
This commit adds a new automated test for Bitcoin Core's internal thread pool. It checks that when the thread pool is stopped while tasks are still waiting, the thread that calls Stop() helps finish those remaining tasks. There is no change to production code and no security fix or vulnerability is described.
Lower-prioritythreadpool: active-wait during shutdownby furszy · bf2c607a · Feb 26, 2026 · 1 fileMessage 68 · AdequateInformational 18Details
Commit message · furszy
threadpool: active-wait during shutdown
Instead of waiting for the workers to finish processing tasks, help them actively inside Stop().
This speeds up the JSON-RPC and REST server shutdown procedure, and results in a faster node shutdown when many requests remain unhandled
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 18/100
This commit changes how Bitcoin Core's internal thread pool shuts down. Instead of the shutdown thread passively waiting for worker threads to finish leftover tasks, it now pitches in and processes tasks itself while workers finish up. The goal is a faster node shutdown when many RPC/REST requests are still queued. The change itself is a performance/cleanup improvement, not a security fix.
Lower-prioritytest: coverage for queued tasks completion after interruptby furszy · ca101a23 · Feb 26, 2026 · 1 fileMessage 72 · AdequateInformational 12Details
Commit message · furszy
test: coverage for queued tasks completion after interrupt
72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 12/100
This commit only adds a new automated test to Bitcoin Core. It checks that a worker thread pool still finishes tasks that were already waiting in line after the pool is told to stop accepting new work (Interrupt). There is no change to production code and no security fix or vulnerability patch.