Skip to content
soju v0.2.0

This release brings a set of bug fixes and new features. New features include:

- Support for a new soju.im/bouncer-networks extension, allowing clients
  to automatically integrate with soju's multi-network functionality.
  gamja and Weechat (via a script) take advantage of it.
- Support for CHATHISTORY BETWEEN and TARGETS, allowing better chat
  history integration in clients.
- Improved handling of MOTD, LUSERS, STATS and unknown IRC commands

Alexey Yerin (1):
      service: show SHA-512 fingerprint

Drew DeVault (1):
      db: refactor into interface

Gregory Anders (3):
      Forward MOTD messages downstream
      Forward user mode changes in single-upstream mode
      Slightly relax new log file permissions

Hubert Hirtz (6):
      Implement CHATHISTORY BETWEEN
      Fix CAP LIST listing disabled capabilities
      Don't forward label tags
      Don't build soju when calling "make install"
      Hand-made word splitter for BouncerServ
      Add a C compiler to the list of dependencies

Jake Nelson (1):
      Sort `channel status` channels by name

Philip K (1):
      Directly return self-messages to user in multi-upstream mode

Rafael Castillo (1):
      Check for TLS config in wss listeners

Simon Ser (57):
      Add more context to chathistory errors
      Check message stores implement expected interfaces
      contrib/clients: add gamja and senpai
      Silence net.ErrClosed errors
      Relay self-WHO/WHOIS in single-upstream mode
      readme: move quickstart to dedicated doc page
      readme: add link to IRC channel
      doc/soju.1: document -connect-command
      doc/soju.1: document user delete command
      readme: link to rendered man page
      Pass-through the BOT ISUPPORT token
      Implement the soju.im/bouncer-networks extension
      Add pass to bouncer network attributes
      Send network settings in LISTNETWORKS
      Introduce the soju.im/bouncer-networks-notify capability
      Don't send connection status NOTICEs with bouncer-networks
      Vendor BATCH bouncer-networks type
      contrib/clients: add note about bouncer-networks
      Add channel status service command
      Add support for IRCv3 setname
      doc/getting-started: s/Freenode/Libera Chat/
      Allow networks to be disabled
      Broadcast BOUNCER notifications to all downstream connections
      Fix typo in BOUNCER notifications: s/status/state/
      Reject JOIN with invalid channel names
      Send placeholder when no network/channel is returned by BouncerServ
      Forward unknown commands to upstream in single-upstream mode
      doc/ext/bouncer-networks: fix typo
      Implement CHATHISTORY TARGETS
      Prune detached channels from CHATHISTORY TARGETS
      Add downstreamConn.SendBatch helper
      Make user MODE commands fail in multi-upstream mode
      Don't suggest users to /motd in multi-upstream mode
      doc/soju.1: explain http-origin defaults
      contrib/clients: add reference to Weechat script
      Add support for account-tag
      Add support for utf8-only
      Forward LUSERS and STATS messages after initial registration
      Unify downstream PRIVMSG and NOTICE handling
      Allow admins to broadcast message to all bouncer users
      doc/soju.1: document bouncer-wide broadcasts
      Disallow '$' in nicks
      readme: list dependencies
      Add per-user realname setting
      Only update realname if specified in "user udpate"
      Merge "change-password" into "user update"
      doc/soju.1: improve "user create" docs
      Introduce user.updateUser
      ci: add gofmt check
      contrib/clients: sort alphabetically and wrap lines
      Pass-through CLIENTTAGDENY in ISUPPORT
      go fmt: add go:build tags
      Don't send network notification when removed
      Split unmarshalEntity into two functions
      Don't require upstream to be connected for CHATHISTORY
      Send empty history for service
      Upgrade dependencies

delthas (2):
      service: Introduce network quote
      contrib/clients: Mention Hexchat