# Changelog

## [1.0.0-beta.5] - upcoming

### 🎯 Features

**Real-time Claude Activity Monitoring**
- **See Claude's live status directly in the VibeTunnel sidebar** - Know exactly what Claude is "Thinking", "Crafting", or "Searching" with real-time progress indicators showing duration and token counts.
- **Activity status persists across browser refreshes** - Works seamlessly with external terminal sessions.
- **Faster sidebar updates** - Sidebar now refreshes every second (previously 3 seconds) for more responsive activity tracking.

**Comprehensive Terminal Title Management**
- **Dynamic, context-aware terminal titles** - Terminal windows display your current directory, running command, and live activity status.
- **Choose your title mode** - Select between static titles (path + command) or dynamic titles that include real-time activity indicators.
- **Automatic directory tracking** - Terminal titles update automatically when you change directories with `cd` commands.
- **Session name integration** - Custom session names are reflected in terminal titles for better organization.

### 🌏 International Input Support
- **Fixed Japanese/CJK input duplication on iOS** - Typing Japanese, Chinese, or Korean text on mobile browsers no longer produces duplicate characters. IME composition is now handled correctly.

### ⌨️ Enhanced Terminal Experience
- **Shell aliases now work properly** - Commands like `claude`, `ll`, and other custom aliases from your `.zshrc`/`.bashrc` are now recognized when launching terminals through VibeTunnel.
- **Prevented recursive VibeTunnel sessions** - Running `vt` inside a VibeTunnel session now shows a helpful error instead of creating confusing nested sessions.
- **Fixed critical race condition in terminal output** - Terminal sessions now handle high-volume output without corruption or out-of-order text.

### 🤖 Claude Code Integration
- **Added Shift+Tab support** - Full support for Claude Code's mode switching (regular/planning/autoaccept modes) on both desktop and mobile.
- **Mobile quick keyboard enhancement** - Added dedicated Shift+Tab button (⇤) to the mobile keyboard for easy mode switching.
- **Fixed keyboard input conflicts** - Typing in Monaco Editor or other code editors no longer triggers unintended shortcuts.

### 🚀 Quick Start Enhancements
- **Added Gemini as quickstart entry** - Google's Gemini AI assistant is now available as a one-click option when creating new terminal sessions, alongside Claude and other common commands.

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

### 🔐 Security & Authentication
- **Comprehensive authentication system** - Choose between password-only, SSH key-only, both, or no authentication based on your security needs.
- **Browser-based SSH key management** - Generate, import, and manage Ed25519 SSH keys directly in your browser. Keys are encrypted and stored locally.
- **24-hour session tokens** - Stay logged in longer with JWT-based authentication.
- **macOS profile integration** - See your system profile picture on the login screen.

### 🎨 Revolutionary UI Design
- **Arc-style vertical tabs** - Modern sidebar interface inspired by Arc browser makes better use of widescreen displays.
- **Persistent session management** - All active sessions visible at a glance in a resizable sidebar (240-600px).
- **Mobile-optimized interface** - Responsive design with slide-out sidebar and proper touch targets.
- **Smooth animations** - Polished transitions and no layout shifts for a premium feel.

### 📱 Mobile Terminal Excellence
- **Dedicated terminal keyboard** - Custom on-screen keyboard with Escape, Tab, arrows, function keys, and common terminal shortcuts (Ctrl+C, Ctrl+Z, etc.).
- **Essential special characters** - Quick access to pipes, backticks, tildes, and brackets without keyboard switching.
- **Fixed wrapped URL detection** - Long URLs that span multiple lines are now properly clickable on mobile.
- **Fixed terminal scrolling on mobile** - Touch scrolling now works properly with the QuickKeyboard active. The hidden input no longer blocks scroll gestures ([#129](https://github.com/amantus-ai/vibetunnel/pull/129)).

### ⚡ Performance & Reliability
- **Upgraded to Microsoft node-pty v1.1.0** - Latest terminal emulation library for better performance and compatibility.
- **Fixed large paste operations** - Paste massive logs or code files without the terminal hanging.
- **Improved backpressure handling** - Terminal gracefully manages data flow during high-volume operations.
- **Ultra-low-latency WebSocket input** - New WebSocket-based input system eliminates keystroke lag with direct PTY writes. Enable with `?socket_input` URL parameter ([#115](https://github.com/amantus-ai/vibetunnel/pull/115)).

### 🗂️ File Management
- **Symlink support in file browser** - Navigate through symbolic links with visual indicators showing link targets.
- **Better directory detection** - File browser correctly identifies whether symlinks point to files or directories.

### 🐛 Bug Fixes & Improvements
- **Fixed session status detection** - Terminal status (running/exited) now updates reliably.
- **Eliminated double button rendering** - UI cleanup for cleaner interface.
- **Fixed Monaco editor integration** - Code editing now works smoothly within VibeTunnel.
- **Improved error handling** - Better error messages and recovery from edge cases (including fixes for Terminal.app)
- **Enhanced test infrastructure** - Comprehensive test suite for improved stability.
- **Fixed URL detection for numbered lists** - Terminal no longer incorrectly highlights numbered lists (like "1. Item") as clickable URLs ([#122](https://github.com/amantus-ai/vibetunnel/pull/122)).
- **Fixed mobile header truncation** - Headers now display correctly on mobile devices without being cut off ([#117](https://github.com/amantus-ai/vibetunnel/pull/117)).

### 🔧 Developer Experience
- **No-auth mode for development** - Run VibeTunnel without authentication for local development.
- **Improved logging** - Better debugging information for troubleshooting.
- **Alias resolution for commands** - Terminal commands resolve through proper shell initialization.
- **Dynamic home directory display** - Cross-platform path formatting with proper ~/ shorthand for home directories on macOS, Linux, and Windows ([#117](https://github.com/amantus-ai/vibetunnel/pull/117)).
- **Enhanced CI/CD workflows** - Parallel code quality checks and better handling of external contributor permissions ([#117](https://github.com/amantus-ai/vibetunnel/pull/117)).

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