Changelog of @hackage/glirc 2.41

Revision history for glirc

2.41

  • glirc now requests the extended-monitor, invite-notify, and message-tags capabilities
  • Add /in to run commands and macros on windows other than the focused one
  • Add ChanServ-aware /op, /deop, /quiet, /voice, and /devoice
  • Add /dline, /resv, /xline, and remote /kline
  • Add server-side help and macro expansions to /help
  • Retain channel metadata for channels glirc isn't joined to. /clear removes stale metadata
  • Tidier status line
  • Show window list while typing /c commands
  • jumpToActivity (M-a) now prioritizes named windows
  • Improve routing and display of INVITE and MONITOR-related messages
  • Automatically split overlong /join commands
  • Improve connection reliability when sending very large numbers of messages
  • Build on GHC 9.10

2.40.1

  • Fix exception on /exec with a non-zero exit code
  • Externalize command documentation

2.40.0.1

  • Build on GHC 9.0

2.40

  • vty-6 support
  • deduplicated /url
  • locally processed /who
  • locally processed /list
  • colorized channel identifiers
  • better channel and user-mode highlighting. highlights are now per-server so configuration files will need to be updated
  • support for 24-bit color output
  • OS notification support
  • More notification levels for each window
  • Better away status handling
  • Config file level window hint configuration

2.39

  • Extra oper commands and reply parsing
  • Account tracking with account-tags
  • Added matterbridge hook
  • Support SASL SCRAM
  • Add locked editor mode (F7)
  • Add tls-verify to specify expected certificate hostname

2.38

  • Avoid ping timeout disconnects while other packets are still arriving
  • Add never-highlights configuration setting to stop common words from being treated as nicknames
  • Add a multi-line editor mode (default toggle with F6)
  • More tolerate nickname completion
  • Preserve server names in server replies (visible in detail view)
  • Window names are persistent rather than alphabetical. Manage them with /setname and /setwindow
  • Added hook for extension to query window lines
  • More complete rendering for rare server replies
  • Prettier columns in /names
  • Add small scroll with Meta-PgUp/PgDown
  • Built-in support for /umode for changing user modes (a common macro previously)
  • Support strikethrough formatting (can require terminfo edits on common terminals to see it)
  • Removed DCC support

2.37

  • Add /new-self-signed-certificate PATH [keysize] to make it easier to configure secure services logon
  • Add STARTTLS support: tls: configuration settings are now: yes, no, starttls
  • Add separate tls-verify: no setting for disabling hostname verification instead of old tls: yes-insecure
  • Configuration file supports $ macros and @load / @splice directives from config-value
  • Updates for hookup library improvements to concurrent connect algorithm

2.36

  • Changed executable name to glirc

  • Allow all windows (not just chat message windows) to be added as split-screen targets

  • Chose a random nickname when list of alternatives is exhausted

  • Add simple man page

  • Add /monitor

  • Support specifying bind-hostname to pick a local address to connect from in favor of protocol-family. To pick a protocol family you can now specify bind-hostname: "0.0.0.0" or bind-hostname: "::"

  • Add TLS key PEM password configuration

  • Make all configuration file passwords able to be loaded from executing a command

  • Make SASL mechanism specification specific and support an optional authorization identity authzid used in rare circumstances but supported by SASL.

    sasl: -- example 1
      mechanism: plain -- sasl defaults to plain if not specified
      username: "myuser"
      password: "mypassword"
    
    sasl: -- example 2
      mechanism: external
      authzid: "otheruser" -- optional
    
    sasl: -- example 3
      mechanism: ecdsa-nist256p-challenge
      username: "myuser"
      private-key: "path/to/my.key"
    

    Note that now using a client-side TLS certificate is an independent configuration from using EXTERNAL. To use both you need to configure both!

2.35

  • Added client certificate information to /cert

2.34

  • Add /dump command
  • Fix command tab-completion with leading spaces
  • Preserve last message timestamp across /reconnect
  • Add regular expression for QUIT message that trigger reconnects
  • Removes unused userinfo field from configuration
  • Wallops are more noticable now

2.33.1

  • Support for GHC 8.8.1
  • Add /trace command

2.33

  • Fixed cursor position with wide characters in input box
  • Added ability to force request capabilities.
  • Generalized FreRelay hook
  • Add show-accounts setting to make account status visible
  • Query channel modes on join

2.32

  • Fix SASL EXTERNAL
  • Better /url matching
  • Support for config-schema improvements

2.31

  • Added TLS fingerprint pinning with tls-cert-fingerprint and tls-pubkey-fingerprint
  • Addded /cert command
  • Improved C API void* passing to always pass around a single pointer.
  • Better rendering for /whois and /whowas
  • Better support for ircop commands, responses, and modes
  • Channel, user, and snomask modes are can be styled
  • Bugfix in textbox rendering for formatted multi-line inputs.
  • Improved /palette rendering
  • Switch window focus when forwarded
  • Add support for receiving files with DCC (thanks Ruben Astudillo)

2.30

2.29

  • Add support for timers to the extension API
  • Add glirc_set_focus API call

2.28

  • Add formatting reference to /palette
  • Make RTLD flags configurable when loading an extension
  • Update client's internal hostname on RPL_HOSTHIDDEN
  • Support IRCv3.2 server-time extension over ZNC-specific one
  • Lots of work on the Lua extension code and documentation
  • Added glirc_user_account and glirc_user_channel_modes extension API entrypoints.
  • Added support for account-notify and extended-join
  • Added configurable "arguments" to the C extensions

2.27

  • Requires GHC 8.4
  • Show channel topic in channel on join
  • Fix socket leak when failing to load TLS certificates
  • Add delay when indicating sent ping to reduce noise
  • Add support for italics in formatting

2.26

  • Updates for GHC 8.4.1
  • Added /toggle-show-ping and show-ping configuration setting to toggle visibility of the ping round-trip times.

2.25

  • /ignore can list ignores and supports full wildcard masks
  • Updated C extension API
  • Improved OTR extension to avoid interacting with ZNC replays
  • Added protocol-family configuration option. Set to inet or inet6 to force a particular IP protocol.

2.24

  • /query now takes a message parameter and tab-completes like /msg.

2.23

  • CONFIGURATION FILE CHANGE: Relative paths are now resolved from the directory of the configuration file. The "~" alias for the home directory works for resolving paths relative to $HOME. Absolute paths are unmodified.

  • Support network:#channel in /query

  • Add an optional OTR extension. See the otr-extension/ directory and the wiki for more information.

  • Extended the C API with glirc_inject_chat and chat_entrypoint

  • Smarter WYSIWYG highlighting in text edit box. Nicknames are highlighted and /mode command parameters get correct placeholders.

  • Added more information to /palette

  • Added "human readable" labels to /rtsstats

2.22

  • Added dynamic indentation of wrapped lines. Lines now wrap to where the message portion of the line started. This removes indent-wrapped-lines configuration setting
  • Added pervasive word-boundary oriented line wrapping (beyond what was previously restricted to chat messages)
  • Made nick prefix padding configurable to be on left or right. See nick-padding setting in glirc2 --config-format. In addition this setting is now reconfigurable at runtime via /reload
  • Added /oper command for network operator authentication.
  • Memory savings by packing message timestamp information, and using the "detailed" image for regular expression matching.
  • Added /rtsstats command for inspecting the GHC RTS statistics
  • Added many minor IRC query commands: admin, info, map, rules motd, version, lusers, kill, knock, list.

2.21.1

  • Support for latest config-schema
  • Adapt extension API to help support stub Rust extension

2.21

  • Make metadata toggle F4 a window-level setting instead of client level
  • Add configuration option to hide metadata by default hide-metadata
  • Make keymap configurable under key-bindings, add /keymap command
  • Add transient error message view, press ESC to clear
  • Implement two-column split window mode: /toggle-layout and F5
  • Implement word-boundary based line wrapping

2.20.6

  • Switch to new config-schema package for configuration file loading.
  • Add --config-format flag to executable to show configuration file format.

2.20.5

  • Add line indicating message since previous time window was focused. The palette for this is configurable as line-marker

2.20.4

  • Add /query alias for /channel
  • Add /names alias for /users
  • Update to build on GHC 8.2.1-rc1 with Cabal-2.0.0.0

2.20.3

  • Nicer /help system, commands are grouped
  • Added /splits+ and /splits- for incremental updates to splits
  • Jump-to-activity returns to original window after activity is visited
  • Extended activity view makes use of empty space above text input
  • Parse the timestamp and duration from /whois response

2.20.2.1

  • Support vty-5.15

2.20.2

  • Remove memory dependency
  • Add indent-wrapped-lines setting

2.20.1.1

  • Remove macro dependency on happy and alex being installed for version information

2.20.1

  • Support vty-5.11.1

2.20

  • Move from tls to HsOpenSSL support via the new hookup package

2.19

  • Smarter text box tracks "scroll" position independently from cursor
  • Added --full-version flag
  • Remove regex-tdfa-text dependency
  • Added bell-on-mention client setting
  • Added ExportCApi cabal flag to help with loading the client in GHCi

2.18

  • Add digraph support under M-k and /digraphs
  • Add ECDSA-NIST256P-CHALLENGE support
  • Load mask list on /masks
  • Add C-x to change to next network window
  • Allow /clear NETWORK * to clear all windows for the given network

2.17

  • Add reconnect-attempts setting
  • Add persistence for /grep and /grepi
  • Add filter argument to /windows
  • Better tab completion for /channel and /focus
  • Isolate and number URLs in view with /url
  • Map M-Left and M-Right to backward word and forward word

2.16

  • Add /splits to show multiple chat windows simultaneously

2.15

  • Add /mentions
  • Add macro argument declarations
  • Add indication when a command is still a prefix or not of a valid command
  • Support quoted strings arguments to /exec
  • Add F4 to toggle visibility of metadata lines
  • tls-insecure setting was incorrectly behaving like normal insecure
  • Add C-t to swap characters
  • Add ESC to return to messages window

2.14

  • Add /help
  • Add /palette
  • Add F3 to toggle activity detail bar

2.13

  • Add disconnect expansion, support expansions in connect-cmds
  • Add default expansion syntax ${var|default}
  • Add support for multiple nicknames to try on connect
  • Add ignores section to configuration
  • Add url-opener section to configuration and /url command

2.12

  • Remove tls-insecure configuration option in favor of tls: yes-insecure
  • Implement fancy command placeholder rendering and argument parsing
  • Improved reconnect logic
  • Improved connection error messages

2.11

  • Add M-S to jump to previously focused window
  • Add extra-highlights section
  • Tab complete server names in /connect
  • Add /windows command for listing active windows
  • Add glirc_clear_window C API procedure
  • Allow process_message callback to drop messages
  • Add optional network and channel arguments to /clear (intended to assist macros)
  • Automatically reconnect on ping timeout
  • Many commands will report message to client window on error

2.10

  • Fixes for multi-line editing
  • Multiple, sequential kills all fill the same yank buffer

2.9

  • Dynamically loadable extensions
  • Implement Lua scripting extension
  • Enable support for batch messages
  • Grow metadata lines to the right

2.8

  • Support vty-5.8
  • Implement initial support for macros
  • Support znc.in/self-message

2.7

  • Switch to regex-tdfa (easier to install on MacOS than text-icu)
  • Tab-complete starts with most recent nick
  • Add /reload
  • Add custom palette entry for self highlights
  • Add ability to set background colors and styles in palette

2.6

  • connect-cmds now use actual client commands instead of raw IRC messages. For example msg user my message or join #mychannel
  • Multiple lines can be held in the textbox at once. Pasting multiple lines insert those lines into the textbox rather than sending them immediately.
  • Added M-d and M-Enter key bindings
  • Added name field to server configuration
  • Extract irc-core library again
  • Configurable self color

2.5

  • Add facilities for hooks that can alter the IRC message stream.
  • Implement a hook that handles the ZNC buffextras plugin.
  • Implement configurable nick color highlight palette.
  • Resolve relative paths starting at the home directory.
  • Significantly configurable UI colors

2.4

  • Support XDG configuration directory, e.g. ~/.config/glirc/config
  • Add more window names. Shift selects second set of names.
  • Add /channel and /say
  • Improve /focus tab completion

2.3

  • Add commands /znc
  • Add initial support for ZNC's playback module and /znc-playback command
  • Don't consider message seen when in masklist, userlist, or channelinfo windows
  • Add terminal bell on command error

2.2

  • Add commands /ison, /userhost, /away, /notice, /ctcp, /links, /time, /stats
  • Added context-sensitive completion to /mode
  • Render CTCP messages
  • Memory performance improvements
  • Improved logic on nick changes
  • Support for fractional flood settings
  • Fixed VTY formatting bug
  • Add counts to the mask and user lists

2.1

  • Add red highlighting for own nick
  • Synchronize reply codes with ircd-seven
  • Add textual interpretation of reply codes
  • Add SASL support
  • Add /channelinfo command

2.0

  • First version of glirc rewrite