AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 19 Bitcoin

msggen: generate native notification bindings from schemas

Public commit record

What the developer wrote

Authored by Peter Neuroth

85/100 · Strong
msggen: generate native notification bindings from schemas

Expand the native notification list consumed by msggen and regenerate the Rust and gRPC outputs for the documented notification schemas.

This wires the new schema-backed native notifications through cln-rpc, cln-grpc, and the bundled msggen schema metadata. Keep the temporary xpay-prefixed plugin notifications out of generation for now.

coin_movement.extra_tags remains a repeated string in the generated gRPC surface for now because msggen does not currently emit enums nested under repeated array items correctly.

Changelog-Changed: cln-rpc and cln-grpc now expose notification bindings for balance_snapshot, coin_movement, deprecated_oneshot, disconnect, forward_event, invoice_creation, invoice_payment, log, onionmessage_forward_fail, openchannel_peer_sigs, plugin_started, plugin_stopped, sendpay_failure, sendpay_success, shutdown, and warning.

msggen: generate xpay notification bindings

Treat xpay as a built-in plugin for notification generation and include its documented notification schemas in the msggen output.

This extends the generated cln-rpc and cln-grpc notification surfaces with the flat xpay schema files, while exposing the actual notification names `pay_part_start` and `pay_part_end` in generated APIs.

Changelog-Changed: cln-rpc and cln-grpc now expose xpay notification bindings for `pay_part_start` and `pay_part_end`.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
The short version

What changed, and why it matters

This commit is a large, routine code-generation update for Core Lightning's Rust and gRPC client libraries. It adds native bindings for many existing node notifications (such as payment events, log messages, and coin movements) so that external applications can subscribe to them through the gRPC and Rust RPC interfaces. The change is mostly mechanical: it exposes notifications that already existed internally, but does not by itself add new node functionality or change security-critical logic. There is no indication in the commit that this fixes a security bug or introduces a vulnerability.

Recommended action

Treat as a normal feature/API expansion commit. Reviewers should verify that the generated gRPC server correctly enforces existing authentication/authorization for the new streaming RPCs, and that sensitive notification payloads (e.g., payment hashes, peer IDs, log messages, PSBTs) are only delivered to authenticated clients as intended by the existing gRPC plugin model. No immediate security action is required based solely on this diff.

Security signals we found

01

Large generated diff (+6199/-579) across RPC/gRPC bindings

02

New gRPC streaming RPCs expose additional node events to subscribers

03

Adds new notification types including coin_movement, forward_event, sendpay_failure/success, log, warning, plugin lifecycle, and xpay payment part events

04

No changes to authentication, authorization, or access control visible in the diff

05

No vendor security disclosure or CVE references present in commit message or diff

Risk score

Why this scored 19/100

Our methodology →
Potential impact 2/30
Exploitability 1/25
Stealth signal 1/15
Affected reach 3/15
Confidence 8/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.