-
v1.0.0-beta.8fd63c169 · ·
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.7c547a322 · ·
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.61bcd9d36 · ·
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.554453c5f · ·
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.473db1a88 · ·
gamja v1.0.0-beta.4 This version fixes errors when using the Parcel build. Simon Ser (1): Upgrade dependencies
-
v1.0.0-beta.33dc98ec7 · ·
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.2b11f58b9 · ·
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.10b4302e0 · ·
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