Skip to content

Notify participant domains and push recipients_added on add-to - #34

Merged
markmnl merged 1 commit into
mainfrom
add-to-participant-notification
Aug 3, 2026
Merged

Notify participant domains and push recipients_added on add-to#34
markmnl merged 1 commit into
mainfrom
add-to-participant-notification

Conversation

@markmnl

@markmnl markmnl commented Aug 3, 2026

Copy link
Copy Markdown
Owner

AddRecipients now records one msg_add_to_notify row per remote participant domain of the message -- the domains of from and every to address, excluding domains hosting one of the batch's new recipients (they learn through normal delivery) and the local domain (this database is its record) -- so fmsgd delivers the add-to message to every participant domain per SPEC §10.2, not only the new batch's.

Addresses already added to the message are now rejected up front: msg_add_to is unique per (msg, addr), so re-adding silently no-opped and could leave a batch with no recipients, which fmsgd would deliver as an invalid add-to message. Re-adding an original to recipient stays allowed (SPEC §10.3 NOTE II).

The websocket hub listens on the new recipients_added channel (fired by fmsgd's dd.sql when a batch is recorded, whether added locally or received from a remote host) and pushes the refreshed message to every connected participant, closing the gap where existing participants got no realtime signal that recipients were added.

Requires fmsgd's updated dd.sql (msg_add_to_notify table and recipients_added trigger).

AddRecipients now records one msg_add_to_notify row per remote
participant domain of the message -- the domains of from and every to
address, excluding domains hosting one of the batch's new recipients
(they learn through normal delivery) and the local domain (this
database is its record) -- so fmsgd delivers the add-to message to
every participant domain per SPEC §10.2, not only the new batch's.

Addresses already added to the message are now rejected up front:
msg_add_to is unique per (msg, addr), so re-adding silently no-opped
and could leave a batch with no recipients, which fmsgd would deliver
as an invalid add-to message. Re-adding an original to recipient stays
allowed (SPEC §10.3 NOTE II).

The websocket hub listens on the new recipients_added channel (fired by
fmsgd's dd.sql when a batch is recorded, whether added locally or
received from a remote host) and pushes the refreshed message to every
connected participant, closing the gap where existing participants got
no realtime signal that recipients were added.

Requires fmsgd's updated dd.sql (msg_add_to_notify table and
recipients_added trigger).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@markmnl
markmnl merged commit 9b43f27 into main Aug 3, 2026
1 check passed
@markmnl
markmnl deleted the add-to-participant-notification branch August 3, 2026 07:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant