v26.7.1
What's Changed
- feat(irc): right-click user menu — searchable invite picker + Whois as a modal by @matt0x6F in #133
- security: keychain-backed credentials, opt-in plugin PATH discovery, raw-send CRLF guard by @matt0x6F in #134
- perf: virtualize message list, drop the 2s poll, ordered event bus, per-row cleanups by @matt0x6F in #135
- feat(irc): close spec gaps I1–I4 — message splitting, ERROR handler, channel-key rejoin, ISUPPORT tokens by @matt0x6F in #136
- fix(channels): Close/Leave actually hide a joined channel by @matt0x6F in #137
- fix(irc): tear down on server ERROR (client showed "Connected" over a dead socket) by @matt0x6F in #138
- fix(irc): complete SASL before registration (library-owned CAP + pluggable mechanisms) by @matt0x6F in #139
- fix(irc): force-close socket on system wake so a sleep-killed connection can't zombie by @matt0x6F in #140
- fix(irc): connection reliability — half-open socket watchdog + plugin IPC deadlock (event-bus freeze) by @matt0x6F in #141
- fix(irc): stop connect-then-disconnect churn — CAP REQ flood + no connecting-state by @matt0x6F in #142
- fix(ui): stop mangling #channel names with underscores; add backtick monospace by @matt0x6F in #143
- feat(brand): new mountain app icon and matching sidebar mark by @matt0x6F in #144
- fix(ui): reliable message-list scroll — adopt react-virtual anchorTo:'end', drop CSS smooth by @matt0x6F in #145
- fix(ui): baseline-align 'Chat' with 'Cascade' in sidebar header by @matt0x6F in #146
Full Changelog: v26.7.0...v26.7.1