Tags: Libera-Chat/gamja
Tags
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 "+"
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.
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
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
gamja v1.0.0-beta.4
This version fixes errors when using the Parcel build.
Simon Ser (1):
Upgrade dependencies
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
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
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