Skip to content
Tags give the ability to mark specific points in history as being important
  • v1.0.0-beta.8
    gamja v1.0.0-beta.8
    
    Giorgi Taba Kobakhidze (1):
          components/app: ensure msg.tags is initialized
    
    Simon Ser (5):
          Upgrade dependencies
          components/composer: focus composer on keydown if a link is active
          Don't perform OAuth redirection after server meteadata error
          readme: document default for server.url in config.json
          lib/client: encode empty SASL response as "+"
    
  • v1.0.0-beta.7
    gamja v1.0.0-beta.7
    
    Juan Cruz Orioli (1):
          components: Use onInput instead of onChange
    
    Nolan Prescott (1):
          Sort lists with localeCompare
    
    Simon Ser (25):
          Update dependencies
          components/app: don't open buffer for CTCP messages
          Ignore RPL_CHANNEL_URL
          Limit composer length
          Fetch read marker before backlog for user targets
          Fix ignored MARKREAD messages
          Fix draft/read-marker cap not negotiated
          Drop support for soju.im/read
          components/buffer-list: show buffers with errors in red
          Disallow server.{autoconnect,auth} mismatch in config.json
          Remove unnecessary if in App.handleConfig
          Add config option to generate random nickname
          Display error in loading state
          components/app: switch off loading state atomically
          components/connect-form: autofocus username field
          Upgrade dependencies
          Add support for OAuth 2.0 authentication
          Load initial members state via WHO when channel is selected
          Remove unnecessary whoChannelBuffer() call
          Use ratified extended-monitor cap name
          lib/client: unify checks for chathistory end
          Close settings dialog when disconnecting
          Make first server check more robust when disconnecting
          Move msg.tags fallback to client
          Skip regular chat message handling for infinite scroll
    
    delthas (1):
          Fix stripping hex color formatting
    
    xse (1):
          Make use of destBuffers when fetching history.
    
  • v1.0.0-beta.6
    1bcd9d36 · ci: deploy to new server ·
    gamja v1.0.0-beta.6
    
    Arik (1):
          Use monospace on <input> too
    
    Simon Ser (5):
          components/buffer-header: fix duplicate settings button
          components/buffer: show disclaimer for +draft/channel-context messages
          Add support for draft/read-marker
          ci: fix deploy host
          ci: deploy to new server
    
    delthas (1):
          Support @+draft/channel-context
    
  • v1.0.0-beta.5
    gamja v1.0.0-beta.5
    
    Simon Ser (14):
          commands: fix TypeError in kickban
          Handle CHATHISTORY messages when reaching end of batch
          Update webpage title when switching buffer
          store: use lower-case for buffer keys
          components/scroll-manager: don't crash when Buffer is empty
          Add support for bot mode
          Fix ping config lost in ConnectForm
          Add a settings dialog
          components/buffer-header: print bouncer network error if any
          Upgrade dependencies
          Workaround the sad state of base64 web APIs
          Add a setting for seconds in timestamps
          Add button to enable protocol handler in settings
          Fix invalid relative import
    
    Umar Getagazov (1):
          components/app: switch to server buffer on close only if active
    
  • v1.0.0-beta.4
    73db1a88 · Upgrade dependencies ·
    gamja v1.0.0-beta.4
    
    This version fixes errors when using the Parcel build.
    
    Simon Ser (1):
          Upgrade dependencies
    
  • v1.0.0-beta.3
    gamja v1.0.0-beta.3
    
    Isaac Freund (1):
          Better handle long topics on small screen sizes
    
    Noelle Leigh (1):
          Display persistant command input on server buffer
    
    Simon Ser (40):
          components/help: remove "/" keybinding, document middle mouse click
          components/help: use bold for command name only
          commands: simplify /who usage string
          components/buffer: fix INVITE link
          lib/irc: add missing Isupport.chanModes
          commands: add comment param to /kick usage
          state: add bouncerNetworks helpers
          components/buffer-list: remove pointless temporary variable
          components/buffer-header: fix dead space above description
          Set min node version in package.json
          components/app: make switchBuffer state changes atomic
          Fix unread marker going back
          store: debounce buffer store saves
          components/app: introduce receiptFromMessage
          Introduce isMessageBeforeReceipt
          Refactor receipts
          Make delivery receipts follow read receipts
          Add support for soju.im/read
          components/app: include server ID in notification tags
          components/app: make showNotification return null on error
          components/app: close notifications when switching buffer
          components/app: close notifications when receiving READ message
          components/app: introduce getReceipt
          Don't fetch backlog before read receipt
          store: fix no-op read receipt update detection
          components/app: stop updating prevReadReceipt on READ message
          components/app: move lastErrorID declaration down
          keybindings: fix error on alt+h
          state: add isReceiptBefore
          store: add note about comparison in Buffer.put
          Update stored unread status on READ message
          Prevent hole in history when reconnecting
          Refactor backlog fetching into function
          lib/irc: drop outdated CapRegistry TODO
          store: save buffer state when user navigates away
          components/app: fix missing semicolons
          lib/irc: add missing num range to alphaNum regexp
          lib/irc: remove unnecessary non-breaking-space case
          lib/irc: fix bound check in isHighlight
          Convert remaining simple quotes to double quotes
    
    delthas (2):
          commands: add password param to /join
          components/connect-form: make the server password field password-typed
    
    xse (1):
          components/buffer: use browser locale for date-separator
    
    Дамјан Георгиевски (1):
          fix ping after reconnect
    
  • v1.0.0-beta.2
    gamja v1.0.0-beta.2
    
    Cara Salter (1):
          commands: Add LIST command
    
    Drew DeVault (1):
          Improve noscript UI appearance
    
    Rafael Castillo (1):
          Add away command
    
    Simon Ser (116):
          components/buffer: add RPL_UMODEIS pretty-printing
          components/buffer: pretty-print RPL_CHANNELMODEIS and RPL_CREATIONTIME
          lib/client: handle MONITOR without value in ISUPPORT
          Add more type checks for config.json
          Inherit from default connectParams in handleConfig
          Don't allow overriding server URL if set in config.json
          Add autoconnect to config.json
          Add nick to config.json
          Allow revealing server field with ?server
          Add support for SASL EXTERNAL
          readme: mention server.ping when server doesn't send PINGs
          Switch from anchorme to linkifyjs
          Handle click on irc:// channel URLs inside buffers
          Open dialog to create new network on IRC URL click
          Handle IRC URLs without channel name
          Use linkifyjs module
          Use ISUPPORT NETWORK if user hasn't specified custom name
          lib/irc: "unknown" is not a meaningful realname
          Fallback to bouncer network host if name is unset
          Close buffer tabs on middle click
          Unescape ISUPPORT values
          Allow bouncers to set NETWORK in ISUPPORT
          Don't add RPL_SASLSUCCESS to server buffer
          Don't add RPL_YOURHOST to server buffer
          Pretty-print RPL_LOGGEDIN and RPL_LOGGEDOUT
          Avoid using `export * as namespace`
          Add minimal Parcel integration
          gitignore: add Parcel files
          lib/irc: extend parseURL to support flags and skip auth + options
          lib/client: rename whoisDB to pendingWHOIS, garbage collect
          lib/client: generalize pendingWHOIS, store list in ENDOF* messages
          state: process RPL_NAMREPLY atomically
          Add App.routeMessage
          state: move in QUIT and NICK update logic
          Upgrade http-server
          Remove unnecessary irc.formatDate call
          Add hint in server operators buffer header
          Add RPL_WELCOME to server buffer
          lib/client: fix missing account in WHOX
          components/buffer-header: skip account name if it matches nick
          components/buffer-header: mark unauthenticated users as such
          lib/irc: add "fullname" to isMeaningfulRealname
          Request more messages for event-playback infinite scrolling
          components/buffer-header: add help text for user details
          Route user MODE messages to server buffer
          Route self-NICK messages to server buffer
          lib/client: use Client.isMyNick to handle self-NICK messages
          components/buffer: show MODE target if different from buffer name
          Add Parcel to dev dependencies
          Keep track of channel join status
          De-duplicate nicks in folded JOIN/PART/QUIT lines
          Disconnect previous server on connect re-submit
          s/var/let/
          Auto-join when adding new network on irc:// link click
          Ask confirmation before JOIN on irc:// link click
          Add "open" URL param
          Don't auto-join without prompting user
          Request WHO info w/ empty message list in switchBuffer
          Always insert non-chathistory messages at the end
          Add support for draft/extended-monitor
          Don't stop fetching backlog on error
          Only allow one WHO command at a time
          Store WHO list in RPL_ENDOFWHO
          lib/irc: fix handling for prefixes without host
          Add UI to enable protocol handler
          Reword ProtocolHandlerNagger message
          Properly handle port in irc:// URLs
          Auto-dismiss client error on reconnect
          readme: add link to IRC channel
          ci: add .build.yml
          ci: add deploy task
          ci: fix deploy branch check
          ci: fix deploy branch check again, exclude config.json
          Avoid inline script in index.html
          lib/client: don't error out if SASL isn't available on RPL_WELCOME
          state: add account to server
          lib/client: remove one roundtrip during SASL auth
          lib/client: don't disconnect on SASL error if registered
          lib/client: always request sasl cap when available
          lib/client: catch handleMessage errors
          lib/client: send BOUNCER BIND and CAP END immediately
          lib/client: make authenticate() return a promise
          Add post-connect UI to login via SASL
          Ignore RPL_AWAY
          components/connect-form: replace auto-join text field with checkbox
          readme: add nginx file server directive
          Add embedded Content-Security-Policy
          Dim away users in member list
          components/member-list: re-render on State.users update
          components/buffer-header: hide action buttons when disconnected
          Clear channel joined field when disconnected
          Linkify error messages
          Add support for draft/account-registration
          Add link to verify account next to VERIFICATION_REQUIRED message
          Show "Manage network" even if upstream is disconnected
          Mark register/verify dialogs as loading
          Mark auth dialog as loading
          Add custom developement server
          Add usage message to development server
          Disable debug logs in production
          components/buffer-header: fix missing "join" button for parted channel
          Update channel join status when kicked
          lib/client: introduce IRCError
          lib/client: add generic error handling to roundtrip()
          Add Client.join, show join errors in popup
          Read nickname from RPL_WELCOME
          Handle FAIL ACCOUNT_REQUIRED
          lib/client: use Error objects for error events
          Refactor ISUPPORT handling
          Implement exponential backoff for reconnections
          Move isBouncer props to server state
          state: fix server bouncerNetID
          Add reconnect button
          lib/irc: add CapRegistry
          ci: fix deploy skip
          state: fix prefix() call in MODE handler
    
  • v1.0.0-beta.1
    gamja v1.0.0-beta.1
    
    This is the first gamja pre-release.
    
    Drew DeVault (19):
          Implement /kick and KICK handling in buffers
          Add /j alias for /join
          Add /stats command
          Handle incoming MODE messages in appropriate buffer
          /mode: use active buffer if omitted
          Improve contrast of nick colors on dark theme
          Implement optional opportunistic pings
          Implement togglable sidebars for narrow viewports
          Restyle action buttons
          style: minor adjustment to buttons
          Add /op, /deop commands
          Add /whois command
          Add /ban, /kickban commands
          composer: turn off browser autocomplete
          Add /voice, /devoice
          Add /invite command
          Add /lusers command
          Display prefixes in member list
          Add "auth" parameter to tune connect form
    
    Hubert Hirtz (2):
          irc: Strip lone backslashes from tag values
          Fix double space introduced before last param
    
    Simon Ser (437):
          Initial commit
          Remove dead appendMessage function
          Colorful nicknames
          Fix addMessage always adding to last buffer
          Avoid sending empty messages
          Add README.md
          Replace getElementById with querySelector
          Rename #log to #buffer
          Handle messages sent to *
          Don't hardcode grid cell sizes
          Add support for /me
          Show join/leave messages
          Add connect form, add /join command
          Handle self NICK messages
          Handle RPL_WELCOME
          Add "remember me" checkbox in connect form
          Handle ERR_PASSWDMISMATCH
          Add /quit command
          Prevent text selection cursor over <summary>
          Forget credentials on /quit
          Add /part
          Add "server" query parameter
          Add option to auto-join channels
          Log outgoing messages
          Rename server buffer
          Smarter server URL auto-detection
          Add /msg command
          Add support for TOPIC messages
          Keep track of channel members, add /nick command
          Implement capability negociation
          Add support for SASL PLAIN
          Add back form input for PASS
          Move server URL to advanced options
          Add support for message tags
          Request message-tags cap
          Add support for server-time
          Enable multi-prefix
          Add dev server
          Switch to ES6 imports
          Fix TypeError when sending message
          Mark package as private
          Introduce Client class
          Fix empty buffers on switch
          Remove assets/
          Switch to react
          readme: add usage
          readme: extend copyright holder
          Reset buffers on disconnect
          Add <noscript> message
          Fix missing channel name in setBufferState call
          Add isChannel
          Implement /close
          Remove disconnect()
          Make setBufferState merge the new state with the prev one
          Mark buffers as unread on new message
          Store message date in addMessage
          Fix unread indicator not showing up
          Fix TypeError when auto-filling server URL
          Set default connect params in App constructor
          Break long words in buffer
          Save and restore buffer scroll position
          Hide CAP and AUTHENTICATE messages in server buffer
          Change buffer list style
          Fix buffer list overflow
          Fix buffer and buffer list padding
          Linkify messages
          Add buffer header
          Add missing buffer-header.js
          Make nick links clickable
          Fix unclickable nick in NICK message
          Implement /buffer
          Introduce buffer type
          Convert server/channel/nick links to irc:// scheme
          Send WHO query when opening nick buffer
          Parse RPL_MYINFO
          Request caps on CAP NEW
          Add away indicator
          Add member list
          Sort buffers and members
          Set key attr in buffer list items
          Enable echo-message
          Listen to input evbent in composer
          Rename sidebar and topbar
          Implement /me
          Add reason arg to /part
          Add key attr to log lines
          Avoid String.prototype.replaceAll
          Expand buffer column
          Add button to join new channel
          Hide composer input outline
          Detect highlights
          Open notification on new highlight
          Add basic autocompletion
          Print IRC error messages in red
          Fix RPL_NAMREPLY handling with multiple nicks
          Only nag about notifications in server buffer
          Reply to PING
          Allow paths in server URL query param
          readme: add more detailed usage instructions
          Remove outdated TODO
          readme: add link to sr.ht hub project
          Handle QUIT messages
          Implement /topic command
          Don't use `this` in functional components
          Optimize Buffer
          Implement chathistory support
          Fix TypeError in Composer.focus
          Use strict equality comparison in shouldComponentUpdate
          Add shouldComponentUpdate to member list
          Hide horizontal scrollbars on Firefox
          Show offline user status
          Linkify topic
          Extract commands to separate file
          Autocomplete commands
          Avoid sending multiple CHATHISTORY commands in parallel
          Mark FAIL as an error
          Fetch all unread messages on reconnect
          Add message URLs, unify URL generation
          Use msgid in message URL if available
          Add .editorconfig
          readme: add links to mailing list and issue tracker
          Add keybinding infrastructure
          Add keybinding to jump to next unread buffer
          readme: add screenshot
          Fix wrong variable name App.close
          Sort buffers when inserting, not when rendering
          Add Alt+Up/Down key bindings
          Handle RPL_NOTOPIC
          Fix inverted channel list sorting
          Strip ANSI escape sequences
          Clear error when submitting connect form
          Improve SASL error message
          Add /notice command
          lib/irc: make isHighlight operate on messages
          Display messages with a highlight differently
          Don't send CHATHISTORY command if server doesn't support it
          Strip ANSI sequences from notifications text
          Make Alt+a fallback to server buffer
          Parse all CTCP messages
          Add date separators to buffer
          Format NOTICE messages differently
          Better handle registration errors
          Ignore RPL_TOPICWHOTIME
          Add unread message separator
          Reconnect when loosing connection
          Add disconnect/reconnect commands
          Update preact
          Introduce state.networks
          Add network to buffer state
          Introduce buffer IDs
          Take a buffer ID in getBuffer
          Take a buffer ID in switchBuffer
          Take buffer ID in close
          Sort buffers by network
          Drop state.activeNetwork
          Remove network from map when closing
          Nuke DEFAULT_NETWORK
          Add support for RPL_ISUPPORT
          Extract network name from ISUPPORT
          Print current connection status
          Fix composer not hidden in server buffer
          Convert caps to lower case
          Use buffer IDs in endOfHistory
          Multiple clients per app
          Delay Client error event
          Keep track of client status in Client
          Move auto-reconnect logic into Client
          Move chat history operations into Client
          Spread it like butter
          Log WebSocket constructor error in the console
          Harmonise client connection params
          Use buffer ID in BufferItem.onBufferClick
          Fix undefined CHATHISTORY_PAGE_SIZE
          Fix inverted condition in fetchHistoryBefore
          Move join button to buffer header
          Improve scroll position save/restore mechanism
          Fix messages in current buffer not marked as read
          Make date separators more readable
          Fix server URL field not auto-populated
          Make all resource paths relative
          lib/client: reset state when websocket is closed
          lib/client: throw error in send if disconnected
          Fix TypeError when clicking on nick in buffer
          Log errors to console on command failure
          Fix buffer refs in commands
          Fix buffer not removed in close()
          lib/client: extract fetchBatch function from roundtripChatHistory
          lib/client: log close code
          Remove duplicate command impl
          Sort commands by name
          Display server messages in server buffer
          Extract error message popup
          Add dialog for join form
          Add help dialog with keybindings reference
          Add help section for commands
          Fix overflowed dialogs
          Remove unused DEFAULT_NETWORK constant
          readme: document query params
          readme: add IRC discussion channel
          Fix whitespace issues
          Only switch buffer on connect if there's no active buffer
          Trigger client error if server doesn't support SASL
          Cleanup compareBuffers
          Rename Connect/Join to ConnectForm/JoinForm
          lib/irc: accept tags without value
          lib/irc: escape/unescape everything in tags
          Break long tag attributes on multiple lines
          Move dialog submit buttons to the right
          Add some space between error message and close button
          Display error popup on FAIL
          Remove client from map on disconnect
          Improve dark theme style for text inputs
          Add CSS for email fields
          Fix TypeError in App.render()
          Parse ISUPPORT tokens in client
          Use ISUPPORT CHATHISTORY to discover max page size
          Update dependencies
          Add simple /mode command
          Add support for config file
          readme: update IRC channel
          Only switch to autojoin channel once
          Switch it isuser in irc:// URLs
          Switch to query params for msgid/timestamp in irc:// URLs
          Clear local storage when clicking "Disconnect"
          Fix TypeError in handleBufferScrollTop
          Add support for the soju.im/bouncer-networks extension
          Indent channels and nicks in buffer list
          Add UI to add a new bouncer network
          Add UI to edit/delete a network
          Disconnect on BOUNCER BIND error
          Fix close() for bouncer networks
          Add support for the soju.im/bouncer-networks-notify cap
          Display bouncer network status
          Add vendor prefix to bouncer-networks BATCH type
          Ignore BOUNCER NETWORK messages if we're already bound to a network
          Add support for IRCv3 setname
          Introduce store helper
          Set the viewport meta tag
          Read auto-join channels from browser URL hash
          Fix config.json relative path
          Always parse autojoin channels from URL params
          Downgrade IRC network logging to debug level
          Add /quote command
          Improve command error reporting
          Open error bubbles for IRC numeric errors
          Accomodate for empty BOUNCER host
          Style dialogs for dark theme
          Add nick URL param
          Add hint to run /help in unknown command error message
          lib/irc: add case-mapping primitives
          lib/client: add Client.cm
          Add case-mapping support for channel members
          Fix cross-network mixups when handling QUIT and NICK
          readme: add notes about nginx
          Switch to channel buffer on /join
          Fix lib/irc.js import path in commands.js
          Ignore TAGMSG messages
          Fix typo in Unread.union
          Implement case-mapping for buffers and message handler
          Fix TypeError in isHighlight
          Ensure msg.prefix is always populated
          Unregister PING timer when destroying client
          Fix WHOIS DB not using case-mapping fallback
          Use Client.isMyNick in NOTICE/PRIVMSG handling
          Misc theme improvements
          Pretty-print MOTD
          Add /motd
          Mute date separator line color in dark theme
          Simplify /query usage string
          Fold unimportant messages together
          Filter out PART → JOIN pairs
          Display last event time when folding messages
          Improve FoldGroup key and shouldComponentUpdate
          Group folded events by type
          Fix Alt+h messing up all buffers
          Ensure connect form has padding
          Hide composer when disconnected from server
          Init App.config
          Fallback to first server buffer in Alt+a keybind
          Fix commas in folded NICK messages
          readme: document server.ping in config section
          Remove unnecessary if in /ban
          Fix null membership on JOIN
          Make buffer title bold
          Add /who
          Remove unused arg from Client.whois
          Introduce Client.who
          Simplify Client.roundtrip callback arg
          Print server status in header prior to RPL_MYINFO
          Re-fold HTML in BufferList
          Pretty-print buffer name in buffer header
          Don't save default username/realname in local storage
          Unify connect params keys
          Populate server URL in fillConnectParams
          Hide server URL input if set in config or query
          Set enterkeyhint in composer
          Order buffers by priority in Alt+a
          Set scrollbar style
          Make Alt+ArrowUp and Alt+ArrowDown wrap around
          Use RegExp match indices in linkifyChannel
          Add support for CHATHISTORY TARGETS
          components/help: document that / allows to start writing a command
          Add support for /ban without argument
          Make getActiveClient throw an error if disconnected
          Add getActiveChannel
          Add /unban
          Make command descriptions more consistent
          Add support for incoming INVITE messages
          s/network/server/
          Fix undefined server variable in BufferHeader
          lib/irc: rename IRC prefix utilities
          Use bufName in addMessage, fix missing Client.isMyNick()
          Add support for STATUSMSG
          Allow config.server.ping to be a String
          Move some state utilities to state.js
          Introduce State.handleMessage
          Move createBuffer to State
          Handle JOIN/PART in State.handleMessage
          Handle TOPIC in State.handleMessage
          Add State.addMessage
          Remove App.isChannel
          Use ISUPPORT CHANTYPES in Client.isChannel
          Add support for draft/event-playback
          Add support for labeled-response
          Increase buffer/member list item height on mobile
          Make @media queries whitespace consistent
          Show connect form during connection
          Make <summary> easier to click on Firefox Mobile
          Disallow selecting text in <summary role="button">
          Add case-mapping support to irc.isHighlight
          Don't match punctuation suffix when linkifying channels
          Improve buffer header layout on mobile
          Add support for /mode without arguments
          Route channel mode and invite/except list to channel buffer
          Blur the composer when hiding it
          Fix /me failing in user query buffers
          lib/linkify: add comma to punctuation in channel regex
          lib/client: always populate prefix for incoming messages
          lib/client: gracefully handle null in isMyNick/isChannel
          Use server buffer if name is unspecified in State.getBuffer
          Add State.createServer
          Remove callback arg from App.createBuffer
          lib/client: set a default server prefix
          Switch to server buffer on server name click
          Don't open a new buffer on NOTICE
          Linkify MOTD
          lib/client: fix batch cleanup
          Make Client.fetchBatch more reliable
          Make Client.roundtripChatHistory return an array of messages
          Add Notification workaround for Chrome on Android
          Add notification tags
          Show again connect form when last server is closed
          s/var/let/
          Move auto-join field out of advanced options if pre-filled
          Reset config.server.auth when using custom server URL
          readme: make it clear server.url can be a path in config.json
          Ensure config has a server object
          Bump direct message unread priority
          Mark server buffer as unread after server query command
          Add /quiet and /unquiet
          Make "Remove network" button red
          Don't try to reconnect if the network is down
          readme: s/bare-bones/simple/
          Move message key generation to State.addMessage
          Add STATUSMSG indicator
          Move MODE state updates outof App
          Add irc.forEachChannelModeUpdate helper
          Add /unvoice
          Use cursor pointer for buttons
          Allow resetting server URL with query param
          lib/client: reject Client.roundtrip promise on disconnect
          Add web app manifest
          Allow resetting nick and auto-join with query params
          Improve composer form indentation
          Focus buffer scrollview instead of composer
          Use semantically more correct elements for error bubble
          Turn dialog close button into a <button>
          Don't focus composer on key press if modifier is also pressed
          Treat server broadcasts as highlights
          Preserve white space sequences in log lines
          Handle RPL_INVITING
          Always mark own messages as read
          composer: auto-complete word at carret position
          composer: add smart suffix after auto-completion
          composer: cycle through auto-completions
          Add /whowas command
          connect-form: focus nickname input
          Hide everything while loading config.json
          Unify dialog data in App.state
          Drop ConnectForm key
          connect-form: improve HTML indentation
          lib/client: fix caps with equal sign in value
          Add message arg to /query
          composer: focus on paste
          store: remove dead code
          Hide buffer focus outline
          Restore opened user query buffers
          Restore user query buffer unread status
          Fix typo
          Restore channel unread status from local storage
          Auto-complete channel names
          Add support for MONITOR
          Ignore server buffer in latestReceipt
          Don't drop unread marker in addMessage
          Rename buffer lastReadReceipt to prevReadReceipt
          Open new buffer on self-message
          Narrow down syncBufferUnread call to self-JOIN
          Update buffer store when marking all buffers as read
          Avoid sending empty MONITOR command on startup
          Don't show unread marker for outgoing messages
          lib/irc: only add colon to trailing arg when necessary
          Add support for chghost
          Get rid of a wild var keyword
          lib/client: remove WebSocket error event handler
          lib/client: error out on unsupported WebSocket data type
          lib/irc: fix formatMessage when last arg starts with colon
          store: fix undefined load call in Buffer.clear
          lib/irc: drop CRLF for outgoing messages
          Add State.create()
          Introduce per-server user map
          Update user on QUIT and NICK
          Update user username/hostname on JOIN
          Display username/hostname in member list
          Add support for extended-join
          Add tooltip with full date to timestamp component
          Add support for account-notify
          Display account name
          Add support for WHOX
          Query WHO when switching to a user buffer without info
          Fix duplicate declaration in State.handleMessage
          Hide meaningless real names
          Drop dangling var keyword
          Send WHO queries for saved user buffers after ISUPPORT
          Narrow down syncBufferUnread to new buffers
          Upgrade dependencies
          Auto-join previous channels on reconnect
          Clear autojoin when loading autoconnect
    
    Thorben Günther (2):
          style.css: Add dark mode
          style.css: Substitute repeated colours with variables
    
    Tom Lebreux (1):
          Linkify channel names
    
    bbworld1 (1):
          Add error reporting on connect and main page
    
    delthas (2):
          lib/linkify: stop using RegExp indices
          component/app: Automatically prepend wss to server URL if unspecified