# Changelog

## [1.0.0-beta.15] - 2025-07-28

### ✨ Major Features

#### **Git Worktree Management**
- Full worktree support: Create, manage, and delete Git worktrees directly from VibeTunnel
- Follow Mode: Terminal sessions automatically navigate to corresponding directories when switching Git branches
- Visual indicators: Fork icon (⑂) shows worktree sessions, branch names displayed throughout UI
- HTTP Git API: New endpoints for Git operations (`/api/git/status`, `/api/git/branches`, `/api/worktrees`)
- Branch selection: Choose branches before creating sessions with real-time repository status

#### **Git Worktree Follow Mode** 
- VibeTunnel now intelligently follows Git worktrees instead of just branches, making it perfect for developers who use worktrees for parallel development
- When you switch branches in your editor/IDE, VibeTunnel automatically switches to the corresponding worktree terminal session
- The `vt follow` command now works contextually - run it from either your main repository or a worktree, and it sets up the appropriate tracking
- Follow mode displays worktree paths with `~` for your home directory, making them easier to read

#### **Robust Command Communication**
- The `vt` command now uses Unix domain sockets instead of HTTP for more reliable communication
- No more port discovery issues - commands like `vt status`, `vt follow`, and `vt unfollow` work instantly
- Socket-based API at `~/.vibetunnel/api.sock` provides consistent command execution

#### **Mac Menu Bar Keyboard Navigation**
- Navigate sessions with arrow keys (↑/↓) with wraparound support
- Press Enter to focus terminal windows or open web sessions
- Visual focus indicators appear automatically when using keyboard
- Menu closes after selecting a session or opening settings

#### **Quick Session Switching with Number Keys**
- When keyboard capture is active, use Cmd+1...9 (Mac) or Ctrl+1...9 (Linux) to instantly switch between sessions
- Cmd/Ctrl+0 switches to the 10th session
- Works only when keyboard capture is enabled in session view, allowing quick navigation without mouse
- Session numbers match the numbers shown in the session list

### 🎨 UI/UX Improvements

#### **Enhanced Git Integration**
- See branch names, commit status, and sync state in autocomplete suggestions
- Real-time display of uncommitted changes (added/modified/deleted files)
- Branch selector dropdown for switching branches before creating sessions
- Repository grouping in session list with branch/worktree selectors
- Consistent branch name formatting with square brackets: `[main]`

#### **Interface Polish**
- Responsive design: Better mobile/iPad layouts with adaptive button switching
- Collapsible options: Session options now in expandable sections for cleaner UI
- Increased menu bar button heights for better clickability
- Improved spacing and padding throughout the interface
- Smoother animations and transitions

### 🐛 Bug Fixes

#### **Stability & Performance**
- Fixed menu bar icon not appearing on app launch
- Resolved memory leaks causing OOM crashes during test runs
- Fixed Node.js v24.3.0 fs.cpSync crash with workaround
- Improved CI performance with better caching and parallel jobs
- Fixed EventSource handling in tests

#### **UI Fixes**
- Autocomplete dropdown only shows when text field is focused
- Fixed drag & drop overlay persistence issues
- Resolved CSS/JS resource loading on nested routes
- Fixed terminal output corruption in high-volume sessions
- Corrected menu bar icon opacity states
- **Terminal Settings UI Restored**: Fixed missing terminal width selector, restored grid layout for width/font/theme options
- **Worktree Selection UI Improvements**: Fixed confusing dropdown behavior, consistent text regardless of selection state
- **Intelligent Cursor Following**: Restored smart cursor tracking that keeps cursor visible during text input

### 🔧 Technical Improvements

#### **Architecture**
- Modular refactoring: Split `session-view.ts` into 7 specialized managers
- Component breakdown: Refactored `session-create-form` into smaller components
- Unified components: Created reusable `GitBranchWorktreeSelector`
- Better separation: Clear boundaries between UI and business logic
- **Session rename functionality centralized**: Eliminated duplicate code across components
- **Socket-based vt command communication**: Replaced HTTP with Unix domain sockets for reliability

#### **Test Infrastructure**
- Comprehensive test cleanup preventing memory exhaustion
- Updated Playwright tests for new UI structure
- Fixed TypeScript strict mode compliance
- Proper mock cleanup and session management
- Re-enabled previously disabled test files after fixing memory issues

#### **Developer Experience**
- Improved TypeScript type safety throughout
- Better error handling and logging
- Consistent code formatting across macOS and web codebases
- Removed outdated crash investigation documentation
- Comprehensive JSDoc documentation added to service classes
- Removed backwards compatibility for older vt command versions

#### **Push Notifications**
- Native push notifications for terminal events - get notified when commands complete, sessions start/end, or errors occur
- Customizable notification types: Session exits, command completion (>3s), command errors, terminal bell, Claude AI turn notifications
- Web-based onboarding flow for easy setup on macOS and mobile devices
- Privacy-focused: All notifications are processed locally, no terminal content is sent to servers
- Smart Claude detection: Automatically identifies Claude CLI sessions and tracks when Claude finishes responding

#### **Improved Terminal Output Handling**
- Enhanced asciinema stream pruning: Removes noisy ANSI sequences for cleaner recordings
- Better mobile terminal detection to optimize output rendering
- Fixed terminal resize event handling to prevent output corruption
- Improved logging for debugging terminal lifecycle issues

#### **UI/UX Enhancements**
- Modernized macOS autocomplete dropdown with native SwiftUI materials and transparency
- Fixed Quick Start Commands UI with proper native macOS table styling
- Added help tooltips throughout settings UI explaining each notification type
- Fixed mouse hover selection issues in autocomplete dropdown
- Improved button click targets for better usability

#### **Socket API Improvements**
- Refactored socket client with type-safe message handling
- Removed HTTP fallback in favor of pure socket communication for better reliability
- Added proper TypeScript types for all socket protocol messages
- Cleaner public API without brittle type casting

#### **Developer Tools**
- Added `VIBETUNNEL_PREFER_DERIVED_DATA` environment variable for faster Xcode builds
- Version tracking in socket protocol for better debugging
- Consolidated duplicate Git status implementations for maintainability
- Enhanced error logging for session termination debugging

## [1.0.0-beta.14] - 2025-07-21

### ✨ Major Features

#### **Customizable Quick Start Commands** (#436)
- Quick Start commands are now fully customizable - previously hardcoded buttons can be edited
- Add your own commands with custom names and emoji (e.g., "✨ claude" or "▶️ dev server")
- Drag & drop reordering with smooth animations in macOS settings
- Inline editing without popup dialogs
- Reset to defaults button when you want the original set back
- File-based persistence in `~/.vibetunnel/config.json` shared between web and Mac apps

#### **New Session Path Autocomplete** (#435)
- Intelligent path autocomplete when creating sessions with unified UI
- Home directory expansion (`~/` shortcuts work properly)
- Visual file browser with folder icons for easy navigation
- Git repository discovery shows current branch in file browser
- Repository status displayed in welcome screen
- Escape key support and auto-select first suggestion

#### **Session Status Management**
- New dropdown menu in session headers for running/exited sessions
- Terminate running sessions without closing the tab
- Clear exited sessions individually with one click
- Visual status indicators - pulsing dot for running, static for exited
- Keyboard navigation support (Arrow keys, Enter, Escape)

#### **Image Upload Menu** (#432)
- New image upload feature in session headers with multiple input methods:
  - Paste images from clipboard
  - Select from photo library (mobile)
  - Take photo with camera (mobile)
  - Browse for files
- Automatically converts images to base64 and inserts at cursor position
- Mobile-optimized UI with full-screen menu

#### **Linux Systemd Support** (#426)
- Run VibeTunnel as a persistent service with `vibetunnel systemd install`
- User-level service - no root required
- Automatic startup on boot
- Smart Node.js detection works with nvm, fnm, or global npm
- Comprehensive systemd commands for status, logs, start/stop

### 🎨 UI Improvements

- **Mobile Terminal Experience** (#441)
  - Fixed keyboard layout issues on mobile devices
  - Improved quick keys bar with better sizing and spacing
  - Responsive text sizes that scale properly on smaller screens
  - Tab key now works correctly on mobile keyboards

- **Dark Mode & Theme Improvements**
  - Improved theme toggle with clearer icon and tooltips (#438, fixes #368)
  - Fixed new session dialog styling for dark mode (#433)
  - Better contrast and visibility across all themes

- **General UI Polish**
  - Clickable ngrok URLs in Settings with copy button (#422)
  - Cleaner session headers with better-positioned controls
  - Fixed magic wand icon alignment for AI sessions
  - Edit icons now positioned directly after text instead of far right
  - Improved OPTIONS label alignment in session create form

### 🐛 Bug Fixes

- Fixed session timers continuing to run after sessions exited (#428)
- Fixed sessions with undefined activity status showing as idle instead of active
- Fixed new session dialog styling for dark mode (#433)
- Fixed Mintlify documentation generation (#434)
- Fixed ConfigManager threading crash when moving quick start items in macOS
- Fixed mobile keyboard layout and text sizing issues (#441)
- Improved Chinese input method support (#431, duplicate of #421)
- Fixed OpenCode support for better integration with external apps

### 🏗️ Under the Hood

#### **Code Quality & Architecture** (#444)
- Extracted all magic strings to centralized constants files
- Created dedicated constant files for:
  - API endpoints, bundle identifiers, environment keys
  - Error messages, file paths, keychain constants
  - Network constants, notification names, UI strings
  - URL constants and user defaults keys
- Removed RepositoryPathSyncService and related WebSocket sync code
- Improved type safety and maintainability across the codebase

#### **Configuration System Overhaul** (#436)
- New file-based configuration system with `~/.vibetunnel/config.json`
- ConfigManager for synchronized settings between Mac and web
- REST API at `/api/config` replacing WebSocket sync
- Zod schema validation for all configuration data
- Automatic file watching for real-time config updates
- Repository base path now stored in config instead of CLI args

#### **Testing & Development**
- Added comprehensive test coverage for new components
- Improved test maintainability by adding element IDs to web components
- Added AutocompleteService tests and drag & drop tests
- Enhanced CI workflows with better error diagnostics

#### **Documentation & Cleanup**
- Major codebase cleanup - removed Tauri project and 17k lines of unused code (#419)
- Enhanced release process with better troubleshooting documentation
- Updated README with proper badges and table of contents
- Removed redundant header text and improved visual hierarchy

### 👥 Contributors

First-time contributors to VibeTunnel:
- [@gopikori](https://github.com/gopikori) - Made ngrok URLs clickable with copy button in Settings (#422)
- [@claudemini](https://github.com/claudemini) - Improved theme toggle UI with better icon and tooltips (#438)

Additional contributors:
- [@hewigovens](https://github.com/hewigovens) - Fixed mobile keyboard issues and co-authored systemd support (#426, #441)

## [1.0.0-beta.13] - 2025-07-19

### **Terminal Performance Mode (Experimental) **
- New binary WebSocket mode for terminal sessions dramatically improves performance for high-throughput operations (#412)
- Toggle between standard SSE mode and high-performance binary mode in terminal settings
- Binary mode significantly reduces latency and CPU usage when running commands with heavy output
- Seamless switching between modes without losing your session

### **Enhanced Terminal Control** 
- Uninstall option for the `vt` command line tool now available in settings (#407)
- Simple trash icon button to cleanly remove the CLI tool when needed
- Proper cleanup of both standard and Homebrew installation paths

### **Screen Sharing Removed**
- Removed screen sharing feature to focus on core terminal functionality (#415)
- Eliminated ~17,000 lines of WebRTC and screen capture code
- No longer requests screen recording permissions
- Screen Sharing is out of scope for the 1.0 release

### 🐛 Bug Fixes
- Fixed server crashes when using special characters (like `*`) in terminal status messages (#398)
- Resolved "Kill All Sessions" button failing silently in compact/sidebar view (#418)
- Fixed network bind address reverting to localhost after server restarts (#404)
- Ghostty terminal now properly spawns and executes commands if there are no windows (#408)

### 📚 Documentation
- Added complete HQ mode documentation covering distributed deployments
- Organized all documentation into logical categories with Mintlify

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@hewigovens](https://github.com/hewigovens) - Added systemd service management for Linux deployments, refactored installer for user-level services with improved security (#419)

## [1.0.0-beta.12] - 2025-07-17

#### **Welcome Screen Performance**
- Background folder scanning eliminates UI freeze when opening the welcome screen (#394)
- Improved startup performance with optimized web directory structure
- Much smoother experience when working with large project directories

#### **SSH Agent Reliability**
- Fixed SSH key generation errors on non-localhost HTTP connections (#392)
- SSH agent now works correctly when accessing VibeTunnel via ngrok or from another device
- Improved security and reliability for remote access scenarios

#### **npm Package Stability**
- Fixed critical installation issues on Linux systems (#393)
- `authenticate-pam` now properly handled as optional dependency
- Enhanced cross-platform compatibility for Ubuntu and other distributions
- Comprehensive vt command tests ensure reliability across environments

#### **Developer Experience**
- Fixed missing public directory in Mac app bundle (#392)
- Resolved TypeScript type annotations throughout codebase
- Improved lint compliance and code quality
- Streamlined CI/CD workflow for more reliable builds

### 🐛 Bug Fixes

- Fixed vt command syntax errors on Linux systems (#393)
- Fixed welcome screen lag during folder scanning (#394)
- Resolved missing icons and resources in Mac app
- Fixed lint and type errors across the codebase
- Cleaned up duplicate and stray files from web directory

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@amazanov](https://github.com/amazanov) - Fixed PAM module and npm_config_prefix issues on Ubuntu, improving Linux compatibility (#380)

## [1.0.0-beta.11] - 2025-07-17

#### **Better Settings Organization**
- Reorganized settings into logical tabs for easier navigation (#359)
- Repository base path now syncs automatically between Mac app and web UI (#358)
- Simplified welcome screen repository display (#372)

#### **UI Context Awareness**
- Spawn window toggle shows only when relevant (#357)

#### **NPM Package Now Available**
- vibetunnel (server) is now available as an npm package for easy installation on macOS and Linux (#360, #377)
- Install with `npm install -g vibetunnel` - no build tools required!
- Includes prebuilt binaries for Node.js 20, 22, 23, and 24
- Supports macOS (Intel and Apple Silicon) and Linux (x64 and arm64) (#344)

#### **Enhanced Git Diff Tool Support**
- Added JuxtaCode to the list of supported Git diff tools with automatic detection

#### **Improved `vt` Command**
- Added verbosity control with `-q` (quiet), `-v` (verbose), `-vv` (extra verbose) flags (#356)
- New `vt title` command to update session names from within a VibeTunnel session (via @tarasenko)

### 🐛 Bug Fixes

- Fixed npm package installation issues (#360, #377)
- Fixed control message processing loop (#372)
- Fixed file browser constant refresh issue (#354)
- Replaced bell icon with settings icon for better clarity (#366)
- Resolved Tailwind CSS performance warning

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@janremes](https://github.com/janremes) - Implemented Git repository discovery with folder selection and automatic repo detection (#274)
- [@lukeswitz](https://github.com/lukeswitz) - Fixed duplicate session creation with intelligent detection logic (#345)

## [1.0.0-beta.10] - 2025-07-15

#### **Repository Discovery**
- Automatic Git repository detection when creating new sessions (#301) (via @mrshu)
- Recently modified repositories displayed in new session dialog
- Quick project access with one-click repository selection

#### **Keyboard Shortcut Handling**
- Redesigned keyboard capture system with intelligent priority handling (#298) (via @tarasenko)
- Browser shortcuts work naturally: Cmd+Shift+A (tab search), Cmd+1-9 (tab switching), Alt+Arrow keys
- Visual keyboard capture indicator with detailed tooltips
- Double-Escape toggle for switching between browser and terminal keyboard modes

#### **Theme System**
- Dracula theme is now the default for new users (#349)
- Professional light mode with improved contrast (#314)
- Easy theme switching between light and dark modes
- Enhanced terminal color schemes (#332)
#### **Development Server Mode**
- New "Development Server" mode in Debug Settings enables hot reload (#316)
- Significantly faster iteration when developing the web interface
- Hot reload works with full VibeTunnel functionality

### 🐛 Bug Fixes

- Fixed Safari clipboard paste on iOS and macOS (#336)
- Fixed duplicate session creation with intelligent detection (#345) (via @lukeswitz)
- Added keyboard navigation in session grid (arrow keys, Enter, etc.) (#322)
- Fixed race conditions in network access mode (#347)
- Improved SSH key manager modal layout (#325) (via @hewigovens)
- Updated all dependencies to latest stable versions
- Enhanced TypeScript configuration with better type safety

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@davidgomesdev](https://github.com/davidgomesdev) - Transformed SessionListView to clean MVVM architecture for better maintainability (#217)
- [@jeffhurray](https://github.com/jeffhurray) - Consolidated z-index management to prevent UI layer conflicts (#291)
- [@hewigovens](https://github.com/hewigovens) - Fixed SSH key manager modal layout and improved test compatibility (#325)
- [@tarasenko](https://github.com/tarasenko) - Added browser keyboard shortcut support with intelligent priority handling (#298)

## [1.0.0-beta.9] - 2025-07-11

#### **Terminal Crash Fix**
- Replaced Microsoft's node-pty with custom fork to resolve random terminal crashes (#304)
- Improved thread-safe operations and resource management
- Addresses stability issues affecting VS Code and other Electron applications

#### **Server Crash Detection**
- Added crash detection and recovery system for server failures (#308)
- Provides immediate feedback with specific error codes
- Improved troubleshooting and error reporting

#### **Mobile Experience**
- Fixed continuous resize loop on mobile devices (#305)
- Improved mobile terminal width management
- Added support for smaller grid sizes on compact devices
- Added Alt+Delete/Left/Right keyboard shortcuts for mobile users (#290)
- Fixed mobile header overflow when using dropdown menus (#295)
#### **Cloudflare Integration**
- Improved tunnel setup with stream-based monitoring (#306)
- Enhanced error handling and more reliable setup process

#### **Git Repository Discovery**
- Enhanced folder selection when creating new sessions (#274) (via @janremes)
- Added intelligent Git repository discovery in selected folders
- Fixed multiple bugs in repository discovery (#282)

### 🐛 Bug Fixes

- Fixed terminal titles jumping due to activity indicators (#309)
- Consolidated z-index management to prevent UI layer conflicts (#291) (via @jeffhurray)
- Enhanced event handling for better cross-platform compatibility
- Improved file browser functionality with better click handling

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@claywarren](https://github.com/claywarren) - Fixed infinite scroll loop that could freeze the browser (#206)
- [@luisnell](https://github.com/luisnell) - Added Apple Silicon Homebrew path check for VT tool installation

## [1.0.0-beta.8] - 2025-07-08

### 🐛 Bug Fixes

- Fixed release builds to correctly bundle all Homebrew library dependencies (#269)
- Fixed app launch on systems without developer tools installed
- Fixed file browser going dark due to event bubbling issues with modal handling
- Updated build scripts to handle dynamic library dependencies properly

## [1.0.0-beta.7] - 2025-07-08

#### **AI Session Context Injection**
- Inject project context into Claude.ai sessions with a single click (#210, #218)
- Automatically detects Claude browser windows
- Includes git repository details, current branch, and recent commits
- Configurable prompts to match workflow

#### **Terminal Performance**
- Fixed critical flow control issue causing xterm.js buffer overflow (#223)
- Fixed infinite scroll loop that could freeze the browser
- Fixed race conditions in terminal output handling
- Improved memory management for long-running sessions
- Better handling of high-volume terminal output

#### **UI Performance**
- Removed UI animations causing 1-2 second delays
- Disabled View Transitions API for instant session navigation
- Fixed modal backdrop pointer-events issues (#195)
- Smoother menu bar UI without jumping

#### **Touch Device & Mobile**
- Unified keyboard layout for all mobile devices
- Universal touch device detection
- Inline-edit pencil always visible on touch devices
- New compact keyboard layout optimized for tablets
- Fixed touch interaction issues with modals

#### **Fish Shell Integration**
- Full support for Fish shell command expansion and completions (#228, #242)
- Proper handling of Fish-specific syntax
- Fixed shell configuration files not being loaded

#### **Developer Experience**
- Preserve Swift package resolution for faster builds
- Better Node.js detection handling fnm/homebrew conflicts (#246, #253)
- Hash-based vt script version detection
- Delete old sessions when VibeTunnel version changes (#254)

### 🐛 Bug Fixes

- Fixed session state synchronization between web and native clients
- Resolved memory leaks in long-running sessions
- Fixed connection timeout issues on slower networks
- Better cleanup of terminal processes and resources
- Fixed various UI glitches and visual artifacts
- Resolved sidebar animation issues
- Fixed file browser problems
- Unified control protocol for terminal sessions (#239)
- Improved Unix socket handling with better error recovery

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@deveshseth](https://github.com/deveshseth) - Fixed responsive layout issues preventing proper desktop mode transition (#201)
- [@raghavsethi](https://github.com/raghavsethi) - Added fish shell expansion support with proper syntax handling (#228, #242)
- [@raghavsethi](https://github.com/raghavsethi) - Fixed Xcode Node.js detection issues with fnm/homebrew conflicts (#246, #253)
- [@sandeepjak2007](https://github.com/sandeepjak2007) - Added paste button to quick keyboard for improved iOS usability (#227)
- [@Dimillian](https://github.com/Dimillian) - Fixed WebSocket and terminal resize loop on iOS devices (#224)

## [1.0.0-beta.6] - 2025-07-03

#### **Git Repository Monitoring**
- Real-time Git status in session rows with branch name and change counts (#200)
- Color-coded status: orange for branches, yellow for uncommitted changes
- Click folder icons to open repositories in Finder
- Context menu option to open repositories on GitHub
- 5-second cache prevents excessive git commands
- Automatically finds git repositories in parent directories

#### **Enhanced Command-Line Tool**
- `vt title` can set terminal title - even Claude can use it! (#153)
- `vt help` displays binary path, version, build date, and platform info
- Automatic detection of Homebrew installations on ARM Macs

#### **Menu Bar Enhancements**
- Powerful menu bar with visual activity indicators (#176)
- See all terminal sessions and Claude Code status (#160)
- Mac stays awake when running terminal sessions

#### **Web Interface Improvements**
- Complete UI overhaul with improved color scheme and animations (#179)
- Collapsible sidebar to maximize terminal viewing space (#175)
- Fixed race conditions causing sessions to appear as "missing"
- Improved responsive design with better touch targets

### 🐛 Bug Fixes

- Fixed terminal output corruption from race conditions
- Fixed terminal titles jumping or getting stuck
- Fixed double logger initialization deleting log files
- Improved PTY manager cleanup and timer management
- Enhanced error handling throughout server stack

#### **Simplified Tailscale Setup**
- Switched to Tailscale's local API for easier configuration (#184)
- Removed manual token management requirements
- Streamlined connection UI

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@noppe](https://github.com/noppe) - Enabled scrolling in ConnectionView for narrow windows, improving UI accessibility
- [@tarasenko](https://github.com/tarasenko) - Added title mode support and enhanced CLI installation verification (#153)

## [1.0.0-beta.5] - 2025-06-29

#### **UI Improvements**
- Web interface now shows full version including beta suffix
- Cleaner build output by filtering non-actionable Xcode warnings
- Fixed scrolling issues on mobile web browsers

#### **Infrastructure**
- Web version automatically reads from package.json at build time
- Build process validates version consistency between macOS and web
- Tests only run when relevant files change (iOS/Mac/Web)
- Comprehensive Playwright tests for web frontend reliability (#120)

### 🐛 Bug Fixes

- Fixed authentication-related error messages when running with `--no-auth`
- Fixed frontend log streaming in no-auth mode
- Resolved flaky tests and improved test infrastructure (#205)
- Enhanced release process documentation with version sync requirements
- Better test fixtures, helpers, and debugging capabilities (#73)
- Cleaner logs when running in development mode

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@manuelmaly](https://github.com/manuelmaly) - Added gemini quick start button and slash commands for enhanced workflow (#128, #138)
- [@billyb2](https://github.com/billyb2) - Fixed repeated screen recording permission dialogs for better user experience

## [1.0.0-beta.4] - 2025-06-25

- We replaced HTTP Basic auth with System Login or SSH Keys for better security (#43).
- Sessions now show exited terminals by default - no more hunting for terminated sessions
- Reorganized sidebar with cleaner, more compact header and better button placement
- Added user menu in sidebar for quick access to settings and logout
- Enhanced responsive design with better adaptation to different screen sizes
- Improved touch targets and spacing for mobile users
- Leverages View Transitions API for smoother animations with CSS fallbacks
- More intuitive default settings for better out-of-box experience

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@hjanuschka](https://github.com/hjanuschka) - Implemented authentication system with SSH key management for better security (#43)
- [@hjanuschka](https://github.com/hjanuschka) - Added screen sharing functionality with WebRTC (later removed in beta.13) (#209)
- [@chrisreyn](https://github.com/chrisreyn) - Fixed double shell-wrapping issues for aliases in vt script (#132)

## [1.0.0-beta.3] - 2025-06-23

There's too much to list! This is the version you've been waiting for. 

- Redesigned, responsive, animated frontend.
- Improved terminal width spanning and layout optimization
- File-Picker to see files on-the-go.
- Creating new Terminals is now much more reliable.
- Added terminal font size adjustment in the settings dropdown
- Fresh new icon for Progressive Web App installations
- Refined bounce animations for a more subtle, professional feel
- Added retro CRT-style phosphor decay visual effect for closed terminals
- Fixed buffer aggregator message handling for smoother terminal updates
- Better support for shell aliases and improved debug logging
- Enhanced Unix socket server implementation for faster local communication
- Special handling for Warp terminal with custom enter key behavior
- New dock menu with quick actions when right-clicking the app icon
- More resilient vt command-line tool with better error handling
- Ensured vibetunnel server properly terminates when Mac app is killed

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@tarasenko](https://github.com/tarasenko) - Added Bonjour/mDNS service discovery for iOS app connectivity (#226)
- [@PiotrBosak](https://github.com/PiotrBosak) - Updated README documentation for clarity
- [@zhouzhuojie](https://github.com/zhouzhuojie) - Added Cloudflare Quick Tunnel as a new access option

## [1.0.0-beta.2] - 2025-06-19

### 🎨 Improvements
- Redesigned slick new web frontend
- Faster terminal rendering in the web frontend
- New Sessions spawn new Terminal windows. (This needs Applescript and Accessibility permissions)
- Enhanced font handling with system font priority
- Better async operations in PTY service for improved performance
- Improved window activation when showing the welcome and settings windows
- Preparations for Linux support

### 🐛 Bug Fixes
- Fixed window front order when dock icon is hidden
- Fixed PTY service enhancements with proper async operations
- Fixed race condition in session creation that caused frontend to open previous session

### 👥 Contributors
First-time contributors to VibeTunnel:
- [@moffmann](https://github.com/moffmann) - Updated CONTRIBUTING.md documentation

## [1.0.0-beta.1] - 2025-06-17

### 🎉 First Public Beta Release

This is the first public beta release of VibeTunnel, ready for testing by early adopters.

### ✨ What's Included
- Complete terminal session proxying to web browsers
- Support for multiple concurrent sessions
- Real-time terminal rendering with full TTY support
- Secure password-protected dashboard
- Tailscale and ngrok integration for remote access
- Automatic updates via Sparkle framework
- Native macOS menu bar application

### 🐛 Bug Fixes Since Internal Testing
- Fixed visible circle spacer in menu (now uses Color.clear)
- Removed development files from app bundle
- Enhanced build process with automatic cleanup
- Fixed Sparkle API compatibility for v2.7.0

### 📝 Notes
- This is a beta release - please report any issues on GitHub
- Auto-update functionality is fully enabled
- All core features are stable and ready for daily use

### ✨ What's New Since Internal Testing
- Improved stability and performance
- Enhanced error handling for edge cases
- Refined UI/UX based on internal feedback
- Better session cleanup and resource management
- Optimized for macOS Sonoma and Sequoia

### 🐛 Known Issues
- Occasional connection drops with certain terminal applications
- Performance optimization needed for very long sessions
- Some terminal escape sequences may not render perfectly

### 📝 Notes
- This is a beta release - please report any issues on GitHub
- Auto-update functionality is fully enabled
- All core features are stable and ready for daily use

## [1.0.0] - 2025-06-16

### 🎉 Initial Release

VibeTunnel is a native macOS application that proxies terminal sessions to web browsers, allowing you to monitor and control terminals from any device.

### ✨ Core Features

#### Terminal Management
- **Terminal Session Proxying** - Run any command with `vt` prefix to make it accessible via web browser
- **Multiple Concurrent Sessions** - Support for multiple terminal sessions running simultaneously
- **Session Recording** - All sessions automatically recorded in asciinema format for later playback
- **Full TTY Support** - Proper handling of terminal control sequences, colors, and special characters
- **Interactive Commands** - Support for interactive applications like vim, htop, and more
- **Shell Integration** - Direct shell access with `vt --shell` or `vt -i`

#### Web Interface
- **Browser-Based Dashboard** - Access all terminal sessions at http://localhost:4020
- **Real-time Terminal Rendering** - Live terminal output using asciinema player
- **WebSocket Streaming** - Low-latency real-time updates for terminal I/O
- **Mobile Responsive** - Fully functional on phones, tablets, and desktop browsers
- **Session Management UI** - Create, view, kill, and manage sessions from the web interface

#### Security & Access Control
- **Password Protection** - Optional password authentication for dashboard access
- **Keychain Integration** - Secure password storage using macOS Keychain
- **Access Modes** - Choose between localhost-only, network, or secure tunneling
- **Basic Authentication** - HTTP Basic Auth support for network access

#### Remote Access Options
- **Tailscale Integration** - Access VibeTunnel through your Tailscale network
- **ngrok Support** - Built-in ngrok tunneling for public access with authentication
- **Network Mode** - Local network access with IP-based connections

#### macOS Integration
- **Menu Bar Application** - Lives in the system menu bar with optional dock mode
- **Launch at Login** - Automatic startup with macOS
- **Auto Updates** - Sparkle framework integration for seamless updates
- **Native Swift/SwiftUI** - Built with modern macOS technologies
- **Universal Binary** - Native support for both Intel and Apple Silicon Macs

#### CLI Tool (`vt`)
- **Command Wrapper** - Prefix any command with `vt` to tunnel it
- **Claude Integration** - Special support for AI assistants with `vt --claude` and `vt --claude-yolo`
- **Direct Execution** - Bypass shell with `vt -S` for direct command execution
- **Automatic Installation** - CLI tool automatically installed to /usr/local/bin

#### Server Implementation
- **Dual Server Architecture** - Choose between Rust (default) or Swift server backends
- **High Performance** - Rust server for efficient TTY forwarding and process management
- **RESTful APIs** - Clean API design for session management
- **Health Monitoring** - Built-in health check endpoints

#### Developer Features
- **Server Console** - Debug view showing server logs and diagnostics
- **Configurable Ports** - Change server port from default 4020
- **Session Cleanup** - Automatic cleanup of stale sessions on startup
- **Comprehensive Logging** - Detailed logs for debugging

### 🛠️ Technical Details

- **Minimum macOS Version**: 14.0 (Sonoma)
- **Architecture**: Universal Binary (Intel + Apple Silicon)
- **Languages**: Swift 6.0, Rust, TypeScript
- **UI Framework**: SwiftUI
- **Web Technologies**: TypeScript, Tailwind CSS, WebSockets
- **Build System**: Xcode, Swift Package Manager, Cargo, npm

### 📦 Installation

- Download DMG from GitHub releases
- Drag VibeTunnel to Applications folder
- Launch from Applications or Spotlight
- CLI tool (`vt`) automatically installed on first launch

### 🚀 Quick Start

```bash
# Monitor AI agents
vt claude

# Run development servers  
vt npm run dev

# Watch long-running processes
vt python train_model.py

# Open interactive shell
vt --shell
```

### 👥 Contributors

Created by:
- [@badlogic](https://mariozechner.at/) - Mario Zechner
- [@mitsuhiko](https://lucumr.pocoo.org/) - Armin Ronacher  
- [@steipete](https://steipete.com/) - Peter Steinberger

First-time contributors to VibeTunnel:
- [@hjanuschka](https://github.com/hjanuschka) - Implemented comprehensive authentication system with SSH key management and PAM support (#43)
- [@hjanuschka](https://github.com/hjanuschka) - Added keyboard shortcut highlighter, fixed Japanese input duplication on iOS, and sleep prevention option (#114, #102, #146)

### 📄 License

VibeTunnel is open source software licensed under the MIT License.

---

## Version History

### Pre-release Development

The project went through extensive development before the 1.0.0 release, including:

- Initial TTY forwarding implementation using Rust
- macOS app foundation with SwiftUI
- Integration of asciinema format for session recording
- Web frontend development with real-time terminal rendering
- Hummingbird HTTP server implementation
- ngrok integration for secure tunneling
- Sparkle framework integration for auto-updates
- Comprehensive testing and bug fixes
- UI/UX refinements and mobile optimizations