Show an IRC listener user what their session sends from other clients (closes #179)
check / check (push) Waiting to run

The relay dropped every PRIVMSG, NOTICE, JOIN, PART, NICK, QUIT, TOPIC,
MODE and KICK sent under the connection's own nick, so an IRC listener
connection never saw what its session did from another client. The
relay now drops nothing by nick. Instead, the service methods that fan
out a user's own command take the client whose queue to skip: the IRC
listener passes its own client, which has already written the echo, and
the HTTP API passes 0. Channel messages and PARTs now also go to the
sender's own session, so the HTTP handler no longer queues the
channel-message echo itself, SendChannelMessage no longer returns the
message's row ID, and neoirc-cli ignores the PART event for its own
part, which it has already shown.

Model: opus-5-5
This commit is contained in:
2026-10-21 12:02:11 +00:00
committed by sneak
parent d539b4c558
commit da9e3e54cb
13 changed files with 455 additions and 247 deletions
+1 -1
View File
@@ -2905,7 +2905,7 @@ func (tserver *testServer) queueMessage(
return fmt.Errorf("insert message: %w", err)
}
err = tserver.database.EnqueueToSession(ctx, sessionID, msgID)
err = tserver.database.EnqueueToSession(ctx, sessionID, msgID, 0)
if err != nil {
return fmt.Errorf("enqueue: %w", err)
}