Skip to content

feat: deliver tool replies, notices and actions through the gateway - #107

Merged
m1ngsama merged 2 commits into
mainfrom
feat/module-events
Oct 11, 2026
Merged

m1ngsama merged 2 commits into
mainfrom
feat/module-events

Conversation

@m1ngsama

Copy link
Copy Markdown
Owner

Web users could trigger the room tools (/roll, /flip, /8ball, /choose, /quote) but never saw the replies, and never saw join, leave or rename notices: module replies and notices were not delivered to modules, and the gateway dropped them from history.

Modules now receive message.created for replies other modules publish and for join, leave and rename notices; a message.post whose text starts with "/me " is published as an action. A module still never receives its own messages. The gateway classifies every message as text, action, system or module (actions carry the actor as sender, module replies the module name), lists the handles mentioned in the text, and keeps notices and module replies in history.

Verified: module runtime and privileged module tests (20 and 14 pass), gateway bun test (52 pass) and tsc; built from this branch on chat.m1ng.space and deployed together with the gateway (previous binaries kept in /root).

Modules now receive message.created for replies other modules publish,
for join, leave and rename notices, and a message.post whose text starts
with "/me " is published as an action. A module still never receives
its own messages. This lets the WebSocket gateway show tool replies and
room notices that only SSH users could see.
…mentions

Message frames now carry kind (text, action, system, module) and the
handles mentioned in the text; actions arrive with the actor as sender,
module replies with the module name. Notices and module replies are no
longer dropped from history.
@m1ngsama
m1ngsama merged commit 1419f57 into main Oct 11, 2026
2 of 4 checks passed
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