Use the Option symbol (⌥) instead of text 'Option' to match how keyboard
shortcuts are displayed elsewhere in the UI, maintaining consistency with
symbols like ⌘ for Command
Changed the session rename hotkey from Command+R (meta+r) to Shift+R
to reserve Command+R for potential future use as a reload function.
This affects both the session list and session detail views.
Display Option+Y/Alt+Y and Shift+Tab shortcuts in help text to improve
discoverability of bypass permissions and auto-accept edits features.
Platform-specific key names are shown (Option on Mac, Alt on Windows/Linux).
When users tried to select and copy text from tool messages, the onClick
handler would open the inspect modal, causing the text selection to be lost.
Now checks if text is selected before opening the modal, allowing users to
copy text from tool calls and responses.
Fixes ENG-1756
- Add Meta+R (Cmd+R on Mac) hotkey to rename sessions in SessionTable
- Add Meta+R hotkey to rename sessions in SessionDetail view
- Update HotkeyPanel to document the new keyboard shortcuts
- Hotkey triggers the same inline edit functionality as the pencil icon
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Option+Y hotkey to keyboard shortcuts panel for discoverability
- Fix Shift+Tab navigation conflict by implementing hotkey scope stealing when dialog is open
- Remove dialog close button from tab navigation flow with tabIndex=-1
Fixes keyboard navigation issues and improves feature discoverability.
- Rename YoloModeMonitor to DangerousSkipPermissionsMonitor for clarity
- Replace hardcoded 'expired' strings with proper constants in TypeScript and Go
- Improve type safety with SessionSettingsChangeReason constants
- Update all references from 'yolo mode' to 'dangerous skip permissions'
- Enhance server-side monitoring for expired permissions
Implements periodic server-side monitoring to complement client-side
YoloModeMonitor. Addresses security gap where expired permissions could
remain active indefinitely if no new approvals were triggered.
- Query database every 30s for sessions with expired permissions
- Automatically disable expired permissions and broadcast events
- Configurable interval via HLD_PERMISSION_MONITOR_INTERVAL
- Client handles server-initiated expiry events for UI sync
- Prevents malicious clients from bypassing permission timeouts
Address PR review comment by using the centralized debug logger
instead of console.log for session data logging. This ensures
proper log level control and Tauri integration in production.
- Session completion and failure notifications now display the human-readable
title or summary before falling back to the raw query
- Text is truncated to 40 characters to prevent overly long notifications
- Extracted logic into reusable getSessionNotificationText helper function
- Added comprehensive unit tests for the helper function
- Fix broken revert logic that failed to restore original session state on API failure
- Fix date validation to use Date.now() instead of new Date() for test compatibility
- Implement optimistic updates with proper rollback mechanism
- Add server-as-source-of-truth pattern with pending update preservation
- Add comprehensive test suite for state synchronization scenarios
- Update components to use new optimistic update functions
Updated h1 heading underline to use solid border instead of dashed for cleaner appearance.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Convert dangerously_skip_permissions to dangerouslySkipPermissions
- Convert dangerously_skip_permissions_expires_at to dangerouslySkipPermissionsExpiresAt
- Use SDK Session type directly instead of custom type extensions
- Update all components, stores, and test utilities to use consistent camelCase
- Fix misleading comment about SDK expectations in http-client
This aligns with the existing autoAcceptEdits field and SDK conventions
- Replace document.getElementById with useRef hook in DangerouslySkipPermissionsDialog
- Remove debug test hotkey (shift+?) from SessionDetail
- Better React lifecycle integration and type safety
Update LaunchSession mock to expect session.LaunchSessionConfig instead
of claudecode.SessionConfig to match the actual SessionManager interface.
This fixes the test failure that was causing a panic due to type mismatch.
Extract MCP tool name parsing logic into reusable utilities and ensure
consistent formatting across all UI components. OS toast notifications
now display 'linear - create comment' instead of raw 'mcp__linear__create_comment'.
- Add parseMcpToolName and formatMcpToolName utilities
- Update all components to use shared parsing logic
- Fix OS toast to show human-readable tool names
Replace console.log and console.error calls with the logger utility
for better control over logging output in development and production
environments. The logger properly handles Tauri log files in production
and preserves console output in development mode.