2026-10-09 - 2026-11-09

Overview

70 Active Pull Requests
65 Active Issues
Excluding merges, 0 authors have pushed 0 commits to main and 66 commits to all branches. On main, 0 files have changed and there have been 0 additions and 0 deletions.

69 Pull requests merged by 2 users

Merged #258 Remove the unused GetSessionChannelIDs from the db package (closes #254) 2026-11-03 12:38:43 +01:00

Merged #257 Keep Go's caches out of the test stage's image (closes #256) 2026-11-03 12:20:49 +01:00

Merged #255 Move the test-only helpers out of the shipped db package (closes #248) 2026-11-03 11:59:17 +01:00

Merged #253 Apply MAX_MESSAGE_SIZE to the whole request body (closes #250) 2026-11-03 09:20:43 +01:00

Merged #252 Add the # to RPL_ENDOFWHO for an unknown channel over HTTP (closes #249) 2026-11-03 08:38:45 +01:00

Merged #251 Fix the sentences a fresh read of README.md failed (closes #190) 2026-11-03 08:20:55 +01:00

Merged #215 Rewrite README.md sentence by sentence 2026-11-03 07:38:43 +01:00

Merged #213 Rewrite AGENTS.md sentence by sentence 2026-11-03 06:59:37 +01:00

Merged #246 Show square brackets in the neoirc-cli message window as written (closes #233) 2026-11-02 08:30:56 +01:00

Merged #247 Refuse a PRIVMSG or NOTICE whose body or meta has the wrong type (closes #245) 2026-11-02 07:39:18 +01:00

Merged #244 Keep the connection state in the status bar on /query (closes #235) 2026-11-02 07:10:08 +01:00

Merged #242 Make the schema files match the server (closes #218) 2026-11-02 06:24:58 +01:00

Merged #243 Redraw the status bar when a line arrives in another window (closes #232) 2026-11-02 06:03:54 +01:00

Merged #236 Stop the earlier poll loop on a second /connect (closes #228) 2026-11-02 05:38:08 +01:00

Merged #241 Make the PASS notice name the HTTP API login (closes #217) 2026-11-02 05:27:28 +01:00

Merged #239 Send peers the IRC listener user's QUIT reason (closes #216) 2026-11-02 05:02:34 +01:00

Merged #240 List the missing channel modes in the 004 reply (closes #238) 2026-11-02 04:48:19 +01:00

Merged #237 List the user modes in the 004 reply (closes #220) 2026-11-02 04:17:10 +01:00

Merged #234 Keep the connection state in the status bar on /window (closes #225) 2026-11-02 03:13:10 +01:00

Merged #231 Show the connection state in the neoirc-cli status bar (closes #229) 2026-11-02 02:53:12 +01:00

Merged #230 Show the neoirc-cli screen without waiting at start-up (closes #226) 2026-11-02 02:05:25 +01:00

Merged #227 Keep neoirc-cli responding when a key or a typed line updates the screen (closes #223) 2026-11-02 01:08:43 +01:00

Merged #224 Make Alt and a digit set the send target as /window does (closes #221) 2026-10-28 01:30:34 +01:00

Merged #222 Stop startup when a setting does not parse (closes #219) 2026-10-28 00:47:55 +01:00

Merged #214 Rewrite schema/README.md sentence by sentence 2026-10-27 16:09:18 +01:00

Merged #212 Start test servers on a port the system picks (closes #211) 2026-10-27 13:34:46 +01:00

Merged #210 Keep each test database when the pool replaces its connection (closes #209) 2026-10-27 12:26:49 +01:00

Merged #208 Keep foreign keys on for every database connection (closes #207) 2026-10-27 11:14:02 +01:00

Merged #206 Let an IRC relay finish its queue read when its connection ends (closes #205) 2026-10-27 10:20:10 +01:00

Merged #204 Run the internal/handlers tests in parallel (closes #194) 2026-10-27 08:28:29 +01:00

Merged #203 Show the direct-message web tab even when other tabs change first (closes #202) 2026-10-27 07:07:40 +01:00

Merged #201 Give the web Server tab a name no nick can take (closes #200) 2026-10-27 06:29:28 +01:00

Merged #199 Keep the web tab the user reads, and show a kick in the Server tab (closes #195) 2026-10-27 05:52:49 +01:00

Merged #198 Open a channel only when the server accepts the join (closes #197) 2026-10-27 05:09:01 +01:00

Merged #196 Show a joined channel's web tab whichever reply comes first (closes #193) 2026-10-27 04:30:42 +01:00

Merged #192 Close a channel's web tab when the user parts or is kicked (closes #185) 2026-10-27 03:11:34 +01:00

Merged #188 Show neoirc-cli's own messages, joins and parts from the server's events (closes #186) 2026-10-27 02:23:35 +01:00

Merged #189 deploy 2026-10-22 18:52:01 +02:00

Merged #111 next → main: utility commands, IRC listener and audit fixes, build fixes 2026-10-22 18:27:07 +02:00

Merged #187 Make an IRC listener connection follow its session's nick (closes #184) 2026-10-21 17:56:03 +02:00

Merged #183 Show an IRC listener user what their session sends from other clients (closes #179) 2026-10-21 15:23:14 +02:00

Merged #182 Make TestIdleCleanupKeepsActiveUser independent of timing (closes #181) 2026-10-21 13:06:02 +02:00

Merged #180 Relay INVITE to IRC listener users as an INVITE line (closes #147) 2026-10-21 07:31:39 +02:00

Merged #178 Keep the web client's saved channels and show who changed a mode (closes #176) 2026-10-21 06:31:30 +02:00

Merged #177 Send an IRC listener user their own TOPIC, MODE and KICK once (closes #143) 2026-10-21 06:14:42 +02:00

Merged #175 Bring the web client in line with the current API (closes #145) 2026-10-21 05:48:34 +02:00

Merged #174 Register the broker wait before the first poll (closes #157) 2026-10-21 05:31:25 +02:00

Merged #173 Refuse passwords over 72 bytes and confirm only stored ones (closes #144) 2026-10-21 05:02:01 +02:00

Merged #171 Spend a hashcash stamp only when the request succeeds (closes #158) 2026-10-21 04:02:07 +02:00

Merged #172 Resolve IRC client hostnames off the accept loop (closes #156) 2026-10-21 03:31:28 +02:00

Merged #170 Decode the API's actual fields in neoirc-cli (closes #146) 2026-10-21 02:48:32 +02:00

Merged #168 Broadcast a session's QUIT once when its clients leave together (closes #154) 2026-10-21 01:48:27 +02:00

Merged #169 Fail startup when the HTTP listener cannot bind (closes #167) 2026-10-21 01:14:25 +02:00

Merged #166 Wait for IRC listener cleanup and HTTP shutdown on stop (closes #159) 2026-10-20 23:48:31 +02:00

Merged #164 Run JOIN, PART and KICK as one transaction each (closes #153) 2026-10-20 22:48:26 +02:00

Merged #165 Serve the index page for an empty URL path instead of panicking (closes #149) 2026-10-20 21:31:26 +02:00

Merged #162 PING a quiet IRC listener client before closing it (closes #155) 2026-10-20 20:53:01 +02:00

Merged #163 Spend a channel hashcash stamp in one statement (closes #150) 2026-10-20 20:31:27 +02:00

Merged #161 Bind history to the recipient session and channel, not the name (closes #148) 2026-10-20 19:48:36 +02:00

Merged #160 Remove the relay's broker wait channel after each tick (closes #151) 2026-10-20 18:02:04 +02:00

Merged #152 Check nicks on the IRC listener with the HTTP API's rule (closes #142) 2026-10-20 17:31:32 +02:00

Merged #141 Compare nicks by exact case everywhere (closes #128) 2026-10-20 16:31:29 +02:00

Merged #139 Enforce channel keys, invites, +s and +H on the IRC listener (closes #122) 2026-10-20 16:02:14 +02:00

Merged #135 Fix IRC listener relay of bodies and modes, and JOIN names (closes #127) 2026-10-20 13:48:17 +02:00

Merged #138 Give each handler and service test its own database (closes #131) 2026-10-20 13:04:42 +02:00

Merged #137 Let an empty IRC_LISTEN_ADDR disable the IRC listener (closes #124) 2026-10-20 12:35:20 +02:00

Merged #136 Page history by message id (closes #125) 2026-10-20 11:58:40 +02:00

Merged #134 Run SQLite in WAL mode with a busy timeout the driver reads (closes #123) 2026-10-20 11:30:10 +02:00

Merged #133 Merge main into next (closes #132) 2026-10-20 11:10:40 +02:00

1 Pull request proposed by 1 user

Proposed #191 next → main: client fixes 2026-10-27 02:28:21 +01:00

64 Issues closed from 1 user

Closed #254 Remove the unused GetSessionChannelIDs from the db package 2026-11-03 12:38:43 +01:00

Closed #256 make test takes about 85 seconds on the build host, over the 60-second cap 2026-11-03 12:20:50 +01:00

Closed #248 Move the test-only helpers out of the shipped db package 2026-11-03 11:59:18 +01:00

Closed #250 MAX_MESSAGE_SIZE bounds only the first JSON value read, not the request body 2026-11-03 09:20:43 +01:00

Closed #249 WHO over the HTTP API: RPL_ENDOFWHO for an unknown channel carries the name as sent, not with the # added 2026-11-03 08:38:46 +01:00

Closed #190 Rewrite README.md and the other prose documents sentence by sentence, on Fable 2026-11-03 08:20:56 +01:00

Closed #233 neoirc-cli reads square brackets in nicks and messages as colour tags 2026-11-02 08:30:57 +01:00

Closed #245 The HTTP API relays a PRIVMSG or NOTICE body that is not an array of strings 2026-11-02 07:39:19 +01:00

Closed #235 neoirc-cli shows connected in the status bar after /query while not connected 2026-11-02 07:10:08 +01:00

Closed #218 The JSON files in schema/ disagree with the server 2026-11-02 06:24:58 +01:00

Closed #232 neoirc-cli does not show new lines in other windows until the status bar is next redrawn 2026-11-02 06:03:54 +01:00

Closed #228 neoirc-cli keeps the old poll loop running after a second /connect 2026-11-02 05:38:09 +01:00

Closed #217 The IRC listener's PASS notice promises a reconnect the server does not support 2026-11-02 05:27:28 +01:00

Closed #216 The IRC listener tells peers Connection closed instead of the user's QUIT reason 2026-11-02 05:02:34 +01:00

Closed #238 The 004 reply leaves out channel modes the server accepts 2026-11-02 04:48:19 +01:00

Closed #220 The 004 reply sends an empty user-modes parameter 2026-11-02 04:17:10 +01:00

Closed #225 neoirc-cli shows connected in the status bar after /window while not connected 2026-11-02 03:13:10 +01:00

Closed #229 neoirc-cli never shows the connection state in its status bar 2026-11-02 02:53:12 +01:00

Closed #226 neoirc-cli hangs at startup before it shows its screen 2026-11-02 02:05:25 +01:00

Closed #223 neoirc-cli stops responding when a key or a typed line updates the screen 2026-11-02 01:08:43 +01:00

Closed #221 neoirc-cli keeps sending to the old window after Alt and a digit 2026-10-28 01:30:35 +01:00

Closed #219 A setting that cannot be parsed silently falls back to zero or false 2026-10-28 00:47:55 +01:00

Closed #211 internal/server tests can fail at random when another process takes the port they picked 2026-10-27 13:34:47 +01:00

Closed #209 Test databases lose all their data when a cancelled query makes the pool replace its connection 2026-10-27 12:26:49 +01:00

Closed #207 After a cancelled query, the database runs without foreign keys 2026-10-27 11:14:02 +01:00

Closed #205 TestIntegrationKill sometimes times out waiting for the killed user's QUIT 2026-10-27 10:20:10 +01:00

Closed #194 internal/handlers tests take about 26 seconds, over the 20-second target 2026-10-27 08:28:30 +01:00

Closed #202 The web client can open the wrong tab after /msg, from an out-of-date tab list 2026-10-27 07:07:40 +01:00

Closed #200 In the web client, a user with the nick Server shares the Server tab 2026-10-27 06:29:28 +01:00

Closed #195 The web client leaves the channel the user is reading when another tab closes, and a kicked user sees no notice 2026-10-27 05:52:49 +01:00

Closed #197 Both clients open a channel the server refused to join 2026-10-27 05:09:01 +01:00

Closed #193 The web client loses its active tab when the JOIN event arrives before the join request returns 2026-10-27 04:30:42 +01:00

Closed #185 The web client keeps a channel's tab after its session leaves the channel from another client or is kicked 2026-10-27 03:11:34 +01:00

Closed #186 neoirc-cli hides what its session does from other clients and shows its own join twice 2026-10-27 02:23:35 +01:00

Closed #184 An IRC listener connection keeps its old nick after its session's nick is changed from another client 2026-10-21 17:56:03 +02:00

Closed #179 An IRC listener connection never sees what its own session sent from another client 2026-10-21 15:23:15 +02:00

Closed #181 TestIdleCleanupKeepsActiveUser fails on some runs and turns next red 2026-10-21 13:06:03 +02:00

Closed #147 INVITE reaches an IRC listener user as a server NOTICE without the inviter, not as an INVITE line 2026-10-21 07:31:39 +02:00

Closed #176 The web client wipes its saved channels on every load and shows a mode change without who made it 2026-10-21 06:31:31 +02:00

Closed #143 An IRC listener user gets their own TOPIC, MODE and KICK twice 2026-10-21 06:14:43 +02:00

Closed #145 The web client targets an older API: /mode only queries, numerics and member prefixes are not parsed, a 401 is retried forever 2026-10-21 05:48:34 +02:00

Closed #157 A message that arrives between the first poll and the broker wait is delivered only after the full long-poll timeout 2026-10-21 05:31:25 +02:00

Closed #144 PASS over 72 bytes gets HTTP 500, and the IRC listener confirms a password it did not store 2026-10-21 05:02:01 +02:00

Closed #158 A hashcash stamp is spent before the request can still fail, so a refused request costs the client a new proof 2026-10-21 04:02:07 +02:00

Closed #156 The IRC accept loop does the reverse DNS lookup before handing the connection off, so one slow lookup stalls every new IRC connection 2026-10-21 03:31:28 +02:00

Closed #146 neoirc-cli reads lastId where the API sends last_id, so it re-reads its queue in a tight loop; /names and /list decode the wrong shapes 2026-10-21 02:48:32 +02:00

Closed #154 Two clients of one session leaving at once broadcast its QUIT twice 2026-10-21 01:48:27 +02:00

Closed #167 A failed HTTP listen is only logged, and the server runs on without its HTTP API 2026-10-21 01:14:25 +02:00

Closed #159 Stopping the server leaves IRC listener sessions in the database, so after a restart their nicks are taken for up to 30 days 2026-10-20 23:48:31 +02:00

Closed #153 JOIN is several statements with no transaction: +l is exceeded, two first joiners both become operator, and a JOIN racing the last PART gets 500 2026-10-20 22:48:26 +02:00

Closed #149 A request with an empty URL path panics in the SPA handler 2026-10-20 21:31:26 +02:00

Closed #155 The IRC listener closes a connection that sends nothing for five minutes and never sends a PING of its own 2026-10-20 20:53:01 +02:00

Closed #150 A channel hashcash stamp can be spent more than once: the spent check and the record are two statements 2026-10-20 20:31:28 +02:00

Closed #148 History is keyed by name, so the next holder of a nick or of a channel name can read the previous holder's messages 2026-10-20 19:48:36 +02:00

Closed #151 The IRC relay adds a broker wait channel every 100 ms and removes none while the user is idle, so memory grows per idle IRC connection and stays after it closes 2026-10-20 18:02:05 +02:00

Closed #142 The IRC listener accepts any nick: a nick with spaces forges lines other IRC clients read as another user's 2026-10-20 17:31:32 +02:00

Closed #128 Nicks are unique by exact case but compared ignoring case 2026-10-20 16:31:30 +02:00

Closed #122 The IRC listener ignores channel keys, invites, +s and +H 2026-10-20 16:02:15 +02:00

Closed #127 The IRC listener drops lines and mode parameters, and accepts any channel name 2026-10-20 13:48:18 +02:00

Closed #131 Handler and service tests can reuse a finished test's database 2026-10-20 13:04:43 +02:00

Closed #124 An empty IRC_LISTEN_ADDR does not turn the IRC listener off 2026-10-20 12:35:21 +02:00

Closed #125 History paging takes an id no response gives the client 2026-10-20 11:58:41 +02:00

Closed #123 SQLite never runs in WAL mode: the database URL uses a parameter the driver ignores 2026-10-20 11:30:11 +02:00

Closed #132 next does not merge into main: both carry the data race fix 2026-10-20 11:10:41 +02:00

58 Issues created by 1 user

Opened #132 next does not merge into main: both carry the data race fix 2026-10-20 10:40:58 +02:00

Opened #140 1.0: what stands between next and a release candidate 2026-10-20 14:14:26 +02:00

Opened #142 The IRC listener accepts any nick: a nick with spaces forges lines other IRC clients read as another user's 2026-10-20 16:51:32 +02:00

Opened #143 An IRC listener user gets their own TOPIC, MODE and KICK twice 2026-10-20 16:51:33 +02:00

Opened #144 PASS over 72 bytes gets HTTP 500, and the IRC listener confirms a password it did not store 2026-10-20 16:51:33 +02:00

Opened #145 The web client targets an older API: /mode only queries, numerics and member prefixes are not parsed, a 401 is retried forever 2026-10-20 16:51:34 +02:00

Opened #146 neoirc-cli reads lastId where the API sends last_id, so it re-reads its queue in a tight loop; /names and /list decode the wrong shapes 2026-10-20 16:51:34 +02:00

Opened #147 INVITE reaches an IRC listener user as a server NOTICE without the inviter, not as an INVITE line 2026-10-20 16:51:35 +02:00

Opened #148 History is keyed by name, so the next holder of a nick or of a channel name can read the previous holder's messages 2026-10-20 17:04:05 +02:00

Opened #149 A request with an empty URL path panics in the SPA handler 2026-10-20 17:04:05 +02:00

Opened #150 A channel hashcash stamp can be spent more than once: the spent check and the record are two statements 2026-10-20 17:04:23 +02:00

Opened #151 The IRC relay adds a broker wait channel every 100 ms and removes none while the user is idle, so memory grows per idle IRC connection and stays after it closes 2026-10-20 17:10:45 +02:00

Opened #153 JOIN is several statements with no transaction: +l is exceeded, two first joiners both become operator, and a JOIN racing the last PART gets 500 2026-10-20 17:14:50 +02:00

Opened #154 Two clients of one session leaving at once broadcast its QUIT twice 2026-10-20 17:14:51 +02:00

Opened #155 The IRC listener closes a connection that sends nothing for five minutes and never sends a PING of its own 2026-10-20 17:14:51 +02:00

Opened #157 A message that arrives between the first poll and the broker wait is delivered only after the full long-poll timeout 2026-10-20 17:14:52 +02:00

Opened #156 The IRC accept loop does the reverse DNS lookup before handing the connection off, so one slow lookup stalls every new IRC connection 2026-10-20 17:14:52 +02:00

Opened #158 A hashcash stamp is spent before the request can still fail, so a refused request costs the client a new proof 2026-10-20 17:14:53 +02:00

Opened #159 Stopping the server leaves IRC listener sessions in the database, so after a restart their nicks are taken for up to 30 days 2026-10-20 17:15:26 +02:00

Opened #167 A failed HTTP listen is only logged, and the server runs on without its HTTP API 2026-10-20 21:49:15 +02:00

Opened #176 The web client wipes its saved channels on every load and shows a mode change without who made it 2026-10-21 05:32:16 +02:00

Opened #179 An IRC listener connection never sees what its own session sent from another client 2026-10-21 06:04:28 +02:00

Opened #181 TestIdleCleanupKeepsActiveUser fails on some runs and turns next red 2026-10-21 06:34:32 +02:00

Opened #184 An IRC listener connection keeps its old nick after its session's nick is changed from another client 2026-10-21 13:41:39 +02:00

Opened #185 The web client keeps a channel's tab after its session leaves the channel from another client or is kicked 2026-10-21 13:41:43 +02:00

Opened #186 neoirc-cli hides what its session does from other clients and shows its own join twice 2026-10-21 14:23:27 +02:00

Opened #190 Rewrite README.md and the other prose documents sentence by sentence, on Fable 2026-10-22 20:16:30 +02:00

Opened #193 The web client loses its active tab when the JOIN event arrives before the join request returns 2026-10-27 02:59:44 +01:00

Opened #194 internal/handlers tests take about 26 seconds, over the 20-second target 2026-10-27 03:00:10 +01:00

Opened #195 The web client leaves the channel the user is reading when another tab closes, and a kicked user sees no notice 2026-10-27 03:11:59 +01:00

Opened #197 Both clients open a channel the server refused to join 2026-10-27 03:53:37 +01:00

Opened #200 In the web client, a user with the nick Server shares the Server tab 2026-10-27 05:38:57 +01:00

Opened #202 The web client can open the wrong tab after /msg, from an out-of-date tab list 2026-10-27 06:20:55 +01:00

Opened #205 TestIntegrationKill sometimes times out waiting for the killed user's QUIT 2026-10-27 08:28:46 +01:00

Opened #207 After a cancelled query, the database runs without foreign keys 2026-10-27 09:20:45 +01:00

Opened #209 Test databases lose all their data when a cancelled query makes the pool replace its connection 2026-10-27 10:38:59 +01:00

Opened #211 internal/server tests can fail at random when another process takes the port they picked 2026-10-27 11:39:04 +01:00

Opened #216 The IRC listener tells peers Connection closed instead of the user's QUIT reason 2026-10-27 14:21:59 +01:00

Opened #217 The IRC listener's PASS notice promises a reconnect the server does not support 2026-10-27 14:21:59 +01:00

Opened #218 The JSON files in schema/ disagree with the server 2026-10-27 14:21:59 +01:00

Opened #219 A setting that cannot be parsed silently falls back to zero or false 2026-10-27 16:39:14 +01:00

Opened #220 The 004 reply sends an empty user-modes parameter 2026-10-27 16:39:15 +01:00

Opened #221 neoirc-cli keeps sending to the old window after Alt and a digit 2026-10-27 16:39:15 +01:00

Opened #223 neoirc-cli stops responding when a key or a typed line updates the screen 2026-10-28 00:54:49 +01:00

Opened #225 neoirc-cli shows connected in the status bar after /window while not connected 2026-10-28 01:30:55 +01:00

Opened #226 neoirc-cli hangs at startup before it shows its screen 2026-11-02 00:23:35 +01:00

Opened #228 neoirc-cli keeps the old poll loop running after a second /connect 2026-11-02 01:09:31 +01:00

Opened #229 neoirc-cli never shows the connection state in its status bar 2026-11-02 01:20:35 +01:00

Opened #232 neoirc-cli does not show new lines in other windows until the status bar is next redrawn 2026-11-02 02:19:59 +01:00

Opened #233 neoirc-cli reads square brackets in nicks and messages as colour tags 2026-11-02 02:53:40 +01:00

Opened #235 neoirc-cli shows connected in the status bar after /query while not connected 2026-11-02 03:05:34 +01:00

Opened #238 The 004 reply leaves out channel modes the server accepts 2026-11-02 03:49:40 +01:00

Opened #245 The HTTP API relays a PRIVMSG or NOTICE body that is not an array of strings 2026-11-02 06:26:00 +01:00

Opened #248 Move the test-only helpers out of the shipped db package 2026-11-03 07:49:30 +01:00

Opened #249 WHO over the HTTP API: RPL_ENDOFWHO for an unknown channel carries the name as sent, not with the # added 2026-11-03 07:52:05 +01:00

Opened #250 MAX_MESSAGE_SIZE bounds only the first JSON value read, not the request body 2026-11-03 07:52:13 +01:00

Opened #254 Remove the unused GetSessionChannelIDs from the db package 2026-11-03 09:42:24 +01:00

Opened #256 make test takes about 85 seconds on the build host, over the 60-second cap 2026-11-03 11:21:51 +01:00

2 Unresolved Conversations

Open #2 1.1.0 — Federation: Two users chatting across linked servers 2026-10-20 14:14:27 +02:00

Open #25 final 1.0rc1 review/audit/test/qa 2026-10-20 14:14:27 +02:00