Multiplex all networks onto a single client connection using /network suffixes on channels and nicks. PASS is now just the password (no network prefix). Channels appear as #channel/network, foreign nicks as nick/network, own nicks stay bare. New namespace.py module with pure encode/decode functions. Router tracks clients globally (not per-network), namespaces messages before delivery. Client attaches to all networks on connect, sends synthetic JOIN/TOPIC/NAMES for every channel across all networks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Roadmap
v0.1.0 (current)
- IRC protocol parser/formatter
- TOML configuration
- SOCKS5 proxy connector with local DNS + multi-IP failover
- Multi-network support
- Client authentication (password)
- Persistent backlog (SQLite)
- Backlog replay on reconnect
- Automatic reconnection with exponential backoff
- Nick collision handling
- TLS support
- Stealth connect (random markov-generated identity)
- Probation window (K-line detection before revealing nick)
- Verified end-to-end on Libera.Chat via SOCKS5
- Multi-network namespace multiplexing (
/networksuffixes)
v0.2.0
- Client-side TLS (accept TLS from clients)
- SASL authentication to IRC servers
- CTCP VERSION/PING response
- Channel key support (JOIN #channel key)
- Configurable probation duration
- Configurable backlog timestamp format
v0.3.0
- Hot config reload (SIGHUP)
- Systemd service file
- Per-client backlog tracking (multi-user)
- Web status page
- DCC passthrough
v1.0.0
- Stable API
- Comprehensive test coverage
- Packaged for PyPI