Commit Graph

  • bc8aa6bb96 Remove the unused GetSessionChannelIDs from the db package (closes #254) next clawbot 2026-11-03 12:38:42 +01:00
  • bc7ef8240b Keep Go's caches out of the test stage's image (closes #256) clawbot 2026-11-03 12:20:48 +01:00
  • 8afd873813 Move the test-only helpers out of the shipped db package (closes #248) clawbot 2026-11-03 11:59:17 +01:00
  • c12668226f Apply MAX_MESSAGE_SIZE to the whole request body (closes #250) clawbot 2026-11-03 09:20:42 +01:00
  • 4221f71920 Add the # to RPL_ENDOFWHO for an unknown channel over HTTP (closes #249) clawbot 2026-11-03 08:38:44 +01:00
  • 254873a656 Fix the sentences a fresh read of README.md failed (closes #190) clawbot 2026-11-03 08:20:55 +01:00
  • 0b63384423 Rewrite README.md sentence by sentence clawbot 2026-11-03 07:38:43 +01:00
  • c4fc156a8c Rewrite AGENTS.md sentence by sentence clawbot 2026-11-03 06:59:36 +01:00
  • 5fe325399b Show square brackets in the neoirc-cli message window as written (closes #233) clawbot 2026-11-02 08:30:56 +01:00
  • 24e8b4d027 Refuse a PRIVMSG or NOTICE whose body or meta has the wrong type (closes #245) clawbot 2026-11-02 07:39:17 +01:00
  • 562ce87245 Keep the connection state in the status bar on /query (closes #235) clawbot 2026-11-02 07:10:08 +01:00
  • 1e2f0de877 Make the schema files match the server (closes #218) clawbot 2026-11-02 06:24:58 +01:00
  • 2b1a49e59b Redraw the status bar when a line arrives in another window (closes #232) clawbot 2026-11-02 06:03:53 +01:00
  • 7968be00e7 Stop the earlier poll loop on a second /connect (closes #228) clawbot 2026-11-02 05:38:07 +01:00
  • acb9527944 Make the PASS notice name the HTTP API login (closes #217) clawbot 2026-11-02 05:27:27 +01:00
  • e7ae675155 Send peers the IRC listener user's QUIT reason (closes #216) clawbot 2026-11-02 05:02:33 +01:00
  • 6a7989e08d List the missing channel modes in the 004 reply (closes #238) clawbot 2026-11-02 04:48:18 +01:00
  • cc18397ee1 List the user modes in the 004 reply (closes #220) clawbot 2026-11-02 04:17:09 +01:00
  • 0662e87f49 Keep the connection state in the status bar on /window (closes #225) clawbot 2026-11-02 03:13:09 +01:00
  • 6387d68786 Show the connection state in the neoirc-cli status bar (closes #229) clawbot 2026-11-02 02:53:10 +01:00
  • 59f1208d8d Show the neoirc-cli screen without waiting at start-up (closes #226) clawbot 2026-11-02 02:05:24 +01:00
  • fe734af375 Keep neoirc-cli responding when a key or a typed line updates the screen (closes #223) clawbot 2026-11-02 01:08:43 +01:00
  • 967930f9bc Make Alt and a digit set the send target as /window does (closes #221) clawbot 2026-10-28 01:30:33 +01:00
  • fe23bb5045 Stop startup when a setting does not parse (closes #219) clawbot 2026-10-28 00:47:53 +01:00
  • 83a1585ddc Rewrite schema/README.md sentence by sentence clawbot 2026-10-27 16:09:17 +01:00
  • ecf47c37f5 Start test servers on a port the system picks (closes #211) clawbot 2026-10-27 13:34:45 +01:00
  • d444831f41 Keep each test database when the pool replaces its connection (closes #209) clawbot 2026-10-27 12:26:48 +01:00
  • 53009cf9a0 Keep foreign keys on for every database connection (closes #207) clawbot 2026-10-27 11:14:01 +01:00
  • d8f8748525 Let an IRC relay finish its queue read when its connection ends (closes #205) clawbot 2026-10-27 10:20:09 +01:00
  • a7f9bebe6a Run the internal/handlers tests in parallel (closes #194) clawbot 2026-10-27 08:28:28 +01:00
  • c61cc847d9 Show the direct-message web tab even when other tabs change first (closes #202) clawbot 2026-10-27 07:07:39 +01:00
  • d3b169a641 Give the web Server tab a name no nick can take (closes #200) clawbot 2026-10-27 06:29:27 +01:00
  • 2331c15aad Keep the web tab the user reads, and show a kick in the Server tab (closes #195) clawbot 2026-10-27 05:52:48 +01:00
  • 229c89e1f8 Open a channel only when the server accepts the join (closes #197) clawbot 2026-10-27 05:09:01 +01:00
  • fcc94ca700 Show a joined channel's web tab whichever reply comes first (closes #193) clawbot 2026-10-27 04:30:41 +01:00
  • e1173eba9e Close a channel's web tab when the user parts or is kicked (closes #185) clawbot 2026-10-27 03:11:33 +01:00
  • 76ef8ffaaf Show neoirc-cli's own messages, joins and parts from the server's events (closes #186) clawbot 2026-10-27 02:23:34 +01:00
  • d6a6296c1e deploy (#189) prod sneak 2026-10-22 18:52:00 +02:00
  • 12a232ee1b next → main: utility commands, IRC listener and audit fixes, build fixes (#111) main sneak 2026-10-22 18:27:05 +02:00
  • d31fd529e2 Make an IRC listener connection follow its session's nick (closes #184) clawbot 2026-10-21 17:56:02 +02:00
  • 129d87d578 Show an IRC listener user what their session sends from other clients (closes #179) clawbot 2026-10-21 15:23:13 +02:00
  • d539b4c558 Make TestIdleCleanupKeepsActiveUser independent of timing (closes #181) clawbot 2026-10-21 13:06:01 +02:00
  • 3cbd7554e2 Relay INVITE to IRC listener users as an INVITE line (closes #147) clawbot 2026-10-21 07:31:38 +02:00
  • ddfbdc1277 Keep the web client's saved channels and show who changed a mode (closes #176) clawbot 2026-10-21 06:31:29 +02:00
  • 3cbdac7bda Send an IRC listener user their own TOPIC, MODE and KICK once (closes #143) clawbot 2026-10-21 06:14:42 +02:00
  • d37c130ee8 Bring the web client in line with the current API (closes #145) clawbot 2026-10-21 05:48:33 +02:00
  • 24b9b58cac Register the broker wait before the first poll (closes #157) clawbot 2026-10-21 05:31:24 +02:00
  • c267cd215c Refuse passwords over 72 bytes and confirm only stored ones (closes #144) clawbot 2026-10-21 05:02:00 +02:00
  • 0e6d06a7fc Spend a hashcash stamp only when the request succeeds (closes #158) clawbot 2026-10-21 04:02:06 +02:00
  • e7e408c93e Resolve IRC client hostnames off the accept loop (closes #156) clawbot 2026-10-21 03:31:27 +02:00
  • 3822cdaf1d Decode the API's actual fields in neoirc-cli (closes #146) clawbot 2026-10-21 02:48:31 +02:00
  • b879644e41 Broadcast a session's QUIT once when its clients leave together (closes #154) clawbot 2026-10-21 01:48:26 +02:00
  • bbdf3a70af Fail startup when the HTTP listener cannot bind (closes #167) clawbot 2026-10-21 01:14:24 +02:00
  • 497514d3df Wait for IRC listener cleanup and HTTP shutdown on stop (closes #159) clawbot 2026-10-20 23:48:30 +02:00
  • 108e381428 Run JOIN, PART and KICK as one transaction each (closes #153) clawbot 2026-10-20 22:48:25 +02:00
  • 292f1eb7a9 Serve the index page for an empty URL path instead of panicking (closes #149) clawbot 2026-10-20 21:31:26 +02:00
  • e3d01454b3 PING a quiet IRC listener client before closing it (closes #155) clawbot 2026-10-20 20:53:00 +02:00
  • e489f3f3d1 Spend a channel hashcash stamp in one statement (closes #150) clawbot 2026-10-20 20:31:27 +02:00
  • 164fc93a48 Bind history to the recipient session and channel, not the name (closes #148) clawbot 2026-10-20 19:48:35 +02:00
  • 5100b9a665 Remove the relay's broker wait channel after each tick (closes #151) clawbot 2026-10-20 18:02:03 +02:00
  • 0b09cf838c Check nicks on the IRC listener with the HTTP API's rule (closes #142) clawbot 2026-10-20 17:31:31 +02:00
  • eceb5f2b2c Compare nicks by exact case everywhere (closes #128) clawbot 2026-10-20 16:31:28 +02:00
  • 3c725a9ca8 Enforce channel keys, invites, +s and +H on the IRC listener (closes #122) clawbot 2026-10-20 16:02:14 +02:00
  • 1308769a25 Fix IRC listener relay of bodies and modes, and JOIN names (closes #127) clawbot 2026-10-20 13:48:16 +02:00
  • 4ab320ab2d Give each handler and service test its own database (closes #131) clawbot 2026-10-20 13:04:40 +02:00
  • 5b430cf835 Let an empty IRC_LISTEN_ADDR disable the IRC listener (closes #124) clawbot 2026-10-20 12:35:18 +02:00
  • 1019419b17 Page history by message id (closes #125) clawbot 2026-10-20 11:58:39 +02:00
  • 7c6f0bc01e Run SQLite in WAL mode with a busy timeout the driver reads (closes #123) clawbot 2026-10-20 11:30:09 +02:00
  • eea90b01e5 Merge main into next (closes #132) clawbot 2026-10-20 08:42:53 +00:00
  • a054bf828d Give each IRC listener test its own database (closes #129) clawbot 2026-10-08 12:01:48 +02:00
  • e80c9552eb Bring README.md in line with the modes and the schema (closes #119) clawbot 2026-10-08 11:30:48 +02:00
  • ccb2bf7960 Keep active IRC listener users from expiring (closes #121) clawbot 2026-10-08 10:47:55 +02:00
  • 0f2e63d0cc Add the tier 3 utility IRC commands (closes #87) clawbot 2026-10-08 07:31:37 +02:00
  • b119b094f5 Build the web front end with yarn (closes #117) clawbot 2026-10-07 02:01:42 +02:00
  • 6acf2ca3b4 Make the internal/handlers tests fast (closes #113) clawbot 2026-10-07 00:13:40 +02:00
  • bb7bcb31ea Re-vendor the canonical files from sneak/prompts at dd4027b (closes #112) clawbot 2026-10-06 21:01:46 +02:00
  • 9a46421902 Run make test once so a failing test fails the build (closes #101) clawbot 2026-10-06 08:31:01 +02:00
  • e3324407ca Fix the data races and the test timeout that fail make test (closes #104) clawbot 2026-10-02 10:13:28 +02:00
  • 729c671561 Remove BUILDARCH and stamp the git version in Docker builds (closes #107, closes #109) clawbot 2026-10-02 04:13:07 +02:00
  • 915f56ee02 Fix the data races and the test timeout that fail make test (closes #104) clawbot 2026-10-02 02:49:53 +02:00
  • f829f9e3da Change module path to sneak.berlin/go/neoirc (#99) clawbotandclawbot 2026-04-01 23:05:41 +02:00
  • 02279b2654 test: add comprehensive IRC integration test with two clients (#100) clawbotanduser 2026-04-01 12:47:49 +02:00
  • 0250f14fea feat: add traditional IRC wire protocol listener (closes #89) (#94) 2026-04-01 05:00:04 +02:00
  • 24362966e0 feat: move schema_migrations into 000_bootstrap.sql (#95) clawbotanduser 2026-03-30 21:35:53 +02:00
  • 9a79d92c0d feat: implement Tier 2 channel modes (+b/+i/+s/+k/+l) (#92) clawbotanduser 2026-03-25 22:38:46 +01:00
  • e62962d192 fix: use in-memory SQLite for handler tests to fix CI timeout (#93) clawbotandclawbot 2026-03-25 20:11:34 +01:00
  • 4b445e6383 feat: implement Tier 1 channel modes (+o/+v/+m/+t), KICK, NOTICE (#88) clawbotanduser 2026-03-25 02:08:28 +01:00
  • 08f57bc105 feat: add per-IP rate limiting to login endpoint (#78) clawbotandclawbot 2026-03-22 00:39:38 +01:00
  • 5f3c0633f6 refactor: replace Bearer token auth with HttpOnly cookies (#84) 2026-03-20 23:54:23 +01:00
  • db3d23c224 feat: add username/hostname support with IRC hostmask format (#82) 2026-03-20 06:53:35 +01:00
  • bf4d63bc4d feat: per-channel hashcash proof-of-work for PRIVMSG anti-spam (#79) 2026-03-18 03:40:33 +01:00
  • efbd8fe9ff docs: update README schema section to match sessions/clients tables (#76) clawbotanduser 2026-03-18 03:38:36 +01:00
  • e36bd99ef6 security: enforce channel membership check in handleTopic (#75) clawbotanduser 2026-03-17 12:47:00 +01:00
  • e9d794764b docs: document register/login and dual authentication model (#77) clawbotandclawbot 2026-03-17 12:44:48 +01:00
  • 052674b4ee feat: add runtime statistics to healthcheck endpoint (#80) clawbotanduser 2026-03-17 12:43:39 +01:00
  • cab5784913 feat: implement Tier 1 IRC numerics (#72) 2026-03-13 00:41:26 +01:00
  • 75cecd9803 feat: implement hashcash proof-of-work for session creation (#63) 2026-03-13 00:38:41 +01:00
  • f2e7a6ec85 [deps] Migrate from chi v1 to chi/v5 (#73) clawbot 2026-03-13 00:32:10 +01:00
  • 27df999942 Complete IRC numerics module and move to pkg/irc/ (refs #52) (#71) 2026-03-10 18:41:26 +01:00
  • b19c8b5759 Implement queue pruning and message rotation (closes #40) (#67) 2026-03-10 15:37:33 +01:00