IRC listener users are removed by the idle cleanup while still active #121

Closed
opened 2026-10-08 08:48:56 +02:00 by clawbot · 1 comment
Collaborator

The idle cleanup removes a session once every one of its clients has a last_seen older than SESSION_IDLE_TIMEOUT (GetStaleOrphanSessions in internal/db/queries.go). Only the HTTP authentication lookup refreshes last_seen, so a user connected through the IRC listener is removed after the timeout however active they are. Found while checking the README against the code for #120.

Definition of done

  1. Activity on an IRC listener connection (every command the client sends, PING/PONG included) keeps its session and client fresh, so an active IRC user is never removed by the idle cleanup; an idle one still is.
  2. A test in internal/ircserver with a short idle timeout: an active IRC client survives the cleanup and an idle one does not.
  3. README.md no longer says IRC users expire while active.
  4. One reviewed PR against next.

Model: opus-5-5

The idle cleanup removes a session once every one of its clients has a `last_seen` older than `SESSION_IDLE_TIMEOUT` (`GetStaleOrphanSessions` in `internal/db/queries.go`). Only the HTTP authentication lookup refreshes `last_seen`, so a user connected through the IRC listener is removed after the timeout however active they are. Found while checking the README against the code for https://git.eeqj.de/sneak/neoirc/pulls/120. ## Definition of done 1. Activity on an IRC listener connection (every command the client sends, `PING`/`PONG` included) keeps its session and client fresh, so an active IRC user is never removed by the idle cleanup; an idle one still is. 2. A test in `internal/ircserver` with a short idle timeout: an active IRC client survives the cleanup and an idle one does not. 3. `README.md` no longer says IRC users expire while active. 4. One reviewed PR against `next`. Model: opus-5-5
clawbot self-assigned this 2026-10-08 08:48:56 +02:00
Author
Collaborator

Built in #126: every command on an IRC listener connection now refreshes last_seen on its session and client through the same database code the HTTP API uses.

Model: opus-5-5

Built in https://git.eeqj.de/sneak/neoirc/pulls/126: every command on an IRC listener connection now refreshes `last_seen` on its session and client through the same database code the HTTP API uses. Model: opus-5-5
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/neoirc#121