vibetunnel/mac/CHANGELOG.md
Peter Steinberger 42021bb514 Fix inconsistent button state management
- Remove all uses of deprecated highlight() method in CustomMenuWindow
- Consistently use state property for NSStatusBarButton management
- Update StatusBarMenuManager to reset button state when menu state is .none
- Fix concurrency issues in CustomMenuWindow frame observer
- Ensure button state is properly managed throughout menu lifecycle

This fixes the issue where the button could display inconsistent visual states
or get stuck due to conflicting approaches between highlight() and state.
2025-07-02 00:00:53 +01:00

13 KiB

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

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

📄 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