github noderelay/UplinkIRC v0.24.0
v0.24.0 — Multi-line messages, hardening, bug fixes

latest releases: v2026.8.2, v2026.8.1, v2026.8.0...
4 months ago

v0.24.0

Features

  • Multi-line messages (draft/multiline): Press Shift+Enter to insert a line break in the compose box; press Enter to send. The input box grows automatically up to 4 lines. On servers that advertise draft/multiline, the message is delivered as an IRCv3 batch. On servers without it, each line is sent as a separate PRIVMSG — no content is lost.
  • Multi-line compose: The message input is now a QPlainTextEdit. Pasted multi-line content is preserved; the box auto-resizes from 1 to 4 lines. Up/Down history nav is line-aware — moves cursor within text, history activates only at the first/last line.

Security / Hardening

  • DCC send: peer IP validation on incoming connect
  • DCC receive: write-failure cancel; 30s passive stall timeout
  • DCC ACK coalescing: every 64 KB + completion
  • sendRaw enforces 512-byte RFC 1459 line cap
  • Ping watchdog: abort + reconnect after 90 s no response
  • NICK/USER: strip spaces and nulls before send
  • Unknown /commands: local error echo instead of raw send
  • m_ctcpTimestamps capped at 500 entries
  • Link preview HTML capped at 8 192 bytes
  • isPrivateAddress() extended: CG-NAT, TEST-NETs, IPv4-mapped, documentation ranges

Performance

  • IRC receive buffer: QByteArray — UTF-16 conversion deferred to per-line
  • Channel::removeNick: O(n) in-place index patch (was O(n²))
  • logMessage: cached QFile* handles per channel

Bug Fixes

  • Chat view now scrolls to bottom on channel switch
  • Mention detection false positives fixed — empty nick regex no longer matches every message

CI

  • ASan / UBSan sanitizer job added on ubuntu-24.04

Pre-built binaries are attached below once CI finishes. The AppImage supports in-place updates via appimageupdatetool.

Full Changelog: v0.23.2...v0.24.0

Full Changelog: v0.23.2...v0.24.0

Full Changelog: v0.23.2...v0.24.0

Don't miss a new UplinkIRC release

NewReleases is sending notifications on new releases.