EL
← All projectsElectrum

Electrum

Long-running lightweight Bitcoin wallet for desktop and mobile platforms.

BitcoinSoftware walletsNormal
Repository coverage

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

64security candidates205second-pass queue223AI analyses
55commits · 30 days
108commits · 60 days
454commits · 180 days
924commits · 365 days
Backfill bands
Aug 5 → Feb 6470 seen11 candidatesComplete
Feb 6 → Jun 6346 seen10 candidatesComplete
Jun 6 → Jul 653 seen2 candidatesComplete
Jul 6 → Aug 554 seen3 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.

65/100 average clarity
191Strong · 80–100
409Adequate · 60–79
285Thin · 40–59
39Opaque · 0–39
2security 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.
ThomasV72215156
SomberNight3492592063
f321x3712184070
Sander van Grieken981023057
user322062
Roman Zeyde511053
Sasha Zykov413076
Aaron Fiore411068
Ferdinando Ametrano111096
Oren200043
Ilya Artemov200050
Felipe Micaroni Lalli100050
Analysis record

Published AI watches

Last scanned 38 minutes ago

Informational 19 AI analysisMessage 96 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

wallet: sign_message: strip whitespaces in GUIs, do not strip in CLI

This commit tidies up how Electrum handles extra spaces around Bitcoin addresses, messages, and signatures when signing or verifying messages. Previously, different parts of the program (desktop GUI, mobile-style GUI, command line) behaved…

Behavior normalization across GUI and CLI interfacesNo cryptographic primitive changedNo privilege boundary crossed
4c3064f5by SomberNight+27−185 files
No security note in commit
Informational 22 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: decrypt_message: nicer error msg if pubkey is unrelated

This commit improves the error handling in Electrum's message decryption feature. Previously, if a user tried to decrypt a message using a public key that did not belong to their wallet, the code could proceed and likely fail with a confus…

Input validation added for public key before cryptographic operationUser-facing exception replaces potential internal failureDefensive check prevents use of unrelated key material
92e938f4by SomberNight+5−01 file
No security note in commit
Low 29 AI analysisMessage 35 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

wallet: sign_message: force kwargs

This commit changes how Electrum's message-signing function is called so that callers must explicitly name each argument (address, message, password) rather than passing them by position. The main practical effect is to prevent accidental …

API hardening: keyword-only arguments prevent positional argument swapNo explicit security bug fix or vulnerability disclosure in commit message or diffNo changes to cryptographic logic, password handling, or message parsing
e1eb2a34by SomberNight+9−44 files
No security note in commit
Low 39 AI analysisMessage 45 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: sign_message: consolidate checks from UIs

This commit moves input-validation checks for signing, verifying, encrypting, and decrypting messages out of the user-interface code and into the shared wallet logic. It also adds type checks so that non-text inputs are rejected earlier. T…

Input validation moved from UI controllers into core wallet logicType checks added at the CLI command entry points for message-crypto operationsUserFacingException used consistently for address, wallet, script-type, and key-format errors
48893760by SomberNight+89−396 files
No security note in commit
Low 27 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: decrypt_message: consolidate checks from UIs

This commit moves input-validation and wallet-type checks for message decryption out of the user-interface and command-line layers and into the core wallet code. It also removes a faster, separate decryption path for imported wallets so al…

Input validation consolidated into a single core methodWatching-only wallet check moved from UI to wallet layerMultisig wallet unsupported-operation check moved from UI to wallet layer
9a0cc0d6by SomberNight+25−173 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: refactor: add encrypt_message method, consolidated from UIs

This commit is a simple code cleanup: it moves the message-encryption logic from two separate places (the command-line tool and the Qt graphical interface) into a single shared method on the wallet class. The actual encryption behavior is …

No change to cryptographic primitives or parametersNo change to trust boundaries or input sourcesPure refactor consolidating duplicate code
5e9c8df0by SomberNight+26−183 files
No security note in commit
Informational 13 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet: refactor: add verify_message method, consolidated from UIs

This commit is a routine code cleanup: it moves message-signature verification out of three user-interface files into a single shared helper method in the wallet module. There is no security-relevant behavior change visible in the diff. Th…

No security-relevant functional changeRefactoring only: code deduplicationException handling broadened safely (ValueError covers binascii.Error and unicode errors)
ff5bbb04by SomberNight+26−304 files
No security note in commit
Informational 19 AI analysisMessage 96 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

qml: strip whitespace from message before signing, as in qt gui

This commit fixes a minor consistency bug in Electrum's newer QML (mobile-style) user interface. When signing a message, the app now removes accidental spaces at the start or end of the message and address, just like the older desktop Qt i…

Behavioral inconsistency between GUI implementations could cause user confusion or failed verificationNo cryptographic weakness introduced; change is input normalizationNo memory-unsafe code, no privilege changes, no network changes
72507328by Ferdinando Ametrano+3−01 file
No security note in commit
Moderate 52 AI analysisMessage 93 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

lnwallet: don't blacklist htlc failures without channel update

This change fixes how Electrum's Lightning wallet reacts when a payment route fails but the failing node no longer provides a channel update message, as now allowed by the Lightning protocol spec. Previously, Electrum would permanently bla…

Denial-of-service via over-blacklisting: prior behavior could cause legitimate channels to be blacklisted, degrading payment success and potentially isolating the wallet from usable routes.Spec compliance fix: aligns Electrum with updated Lightning BOLT protocol behavior.No cryptographic bypass or funds theft signal: the change is about routing policy, not key leakage or transaction authorization.
a865e336by f321x+48−142 files
No security note in commit
Informational 15 AI analysisMessage 35 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

hww/qt: followup 898a4c270

This commit simply renames an internal variable from `dialog_label` to `_dialog_label` to mark it as private. It is a minor code cleanup with no visible behavior change and no security relevance.

f3af41deby f321x+4−41 file
No security note in commit
Low 25 AI analysisMessage 68 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

trezor: drop session after closing it

This commit fixes a bug in Electrum's support for Trezor hardware wallets. After a Trezor session times out or is closed, Electrum now forgets the old session ID. Previously it kept the stale session ID, so the next attempt to sign a trans…

Fixes a stale-session reference that caused InvalidSessionError on re-authenticationEnsures PIN re-prompt after session timeout/closureFailure mode was denial-of-service (transaction signing crash), not unauthorized signing
071b1e24by f321x+8−51 file
No security note in commit
Informational 12 AI analysisMessage 83 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

test_lnwallet: add unittest for unchanged channel update from failed htlc

This commit only adds a new unit test to Electrum's Lightning wallet test suite. It checks that when a payment fails due to a temporary lack of liquidity (TEMPORARY_CHANNEL_FAILURE) and the accompanying channel policy update is identical t…

Lightning payment routing failure handling behavior is being testedTEMPORARY_CHANNEL_FAILURE no longer (or is confirmed not to) blacklist channels when the channel update is unchangedLiquidity hints are used as an alternative to blacklisting for retry amounts
1f5b9adbby f321x+61−21 file
No security note in commit
Informational 15 AI analysisMessage 83 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

test_lnwallet: add unittest for single channel mpp split config

This commit adds a new automated test to the Electrum project. It does not change any production wallet or Lightning code. The test verifies that when Electrum splits a multi-part payment across a single channel, all payment parts actually…

14f7fa0bby f321x+22−01 file
No security note in commit
Low 47 AI analysisMessage 80 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

json_db: set_modified after incomplete data

This commit fixes a bug in Electrum's wallet storage recovery. If a wallet file was partially corrupted (a 'patch' was cut off mid-write), the app could recover the old data but then fail to mark the wallet as changed. As a result, later u…

Data-loss / integrity failure in wallet storage recovery pathMissing dirty flag after fallback data recoveryAppend-only storage file not rewritten after corruption cleanup
f75f1958by f321x+22−12 files
No security note in commit
Low 44 AI analysisMessage 58 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

wallet_db: register onion_keys converter

This commit fixes a bug in Electrum's Lightning wallet database handling. After a wallet restart, a specific type of encryption key used in Lightning payments was being loaded as a text string instead of raw bytes. This mismatch could caus…

Type confusion between str and bytes in cryptographic key handlingLightning payment error path affected after wallet restartMissing data converter in wallet database layer
5b2eb060by f321x+2−02 files
No security note in commit
Informational 18 AI analysisMessage 58 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

qml: update ConfirmTxDialog onValidChanged

This is a small user-interface fix for the Electrum mobile/QML app. When sweeping private keys, the confirmation dialog that shows how much money will be moved initially displayed an amount of 0 because it did not refresh after the transac…

bd776e24by f321x+3−01 file
No security note in commit
Informational 18 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

qml: emit a single dataChanged when updating blockchain height

This change is a performance cleanup in Electrum's mobile/QML user interface. When the wallet learns that the Bitcoin blockchain has grown taller, it now refreshes the transaction list with a single 'everything changed' signal instead of s…

No security-relevant logic changePerformance/efficiency optimization onlyNo input validation, parsing, cryptography, or network changes
fbe9e2d8by f321x+8−41 file
No security note in commit
Informational 20 AI analysisMessage 85 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

qml: don't compute notification balance delta for large tx batches

This commit is a performance fix, not a security patch. It stops the Electrum mobile/QML wallet from calculating the total balance change when more than 20 new transactions arrive at once, because that calculation could freeze the user int…

No security-relevant signal present in the diff or commit messagePerformance/DoS mitigation against accidental UI freezing from large transaction batches
7b4759c5by f321x+5−21 file
No security note in commit
Informational 15 AI analysisMessage 60 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

qml: change event callback logs to debug

This commit simply changes two logging messages from 'info' level to 'debug' level in the mobile/QML wallet interface. It reduces routine log output when many transactions occur. There is no security-relevant change.

a6cc4e08by f321x+2−21 file
No security note in commit
Informational 18 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

qml: don't force-build address model from tx event handlers

This is a performance and responsiveness fix for the Electrum mobile/QML wallet. It stops the app from doing heavy work (building the address coin list) every time a new transaction arrives, which was causing the user interface to freeze. …

35fc4a13by f321x+4−21 file
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.

Security candidateandroid: build pyqt_builder and sip ourselves, hash pin all hostpython_prerequisitesby Sander van Grieken · c8f5798d · Apr 22, 2026 · 6 filesMessage 50 · ThinLow 28Details
Commit message · Sander van Grieken

android: build pyqt_builder and sip ourselves, hash pin all hostpython_prerequisites

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access control
AI analysis · Low 28/100

This commit updates the Android build setup for the Electrum Bitcoin wallet. It switches to a newer version of the python-for-android build tool, starts building two PyQt-related packages (pyqt_builder and sip) from source instead of relying on pre-built wheels, and adds cryptographic hash checks for build-time Python tools like setuptools and pip. These are supply-chain hardening changes: they make it harder for a malicious or compromised upstream package to sneak bad code into Electrum's Android app during compilation.

Lower-priorityqml: don't import QtMultimedia when running on android (android 8 compat)by Sander van Grieken · fd5b8676 · Apr 22, 2026 · 2 filesMessage 50 · ThinTriage 0Details
Commit message · Sander van Grieken

qml: don't import QtMultimedia when running on android (android 8 compat)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityqml: add missing button containersby Sander van Grieken · 3a740256 · Apr 22, 2026 · 3 filesMessage 45 · ThinTriage 0Details
Commit message · Sander van Grieken

qml: add missing button containers

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Security candidateqml: styling updates qt6.10by Sander van Grieken · cdb5c0b8 · Apr 22, 2026 · 40 filesMessage 45 · ThinInformational 15Details
Commit message · Sander van Grieken

qml: styling updates qt6.10

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a routine user-interface refresh for Electrum's mobile/desktop QML app, adjusting colors, spacing, button containers, and placeholder text to match newer Qt 6.10 styling. There is no security-relevant change and no indication it fixes or introduces a vulnerability.

Lower-priorityqml: styling History, ProxyConfig and NostrConfigDialogby Sander van Grieken · 895679a6 · Apr 22, 2026 · 3 filesMessage 50 · ThinTriage 0Details
Commit message · Sander van Grieken

qml: styling History, ProxyConfig and NostrConfigDialog

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Security candidateqml: add workarounds for issue assigning custom types to QObject propertiesby Sander van Grieken · 9772a6d5 · Apr 22, 2026 · 24 filesMessage 73 · AdequateLow 25Details
Commit message · Sander van Grieken

qml: add workarounds for issue assigning custom types to QObject properties

- on the python side, for pyqtProperty's with a setter, the pyqtProperty should be declared as QVariant type
- on the qml side, properties should be declared 'var', not the custom type.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing boundarysigning or wallet path
AI analysis · Low 25/100

This commit changes how the Electrum mobile/desktop QML GUI passes custom data objects between Python and the user interface. It switches many typed properties to the generic QVariant/'var' type and adds runtime type checks (asserts) in Python setters. The stated goal is to work around a Qt/PyQt bug where assigning custom Python types to QML properties fails. The changes are defensive and reduce strict compile-time type safety in favor of runtime checks. There is no direct evidence in the commit that this fixes an exploitable security vulnerability; it appears to be a compatibility/stability fix.

Lower-priorityqml: use standard Button for buttons outside of buttoncontainerby Sander van Grieken · 87bb63e4 · Apr 22, 2026 · 3 filesMessage 50 · ThinTriage 0Details
Commit message · Sander van Grieken

qml: use standard Button for buttons outside of buttoncontainer

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityqml: additional styling InfoTextArea in dialogsby Sander van Grieken · 3f34e6be · Apr 22, 2026 · 4 filesMessage 45 · ThinTriage 0Details
Commit message · Sander van Grieken

qml: additional styling InfoTextArea in dialogs

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityandroid: update Qt6 to 6.10.2, PyQt6 to 6.10.2by f321x · 32318987 · Apr 22, 2026 · 3 filesMessage 45 · ThinTriage 0Details
Commit message · f321x

android: update Qt6 to 6.10.2, PyQt6 to 6.10.2

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityqml: add type hints for QVariant pyqtProperty workaroundsby Sander van Grieken · f2e8b466 · Apr 22, 2026 · 8 filesMessage 50 · ThinTriage 0Details
Commit message · Sander van Grieken

qml: add type hints for QVariant pyqtProperty workarounds

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityci: bump code review ci claude version 4.6 -> 4.7by f321x · 1ba31448 · Apr 21, 2026 · 1 fileMessage 72 · AdequateTriage 0Details
Commit message · f321x

ci: bump code review ci claude version 4.6 -> 4.7

An improved Claude Opus version got released, this bumps the code review
CI to use it.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI review queuedbitcoin.py: add helper func: neuter_bitcoin_addressby SomberNight · 68e6995a · Apr 20, 2026 · 3 filesMessage 50 · ThinInformational 22Details
Commit message · SomberNight

bitcoin.py: add helper func: neuter_bitcoin_address

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

This commit is a privacy improvement, not a security fix for an attack. It adds a small helper that truncates Bitcoin addresses before putting them into error messages. The goal is to protect users if those error messages are sent to a crash reporter or shown in logs, so that full addresses (which could identify transactions or balances) are not leaked. No vulnerability is being patched.

AI review queuedwallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixupby SomberNight · 45458c2f · Apr 20, 2026 · 3 filesMessage 98 · StrongLow 27Details
Commit message · SomberNight

wallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixup

If the user tries to open a wallet for a different chain (mainnet vs testnet), try to show a reasonable error message.

See previous attempt at this: https://github.com/spesmilo/electrum/commit/c13e05770150c5210783c3d42d3d2b1a683f18b4, which added `wallet.test_addresses_sanity()`. However there are many codepaths where "random" exceptions might get raised before the Wallet object is even instantiated.
See [discussion there](https://github.com/spesmilo/electrum/commit/c13e05770150c5210783c3d42d3d2b1a683f18b4#commitcomment-28017341):
> should we actually fix that?
> if yes, it would be better to write the network type in storage

Indeed now I think we should do that. At the time I was concerned it would not help against altcoin forks if we put "mainnet" or "testnet" in the DB. Now I realise we should just put the genesis block hash in the DB instead.

Many of the reports in https://github.com/spesmilo/electrum/issues/6526 are likely due to users trying to open a mainnet wallet in testnet mode or vice-versa.

fixes https://github.com/spesmilo/electrum/issues/9134
same issue in wizard 2fa two-step wallet-creation flow

98/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This commit improves Electrum so that when a user accidentally opens a wallet created for one Bitcoin network (mainnet) while running Electrum configured for another (testnet), they get a clear error message instead of confusing crashes. It stores the network's genesis block hash inside the wallet file and checks it on load. It is a defensive hardening change, not a fix for an active security vulnerability or exploit.

AI review queuedwallet: make_unsigned_tx: fix base_tx for GUI simple-send batchingby SomberNight · febe95e6 · Apr 19, 2026 · 4 filesMessage 91 · StrongLow 34Details
Commit message · SomberNight

wallet: make_unsigned_tx: fix base_tx for GUI simple-send batching

fixes regression from https://github.com/spesmilo/electrum/commit/a9f20e4d3de9848247a9079b5b164d8006cf80db :
For the GUI / manual new tx constructions usecase, the flow relies on `base_tx.add_info_from_wallet(self)` being called before `base_tx_fee = base_tx.get_fee()`.

fixes https://github.com/spesmilo/electrum/issues/10587
maybe fixes https://github.com/spesmilo/electrum/issues/8876
probably not a full fix: base_tx could have inputs for which add_info_from_wallet is not sufficient

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 · Low 34/100

This commit fixes a bug in Electrum's Bitcoin wallet where combining a new payment with an existing unconfirmed transaction (a feature called RBF batching) could fail or compute fees incorrectly. The root cause was that the code tried to read the existing transaction's fee before it had loaded all the necessary wallet information about that transaction's inputs. The fix reorders the code so the wallet enriches the transaction first, then reads its fee. It also adds a safety check to skip transactions whose confirmation status is unknown when looking for batching candidates.

Lower-prioritytests: lnpeer: fix flaky test "hold_invoice_set_doesnt_get_expired"by SomberNight · ca8bdba0 · Apr 19, 2026 · 1 fileMessage 91 · StrongTriage 0Details
Commit message · SomberNight

tests: lnpeer: fix flaky test "hold_invoice_set_doesnt_get_expired"

This test was flaky: the mpp_set resolution gets set to SETTLING several asyncio event loop iterations before the hold invoice callback "cb" gets called.
If the 0.1 sec polling triggers just in the middle of that interval, `assert cb_got_called` fails.

```
async def check_mpp_state():
async def wait_for_resolution():
while True:
await asyncio.sleep(0.1)
if payment_key not in bob_w.received_mpp_htlcs:
continue
if not bob_w.received_mpp_htlcs[payment_key].resolution == RecvMPPResolution.SETTLING:
continue
return
await util.wait_for2(wait_for_resolution(), timeout=2)
> assert cb_got_called
E assert False

tests/test_lnpeer.py:1898: AssertionError
```

see https://github.com/spesmilo/electrum/blob/16c8cb50e38c274cce8f9f66f28d8dd453f9f074/electrum/lnpeer.py#L3136-L3137

fixes https://github.com/spesmilo/electrum/issues/10589

-----

diff to reproduce the failure without present patch:
```
diff --git a/tests/test_lnpeer.py b/tests/test_lnpeer.py
index 8669931c24..e15973d68f 100644
--- a/tests/test_lnpeer.py
+++ b/tests/test_lnpeer.py
@@ -1885,6 +1885,7 @@ class TestPeerDirect(TestPeer):
cb_got_called = False
async def cb(_payment_hash):
self.logger.debug(f"hold invoice callback called. {bob_w.network.get_local_height()=}")
+ await asyncio.sleep(1)
nonlocal cb_got_called
cb_got_called = True
```

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
Lower-prioritylnpeer: channel_reestablish: split "they_are_ahead" into ctn vs revnumby SomberNight · 21946e1e · Apr 18, 2026 · 2 filesMessage 50 · ThinTriage 0Details
Commit message · SomberNight

lnpeer: channel_reestablish: split "they_are_ahead" into ctn vs revnum

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-prioritylnchannel: (trivial) fix type hint of receive_fail_reasonsby SomberNight · 16c8cb50 · Apr 18, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · SomberNight

lnchannel: (trivial) fix type hint of receive_fail_reasons

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-priorityUsing GET_MASTER_FINGERPRINT for Legacy Client to get the root public key fingerprintby Ilya Artemov · b3808b79 · Apr 16, 2026 · 1 fileMessage 50 · ThinTriage 0Details
Commit message · Ilya Artemov

Using GET_MASTER_FINGERPRINT for Legacy Client to get the root public key fingerprint

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Lower-prioritylnpeer: chan_reest: clarify my_current_per_commitment_point is ignoredby SomberNight · 4a14feff · Apr 14, 2026 · 1 fileMessage 65 · AdequateTriage 0Details
Commit message · SomberNight

lnpeer: chan_reest: clarify my_current_per_commitment_point is ignored

`my_current_per_commitment_point` was only used prior to option_static_remotekey

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-priorityqml: add top padding to nostr relay url listby f321x · 24d93420 · Apr 14, 2026 · 2 filesMessage 68 · AdequateTriage 0Details
Commit message · f321x

qml: add top padding to nostr relay url list

The first relay url was close to the top of the ElTextArea and looked a
bit sliced. Adding some padding makes it look better.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-prioritywindows: delete lightning URI hooks on uninstallby f321x · 78135ac8 · Apr 13, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
Commit message · f321x

windows: delete lightning URI hooks on uninstall

On install we register the URIs for bitcoin, lightning, lnurlp and lnurlw
in the registry but on uninstall we would only remove bitcoin again.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Lower-prioritypi: don't match literal | char in regexesby f321x · a5f1a299 · Apr 13, 2026 · 1 fileMessage 60 · AdequateTriage 0Details
Commit message · f321x

pi: don't match literal | char in regexes

The RE_EMAIL and RE_DOMAIN regexes matched the '|' character
which is probably not what they should do.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Lower-prioritypi: handle lud-17 URI payment identifierby f321x · ef702d74 · Apr 13, 2026 · 8 filesMessage 76 · AdequateTriage 0Details
Commit message · f321x

pi: handle lud-17 URI payment identifier

LNURL-W/P can also be encoded in lud-17 form instead of bech32.
https://github.com/lnurl/luds/blob/luds/17.md
e.g.
lnurlw://example.com/api/test123
lnurlp://example.com/api/test123

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Lower-prioritybip21: add comment listing URI scheme handler registrationsby SomberNight · 016c8b5f · Apr 11, 2026 · 1 fileMessage 73 · AdequateTriage 0Details
Commit message · SomberNight

bip21: add comment listing URI scheme handler registrations

It is sufficiently rare that we have to touch this stuff that I always have to re-discover where/how it is done. And it is impractical to grep for "bitcoin:" or "lightning:".

Putting this "master list" comment very close to the BITCOIN_BIP21_URI_SCHEME variable seems like a good spot - at least this is where I would look for it first.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI review queuedqml: allow renaming walletsby f321x · 8a12874c · Apr 8, 2026 · 3 filesMessage 66 · AdequateLow 30Details
Commit message · f321x

qml: allow renaming wallets

Allows to rename a wallet file from the QML Wallet Details view.
This seems like a feature we should support as the use-case of a wallet can
change or maybe the user didn't think about a proper name when setting
up the wallet. Especially with lightning channels it is not possible to
restore from seed to change the name.

Fixes #4377

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

This commit adds a feature that lets users rename their wallet file from the mobile-style QML user interface. It is a normal feature addition, not a security fix. The code does include some safety checks, but there are small gaps that could theoretically allow a misnamed or clashing wallet file. There is no evidence this was released as a security patch or credited to a security researcher.