- Remove server_mode field from AdvancedSettings struct
- Remove server mode handling from update_setting command
- Remove server mode display from settings UI debug tab
- Simplify server status display to only show running state and port
- Add comprehensive manager system for various features:
- Notification manager for in-app notifications
- Permission manager for system permissions
- Update manager for app updates
- Backend manager for server backend management
- Debug features manager for debugging tools
- API testing manager for API test suites
- Auth cache manager for credential caching
- Terminal integrations manager for terminal emulator support
- Session monitor for tracking active sessions
- Port conflict resolver for port management
- Network utilities for network information
- TTY forward manager for TTY forwarding
- Cast manager for terminal recording
- App mover for macOS app location management
- Terminal spawn service for launching terminals
- File system API for file operations
- Add settings UI pages (settings.html, server-console.html)
- Update tauri.conf.json with new configuration
- Enhance server implementation with better state management
- Add comprehensive command system for all managers
- Update dependencies in Cargo.toml
- Add welcome screen manager for onboarding
- Implement proper state management across all components
- Create welcome.html with 4-page onboarding flow
- Support system light/dark mode with appropriate color schemes
- Add smooth page transitions and keyboard navigation
- Include finish button that closes the welcome window
- Copy app icon to public folder for welcome screen
- Update tauri.conf.json to include public folder resources
This commit adds the Tauri desktop app as a completely separate project
in the /tauri folder without modifying anything in the web project.
- Created /tauri folder with standalone Tauri system tray application
- Configured as menu bar/system tray app (matching Mac app architecture)
- Runs embedded HTTP server on port 4020
- Opens web dashboard in default browser
- No embedded web view or frontend code
- Minimal package.json with only Tauri CLI dependency
The web folder remains completely untouched, ensuring clean separation
between the web and desktop projects.
Wraps the connection form in a ScrollView to improve usability on small screens, landscape orientation, and when accessibility text sizes are increased. The scroll bounce behavior is intelligently set based on content size.
The shadow utility was using theme(colors.accent.green) which is not
supported in arbitrary value syntax. Replaced with direct hex value #00ff88.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Monaco Editor (v0.52.2) as dependency
- Create MonacoEditor Lit component with normal and diff modes
- Support inline/side-by-side diff switching with responsive behavior
- Replace CodeMirror in file browser with Monaco
- Add /api/fs/diff-content endpoint for fetching original/modified content
- Update build system to use esbuild with Monaco plugin
- Add proper Monaco asset handling and bundling
- Style Monaco with VibeTunnel dark theme
Note: There are rendering artifacts that need to be addressed
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Document automatic shell alias resolution feature
- Add debug logging instructions using VIBETUNNEL_DEBUG
- Include examples of using aliases with vt command
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add automatic shell alias resolution via ProcessUtils.resolveCommand()
- Support aliases like 'claude-danger' by running through user's shell
- Detect user's shell properly on all platforms (zsh, bash, pwsh, cmd, etc.)
- Replace --debug CLI flag with VIBETUNNEL_DEBUG environment variable
- Update spec.md with new functionality
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- When 'which' fails, now calls 'bash -i -c "alias"' to get all aliases
- Parses the alias output (key='value' format) into a Map
- Checks if the executable is an alias and resolves it
- Extracts the actual command from alias value (handles arguments)
- Attempts to resolve the aliased command to an absolute path
This allows using shell aliases like 'll' or custom aliases as commands.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Resolve command executables to absolute paths before spawning PTY
- Use 'which' command to find executables in PATH
- Handle absolute paths, relative paths, and PATH lookups
- Log the final resolved command for debugging
- Store resolved command in session info
This ensures consistent behavior regardless of how commands are specified
and helps with debugging by showing exact paths being executed.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
The uuid package is used in runtime code (server.ts, hq-client.ts,
pty-manager.ts) so it needs to be in dependencies, not devDependencies.
This fixes the esbuild bundling errors during the build process.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change error to warning when hash file is not found
- Force full rebuild instead of failing when hash is missing
- This fixes build failures when the hash calculation phase hasn't run
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix keyboard event handling to allow typing in terminal width input field
- Add font size adjustment controls (8-32px range) with +/- buttons and reset
- Store font size preference in localStorage for persistence
- Trigger terminal resize events when font size changes to update PTY dimensions
- Improve UX by preventing input event bubbling in settings dropdown
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement client-side logger that mirrors server interface
- Add /api/logs endpoints for client log submission and retrieval
- Create real-time log viewer component at /logs with filtering
- Update all client files to use new logging system
- Add responsive design for log viewer (mobile/desktop layouts)
- Implement smart auto-scroll that preserves reading position
- Add Mac-style auto-hiding scrollbars
- Configure Express to serve .html files with clean URLs
- Update spec.md with logging infrastructure documentation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove all colors from error/warn logs per style guide
- Add appropriate colors to logger.log calls (green=success, yellow=warning, blue=info, gray=metadata)
- Remove all prefixes like [STREAM], ERROR:, WARNING:
- Ensure all messages start lowercase (except acronyms) with no periods
- Add missing essential logs for lifecycle events and state changes
- Add debug logs for troubleshooting and performance monitoring
- Ensure all error logs include the error object
- Add proper logging to previously silent catch blocks
- Enhance context in logs with relevant IDs, counts, and durations
The logging now provides comprehensive visibility into:
- Server initialization and shutdown sequences
- Session lifecycle (creation, usage, termination)
- Connection events and client tracking
- Authentication attempts and security events
- File system operations and Git performance
- Remote server health checks and HQ communication
- Process management across platforms
- Resource cleanup and performance metrics
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement centralized logger utility with file and console output
- Add debug mode support via --debug flag
- Initialize logger at startup for server, fwd, and cli
- Replace all console.log/error calls with structured logger
- Add logging style guide for consistent messaging
- Include proper shutdown handling with closeLogger()
The logger provides:
- Timestamped color-coded console output
- Module identification in all logs
- File logging to ~/.vibetunnel/log.txt
- Debug logs toggled via --debug flag
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>