Repository navigation
v0.99.62
Changes since v0.99.61
- Show the nickname truncation
+only when the nickname exceeds the configured character limit. Nicknames exactly at the limit no longer get a marker from pixel overflow caused by wide letters, brackets or membership prefixes. - Fix doubled messages when opening a channel after connecting: match overlapping history deliveries even when message IDs are missing, while preserving intentional repeated messages and messages with distinct IDs.
- Deduplicate live deliveries by message ID even if replay timestamps differ. Add IdleRPG regression coverage for overlapping channel history.
- Preserve the unread divider and count banner when initial channel history finishes loading after login, preventing the banner from flashing and disappearing on the first channel open.
- Keep the new-message count banner visible for the same eight seconds as the New messages divider, including while scrolled to the latest messages. Jump and dismiss actions remain available.
- Document soju-rs interoperability and IRCv3 compatibility checks in the compatibility report.
- Add the Monokai Pro theme with charcoal backgrounds, green accents, cyan links, and readable nickname colors.
- Show your current nickname beside the composer on desktop and tablets, using the theme's nickname colors and respecting the Nick colors setting. It follows the active network and nickname changes, and is hidden below 768px to preserve typing space on phones.
- Match the composer nickname and input font sizes to the chat font setting, with a 15px minimum on mobile.
- Show the active channel or private conversation name as the composer placeholder.
- Mark truncated nicknames in the columns layout with a theme-accent-colored
+in the gap before the divider, like WeeChat, instead of an ellipsis. - Enforce nickname character limits even for narrow letters in proportional fonts, while preserving full nicknames for clicks and accessibility.
- Match Glowing Bear's nickname hover tooltip: nickname followed by
user@hostwhen available, limited to 80 characters including an ellipsis for longer tooltips. - Remove the focus outline around network names when browser focus is restored, while retaining a background cue for keyboard navigation.
- Show a Glowing Bear-style reconnection banner with an animated refresh icon. The composer hides while disconnected or reconnecting, then returns with its unsent draft after automatic reconnection. Reduced-motion preferences are respected.
- Group reconnecting notices by their shared multiplex connection. Put application errors in one top banner stack, merge connection errors into the matching reconnecting notice, and keep unrelated errors independently dismissible.
- Fix
soju.im/unreadsnapshot replacement and partial read-marker handling without losing newer live messages or resurrecting messages already read elsewhere. - Keep private notices and non-
ACTIONCTCP messages from becoming mentions in existing private conversations. - Handle multiplex attach rejections without a network ID by falling back to ordinary per-network connections. Share keepalives and lag measurements across multiplexed networks.
- Audit the soju-rs unread and multiplex extensions and add protocol regression coverage. See the audit report for findings, fixes, and scope.
- Update npm dependencies and refresh the lockfile. Type checking uses TypeScript 7.0.2; TypeScript 6.0.3 remains installed to satisfy the latest typescript-eslint peer dependency.
Install
Unzip gamja-v0.99.62.zip and serve the gamja/ folder with any static web server (see doc/setup.md).