soju v0.5.0
Highlights for this release:
- Add support for soju.im/webpush for push notification support on
mobile platforms.
- Add support for soju.im/search to query message stores.
- Add support for draft/read-marker to synchronize read markers between
clients of the same user.
- Add support for chghost, echo-message and @+draft/channel-context
- Allow users to delete their own account.
- Multi-upstream mode now requires a "/*" suffix to be added to the
username to be enabled. Note, multi-upstream mode will be dropped in
a future version.
Full commit history below.
Brett Cornwall (1):
doc/getting-started: Fix simple misspelling.
Frank Steinborn (1):
contrib/clients: Add information about irssi
Simon Ser (119):
downstream: drop delivery receipts when client supports chathistory
upstream: use network case-mapping in updateMonitor
downstream: set case-mapping for monitored
Mark BouncerServ as online in MONITOR, don't forward to upstream
irc: introduce capRegistry
Use capRegistry for downstreamConn
Use capRegistry for upstreamConn
downstream: atomically ack/nak capabilities
service: limit number of -connect-command flags
Warn about non-FQDN hostnames
doc/soju.1: recommend using a FQDN for the hostname
downstream: improve ERR_ERRONEUSNICKNAME message a bit
Enable bot mode for BouncerServ
downstream: ignore nickname during connection registration
downstream: move multi-upstream name handling to loadNetwork
downstream: reject negative or zero network IDs in parseBouncerNetID
downstream: process BOUNCER BIND in downstreamConn.welcome
downstream: improve grouping of downstreamConn fields
downstream: move negotiatingCaps to downstreamRegistration
downstream: explain when downstreamConn.sasl is nil
Add support for RPL_VISIBLEHOST
doc/soju.1: fix syntax error
Add support for chghost
downstream: rejigger hostname logic in newDOwnstreamConn
downstream: always populate downstreamConn.username
Ensure all incoming messages have a prefix set
downstream: copy message when degrading extended-join
downstream: strip back "*" prefix
Add the soju.im/no-implicit-names extension
Remove unnecessary zero initialization
upstream: don't populate time tag for numerics
downstream: clarify "user not active" error message
downstream: send RPL_ENDOFWHO on unmarshalEntity error
doc: split off multi-upstream documentation
contrib/clients: senpai now supports soju.im/bouncer-networks
doc/getting-started: add paragraph about client names
doc/getting-started: mention TLS and on-disk logs
Allow nil network in Get{Nick,Username,Realname}
downstream: set realname for network-less connections
Use SETNAME when updating user-wide realname
downstream: update user realname on SETNAME
Refuse to change nick on bouncer connection
Simplify and improve WHOIS forwarding
server: print panic stack trace as string
upstream: use labeled-response for queued commands
Queue WHOIS commands
Remove unnecessary lastDownstreamID initialization
upstream: pass context to upstreamConn.requestCaps
downstream: unify PRIVMSG/NOTICE and TAGMSG codepaths
downstream: use upstream user/host for echo message
doc/getting-started: ask to install soju
upstream: use context to set connectToUpstream timeout
Split upstream connection handling to separate function
Add timeout for upstream connection registration
Add TODO for upstreamConn.register race
Drop user.forEachDownstream
Add user.notifyBouncerNetworkState
downstream: improve error message on unrecognized message
readme: restrict CI badge to master branch
doc/ext/bouncer-networks: specify how attributes are cleared in notifications
upstream: fix missing WHOIS in abortPendingCommands
doc/ext/bouncer-networks: remove BOUNCER BIND auth restriction
downstream: fix setting tls=0 in bouncer-networks
db_sqlite: drop mutex
upstream: fix panic in isChannel
Introduce a database package
msgstore: add loadMessageOptions
msgstore: rename searchMessageOptions, export fields
Introduce an xirc package
Add msgstore package
Move identd to separate package
Rename "log" config directive to "message-store"
config: add `message-store memory`
xirc: move command constants over
Rename join to generateJoin
xirc: move ChannelStatus over
xirfc: move over message generation functions
xirc: encode tokens in GenerateIsupport
xirc: move over CapRegistry
xirc: move over WHOX helpers
xirc: move over Membership
xirc: add GenerateSASL
Move batch struct to upstream.go
Remove bridge.go
Add soju.im/account-required
Drop casemapMap.OriginalKey
Drop size arg from newCasemapMap
Make casemapMap more type-safe
Don't provide name in channel casemapMap Set and ForEach
database: add User.{Check,Set}Password
Upgrade dependencies
Add webpush extension
downstream: fix panic in findWebPushSubscription for unbound conns
database: add missing user column to WebPushSubscription table
database/sqlite: add migration for WebPushSubscription.user
upstream: rename variables to clear up target confusion
upstream: improve server message detection
readme: copy over updated description from website
upstream: add support for @+draft/channel-context
Add support for draft/read-marker
Fix draft/read-marker entry in permanentDownstreamCaps
contrib/znc-import: move to subdir
upstream: unset SASL state on RPL_TRYAGAIN
upstream: handle ERR_UNKNOWNERROR and ERR_NEEDMOREPARAMS for queued commands
upstream: fix server message detection for wildcard targets
upstream: compare service nick with case-mapping
upstream: drop upstreamConn.nickCM
downstream: fix MARKREAD/READ command name in broadcast
Send MARKREAD push notifications
Add per-user default nickname
downstream: simplify NICK handling when disconnected
downstream: relay SETNAME with upstreamConn.SendMessageLabeled
upstream: ignore RPL_ENDOFWHO without pending command
Aggregate AWAY status from all connected clients
dowstream: remove noop WEBPUSH REGISTER
downstream: fix downstream check for draft/read-marker
upstream: pre-registration NOTICEs come from servers
upstream: regain desired nick when MONITOR is missing
downstream: reply to INFO
delthas (12):
downstream: Enable handling READ when upstream is disconnected
Fix build on systems without syscall.Rlimit
Send any welcome error messages to the downstream
Require an explicit `*` network suffix for multi-upstream
Enable resetting a BOUNCER NETWORK port
bouncer-networks: Add a read-only error attribute
upstream: handle CAP ACK -name
Add support for the upstream echo-message capability
Enable message-tags only when all upstreams support it
Add support for the SEARCH extension
Keep batch tag for downstreams with batch cap
Fix network.forEachDownstream exiting on first non-match
gildarts (4):
Add detach option to channel update
contrib/migrate-db: new script
Add ability for a user to delete themselves
database: upgrade bcrypt cost as needed
jesopo (1):
contrib/clients: correct comment about catgirl