You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Increased message capacity — max rendered messages raised from 200 to 500
Desktop Appearance
Working light/dark theme — CSS variable override system with proper theme switching
Appearance tab in Settings — visible theme toggle with persist preference
OS dark mode auto-detection — respects prefers-color-scheme media query
Title bar styling — uses CSS variables for background and border consistency
Desktop Tests
Vitest framework — added frontend unit test infrastructure with jsdom config
parseDiff tests — 14 unit tests for diff parsing logic
ContextMenu/Toast/Skeleton tests — component-level test coverage
CI integration — frontend tests added to verify-ci.sh
TUI
Provider Retry Display
Single system item for retries — provider retry notifications (rate limits, transient errors) now accumulate in a single system message item instead of creating a new item per retry attempt
StreamEventSystem forwarding — agent loop now properly forwards StreamEventSystem events from provider to TUI for display
Slash Commands
/cron command — new slash command with list, get, pause, resum, pauseall, resumeall subcommands
IM
Binding & Pairing
Pairing code push to old channel — when rebinding to a new channel, the pairing code is now also pushed to the existing channel so users can see it without watching the ggcode screen
Binding watcher — new binding_watcher.go monitors ~/.ggcode/im-bindings.json for LastSessionID changes by other instances, auto-mutes stale adapters to prevent conflicts
Explicit image download timeout — Matrix, Mattermost, and WhatsApp adapters now have explicit timeouts for image downloads to prevent hangs
Reconnect Resilience
Jittered backoff — Telegram and Slack adapters now use jittered reconnect backoff to prevent thundering herd
LAN Chat
Reliability
Self-message UDP filtering — filters self-messages in UDP receive path to prevent echo loops
Full error text preservation — tool result summaries now preserve complete error text instead of truncating
Optimized rate limiter — actionable error messages with inbound DM reset on rate limit hit
Agent rate limiting — added rate limiting to lanchat tool to prevent message storms
Desktop Session Sidebar
Esc-to-clear search — session search input now clears on Esc with proper aria-label
Internal
Skip reflection/ratchet/asyncVerify on cancellation — agent run cancellation now properly skips post-run analysis tasks
Injected memory messages as user role — changed from system to user role for better provider compatibility
Stale project memory test fix — updated assertion to be role-agnostic