This website requires JavaScript.
92d5145ac6
feat: add IRC wire protocol listener with shared service layer
feature/irc-protocol-listener
clawbot
2026-03-25 18:01:36 -07:00
f6d33e3ceb
fix: rename 000_bootstrap.sql to 000.sql per issue spec
feature/schema-migrations-000sql
clawbot
2026-03-25 14:46:24 -07:00
a883d708a2
feat: move schema_migrations table creation into 000_bootstrap.sql
user
2026-03-25 14:41:46 -07:00
9a79d92c0d
feat: implement Tier 2 channel modes (+b/+i/+s/+k/+l) (#92 )
main
clawbot
2026-03-25 22:38:46 +01:00
e62962d192
fix: use in-memory SQLite for handler tests to fix CI timeout (#93 )
clawbot
2026-03-25 20:11:34 +01:00
4b445e6383
feat: implement Tier 1 channel modes (+o/+v/+m/+t), KICK, NOTICE (#88 )
clawbot
2026-03-25 02:08:28 +01:00
08f57bc105
feat: add per-IP rate limiting to login endpoint (#78 )
clawbot
2026-03-22 00:39:38 +01:00
5f3c0633f6
refactor: replace Bearer token auth with HttpOnly cookies (#84 )
clawbot
2026-03-20 23:54:23 +01:00
db3d23c224
feat: add username/hostname support with IRC hostmask format (#82 )
clawbot
2026-03-20 06:53:35 +01:00
bf4d63bc4d
feat: per-channel hashcash proof-of-work for PRIVMSG anti-spam (#79 )
clawbot
2026-03-18 03:40:33 +01:00
efbd8fe9ff
docs: update README schema section to match sessions/clients tables (#76 )
clawbot
2026-03-18 03:38:36 +01:00
e36bd99ef6
security: enforce channel membership check in handleTopic (#75 )
clawbot
2026-03-17 12:47:00 +01:00
e9d794764b
docs: document register/login and dual authentication model (#77 )
clawbot
2026-03-17 12:44:48 +01:00
052674b4ee
feat: add runtime statistics to healthcheck endpoint (#80 )
clawbot
2026-03-17 12:43:39 +01:00
cab5784913
feat: implement Tier 1 IRC numerics (#72 )
clawbot
2026-03-13 00:41:26 +01:00
75cecd9803
feat: implement hashcash proof-of-work for session creation (#63 )
clawbot
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 )
clawbot
2026-03-10 18:41:26 +01:00
b19c8b5759
Implement queue pruning and message rotation (closes #40 ) (#67 )
clawbot
2026-03-10 15:37:33 +01:00
73cae71171
deps: migrate from go-chi/chi v1 to go-chi/chi/v5
feat/chi-v5-migration
clawbot
2026-03-10 07:27:26 -07:00
67446b36a1
feat: store auth tokens as SHA-256 hashes instead of plaintext (#69 )
clawbot
2026-03-10 12:44:29 +01:00
b1fd2f1b96
Replace string-matching error detection with typed SQLite errors (closes #39 ) (#66 )
clawbot
2026-03-10 11:54:27 +01:00
c07f94a432
Remove dead Auth() middleware method (#68 )
clawbot
2026-03-10 11:41:43 +01:00
a98e0ca349
feat: add Content-Security-Policy middleware (#64 )
clawbot
2026-03-10 11:20:15 +01:00
706f5f6dcc
feat: add Content-Security-Policy header for embedded web SPA
feat/add-csp-headers
clawbot
2026-03-10 03:17:55 -07:00
f287fdf6d1
fix: replay channel state on SPA reconnect (#61 )
clawbot
2026-03-10 11:08:13 +01:00
687c958bd1
fix: add version field to /api/v1/server response (#62 )
clawbot
2026-03-10 11:05:10 +01:00
946f208ac2
feat: implement IRC numerics batch 2 — connection registration, channel ops, user queries (#59 )
clawbot
2026-03-10 00:53:46 +01:00
47fb089969
fix: IRC SPA cleanup — /motd, /query, Firefox / key, default MOTD (#58 )
clawbot
2026-03-09 23:00:34 +01:00
f8f0b6afbb
refactor: replace HTTP error codes with IRC numeric replies (#56 )
clawbot
2026-03-09 22:21:30 +01:00
38d222f6a7
Merge branch 'main' into fix/irc-numeric-replies
fix/irc-numeric-replies
Jeffrey Paul
2026-03-09 22:12:43 +01:00
8e3166969e
Redesign SPA to look like a proper IRC client (closes #50 ) (#53 )
clawbot
2026-03-09 22:12:34 +01:00
8d91ad852c
Replace HTTP status codes with IRC numeric replies in command handlers (closes #54 )
user
2026-03-08 01:16:04 -08:00
8473520eb3
feat(web): overhaul SPA to look like a proper IRC client
feature/irc-ui-overhaul
user
2026-03-07 06:14:21 -08:00
c0e344d6fc
Fix SPA: bundle preact instead of leaving as external require (closes #48 ) (#49 )
clawbot
2026-03-07 14:53:13 +01:00
2da7f11484
Rename app from chat to neoirc, binary to neoircd (closes #46 ) (#47 )
clawbot
2026-03-07 14:43:58 +01:00
6e7bf028c1
fix: change appname to neoirc, default DB to /var/lib/neoirc/state.db (#45 )
clawbot
2026-03-06 12:40:28 +01:00
2761ee156a
feat: split Dockerfile into dedicated lint stage for faster CI (#32 )
clawbot
2026-03-02 21:05:08 +01:00
3b42620749
feat: split Dockerfile into dedicated lint stage
fix/29-split-dockerfile
clawbot
2026-03-02 00:03:04 -08:00
cd909d59c4
Merge pull request 'feat: logout, users/me, user count, session timeout' (#24 ) from feature/mvp-remaining into main
Jeffrey Paul
2026-03-01 15:47:03 +01:00
f5cc098b7b
docs: update README for new endpoints, fix config name, remove dead field
clawbot
2026-03-01 06:41:10 -08:00
4d7b7618b2
fix: send QUIT notifications for background idle cleanup
user
2026-03-01 06:33:15 -08:00
910a5c2606
fix: OnStart ctx bug, rename session→user, full logout cleanup
user
2026-02-28 11:14:23 -08:00
bdc243224b
feat: add session idle timeout cleanup goroutine
clawbot
2026-02-27 05:06:56 -08:00
5981c750a4
feat: add SESSION_IDLE_TIMEOUT config
clawbot
2026-02-27 05:06:56 -08:00
6cfab21eaa
feat: add logout endpoint and users/me endpoint
clawbot
2026-02-27 05:06:56 -08:00
4a0ed57fc0
Merge pull request 'feat: password-based registration and login (closes #1 )' (#23 ) from feature/auth-passwords into main
Jeffrey Paul
2026-02-28 19:57:40 +01:00
52c85724a7
fix: remove unused //nolint:gosec directives on password fields
user
2026-02-28 10:33:59 -08:00
69c9550bb2
consolidate password_hash into 001 migration
clawbot
2026-02-28 07:59:01 -08:00
7047167dc8
Add tests for register and login endpoints
clawbot
2026-02-27 04:56:51 -08:00
3cd942ffa5
Add /api/v1/register and /api/v1/login routes
clawbot
2026-02-27 04:55:40 -08:00
b8794c2587
Add register and login HTTP handlers
clawbot
2026-02-27 04:55:31 -08:00
70aa15e758
Add RegisterUser and LoginUser DB functions with bcrypt
clawbot
2026-02-27 04:55:06 -08:00
5e26e53187
Add migration 002: add password_hash column to sessions
clawbot
2026-02-27 04:54:31 -08:00
02b906badb
Merge pull request 'feat: MVP two-user chat via embedded SPA (closes #9 )' (#22 ) from feat/mvp-two-user-chat into main
Jeffrey Paul
2026-02-27 13:51:20 +01:00
32419fb1f7
feat: MVP two-user chat via embedded SPA (#9 )
clawbot
2026-02-27 02:21:48 -08:00
2d08a8476f
Merge pull request 'dockerfile: use CGO_ENABLED=0 for binary builds (closes #13 )' (#21 ) from fix/cgo-disabled into main
feature/mvp-1.0
Jeffrey Paul
2026-02-27 08:47:10 +01:00
f0c4a5bb47
dockerfile: use CGO_ENABLED=0 for binary builds
clawbot
2026-02-26 22:28:23 -08:00
cbc93473fc
Merge pull request 'MVP 1.0: IRC-over-HTTP chat server' (#10 ) from feature/mvp-1.0 into main
Jeffrey Paul
2026-02-27 07:21:34 +01:00
a57a73e94e
fix: address all PR #10 review findings
clawbot
2026-02-26 21:21:49 -08:00
f821d66670
fix: correct golangci-lint v2 module path in Dockerfile
fix/dockerfile-golangci-lint-v2-module-path
clawbot
2026-02-26 20:46:50 -08:00
4b4a337a88
fix: revert .golangci.yml to main, fix all lint issues in code
user
2026-02-26 20:45:47 -08:00
69e1042e6e
fix: rebase onto main, fix SQLite concurrency, lint clean
clawbot
2026-02-26 20:25:46 -08:00
c7bcedd8d4
fix: pin golangci-lint install to commit SHA (fixes #13 )
fix/golangci-lint-sha-13
clawbot
2026-02-26 20:20:31 -08:00
6043e9b879
fix: suppress gosec false positives for trusted URL construction
clawbot
2026-02-20 02:06:31 -08:00
b7ec171ea6
build: Dockerfile non-root user, healthcheck, .dockerignore
clawbot
2026-02-11 00:50:13 -08:00
704f5ecbbf
fix: resolve all golangci-lint issues
clawbot
2026-02-10 18:52:17 -08:00
a7792168a1
fix: golangci-lint v2 config and lint-clean production code
clawbot
2026-02-10 18:50:24 -08:00
d6408b2853
fix: CLI client types mismatched server response format
clawbot
2026-02-10 18:23:19 -08:00
d71d09c021
chore: deduplicate broker tests, clean up test imports
clawbot
2026-02-10 18:22:38 -08:00
eff44e5d32
fix: CLI poll loop used UUID instead of queue cursor (last_id)
clawbot
2026-02-10 18:22:08 -08:00
fbeede563d
test: add comprehensive test suite
clawbot
2026-02-10 18:20:45 -08:00
84162e82f1
Comprehensive README: full protocol spec, API reference, architecture, security model
clawbot
2026-02-10 18:18:29 -08:00
6c1d652308
refactor: clean up handlers, add input validation, remove raw SQL from handlers
clawbot
2026-02-10 18:16:23 -08:00
5d31c17a9d
Revert: exclude chat-cli from final Docker image (server-only)
clawbot
2026-02-10 18:10:45 -08:00
097c24f498
Document hashcash proof-of-work plan for session rate limiting
clawbot
2026-02-10 18:10:32 -08:00
368ef4dfc9
Include chat-cli in final Docker image
clawbot
2026-02-10 18:10:05 -08:00
e342472712
Update Dockerfile for Go 1.24, no Node build step needed
clawbot
2026-02-10 18:09:24 -08:00
5a701e573a
MVP: IRC envelope format, long-polling, per-client queues, SPA rewrite
clawbot
2026-02-10 18:09:10 -08:00
9daf836cbe
Merge pull request 'fix: repo standards audit — fix all divergences (closes #17 )' (#18 ) from fix/repo-standards-audit into main
ci/make-check
Jeffrey Paul
2026-02-27 05:10:00 +01:00
84303c969a
fix: pin golangci-lint to v2.1.6 in Dockerfile
clawbot
2026-02-26 11:43:52 -08:00
d2bc467581
fix: resolve lint issues — rename api package, fix nolint directives
clawbot
2026-02-26 07:45:37 -08:00
88af2ea98f
fix: repair migration 003 schema conflict and rewrite tests (refs #17 )
clawbot
2026-02-26 06:28:07 -08:00
b78d526f02
style: fix all golangci-lint issues and format code (refs #17 )
clawbot
2026-02-26 06:27:56 -08:00
636546d74a
docs: add Author section to README (refs #17 )
clawbot
2026-02-26 06:09:08 -08:00
27de1227c4
chore: pin Dockerfile images by sha256, run make check in build (refs #17 )
clawbot
2026-02-26 06:09:04 -08:00
ef83d6624b
chore: fix Makefile — add fmt-check, docker, hooks targets; 30s test timeout (refs #17 )
clawbot
2026-02-26 06:08:47 -08:00
fc91dc37c0
chore: update .gitignore and .dockerignore to match standards (refs #17 )
clawbot
2026-02-26 06:08:31 -08:00
1e5811edda
chore: add missing required files (refs #17 )
clawbot
2026-02-26 06:08:24 -08:00
3f8ceefd52
fix: rename duplicate db methods to fix compilation (refs #17 )
clawbot
2026-02-26 06:08:07 -08:00
0b132cfbf4
fix: replace conflicting migration 003 with no-op
fix/main-lint-issues
user
2026-02-20 03:31:02 -08:00
a9586eb95f
fix: resolve funcorder and noinlineerr issues
user
2026-02-20 03:30:01 -08:00
2f6d1f284c
fix: resolve cyclop, funlen issues by extracting helper methods
user
2026-02-20 03:29:18 -08:00
037202280b
fix: resolve nestif issues by extracting helper methods
user
2026-02-20 03:26:46 -08:00
e0da78f17c
fix: resolve wsl_v5, lll, noinlineerr, and gosec lint issues
user
2026-02-20 03:26:06 -08:00
db3b0bfee1
fix: resolve ireturn lint issues
user
2026-02-20 03:22:32 -08:00
a3c26c415e
fix: resolve funcorder lint issues
user
2026-02-20 03:22:03 -08:00
2c89b23bea
fix: resolve forcetypeassert lint issues
user
2026-02-20 03:21:14 -08:00
0be5e80b85
fix: resolve rowserrcheck lint issues
user
2026-02-20 03:21:02 -08:00
f6ca154315
fix: resolve mnd lint issues with named constants
user
2026-02-20 03:20:26 -08:00