Commit graph

197 commits

Author SHA1 Message Date
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
Peter Steinberger
b5cf38f7e7 Fix flaky logs API test in CI
The test was checking for log file existence before any logs were written.
Added a log write before checking file info to ensure the file exists.
2025-07-02 00:00:53 +01:00
Peter Steinberger
a8dd9af10a Reduce terminal title update frequency to once per second
- Change periodic activity update interval from 500ms to 1000ms
- Ensure all title updates go through debouncer (including session name changes)
- Prevents excessive terminal updates while maintaining responsiveness
2025-07-02 00:00:53 +01:00
Peter Steinberger
c2f0b79cec Fix logs API test by including lastModified in all responses
- Add lastModified: null when log file doesn't exist
- Ensures consistent API response structure
2025-07-02 00:00:53 +01:00
Peter Steinberger
a6488b5ad9 Improve session display and button state management
- Fix menu bar button highlighting using state instead of highlight()
- Extract process name from command path for cleaner display
- Show session name next to command with dash separator
- Fix corner radius on new session dialog
- Make Create button darker green for better visibility
- Update editing to properly handle session names
2025-07-02 00:00:53 +01:00
Peter Steinberger
f60bd2d5a0 Implement side-rounded menu borders for macOS menu bar
- Create custom SideRoundedRectangle shape with flat top/bottom borders
- Apply custom shape to both SwiftUI background and NSWindow mask layer
- Update CustomMenuContainer to use the new shape for consistent styling
- Maintain rounded corners only on left and right sides as requested

This gives the menu bar dropdown a more integrated appearance with the
menu bar while keeping the modern rounded aesthetic on the sides.
2025-07-02 00:00:53 +01:00
Luis Nell
f1f99be514 Add Apple Silicon Homebrew path check for VT tool
Updates CLIInstaller to check for the VT command-line tool in both:
- /usr/local/bin/vt (default/Intel Macs)
- /opt/homebrew/bin/vt (Apple Silicon Homebrew)

This ensures users who have installed VT via Homebrew on M1/M2 Macs
will see it as already installed in the welcome flow.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-01 23:42:51 +01:00
Billy Irwin
852078d024
fix: simplify Tailscale integration using local API (#184) 2025-07-01 23:36:59 +01:00
Peter Steinberger
49a263d406
Mac menu bar UI improvements and Tailscale fixes (#180) 2025-07-01 18:53:46 +01:00
Peter Steinberger
b452251a47
Improve Mac menu bar UI with better form styling and animations (#179) 2025-07-01 17:46:46 +01:00
Billy Irwin
cef2e6bf03
Add more debug logs for Tailscale integration (#178) 2025-07-01 09:13:55 -07:00
Peter Steinberger
a7d5648c78
feat: Powerful Mac menu bar with rich view and session tracking (#176) 2025-07-01 14:54:30 +01:00
Peter Steinberger
6e18fa94e9 fix: Remove debug print and fix PID display for nil values
- Remove debug print statement from MenuBarView
- Fix SessionDetailView to display 'N/A' instead of '0' for nil PIDs
- Prevents confusion with actual PID 0 system process
2025-07-01 13:41:09 +01:00
Peter Steinberger
6c33e16565 feat: Add activity status display to menu bar session entries
- Display activity status (e.g., 'Browsing', 'Considering') below each session
- Show status inline with working directory path, separated by dot
- Match visual style from web frontend with orange status text
- Add compact path display with ~ for home directory
2025-07-01 13:41:09 +01:00
Peter Steinberger
4e5f100074 fix: Remove orphaned test files for non-existent modules
- Delete safe-pty-writer.test.ts and stream-analyzer.test.ts
- These tests were importing modules that no longer exist
- Fixes CI test failures
2025-07-01 13:41:09 +01:00
Peter Steinberger
dfe846cfce feat: Enhance macOS app session monitoring and UI
- Add debug logging for session fetching and status
- Display 'No sessions' text when session list is empty
- Add initial delay for auth token setup on app start
- Improve user feedback in menu bar interface
2025-07-01 13:41:09 +01:00
Peter Steinberger
bb272ce821 refactor: Simplify vt title implementation using fwd --update-title
- Add --update-title flag to fwd.ts for cleaner session title updates
- Replace complex bash/jq/python/sed logic with single fwd.ts call
- Leverage existing SessionManager for type-safe JSON handling
- Improve error handling and messaging
- Reorganize vt script to locate app path before processing commands

This eliminates the fragile bash JSON manipulation in favor of a
robust TypeScript implementation that reuses existing infrastructure.
2025-07-01 13:41:09 +01:00
Peter Steinberger
f6d529a1ab fix: Add error handling verification to vt title command
- Add proper error checking after session.json update
- Return appropriate exit codes on success/failure
- Improve error messaging for better debugging
2025-07-01 13:41:09 +01:00
Peter Steinberger
3fb5b463e8 fix: Security and reliability improvements for vt title
- Fix command injection vulnerability by using jq --arg for safe parameter passing
- Add Python fallback for systems without jq for safe JSON manipulation
- Improve sed fallback with proper escaping (last resort)
- Add debouncing (100ms) to file watcher to prevent rapid updates
- Add error handling for file watcher failures
- Clean up debounce timer on session cleanup
- Fix issue where lastSessionName wasn't properly tracked

Security fix prevents arbitrary command execution through malicious title strings.
Debouncing prevents performance issues from rapid file changes.
2025-07-01 13:41:09 +01:00
Peter Steinberger
a2d80f1fa3 test: Add comprehensive tests for vt title functionality
- Add error handling for 'vt title' when used outside a session
- Create unit tests for session.json watcher in PtyManager
- Add integration tests for vt title command with edge cases
- Test all 4 title modes (none, filter, static, dynamic)
- Test special characters, concurrent updates, and error scenarios
- Ensure proper cleanup of file watchers on session exit
2025-07-01 13:41:09 +01:00
Peter Steinberger
122253f947 feat: Add vt title command for dynamic session naming
- Add 'vt title' command that updates session names from within terminal sessions
- Implement file watcher in PtyManager to detect session.json changes
- Integrate title updates with all 4 title modes (none, filter, static, dynamic)
- Updates terminal titles in real-time when session name changes
- Works by directly editing session.json using the VIBETUNNEL_SESSION_ID env var

This allows users to easily set descriptive names for their terminal sessions,
making it easier to manage multiple VibeTunnel windows.
2025-07-01 13:41:09 +01:00
Peter Steinberger
6196c55ded
Display Claude status in Mac menubar (#160) 2025-07-01 11:21:28 +01:00
Peter Steinberger
3b3ded548b
Add Special Thanks section to About screen (#168) 2025-07-01 08:39:33 +01:00
devin-ai-integration[bot]
1d9112b9d3
Add SwiftLint and SwiftFormat Husky pre-commit hooks for iOS and mac (#165)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-07-01 06:24:59 +01:00
Igor Tarasenko
68ce36828a
fix: correct CLI installation verification after title mode args update (#153)
* fix: correct CLI installation verification after title mode args update (#153)

• Verify CLI install by matching `exec "$VIBETUNNEL_BIN" fwd` (ignores extra args) — resolves #152  
• Allow custom install dir (default `/usr/local/bin`); `vtTargetPath` now dynamic  
• Added regression + flaky-test fix
2025-07-01 07:09:43 +02:00
Peter Steinberger
4bdb21da41
chore: bump version to 1.0.0-beta.6 build 152 (#161)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-07-01 05:54:43 +01:00
Helmut Januschka
f2f5f5f67d
feat: add sleep prevention option to keep Mac awake during sessions (#146)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-06-30 11:13:21 +01:00
Peter Steinberger
884ca48dc3 docs: add release process improvements and quick reference guide
- Document lessons learned from v1.0.0-beta.5 release
- Add quick reference guide for common release tasks
- Include troubleshooting for timeout and appcast issues
- Clarify DMG notarization behavior (DMGs aren't notarized, only apps inside)
2025-06-30 07:48:14 +01:00
Peter Steinberger
8bc6e81549
feat: add comprehensive terminal title management (#124) 2025-06-30 04:15:09 +01:00
Billy Irwin
9cea558da8
feat: add Tailscale integration and improve networking documentation (#144)
- Add TailscaleService for status checking and integration
- Add Tailscale section in dashboard settings with status display
- Expand README with detailed setup guides for Tailscale and ngrok
- Show Tailscale hostname and IP when connected
- Add links to download/setup resources for both services

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-29 20:03:44 -07:00
Peter Steinberger
f1c0554644
Add Playwright E2E test framework (#120) 2025-06-30 02:51:21 +01:00
Billy Irwin
aeaecf9882
fix: handle missing .node-builds directory in build script (#142)
Check if .node-builds directory exists before attempting to find Node.js builds
to prevent errors when the directory hasn't been created yet.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-29 18:02:43 -07:00
Chris Reynolds
13b98308c9
fix: remove double shell-wrapping for aliases in vt script (#132) 2025-06-29 21:52:52 +01:00
Peter Steinberger
7f3fbe164a
feat: Add build output filtering to remove non-actionable warnings (#136) 2025-06-29 19:36:40 +01:00
Armin Ronacher
660880b396 Bring back the options for vt 2025-06-28 00:44:29 +02:00
Helmut Januschka
fc162ad55c
Prevent recursive VibeTunnel sessions (GitHub #95) (#104)
* Prevent recursive VibeTunnel sessions (GitHub #95)

Added detection and prevention of nested VibeTunnel sessions to avoid
recursive 'vt' command execution.

Changes:
- Set INSIDE_VIBETUNNEL and VIBETUNNEL_SESSION environment variables when creating PTY sessions
- Added check in vt script to detect if already inside a VibeTunnel session
- Shows helpful error message when recursive session is attempted

This prevents the confusing behavior where users could run 'vt' inside a
VibeTunnel session, creating nested terminal instances. Now users get a
clear error message explaining they're already in a VibeTunnel session.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Improve recursive session prevention based on PR feedback

- Consolidate to single environment variable VIBETUNNEL_SESSION_ID
- Add session ID for debugging purposes as requested
- Show session ID in error message for better user feedback
- Remove redundant environment variables (INSIDE_VIBETUNNEL, VIBETUNNEL_SESSION)

This addresses feedback from PR #104 to use a single, more informative
environment variable that serves both purposes: preventing recursion
and providing debugging information.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-27 21:05:36 +02:00
Peter Steinberger
c43bea3402 Prepare for 1.0.0-beta.4 release (build 114) 2025-06-27 02:06:18 +02:00
Peter Steinberger
c70330bcfd
Migrate to Microsoft node-pty v1.1.0-beta34 (#87) 2025-06-26 23:10:05 +02:00
Helmut Januschka
5a4b939564
Fix URL link detection for wrapped URLs on mobile terminals (#85)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-06-26 22:37:49 +02:00
Manuel Maly
328e000715
Split session view file (#89)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-06-26 21:15:07 +02:00
Peter Steinberger
875ed211b3 fix dashboard header separator line missing 2025-06-25 10:19:27 +02:00
Peter Steinberger
4cab4a735c fix welcome dialog spacing 2025-06-25 10:18:52 +02:00
Peter Steinberger
6db724c79b fixes window dismissal in welcome 2025-06-25 10:17:26 +02:00
Peter Steinberger
c3ad47baa4 fish hashing 2025-06-25 05:14:16 +02:00
Peter Steinberger
d1ed650261 igore file mod dates, just size 2025-06-25 04:46:04 +02:00
Peter Steinberger
f766efad82 improve stability 2025-06-25 04:32:21 +02:00
Peter Steinberger
df354e4c2d prep b4 2025-06-25 03:52:15 +02:00
Peter Steinberger
b59a3808d7 unfuck build 2025-06-25 03:36:20 +02:00
Peter Steinberger
566e7f62b3 fix mac 2025-06-25 02:11:51 +02:00
Peter Steinberger
d5f6919f9c Update dangerous NSException API 2025-06-25 02:11:51 +02:00