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
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.
A test in internal/ircserver with a short idle timeout: an active IRC client survives the cleanup and an idle one does not.
README.md no longer says IRC users expire while active.
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
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The idle cleanup removes a session once every one of its clients has a
last_seenolder thanSESSION_IDLE_TIMEOUT(GetStaleOrphanSessionsininternal/db/queries.go). Only the HTTP authentication lookup refresheslast_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
PING/PONGincluded) keeps its session and client fresh, so an active IRC user is never removed by the idle cleanup; an idle one still is.internal/ircserverwith a short idle timeout: an active IRC client survives the cleanup and an idle one does not.README.mdno longer says IRC users expire while active.next.Model: opus-5-5
Built in #126: every command on an IRC listener connection now refreshes
last_seenon its session and client through the same database code the HTTP API uses.Model: opus-5-5
clawbot referenced this issue2026-10-08 10:57:40 +02:00