Changelog
March 2026
- Added fullscreen Session Console on web – expand the sidebar into a full-page session list with inline AI summaries
- Added OpenCode daemon (
@cmdctrl/opencode) with native session sync in both directions - Added session search across active, archived, and externally-started sessions on web, iOS, and Android
- Added account deletion on web (Settings → Danger Zone)
- Added server-controlled app version gating – admins can require a minimum version; outdated users see a dismissible update banner or a blocking update screen
- Added Starter tier ($5/mo) with read-only free tier enforcement across web, iOS, Android, watchOS, and Wear OS
- Added Android in-app purchases
- Added daemon offline state to watchOS and Wear OS session detail
- Fixed Android device list not refreshing without a full app restart
- Fixed Android search bar hidden after back-navigation
- Fixed Aider follow-up messages to existing sessions
- Fixed Cursor IDE PENDING session resolution
February 2026
- Added Sign in with Apple on web, iOS, and Android
- Added Gemini CLI daemon (
@cmdctrl/gemini-cli-daemon) - Added Codex CLI daemon (
@cmdctrl/codex-cli-daemon) - Added GitHub Copilot CLI daemon (
@cmdctrl/vscode-copilot) - Rewrote Cursor CLI daemon using daemon SDK
- Published daemon SDK for third-party agent integrations
- Rebranded – new ❯ logo and live-text lockup across all platforms and app icons
- Added Firebase Crashlytics to iOS
- Added per-token APNs sandbox/production routing
- Added daemon version tracking and self-update CLI command (
cmdctrl-* update) - Added 9 MCP tools to match full API surface area
- Added session ID discovery to Cursor IDE and VS Code Copilot daemons
- Added auto-restart for daemons after npm package publish
- Added batch AI summary generation with concurrent processing
- Added AI session titles to session list on all platforms
- Added CmdCtrl-queued messages to conversation history
- Added error state with retry when API is unreachable in session detail
- Added Android empty states distinguishing no-agents-connected from no-sessions-yet
- Hashed device tokens with SHA-256 before storage
- Filtered non-user content (JSON, XML tags) from chat display
- Filtered system-generated entries from real-time user messages
- Fixed session conflict broadcast for PENDING session renames
- Fixed Cursor IDE real-time message updates and daemon stability
- Fixed user-set session titles being overwritten by AI titles on all platforms
- Fixed spurious external activity warnings after iOS app relaunch
- Fixed iOS new session send button tap area expanding with text input height
- Fixed passive mobile observers missing messages from external clients
- Fixed mobile message ordering for full loads from API
- Fixed large JSONL lines (base64 images) corrupting message history at start of file
- Fixed daemon WebSocket 401 handling and reconnect backoff
- Fixed Apple web OAuth callback using wrong redirect code
- Fixed daemon install command using hyphens instead of underscores on verify page
- Fixed WearOS adaptive icon foreground drawable
- Fixed PENDING session merge for IDE daemons with pre-discovered sessions
- Fixed new session streaming preserving optimistic messages and verbose output
- Fixed first user message missing on new mock agent sessions
- Fixed concurrent WebSocket write crash on backend
- Opened developer registration
- Docs site overhaul – FAQ, help section reorg, nav pill, footer
- Published blog post: "What Is Cmd+Ctrl?"
- Published blog post: "Build Your Own Daemon"
January 2026
- Added iOS app with Google and GitHub OAuth, session list, dashboard, and real-time streaming
- Added Android app with iOS feature parity
- Added watchOS app with subscribed, on-my-radar, and recent session sections; dictation input
- Added Wear OS app with messaging, radar/subscribe toggles, and refresh
- Added Cursor IDE daemon (
@cmdctrl/cursor-ide) - Added Aider daemon (
@cmdctrl/aider) - Added push notifications for iOS (APNs) and Android (FCM) on agent task completion
- Suppressed push notifications when the session is actively viewed
- Added "Bring Me Up to Speed" AI narrative dashboard section on web, iOS, and Android
- Added multi-AI provider support for session summaries and narratives
- Added session dismiss with slide animation; dismissed sessions hidden from dashboard
- Added API token management – generate, name, and revoke tokens from Settings
- Added optimistic message sending with status indicator on iOS and Android
- Added WebSocket connection status banner with debounce
- Added typing animation to AI narrative bullet items on all platforms
- Added pulsing animation to working status indicators on dashboard
- Added back button navigation history to iOS and Android session detail
- Added categorized sessions endpoint with 5-day sliding window for dashboard
- Added centralized agent type icons served from backend
- Added accordion session list sections with independent section toggling
- Added radar (on-my-radar) and subscribe session states across all platforms
- Added orange border/banner for watched sessions with new messages on iOS and web
- Added iOS notification toast for watched session completions with haptic feedback
- Added markdown rendering with table support to iOS and Android
- Added safe area inset handling on iOS
- Added format messages toggle on iOS and web
- Added new session creation from UI with working directory selection on all platforms
- Added E2E test suite with Playwright and Maestro mobile tests
- Replaced font-based logo with app icon image
- Unified external session visual treatment across all platforms
- Unified dashboard UI across web, iOS, and Android
- Fixed verbose output ordering and duplicate message issues
- Fixed message ordering race conditions
- Fixed iOS new session not receiving events after PENDING ID migration
- Fixed Android duplicate user message bug
- Fixed Android/iOS message send status not updating
- Fixed Android new session creation and session list loading
- Fixed iOS external activity notifications and message sync
- Fixed session discovery not finding sessions absent from stale index
- Fixed Cursor IDE daemon session watcher and connection ID persistence
December 2025
- Initial release – Go backend, PostgreSQL, React web frontend
- Added Claude Code daemon with session discovery, live output streaming, and task execution
- Added Claude Code integration – start sessions, stream live output, reply from browser
- Added real-time WebSocket updates replacing polling
- Added split-pane multi-session web view
- Added collapsible sidebar with session dots flyout for collapsed state
- Added external session discovery – load and watch sessions started outside CmdCtrl
- Added session conflict detection and warnings for concurrent access
- Added verbose/live output streaming of agent tool calls in real time
- Added markdown rendering with Tailwind Typography
- Added image paste support on web
- Added audio notifications on agent message arrival with customizable sounds
- Added AI session title generation from first message
- Added session title editing
- Added search modal with Ctrl+K and keyboard navigation
- Added jump-to-top button for long agent messages
- Added up-arrow key to recall last sent message
- Added light mode support across all web UI components
- Added GCP deployment scripts
- Added unit tests for adapters and API handlers
- Added integration tests with local PostgreSQL test database
- Added Google and GitHub OAuth authentication
- Added working directory and hostname display in session header