This repository was archived by the owner on Apr 14, 2026. It is now read-only.
Repository navigation
0.7.0
soju v0.7.0
This is a smaller release, it contains small new features and bug fixes.
- The new draft/pre-away extension allows short-lived and background clients
(e.g. chathistorysync and Goguma's background worker) to not toggle the
auto-away status.
- The new draft/no-implicit-names extension allows clients with low bandwidth
to connect faster (e.g. Goguma with 3G).
- The contrib/migrate-db script is now a lot faster.
- SASL ANONYMOUS is now supported to log out from an upstream network.
- STATUSMSG messages are now properly routed.
Full commit history below.
Antonio Mika (1):
Update user.go to not broadcast a push notification when generated from us
Calvin Lee (4):
fix empty CHATHISTORY TARGETS
database: batch msg inserts
contrib/migrate-db: use explicit src/dest network
Fix saving `+draft/react` is msgstores
Eric Mertens (7):
Fix capability associated with account message-tag
Don't drop RPL_LISTSTART - passthrough to downstream
ERR_NOSUCHSERVER unqueues WHOIS
Pass MODE and TOPIC through for unjoined channels
Add support for STATUSMSG
Forward complete MODE message to upstream when changing modes
Only log unhandled messages in debug mode
Simon Ser (62):
downstream: set CLIENTTAGDENY=* when upstream is missing message-tags
upstream: add forwardMsgByID
upstream: forward ERR_NOSUCHNICK
upstream: don't print "unhandled message" for registration errors
downstream: return channel in cached WHO reply
gitignore: add doc/sojuctl.1
user: fix dup upstream connections due to race
user: unconditonally stop network in updateNetwork()
downstream: return FAIL on unknown BOUNCER command before registration
downstream: take irc.Message in handleCap
Improve Server.Handle readability
downstream: inline authenticate function
user: fix upstream connections closed after 1 minute
downstream: fix connection registration
Stop setting *user in downstreamConn.register
downstream: rename downstreamRegistration.password to pass
downstream: add support for ANONYMOUS SASL auth
downstream: error out if SASL PLAIN identity is specified
upstream: introduce upstreamConn.forwardMessage
downstream: pass context to SendMessage
contrib/systemd: add AmbientCapabilities=CAP_NET_BIND_SERVICE
doc/packaging: add section about binding to privileged ports
database/sqlite: fix missing argument in DeleteUser
Panic if isHighlight is called with empty nick
Use database.GetNick in network.isHighlight
service: reject params for commands that don't take any
Rename Config.Log{Driver,Path} to MsgStore
Add CHATHISTORY test
downstream: fix nick in auth error message
msgstore/znclog: fix panic on malformed input line
msgstore/znclog: fix error message
downstream: improve SASL error logging
Upgrade dependencies
server: add metric for goroutine panics
Introduce soju.im/pre-away
Replace soju.im/pre-away with draft/pre-away
service: add a way to reset a network certfp
Upgrade dependencies
doc: expand on message store specificities
doc: clarify that client suffixes are not required for chathistory
doc: remove mention of dropped multi-upstream mode
contrib/clients: drop mention of single-upstream mode
Use * instead of nick in some numeric replies
server: drop TODO about configurable vars
Use downstreamConn.upstreamForCommand when handling user MODE
Remove remnant comments about multi-upstream mode
Don't send bouncer-networks updates for removed networks
build: cleanup all man pages
build: improve readability of Go -ldflags
service: convert network certfp to lower-case
doc: add openssl command to fetch server fingerprint
go fmt
database: add NewNetwork
database: fix default value for Network.AutoAway
database: add NewUser
cmd/sojudb: use User.SetPassword
contrib/znc-import: leave password empty by default
database: drop unnecessary comment
Upgrade dependencies
upstream: use unspecified AWAY reason if possible
conn: drop ErrClosed workaround for WebSocket
Add support for draft/no-implicit-names
delthas (1):
Fix SEARCH queries with special characters on SQLite
sentriz (1):
database: use postgresQueryTimeout for PostgresDB StoreMessages