Continuous public-repository analysis

Open source.
Not open secrets.

We watch what security-critical projects change—then translate the code into clear, independent intelligence anyone can understand.

23Projects watched
16864Commits captured
13869AI analyses
77High-risk findings · 30d
The watch feed

Changes worth understanding

AI analysis is published as generated. Community notes appear after human validation.

13869 analyses
Highest risk·RSS
Informational 18 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(trezorlib): refactor device definition requests handling

This is a routine internal code cleanup in the Python Trezor library. It moves the logic that answers the hardware wallet's mid-transaction definition requests from one module to another and changes the public API from accepting a callback…

No security-relevant behavior change: the same request/response flow and cancellation-on-exception logic is preserved.API surface change: parameter renamed from `definition_provider` to `definition_source` and type changed from callable to `definitions.Source`.Test refactor: callbacks replaced with mocked `Source` objects to assert which source methods are called.
8a01a994by PrisionMike+169−2136 files
No security note in commit
Moderate 61 AI analysisMessage 50 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

units: Restore the +1 in relative locktime satisfied by height

This commit fixes an off-by-one bug in how rust-bitcoin checks whether a transaction can yet be spent based on block height. The code was treating a relative locktime of N blocks as satisfied after only N-1 confirmations, instead of the re…

Off-by-one error in consensus-relevant locktime validationRelative locktime satisfied one block too earlyCould lead to premature transaction broadcast or mempool rejection
ee13c6bbby Kyle 🐆+28−51 file
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

lnrouter: LiquidityHints: add comment to update_liquidity_hints

This commit only renames an internal method from update_inflight_htlcs to update_num_inflight_htlcs and expands a code comment explaining how Lightning Network payment routing hints are updated. There are no functional code changes and no …

c1342d00by SomberNight+13−92 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

lnrouter: LiquidityHints: add more type hints

This commit is a code-quality refactor: it adds Python type hints and renames variables from 'amount' to 'amount_msat' in Electrum's Lightning routing code to make it clear amounts are in millisatoshis. There is no functional behavior chan…

cee9f06dby SomberNight+68−603 files
No security note in commit
Informational 18 AI analysisMessage 85 · Strong
LL Lightning LabsLND BitcoinLightning Network

lnrpc/routerrpc: add outgoing_node_id to HTLC intercept request

This commit only updates the API definition and auto-generated code for LND's HTLC interceptor. It adds a new optional field, outgoing_requested_node_id, and documents that when a blinded route uses a node ID instead of a channel ID, the e…

No runtime logic changed; only protobuf schema and generated stubsNew field is explicitly documented as unpopulated until later commitsSentinel value (MaxUint64) introduced to prevent misclassification of final receive vs node-addressed forward
14640a50by bitromortac+48−73 files
No security note in commit
Informational 18 AI analysisMessage 73 · Adequate
LL Lightning LabsLND BitcoinLightning Network

multi: represent the blinded forwarding next hop as an fn.Either

This commit is a behind-the-scenes code cleanup in the LND Lightning node. It changes how the 'next hop' for forwarding payments is stored internally so that, in the future, blinded routes can identify the next hop by a node's public key i…

Refactor of core HTLC forwarding data structure (ForwardingInfo.NextHop)Preparation for blinded route next-hop identification by node public keyEncapsulation of Either type behind IsExit() and NextHopChannel() to centralize exit-hop detection
d28a7176by bitromortac+83−2612 files
No security note in commit
Low 34 AI analysisMessage 62 · Adequate
KX KruxKrux BitcoinHardware wallets

refactor: narrow parse_address fallbacks to EmbitError in wallet.py

This change fixes a bug where pressing a device's cancel/back button during address parsing could be ignored or misreported as an 'invalid address' instead of letting the user exit. The code previously caught every possible error (includin…

Bare exception handler narrowed to specific library exceptionUser-triggered interrupt (KeyboardInterrupt) no longer swallowedRegression test added for interrupt propagation in both code branches
a5fb4737by kkdao+24−32 files
No security note in commit
Low 34 AI analysisMessage 62 · Adequate
KX KruxKrux BitcoinHardware wallets

refactor: catch Exception, not bare except, in parse_wallet fallbacks

This commit tightens error handling in Krux's wallet parsing. Previously, the code used bare 'except:' clauses that would catch everything, including KeyboardInterrupt and SystemExit. Those special exceptions should normally be allowed to …

Bare except clauses replaced with except Exception to avoid swallowing KeyboardInterrupt/SystemExitNew regression test ensures KeyboardInterrupt propagates through all parse_wallet fallback branchesComments explicitly call out untrusted input and interrupt propagation behavior
6f617710by kkdao+42−72 files
No security note in commit
Moderate 62 AI analysisMessage 93 · Strong
KX KruxKrux BitcoinHardware wallets

fix: reject base58 address with unknown version byte in parse_address

This fix closes a hole where a Bitcoin address that looks valid (correct checksum) but belongs to no known network could be accepted by Krux's address parser. Before the patch, the parser only caught thrown errors; because the underlying l…

Input validation bypass fixedBase58 address version byte not validated before fixLibrary silent failure (None return) not handled by caller
63e8b8e5by kkdao+20−12 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core/monero): correct progress text

This is a one-character typo fix in a Monero progress message. A missing backslash meant the text 'hashing inputs' and the progress counter were joined on the same line instead of appearing on separate lines. It has no security relevance.

fd6d21b2by Roman Zeyde+1−11 file
No security note in commit
01
Why commit watching?

Security should leave a paper trail.

A quiet fix may be responsible caution—or it may leave users unaware that their assets were ever at risk. CommitWatch preserves the evidence, adds context, and tracks whether vendors disclose, acknowledge, and learn.

Why we built this