/quit now disconnects the window's server without closing anything: every
buffer of that server and wIRC main get a "Disconnected" line, the server card
shows Disconnected with its Connect button, history is flushed to disk, and
there's no auto-reconnect. Connect rejoins the channels we were in (including
ones joined with /join, now tracked) into the still-open windows. Sending while
disconnected shows a "Not connected" line in that window. Exit wIRC still
disconnects everything and closes the app.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Scrollback (channel windows and wIRC main): mouse drag selection, double-click word,
triple-click line, shift-click extend, Ctrl+C / Ctrl+Insert, Ctrl+A, Esc, and a
right-click menu (Copy / Copy line / Select all). Copies one line per message.
Clipboard writes go off the UI thread with a timeout, like the paste handler.
Auto-scroll pauses while selecting and catches up once the selection is cleared.
- /whois: header, every reply line, related numerics (401/402/716/263...) and server or
services notices arriving right after it all go to wIRC main under a bold
"===== WHOIS <nick> (<server>) =====" header, counted by its unread indicator.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wIRC main scrollback
- The main window now has a "Server messages" scrollback using the same
rendering and stick-to-bottom code as channel windows (extracted from
ChannelScreen into a shared MessageScrollback composable).
- MOTD, numerics, errors, connection status, user modes, INVITE, ERROR,
non-ACTION CTCP requests and notices/messages from services
(NickServ, ChanServ, *Serv, Global, ...) and the server go there. Its
history persists like any other buffer (history/wirc-main__main.json).
- Unread indicator: lines arriving while the main window is unfocused
show as "N new" next to the label and in the window title/taskbar.
Private messages and /whois
- A PM or notice from a real user opens its query window, and reopens it
if it was closed. Services and the server no longer open windows.
- /whois <nick> sends WHOIS and shows the formatted reply in the window
it was typed in, or in wIRC main if that window has since closed.
- /me now sends a proper CTCP ACTION (the \x01 wrapper was missing).
Window position and size
- Main, channel and PM windows remember position and size in
window_prefs.json under the existing "<serverId>__<name>" key (main
uses "wirc-main__main"). The new windowX/windowY/windowWidth/
windowHeight fields are optional, so older files still load.
- A saved position is only used if the window's title strip is on a
connected monitor; otherwise, and for windows with no saved position,
windows cascade from the primary screen's top-left with a 32dp offset.
- window_prefs.json is now written via a temp file + atomic move.
Cleanup
- Remove the TEMP DEBUG aliasDebug tracing, ServerRepository.upsert
printlns and connmgr-debug printlns.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Nicklist, settings, minimize and close buttons in the channel window
title bar now rest at alpha 0 and fade to full opacity on hover
(graphicsLayer alpha, so they stay laid out and clickable). Resting
alpha, hover alpha and fade duration are constants at the top of
ChannelScreen.kt. Channel name and window dragging are unchanged.
- Remove the unused temporary ircUiDebug helper now that the scrollback
fix is confirmed.
- Bump version to 0.1.6.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>