Commit graph

1796 commits

Author SHA1 Message Date
Peter Steinberger
e9ef227f8f Always show port kill button 2025-08-02 18:15:22 +02:00
Peter Steinberger
8c8e267ea6 Update macOS version to beta 16
💘 Generated with Crush
Co-Authored-By: Crush <crush@charm.land>
2025-08-02 18:01:24 +02:00
Peter Steinberger
36b2d838a5 Suppress debug output for worktree commands
Extend SUPPRESS_OUTPUT logic to include vt follow, vt unfollow, and vt git event
commands when using custom VT folder, matching the behavior of vt status and vt title.
2025-08-02 17:53:03 +02:00
Peter Steinberger
af55b061cb ignore grok 2025-08-02 17:50:47 +02:00
Peter Steinberger
b868653613 Update version from beta.15.1 to beta.16
- Update package.json to 1.0.0-beta.16
- Update package.npm.json to 1.0.0-beta.16
- Update mac/VibeTunnel/version.xcconfig to 1.0.0-beta.16
- Update ios/VibeTunnel/version.xcconfig to 1.0.0-beta.16
2025-08-02 17:50:47 +02:00
Peter Steinberger
dd4db5ab07
Fix npm package issues and update dependencies for beta 15.2 (#494) 2025-08-02 17:48:31 +02:00
Peter Steinberger
1ee6d50bab fix: Git repository integration test - properly set up Git repository state
- Fix the failing test 'should include Git info in session creation request'
- Test now properly calls checkGitRepository() to populate currentBranch and selectedBaseBranch
- Ensures Git info is correctly included in session creation requests when repository is detected
- Fixes test by making selectedBaseBranch match currentBranch to avoid branch switching warning path

Test was failing because gitRepoPath was undefined in request body, now properly includes Git repo path and branch information.
2025-08-02 03:02:19 +02:00
Peter Steinberger
50f5de34be Bump version to 1.0.0-beta.16
- Update macOS marketing version to 1.0.0-beta.16
- Increment build number to 206
- Update web package.json version to 1.0.0-beta.16
- Prepare for next beta release
2025-08-02 02:41:05 +02:00
Peter Steinberger
2b59207828 Update appcast for v1.0.0-beta.15
- Add new entry for beta.15 with build number 205
- Include Sparkle EdDSA signature for secure updates
- Add comprehensive changelog with major features:
  - Push notifications with Claude detection
  - Git worktree management and follow mode
  - CJK input support and terminal multiplexer integration
  - Quick session switching with keyboard shortcuts
- Include contributor acknowledgments
2025-08-02 02:22:44 +02:00
Peter Steinberger
c22eeb9cd8 Fix NotificationPermissionPageView initializer availability
- Remove DEBUG-only restriction on initializer
- Allows Preview code to work in all build configurations
- Fixes compilation error in release builds
2025-08-02 02:16:44 +02:00
Peter Steinberger
464d9b9923 Fix project and scheme names in build scripts
- Update all references from VibeTunnel-Mac.xcodeproj to VibeTunnel.xcodeproj
- Update scheme references from VibeTunnel-Mac to VibeTunnel
- These changes align the scripts with the actual project structure
2025-08-02 02:15:33 +02:00
Peter Steinberger
6986771824 Clean up lots of follow mode features 2025-08-02 02:09:42 +02:00
Peter Steinberger
4c4af17640 Update quickstart commands: replace python3 and pnpm run dev with opencode and crush
- Replace python3 with opencode in position 3
- Replace pnpm run dev with crush in position 4
- Keep claude and gemini in positions 1-2
- Move zsh and node to positions 5-6
- Update both Mac (ConfigManager.swift) and Web (config.ts) configurations
- Maintain synchronization between platforms
2025-08-02 01:23:04 +02:00
Peter Steinberger
b8c8edc14b ignore crush 2025-08-02 01:17:28 +02:00
Peter Steinberger
445f6c7449 docs: Add complete contributor list for beta.15 release
- Add Lachlan Donald (@lox) for Tailscale Serve integration (#472)
- Add Diego Petrucci (@diegopetrucci) for push notifications onboarding (#474)
- Credit Tao Xu (@hewigovens) for CJK IME input support (#447, #480)
- Update Mac about screen with new contributors
- Add thank you message to contributors section

This ensures all contributors since beta.14 are properly credited
for their valuable contributions to VibeTunnel.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 01:04:46 +02:00
Peter Steinberger
f29509ad5e chore: Update gitignore and remove outdated docs
- Add .aider* to gitignore
- Remove outdated web/docs/tailwind.md documentation

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 00:51:29 +02:00
Peter Steinberger
84956a73d6 feat: Add Justin Williams to contributors list in About screen
- Add @jblwilliams as new contributor for removing unused ScreenCaptureKit import
- Maintains alphabetical order at end of contributor list

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 00:49:59 +02:00
Peter Steinberger
19fc8217f6 docs: Update CHANGELOG for beta.15 release
- Merge beta.16 content into beta.15 as post-release updates
- Update release date from July 31 to August 2, 2025
- Add PR/issue references to all major features and fixes
- Add contributors section with new and existing contributors
- Include PR #483 (notification fix), #484 (iOS keyboard), #486 (unused import)
- Include PR #489 (blinking cursor fix in binary terminal mode)
- Reference major feature PRs: #452 (worktree), #475 (notifications), #480 (CJK), #472 (Tailscale), #460 (tmux)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 00:49:59 +02:00
Helmut Januschka
2c5bad2ee1 Fix blinking cursor in binary terminal mode
- Remove inline background-color style that was overriding CSS animation
- Fix cursor position calculation by removing client-side viewport truncation
- Add session status check to hide cursor when session is exited
- Update cursor CSS with visible green color and proper blinking animation

The server already sends only the visible terminal area, so additional
client-side truncation was causing incorrect cursor position mapping.
2025-08-02 00:24:31 +02:00
Justin Williams
cded6b2bf9 chore: Remove unused ScreenCaptureKit import from ServerManager 2025-08-02 00:23:14 +02:00
Peter Steinberger
459cf52ef6 Ensure tailscale can be disabled when not running 2025-08-01 00:45:22 +02:00
Peter Steinberger
8814f2623f update changelog for b15 2025-08-01 00:44:39 +02:00
Peter Steinberger
26a1ef4575 fix ci after project rename 2025-07-31 16:17:44 +02:00
Peter Steinberger
ac661f1924 Make vt self-healing 2025-07-31 16:10:51 +02:00
Peter Steinberger
ac5c71c014 fix: Add missing sessionViewElement property to LifecycleEventManager 2025-07-31 16:08:54 +02:00
Peter Steinberger
bed01f67c2 Rename Vibetunnel-Mac to Vibetunnel 2025-07-31 15:06:10 +02:00
Peter Steinberger
ffa5c42dc1 fix: Update ConfigService test to match actual default notification preferences 2025-07-31 15:01:57 +02:00
Alex A. Fallah
4523a21f6c
Fix Test Notification Button to VibeTunnel Mac App (#483)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-31 14:57:17 +02:00
Helmut Januschka
32935878d8
Fix iOS keyboard dismissal issue (#484)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-31 05:41:09 +02:00
Peter Steinberger
e9a1ce0555 warning fixes 2025-07-31 02:21:18 +02:00
Peter Steinberger
fe2f30ed73 Fix Git worktree UI: hide Follow button for current worktree 2025-07-30 18:33:51 +02:00
Peter Steinberger
6f16228370 Fix checkbox visibility issue after Tailwind v4 migration
- Remove conflicting CSS rules and simplify checkbox styling
- Use native checkbox appearance with minimal styling
- Add accent-color for theme consistency
- Remove unnecessary refactoring comments
2025-07-30 18:14:03 +02:00
Peter Steinberger
acb0069759 docs: Add comprehensive logging documentation to README
- Added configuration profile as the recommended method for unrestricted logging
- Documented all methods to view unredacted logs on macOS
- Added explanation of why Apple shows <private> in logs
- Included vtlog script usage examples
- Reorganized logging section for better clarity
2025-07-30 18:07:49 +02:00
Peter Steinberger
c0a02935fa fix: Remove obsolete sh.vibetunnel.vibetunnel-mobile bundle ID
- Updated iOS bundle identifier from sh.vibetunnel.vibetunnel-mobile to sh.vibetunnel.ios
- Removed duplicate entry in logging configuration profile
- Updated documentation to reflect the simplified bundle ID structure
2025-07-30 18:05:57 +02:00
Peter Steinberger
eab1e6c962 feat: Update bundle identifiers and add logging configuration profile
- Updated macOS test bundle IDs to use consistent naming pattern:
  - sh.vibetunnel.vibetunnelTests → sh.vibetunnel.vibetunnel.tests
  - sh.vibetunnel.vibetunnelTests.debug → sh.vibetunnel.vibetunnel.tests.debug
- Updated iOS test bundle ID:
  - sh.vibetunnel.VibeTunnelTests-Mobile → sh.vibetunnel.ios.tests
- Fixed iOS logging to use sh.vibetunnel.ios subsystem consistently
- Created logging configuration profile in apple/logging/ to enable full debug logging
- Configuration profile covers all VibeTunnel subsystems and bundle IDs
- Updated documentation to reflect new bundle identifiers and logging setup
2025-07-30 18:04:32 +02:00
Peter Steinberger
97d51fbe8d add minimal agent file for amp 2025-07-30 13:32:46 +02:00
Peter Steinberger
a35bd5c7e9 Playwright performance 2025-07-30 13:04:59 +02:00
Peter Steinberger
78bd4d79e9 Tailwind 4 migration 2025-07-30 13:04:30 +02:00
Peter Steinberger
5611b58789 docs: add Tailwind CSS v4 migration guide 2025-07-30 10:33:22 +02:00
Peter Steinberger
5621077c09 chore: update dependencies to latest versions
- Web: zod 4.0.14, @biomejs/biome 2.1.3, @testing-library/dom 10.4.1
- Mac: swift-log 1.6.4, SwiftFormat 0.57.2, and transitive dependencies
- iOS: all dependencies already up to date
- Reverted Tailwind CSS v4 update due to breaking changes
2025-07-30 10:30:50 +02:00
Peter Steinberger
61e487fff3 fix: handle tmux session detachment gracefully instead of kill errors
- Add detection for tmux attachment sessions (commands containing 'tmux attach' or names starting with 'tmux:')
- Implement smart detachment using Ctrl-B,d sequence instead of SIGTERM
- Add fallback to :detach-client command if initial detach fails
- Update API responses to distinguish between 'killed' and 'detached' sessions
- Prevents 500 errors when trying to kill the last tmux session

This allows users to cleanly exit VibeTunnel tmux attachments without destroying the underlying tmux session, which can then be reattached later.
2025-07-30 03:50:32 +02:00
Peter Steinberger
12ef75386c fix: Update Mac app to use path-based URLs for sessions
The Mac app was still using the old query parameter format (?session=id)
while the web app expects path-based URLs (/session/id). This caused
sessions not backed by windows to open with the wrong URL format.

Updated DashboardURLBuilder to generate path-based URLs matching the
web app's routing expectations.
2025-07-30 03:44:07 +02:00
Peter Steinberger
e5a1bafd7c
feat: add CJK IME input support with improved Z-index management (#480) 2025-07-30 03:13:26 +02:00
Peter Steinberger
d9f6796b66 Improve type safety for Tailscale authentication
- Add explicit TailscaleHeaders and TailscaleUser interfaces
- Export TailscaleUser type for use across modules
- Improve type-safe header access in getTailscaleUser function
- Fix auth middleware to properly skip /api/auth endpoints
- Update auth routes to use the exported types
2025-07-30 02:33:48 +02:00
Lachlan Donald
745f5090bb
feat: add Tailscale Serve integration with automatic authentication (#472)
* feat: add secure Tailscale Serve integration support

- Add --enable-tailscale-serve flag to bind server to localhost
- Implement Tailscale identity header authentication
- Add security validations for localhost origin and proxy headers
- Create TailscaleServeService to manage tailscale serve process
- Fix dev script to properly pass arguments through pnpm
- Add comprehensive auth middleware tests for all auth methods
- Ensure secure integration with Tailscale's reverse proxy

* refactor: use isFromLocalhostAddress helper for Tailscale auth

- Extract localhost checking logic into dedicated helper function
- Makes the code clearer and addresses review feedback
- Maintains the same security checks for Tailscale authentication

* feat(web): Add Tailscale Serve integration support

- Add TailscaleServeService to manage background tailscale serve process
- Add --enable-tailscale-serve and --use-tailscale-serve flags
- Force localhost binding when Tailscale Serve is enabled
- Enhance auth middleware to support Tailscale identity headers
- Add isFromLocalhostAddress helper for secure localhost validation
- Fix dev script to properly pass CLI arguments through pnpm
- Add comprehensive auth middleware tests (17 tests)
- Use 'tailscale serve reset' for thorough cleanup

The server now automatically manages the Tailscale Serve proxy process,
providing secure HTTPS access through Tailscale networks without manual
configuration.

* feat(mac): Add Tailscale Serve toggle in Remote Access settings

- Add 'Enable Tailscale Serve Integration' toggle in RemoteAccessSettingsView
- Pass --use-tailscale-serve flag from both BunServer and DevServerManager
- Show HTTPS URL when Tailscale Serve is enabled, HTTP when disabled
- Fix URL copy bug in ServerInfoSection for Tailscale addresses
- Update authentication documentation with new integration mode
- Server automatically restarts when toggle is changed

The macOS app now provides a user-friendly toggle to enable secure
Tailscale Serve integration without manual configuration.

* fix(security): Remove dangerous --allow-tailscale-auth flag

- Remove --allow-tailscale-auth flag that allowed header spoofing
- Remove --use-tailscale-serve alias for consistency
- Keep only --enable-tailscale-serve which safely manages everything
- Update all references in server.ts to use enableTailscaleServe
- Update macOS app to use --enable-tailscale-serve flag
- Update documentation to remove manual setup mode

The --allow-tailscale-auth flag was dangerous because it allowed users to
enable Tailscale header authentication while binding to network interfaces,
which would allow anyone on the network to spoof the Tailscale headers.

Now there's only one safe way to use Tailscale integration: --enable-tailscale-serve,
which forces localhost binding and manages the proxy automatically.

* fix: address PR feedback from Peter and Cursor

- Fix Promise hang bug in TailscaleServeService when process exits with code 0
- Move tailscaleServeEnabled string to AppConstants.UserDefaultsKeys
- Create TailscaleURLHelper for URL construction logic
- Add Linux support to TailscaleServeService with common Tailscale paths
- Update all references to use centralized constants
- Fix code formatting issues

* feat: Add Tailscale Serve status monitoring and error visibility

* fix: Correct pass-through argument logic for boolean flags and duplicates

- Track processed argument indices instead of checking if arg already exists in serverArgs
- Add set of known boolean flags that don't take values
- Allow duplicate arguments to be passed through
- Only treat non-dash arguments as values for non-boolean flags

This fixes issues where:
1. Boolean flags like --verbose were incorrectly consuming the next argument
2. Duplicate flags couldn't be passed through to the server

* fix: Resolve promise hanging and orphaned processes in Tailscale serve

- Add settled flag to prevent multiple promise resolutions
- Handle exit code 0 as a failure case during startup
- Properly terminate child process in cleanup method
- Add timeout for graceful shutdown before force killing

This fixes:
1. Promise hanging when tailscale serve exits with code 0
2. Orphaned processes when startup fails or cleanup is called

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-30 02:30:10 +02:00
Helmut Januschka
dbba6127df
Add tmux integration to VibeTunnel (#460)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-30 02:25:54 +02:00
Peter Steinberger
40f4a6f413 Suppress VT wrapper output for title and status commands
- Add early command detection to skip version output for specific commands
- Commands that now run silently: vt title, vt status, vt version, vt --version
- Fixes ugly text wrapping in Claude Code when using vt title
- Preserves color information by eliminating wrapper output
- Requires Mac app rebuild to take effect
2025-07-30 00:28:12 +02:00
Peter Steinberger
10cbfe260d Add repo prompt docs 2025-07-29 15:59:32 +02:00
Peter Steinberger
5d49693573 Suppress socket disconnect error on normal Claude Code exit
- Add isExitingNormally flag set during onExit callback
- Check for common normal disconnect errors (EPIPE, ECONNRESET, Unknown error)
- Log as debug instead of error for normal disconnects
- Prevents misleading error message when exiting Claude Code normally
2025-07-29 15:30:35 +02:00
Peter Steinberger
7a69ccb711 Remove 'Using binary:' prefix from vt output
Simplify output to just show the path without redundant label
2025-07-29 15:26:26 +02:00