2025-09-27 - 2026-03-27
Overview
40 Pull requests merged by 1 user
Merged
#92 feat: implement Tier 2 channel modes (+b/+i/+s/+k/+l)
Merged
#93 fix: use in-memory SQLite for handler tests to fix CI timeout
Merged
#88 feat: implement Tier 1 channel modes (+o/+v/+m/+t), KICK, NOTICE
Merged
#78 feat: add per-IP rate limiting to login endpoint
Merged
#84 refactor: replace Bearer token auth with HttpOnly cookies
Merged
#82 feat: add username/hostname support with IRC hostmask format
Merged
#79 feat: per-channel hashcash proof-of-work for PRIVMSG anti-spam
Merged
#76 docs: update README schema section to match sessions/clients tables
Merged
#75 security: enforce channel membership check in handleTopic
Merged
#77 docs: document register/login and dual authentication model
Merged
#80 feat: add runtime statistics to healthcheck endpoint
Merged
#72 feat: implement Tier 1 IRC numerics
Merged
#63 feat: implement hashcash proof-of-work for session creation
Merged
#73 [deps] Migrate from chi v1 to chi/v5
Merged
#71 Complete IRC numerics module and move to pkg/irc/ (refs #52)
Merged
#67 Implement queue pruning and message rotation (closes #40)
Merged
#69 feat: store auth tokens as SHA-256 hashes instead of plaintext
Merged
#66 Replace string-matching error detection with typed SQLite errors (closes #39)
Merged
#68 Remove dead Auth() middleware method
Merged
#64 feat: add Content-Security-Policy middleware
Merged
#61 fix: replay channel state on SPA reconnect
Merged
#62 fix: add version field to /api/v1/server response
Merged
#59 feat: implement IRC numerics batch 2 — connection registration, channel ops, user queries
Merged
#58 fix: IRC SPA cleanup — /motd, /query, Firefox / key, default MOTD
Merged
#56 refactor: replace HTTP error codes with IRC numeric replies
Merged
#53 Redesign SPA to look like a proper IRC client (closes #50)
Merged
#49 Fix SPA: bundle preact instead of leaving as external require (closes #48)
Merged
#47 Rename app from chat to neoirc, binary to neoircd (closes #46)
Merged
#45 fix: change appname to neoirc, default DB to /var/lib/neoirc/state.db
Merged
#32 feat: split Dockerfile into dedicated lint stage for faster CI
Merged
#24 feat: logout, users/me, user count, session timeout
Merged
#23 feat: password-based registration and login (closes #1)
Merged
#22 feat: MVP two-user chat via embedded SPA (closes #9)
Merged
#21 dockerfile: use CGO_ENABLED=0 for binary builds (closes #13)
Merged
#10 MVP 1.0: IRC-over-HTTP chat server
Merged
#18 fix: repo standards audit — fix all divergences (closes #17)
Merged
#8 Add embedded web chat client (closes #7)
Merged
#4 Add complete database schema and ORM models
Merged
#6 Fix code review feedback (closes #5)
Merged
#3 Fix all lint issues, add AGENTS.md with workflow rules
2 Pull requests proposed by 1 user
Proposed
#94 feat: add traditional IRC wire protocol listener (closes #89)
Proposed
#95 feat: move schema_migrations into 000_bootstrap.sql
40 Issues closed from 2 users
Closed
#86 Tier 2: Ban system, invite-only, secret, channel key, user limit (+b/+i/+s/+k/+l)
Closed
#90 critical: main branch build broken
Closed
#85 Tier 1: Core IRC channel modes and commands (+o/+v/+m/+t, KICK, NOTICE)
Closed
#35 [security] Add rate limiting to session creation and login endpoints
Closed
#83 auth system?
Closed
#81 add username/hostname support
Closed
#12 Per-channel hashcash requirement for PRIVMSG (anti-spam)
Closed
#37 [docs] Update README schema section to match sessions/clients tables
Closed
#33 [security] handleTopic: enforce channel membership check
Closed
#36 [docs] Update README to document register/login and account system
Closed
#74 [feature] Expand healthcheck output with runtime statistics
Closed
#52 please identify a list of all IRC numeric c2s and s2c codes that exist in common/standard irc usage, and identify which we have implemented and which we have not
Closed
#70 Implement Tier 1 IRC numerics: AWAY system, WHOISIDLE, TOPICWHOTIME, missing error numerics
Closed
#11 Implement hashcash proof-of-work for session creation
Closed
#42 [deps] Evaluate migration from chi v1 to chi/v5
Closed
#40 [feature] Implement queue pruning and message rotation
Closed
#34 [security] Store auth tokens as SHA-256 hashes instead of plaintext
Closed
#39 [cleanup] Replace string-matching error detection with typed errors
Closed
#38 [cleanup] Remove dead Auth() middleware method
Closed
#41 [security] Add CSP headers for embedded web SPA
Closed
#60 [bug] SPA reconnect does not restore channel tabs
Closed
#43 [bug] Add version field to /api/v1/server response
Closed
#57 irc client style needs cleanup in SPA
Closed
#54 http response codes should not be used in response to irc commands
Closed
#50 irc client SPA needs to look a lot more like an irc client
Closed
#48 spa does not work
Closed
#46 rename app: chat -> neoirc
Closed
#44 default db location is stupid
Closed
#27 Split Dockerfile: pre-built golangci-lint stage for faster CI
Closed
#26 µPaaS deployment setup
Closed
#29 Split Dockerfile: pre-built golangci-lint stage for faster CI
Closed
#28 Split Dockerfile: pre-built golangci-lint stage for faster CI
Closed
#30 Split Dockerfile: pre-built golangci-lint stage for faster CI
Closed
#1 1.0.0 — MVP: Two users chatting on one server
Closed
#9 MVP: Two users chatting via embedded SPA
Closed
#13 CRITICAL: main branch build failure
Closed
#16 Add branch protection to main branch
Closed
#17 Repo standards audit: divergences from EXISTING_REPO_CHECKLIST
Closed
#7 Add embedded web chat client (SPA)
Closed
#5 Fix code review feedback from PR #4
45 Issues created by 2 users
Opened
#1 1.0.0 — MVP: Two users chatting on one server
Opened
#2 1.1.0 — Federation: Two users chatting across linked servers
Opened
#5 Fix code review feedback from PR #4
Opened
#7 Add embedded web chat client (SPA)
Opened
#9 MVP: Two users chatting via embedded SPA
Opened
#11 Implement hashcash proof-of-work for session creation
Opened
#12 Per-channel hashcash requirement for PRIVMSG (anti-spam)
Opened
#13 CRITICAL: main branch build failure
Opened
#16 Add branch protection to main branch
Opened
#17 Repo standards audit: divergences from EXISTING_REPO_CHECKLIST
Opened
#25 final 1.0rc1 review/audit/test/qa
Opened
#26 µPaaS deployment setup
Opened
#27 Split Dockerfile: pre-built golangci-lint stage for faster CI
Opened
#28 Split Dockerfile: pre-built golangci-lint stage for faster CI
Opened
#29 Split Dockerfile: pre-built golangci-lint stage for faster CI
Opened
#30 Split Dockerfile: pre-built golangci-lint stage for faster CI
Opened
#33 [security] handleTopic: enforce channel membership check
Opened
#34 [security] Store auth tokens as SHA-256 hashes instead of plaintext
Opened
#35 [security] Add rate limiting to session creation and login endpoints
Opened
#36 [docs] Update README to document register/login and account system
Opened
#37 [docs] Update README schema section to match sessions/clients tables
Opened
#38 [cleanup] Remove dead Auth() middleware method
Opened
#39 [cleanup] Replace string-matching error detection with typed errors
Opened
#41 [security] Add CSP headers for embedded web SPA
Opened
#40 [feature] Implement queue pruning and message rotation
Opened
#42 [deps] Evaluate migration from chi v1 to chi/v5
Opened
#43 [bug] Add version field to /api/v1/server response
Opened
#44 default db location is stupid
Opened
#46 rename app: chat -> neoirc
Opened
#48 spa does not work
Opened
#50 irc client SPA needs to look a lot more like an irc client
Opened
#52 please identify a list of all IRC numeric c2s and s2c codes that exist in common/standard irc usage, and identify which we have implemented and which we have not
Opened
#54 http response codes should not be used in response to irc commands
Opened
#57 irc client style needs cleanup in SPA
Opened
#60 [bug] SPA reconnect does not restore channel tabs
Opened
#70 Implement Tier 1 IRC numerics: AWAY system, WHOISIDLE, TOPICWHOTIME, missing error numerics
Opened
#74 [feature] Expand healthcheck output with runtime statistics
Opened
#81 add username/hostname support
Opened
#83 auth system?
Opened
#85 Tier 1: Core IRC channel modes and commands (+o/+v/+m/+t, KICK, NOTICE)
Opened
#86 Tier 2: Ban system, invite-only, secret, channel key, user limit (+b/+i/+s/+k/+l)
Opened
#87 Tier 3: Utility IRC commands (USERHOST, VERSION, ADMIN, INFO, TIME, KILL, WALLOPS)
Opened
#89 for 1.0: need a backward compat 6667 listener that speaks real irc
Opened
#90 critical: main branch build broken
Opened
#91 Move schema_migrations table creation into 000.sql with INTEGER version column