Update all project dependencies to their latest versions while keeping
Tailwind CSS at v3.4.17 to avoid breaking changes.
Notable updates:
- Express: 4.19.2 → 5.1.0 (major version upgrade)
- Chalk: 4.1.2 → 5.4.1 (major version upgrade to ESM)
- CodeMirror packages: Updated to latest v6 versions
- TypeScript types: Updated to latest versions
- Development tools: Biome, Playwright, Puppeteer, etc.
All code quality checks pass successfully after the updates.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Extract improvements from PR #318:
1. Set default user ID in no-auth mode for auth middleware
- Ensures consistent behavior when authentication is disabled
- Prevents potential issues with undefined user IDs
2. Convert to type-only imports in push notification service
- Use TypeScript type imports for better tree shaking
- Remove .js extensions from imports for consistency
- Minor logging improvement for service worker registration
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Enable arrow key navigation (up/down/left/right) through sessions
- Press Enter to open selected session
- Add visual feedback for keyboard-selected sessions
- Fix global event listener conflict by scoping to component
- Make session-list focusable with proper focus indicators
- Pass selected state to session-card for visual highlighting
Adopts PR #322 with improvements based on review feedback
- Remove non-null assertion in favor of proper null check
- Add z-index comments for clarity in modal overlays
- Remove unused Z_INDEX imports after switching to comments
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add stopPropagation to Browse button click handler in session-create-form
- Add debug logging to track state changes
- Match the pattern used in session-header for consistency
- Swap file picker and settings buttons in session header (settings now at the end)
- Disable all button transitions in session view with body.in-session-view
- Disable modal backdrop fade-in animation (0.3s) in session view
- Fix file browser briefly showing then going dark by preventing event bubbling
- Add stopPropagation to file browser button click to prevent duplicate modals
The session detail page should now have zero animations when toggling sidebar
or opening modals.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove animate-fade-in class from compact mode session list items
- Prevent sessions-showing/hiding animation classes when in session detail view
- Disable View Transitions API for navigating back from session detail view
- Add body.in-session-view class to disable all animations in session view
- Remove transition-all duration-200 from compact session list items
- Disable grid transitions when in session view
This eliminates all staggered animations and transitions that were causing
the perceived 1-2 second delay when toggling the sidebar in session detail view.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Make inline-edit pencil always visible on touch devices with CSS media query
- Remove terminal resize animation (transition: all 0.3s ease-out)
- Remove magic wand AI button that was confusing users
- Reorganize touch device layout: close button left of time
- Disable View Transitions API for session navigation
- Add CSS overrides to disable all button transitions in session view
- Fix TypeScript errors by adding missing handleDeleteSession method
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add check for session detail view in handleCreateSession()
- Add check for session detail view in handleCreateModalClose()
- Modal now appears/disappears instantly in session detail view
- Animation preserved in grid view where it works properly
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove duplicate screen share button from sidebar
- Remove file browser button from sidebar
- Remove file picker/upload button from session header
- Move settings/notification icon from sidebar to session header (next to file browser)
- Disable sidebar slide animations to prevent terminal resize issues
- Simplify sidebar to only show Create Session button and User menu
- Settings button is now in session detail view for better context
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove tablet-specific renderTabletLayout() method
- Remove deviceType property from terminal-quick-keys component
- Remove tablet-specific CSS classes (.tablet-layout, .compact)
- Simplify code to use the same 3-row keyboard for all mobile devices
- Provides consistent experience across iPhone and iPad
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace user agent detection with capability-based detection
- Support any touch device (iPad, Android, Surface, etc.)
- Add smart detection for hybrid devices (touch + trackpad)
- Add user preference support (auto/always/never)
- Add keyboard mode toggle button in mobile controls
- Fix landscape mode detection on all touch devices
- Use hardware capabilities instead of brittle UA strings
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Pass isMobile instead of isPhone to setupMobileFeatures and setupEventListeners
- Tablets need VirtualKeyboard API, Visual Viewport API, and touch event listeners
- Only the keyboard layout should differ between phones and tablets, not core mobile features
- Detect device type (phone vs tablet) based on screen size
- Show custom keyboard on iPads with optimized compact layout
- Portrait mode: 2 rows with essential terminal keys
- Landscape mode: Single row with most important keys
- Properly handle device rotation and window resizing
- Add TypeScript declarations for window.__deviceType
Fixes#223
The magic wand feature now uses emphatic language to ensure AI assistants
use the 'vt title' command instead of injecting terminal escape sequences.
This prevents Claude from being "too smart" and bypassing our title filtering.
Fixes#248
- Ensure bash, zsh, and fish spawn as login shells to read config files
- Add -i and -l flags for bash/zsh, --interactive and --login for fish
- Avoid duplicate flags if already present
- Add user feedback when starting shells in login mode
Fixes#251