IRC: quit_message is stored, settable, and never sent #65

Closed
opened 2026-09-02 00:04:10 -04:00 by Salastil · 1 comment
Owner

quit_message is a field on the account (accounts.rs:31), settable over RPC (rpc/methods.rs:220) and editable in the UI (SettingsPanel.tsx:337) — and it is never read. Every disconnect sends an empty QUIT: runtime.rs:972 and :1951 both pass "". Only the shutdown-all path at :1936 passes a message, and that one is not the account's.

Dead config that presents itself as working is worse than no setting: somebody sets a quit message, and the channel sees nothing.

Done looks like: the per-account quit_message reaches both send_quit call sites.

`quit_message` is a field on the account (`accounts.rs:31`), settable over RPC (`rpc/methods.rs:220`) and editable in the UI (`SettingsPanel.tsx:337`) — and it is never read. Every disconnect sends an empty QUIT: `runtime.rs:972` and `:1951` both pass `""`. Only the shutdown-all path at `:1936` passes a message, and that one is not the account's. Dead config that presents itself as working is worse than no setting: somebody sets a quit message, and the channel sees nothing. **Done looks like:** the per-account `quit_message` reaches both `send_quit` call sites.
Author
Owner

Finished — https://git.salastil.com/Salastil/nobilis/commit/2f37c47

The message rides on the IRC handle now. That is the fix rather than an implementation detail: the two places that end a connection — disconnect and reset_connection — have an account id and no view of its config, which is exactly how a stored setting came to be dropped on the floor at both of them.

An account that set no message still sends one, because an empty QUIT is what a dropped connection looks like and leaving deliberately should not look like falling over. The shutdown path uses the account's own message too, since the daemon exiting is not a reason to say something different to the channel than a disconnect would.

Finished — https://git.salastil.com/Salastil/nobilis/commit/2f37c47 The message rides on the IRC handle now. That is the fix rather than an implementation detail: the two places that end a connection — `disconnect` and `reset_connection` — have an account id and no view of its config, which is exactly how a stored setting came to be dropped on the floor at both of them. An account that set no message still sends one, because an empty QUIT is what a dropped connection looks like and leaving deliberately should not look like falling over. The shutdown path uses the account's own message too, since the daemon exiting is not a reason to say something different to the channel than a disconnect would.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#65