# Changelog

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

### ✨ New Features
- **Sleep Prevention** - Mac now stays awake when VibeTunnel is running terminal sessions
- **Dynamic Settings** - Sleep prevention setting updates immediately without server restart
- **Terminal Title Management** - Enhanced terminal title updates with activity detection
- **Prompt Pattern Detection** - Optimized prompt detection with unified regex patterns and caching

### 🎨 UI Enhancements

#### **New Menu Bar Design**
- The menu bar dropdown now features a modern design with rounded corners only on the left and right sides, creating a more integrated appearance with the macOS menu bar
- The flat top and bottom borders make the dropdown feel like a natural extension of the menu bar while maintaining a contemporary aesthetic
- Enhanced shadow and visual layering for better depth perception

#### **Improved Session Display**
- Sessions now show cleaner, more readable information:
  - Process names are extracted from full paths (e.g., shows "python" instead of "/usr/bin/python")
  - Session names are displayed next to commands with a dash separator for better organization
  - Smart handling of shell commands - when running commands through shells like bash or zsh with `-c`, the actual command is shown instead of just "bash"
  - Long session names are intelligently truncated with ellipsis to prevent UI overflow

#### **Faster Session Updates**
- Session information now refreshes every second instead of every 3 seconds, providing more responsive feedback about session status

#### **Better Visual Feedback**
- Fixed menu bar button highlighting to properly indicate when the dropdown is open
- Improved hover states for session items with smoother transitions
- Enhanced button colors - the "Create" button now uses a darker green for better visibility and accessibility

### 🛠 Bug Fixes

#### **Window Tracking Improvements**
- Enhanced window focus functionality for terminal sessions, especially for Ghostty terminal
- Improved process tree traversal for more reliable window detection
- Better handling of tabs in terminals that use macOS standard tab system
- Fixed issues with window ID detection and matching

#### **Form Styling**
- Fixed corner radius on the new session dialog to match the overall design language
- Improved form field styling and spacing for better usability

#### **Other Fixes**
- **Unicode Cursor Positioning** - Fixed cursor positioning issues with Unicode characters
- **Race Condition** - Fixed sleep prevention race condition during server startup
- **Memory Efficiency** - Added input validation to prevent excessive memory usage on long inputs

### 🔧 Technical Improvements

#### **State Management**
- Button state management now uses proper state tracking instead of the deprecated `highlight()` method
- More reliable window visibility tracking
- Enhanced event monitoring for click-outside dismissal

#### **Performance & Code Quality**
- **Performance** - 45% faster prompt pattern detection with LRU caching
- **Code Quality** - Comprehensive test coverage for prompt detection utilities
- **Documentation** - Improved regex documentation for maintainability

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

### 🎨 UI Improvements
- **Version Display** - Web interface now shows full version including beta suffix (e.g., v1.0.0-beta.5)
- **Build Filtering** - Cleaner build output by filtering non-actionable Xcode warnings
- **Mobile Scrolling** - Fixed scrolling issues on mobile web browsers

### 🔧 Infrastructure
- **Single Source of Truth** - Web version now automatically reads from package.json at build time
- **Version Sync Validation** - Build process validates version consistency between macOS and web
- **CI Optimization** - Tests only run when relevant files change (iOS/Mac/Web)
- **E2E Test Suite** - Comprehensive Playwright tests for web frontend reliability

### 🐛 Bug Fixes
- **No-Auth Mode** - Fixed authentication-related error messages when running with `--no-auth`
- **Log Streaming** - Fixed frontend log streaming in no-auth mode
- **Test Reliability** - Resolved flaky tests and improved test infrastructure

### 📝 Developer Experience
- **Release Documentation** - Enhanced release process documentation with version sync requirements
- **Test Improvements** - Better test fixtures, helpers, and debugging capabilities
- **Error Suppression** - Cleaner logs when running in development mode

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

- We replaced HTTP Basic auth with System Login or SSH Keys for better security.
- 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

## [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

## [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

## [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

### 📄 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