-
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