Full release notes and APK downloads are also available on GitHub Releases.
v1.6.2 Latest 06 May 2026

v1.6.1 Latest 27 April 2026

Bouncer Support
  • Bouncer type selector - new Bouncer type dropdown on the network edit screen (soju, ZNC, Generic, None). soju and ZNC use different orderings of / and @ in the username; the selector composes the correct syntax automatically.
  • Separate Network name and Client ID fields - previously a single field. Client ID enables per-client buffers on ZNC (clientbuffer) and per-client history on soju.
  • /znc <command> - shorthand for /msg *status <command>.
  • /bouncerserv <command> (alias /bnc) - shorthand for /msg BouncerServ <command> on soju.
  • BouncerServ replies routed to the server buffer so they don't clutter a query window.
  • Spec-correct BOUNCER NETWORK parsing - handles the * deletion sentinel and surfaces unconfigured upstreams as a hint.
Bouncer Bug Fixes
  • Double playback on ZNC ≥1.7 - znc.in/server-time-iso is no longer requested when the server already advertises server-time.
  • Stray *playback query window - our own echoed PLAY commands are now filtered so they don't open a query buffer.
  • Duplicate playback on reconnect - PLAY and CHATHISTORY LATEST are skipped when a JOIN is part of buffer replay.
  • Oversized IRC lines (>32 KiB) are dropped with a one-shot notice instead of disconnecting. Limit raised from 8 KiB to 32 KiB.
  • Duplicate self-messages from echo-message plus chathistory overlap - msgid-based second-layer dedup.
  • SASL status messages shown twice - 903–908 numerics were emitted both as a Status/Error event by the SASL state machine and as raw ServerText by the generic numeric handler. Each event now appears exactly once.
  • Pseudo-user NOTICEs opened query buffers - ZNC replies to /msg *status (and the new /znc shorthand) with NOTICE, not PRIVMSG. The NOTICE handler didn't know about pseudo-user routing, so each reply spawned a *status query window. Routing now applies to both PRIVMSG and NOTICE, and matches any nick starting with * (so *playback, *clientbuffer, *log, and any user-loaded ZNC module route correctly).
Security
  • TOFU fingerprint pinning enforced - first connect with Allow invalid certs on learns and persists the SHA-256 fingerprint; subsequent connects verify it and refuse mismatches with a warning. Fingerprint parsing tolerates hand-pasted values (uppercase, missing colons, whitespace).
  • Shared SSLContext cache enables TLS session resumption on reconnect.
Connection
  • Rejoin on kick setting (off by default). Rejoins once after 1.5 s; a second kick within 60 s is suppressed to avoid loops against +i/+k/+b modes.
  • Autoconnect fan-out staggered by 500 ms to stay under typical bouncer rate limits.
Other Fixes
  • Orphaned SASL and server passwords in the secret store are cleaned up when Import backup removes their profiles.
  • Chat crash on channel merge - fixed an IllegalArgumentException from LazyColumn that could fire when two buffers with case-variant names (#Channel and #channel) merged. The chat display-item cache was keyed on (count, newest-id, oldest-id), which could stay stable across a sort that reordered interior messages, producing duplicate LazyColumn keys.
  • "Internal OpenSSL error or protocol error" shown as a raw library message after a Play Store update - the mapping now walks the exception cause chain and matches the BoringSSL state-machine-confusion signature that fires when the previous process was killed without a clean TLS close_notify. Rendered as "TLS session interrupted - connection will retry"; the existing exponential backoff handles the rest.
  • /ban nick, /kick nick, /kb nick were silently broken - the parser treated the first arg as the channel name and required /ban #channel nick to actually do anything. Fixed: nick comes first by default, optional channel either before or after, matching the existing /op / /voice convention.
Channel-op Improvements
  • Mask-aware bans - /ban, /kb, /mute now accept a mask-type keyword: nick (default, nick!*@*), user (*!ident@*), host (*!*@host), domain (*!*@*.example.com), account (IRCv3 extban $a:account). Examples: /ban spammer host, /kb spammer account flood. The non-nick types issue a WHOIS in the background and apply the ban once the reply arrives; if the user is offline or services-unauthenticated, falls back to a nick mask with a status message.
  • Raw masks pass through - /ban *!*@evil.example or /unban $a:troublemaker now work; previously the literal mask was wrapped in another nick!*@*.
  • /mute and /unmute (aliases /quiet, /unquiet) - set/clear +q on ircds that support it, fall back to +b otherwise. Same mask-type syntax as /ban.
Input
  • Chromebook and hardware keyboard Enter sends the message - pressing Enter on a physical keyboard now sends, matching desktop chat conventions. Shift+Enter inserts a newline for multi-line composition. Up/Down arrow still recall input history but only when the cursor is on the first/last line, so they don't fight cursor movement during multi-line edits.
Breaking
  • Backup format bumped to v3. Older builds can still open v3 backups; they just won't understand the new fields (bouncer type, client ID, TOFU pin, rejoin-on-kick).
  • Usernames containing @ no longer auto-append /network. If you previously hand-rolled myname@phone in the Username field to use ZNC per-client buffers, move the @phone portion into the new Client ID field.
v1.6.0 15 April 2026

Improvements
  • UI fixes, stability improvements.
Bug Fixes
  • DCC outgoing, welcome splash, and more.
v1.5.9 10 April 2026

New Features
  • SDCC - TLS-wrapped file transfers.
Improvements
  • UI fixes, SASL improvements.
v1.5.7 21 March 2026

New Features
  • ASCII Rendering for bots that provide ascii/ansii art, render this in groups to fit the chat screen with no line spaces.
  • irc:// links irc:// and ircs:// links now register with the app.
Improvements
  • Nick colours customise your nick colour.
  • /LIST added sorting by name/users to the channel list.
  • Notifications Tapping a highlighted message now scrolls to that message.
Bug Fixes
  • /join #channel [key] would not parse if there was a [key] - improve IntroTour
v1.5.6 14 March 2026

New Features
  • Inline Media Previews - Images load in-line with a "Load preview" button; YouTube links show an embedded player. Images are capped at 5 MB. Two new settings: Enable inline media and Wi-Fi only. Both are disabled by default.
  • SASL Certificate Labels - The certificate import UI now clearly labels what each file type is: select a .crt/.pem bundle, a separate .crt + .key pair, or a PKCS#12 .p12/.pfx file.
Bug Fixes
  • Unread Marker - Now only appears when you scroll up past the visible messages.
  • Scrolling - Improved.
  • ANSI Colour - Now parsed correctly.
  • Notification Drawer - Alert messages now surface reliably.
  • Input Cursor - Theming fixed.
v1.5.5 7 March 2026

UI
  • Nicklist Font Scales with Panel Width - Dragging the nicklist divider now also adjusts nick font size so all nicks stay on one line across the full drag range.
  • Better Colour Code Support - More IRC control codes handled; improved font-style picker for bold/italic/underline/strikethrough.
  • DCC Chat Notifications - Incoming DCC CHAT offers generate a notification with a deep link to the DCCCHAT:peer buffer and an "Open Transfers" action button.
  • Transfers Screen DCC Chat Cards - Pending offers show a badge count, highlighted colouring, and a one-tap "Accept & Open" button.
  • Readline Marker - A thin line marks where you left off reading.
IRCv3
  • Typing Indicators - New capability (disabled by default); shows when a user is composing a message.
  • away-notify fully implemented - AWAY messages drive live status lines in every channel. Away state seeded from WHOX flags on join, cleaned up on QUIT/NICK/disconnect.
  • extended-join account display - JOIN lines show [logged in as account] when the user is authenticated with services.
  • draft/relaymsg - Relay bot messages attributed to the relayed nick, including ACTION and reply-tag support.
  • CAP NEW / CAP DEL events now displayed in the server buffer.
  • More event handlers - ChannelRenamed, MessageReaction, ChannelModeChanged.
  • draft/channel-rename race condition fixed.
  • WHOX away flags correctly seeded from 354 replies.
Translations
  • All 13 languages complete: Arabic, Chinese, Dutch, French, German, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Turkish.
Commands
  • /setname - Change realname via SETNAME (requires setname CAP).
  • /query - /query <nick> opens a PM buffer; /query <nick> <message> also sends.
  • Command completion additions - query, ns, cs, as, hs, ms, bs in the /-completion bar.
  • Nick @mention completion - Type @ in a channel to get a popup; selecting inserts nick: at line start or @nick mid-sentence.
Security
  • TOFU Certificate Pinning - Replaces the all-or-nothing Allow invalid certificates toggle. First connect learns and persists the server's SHA-256 fingerprint; subsequent connects verify it. A fingerprint change aborts the connection with a clear warning.
  • SASL Secret Migration Reliability - Migration flags are always written regardless of errors, preventing indefinite retry on each launch.
Bug Fixes
  • Auto scroll no longer disabled when tapping a buffer that is still loading.
  • Font size slider no longer causes the settings screen to jump to the top.
  • Post-connect commands with leading/trailing whitespace are now trimmed before dispatch.
  • Passive DCC offers with port == 0 but no token no longer crash - a readable error is shown instead.
v1.5.4 22 February 2026

New Features
  • Drag-and-Drop Network Reordering - Reorder networks in the Networks screen and sidebar by holding and dragging.
  • Matrix Theme - Green-on-black aesthetic (in addition to Dark, Light, and System themes).
  • Backup & Restore - Export all network configurations and app settings to a JSON file; import to restore. Accessible from Settings.
  • Improved Channel Op Tools - Enhanced panel with more mode controls.
  • IRCop Tools - Displayed in the menu when the user has umode +o: force join/part, broadcast to all users.
  • Themed Adaptive Icon - Monochrome layer for Android 13+ themed icons.
UI
  • MOTD on connect resizes to fit the server buffer.
  • Improved message input box styling and spacing.
Connection
  • Fixed SSL handshake failures on certain MediaTek, MIUI, and OneUI devices.
  • Improved ZNC and soju bouncer compatibility.
App
  • Fixed compilation warnings and deprecations.
  • Battery improvements: Compose now uses collectAsStateWithLifecycle to stop observing flows when the app is in the background.
v1.5.3 and earlier

Full notes for older releases are available on GitHub Releases.