Commit graph

928 commits

Author SHA1 Message Date
Mario Zechner
a84e43dadc fix: Prevent duplicate broadcasts in StreamWatcher
Add deduplication logic to prevent the same line from being broadcast
twice when both direct notification and file watcher fire. Uses a
simple hash and 50ms time window to detect duplicates.

This fixes the double input issue in server-created sessions.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 20:21:03 +02:00
Mario Zechner
fbc8954d39 feat: Optimize file watching for lower latency streaming
- Add platform-specific optimized file watcher
  - Linux: inotify with rapid polling after changes
  - macOS: FSEvents + periodic checks to overcome batching
  - Windows: ReadDirectoryChangesW with debouncing
- Add direct in-process notifications via StreamNotifier
  - Bypasses file watching for same-process sessions
  - Near-instant latency for server-created sessions
- Update StreamWatcher to use both mechanisms
  - Primary: Direct notifications (microsecond latency)
  - Fallback: Optimized file watching (for fwd.ts)
- Add latency and stress test scripts

This should significantly reduce streaming latency, especially
for sessions created by the server process.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 20:18:57 +02:00
Mario Zechner
912909c68f Ignore Local.xcconfig 2025-06-22 19:21:38 +02:00
Mario Zechner
94ed322e83 fix: Ensure vibetunnel server dies when Mac app is killed
- Add synchronous wait in applicationWillTerminate to ensure server stops before app exits
- Implement parent process monitoring in server spawn script
- Server now monitors parent PID and self-terminates if parent dies
- Handles both graceful shutdown and force-quit scenarios

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 19:17:38 +02:00
Mario Zechner
aa846cceea feat: Add version info to fwd.ts startup logs
- Display version number inline with session started message
- Show build date and git commit in session info
- Import version details from version.ts

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 18:50:49 +02:00
Peter Steinberger
a49ecbc1a7 fix: Fix CI issues - iOS build/test and TypeScript linting
- Fix iOS CI to use correct workspace and scheme names
- Update iOS test script to use workspace instead of project
- Fix all TypeScript 'any' type warnings by adding proper types
- Update build destination format for Xcode 16 compatibility
2025-06-22 17:09:59 +02:00
Peter Steinberger
932beff906 Work on custom node installer 2025-06-22 16:46:08 +02:00
Armin Ronacher
f1288417b1 Added real icon to web ui 2025-06-22 16:10:27 +02:00
Peter Steinberger
47040e7ff8 fix port formatting 2025-06-22 16:04:52 +02:00
Peter Steinberger
87bc8e9f70 Better name for action 2025-06-22 16:04:21 +02:00
Peter Steinberger
0e8b0d199a Hack Warp Enter 2025-06-22 16:04:15 +02:00
Peter Steinberger
4fb6e925ac delete garbage schemes 2025-06-22 16:04:06 +02:00
Peter Steinberger
c6b571ecc9 Change local signing explainer 2025-06-22 15:55:02 +02:00
Peter Steinberger
0aa728f3f5 Populate dock menu 2025-06-22 15:55:02 +02:00
Peter Steinberger
9f8e45c184 Hide window hack from dock 2025-06-22 15:55:02 +02:00
Peter Steinberger
1ffabb048b Add helper for differrent vt name 2025-06-22 15:55:02 +02:00
Peter Steinberger
b58524750b ensure dev team is picked up 2025-06-22 15:55:02 +02:00
Peter Steinberger
caaee6b114 local needs to be local 2025-06-22 15:55:02 +02:00
Peter Steinberger
8bcaf54ed1 remove empty stack 2025-06-22 15:55:02 +02:00
Peter Steinberger
81b766d0d6 Special handling for warp 2025-06-22 15:55:02 +02:00
Peter Steinberger
7013e41b6a fixes spacing 2025-06-22 15:55:02 +02:00
Armin Ronacher
b03a9d50d6 Last resize wins 2025-06-22 15:23:24 +02:00
Peter Steinberger
e5d2564cb9 Revert "fix: Remove workspace schemes - use project schemes via workspace"
This reverts commit 22f2d2bfca.
2025-06-22 15:21:01 +02:00
Peter Steinberger
22f2d2bfca fix: Remove workspace schemes - use project schemes via workspace 2025-06-22 15:18:13 +02:00
Peter Steinberger
3bef6f82b2 check in schemes 2025-06-22 15:17:31 +02:00
Peter Steinberger
6bb7a09565 fix: Update gitignore to allow all xcshareddata scheme files 2025-06-22 15:14:21 +02:00
Peter Steinberger
13c2085388 fix: Add workspace scheme files for CI 2025-06-22 15:12:25 +02:00
Peter Steinberger
32436df59e Update CI and build scripts for project rename 2025-06-22 15:11:56 +02:00
Armin Ronacher
46805a971a Allow real terminal to resize 2025-06-22 15:07:25 +02:00
Peter Steinberger
fda31b1ed8 debug: Add more debugging to CI build steps 2025-06-22 15:07:12 +02:00
Peter Steinberger
4ecb9ebb8c fix: Add -project flag to xcodebuild commands in CI 2025-06-22 15:02:46 +02:00
Peter Steinberger
7d447cf542 fix: Use project files directly in CI instead of workspace 2025-06-22 15:00:18 +02:00
Peter Steinberger
323e1944ac fix: Resolve dependencies at project level first in CI 2025-06-22 14:57:51 +02:00
Mario Zechner
862fc86c72 fix: eliminate lag in forwarded sessions by forcing immediate disk sync
- Add fs.fsyncSync after each asciinema event write to trigger file watchers immediately
- Keep socket connections alive with setKeepAlive for better performance
- Add response flushing in SSE streams to prevent buffering
- Fix the ~100ms input lag that was affecting forwarded sessions vs server-created sessions

The lag was caused by buffered writes not immediately triggering file system watchers.
Forwarded sessions now feel as responsive as server-created sessions.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 14:56:40 +02:00
Peter Steinberger
eb0f9f4d77 fix: Use correct iOS destination in CI workflows 2025-06-22 14:54:51 +02:00
Peter Steinberger
9329952e8e debug: Add workspace debugging steps to CI workflows 2025-06-22 14:52:04 +02:00
Peter Steinberger
1d10bee5ca fix: Use correct scheme name VibeTunnel-Mac in CI 2025-06-22 14:48:35 +02:00
Peter Steinberger
8e527c3c97 improve custom node docs 2025-06-22 14:46:34 +02:00
Peter Steinberger
d54fd23dca Add note about local ID 2025-06-22 14:37:44 +02:00
Peter Steinberger
6804e8990c Add section about macOS permissions 2025-06-22 14:35:49 +02:00
Peter Steinberger
17758c2a40 Move files to apple subdir 2025-06-22 14:35:42 +02:00
Peter Steinberger
9ddb61576d fix: Update CI workflows to use global Apple workspace
- Update mac.yml to use global VibeTunnel.xcworkspace instead of mac/VibeTunnel.xcworkspace
- Update ios.yml to use global VibeTunnel.xcworkspace with VibeTunnel-iOS scheme
- Fix Node.js workflow to use standard GitHub Actions runners (ubuntu-latest) and actions/setup-node@v4
- Use xcodebuild test instead of swift test for proper workspace testing support
- Remove unnecessary cd commands since workspace is at root level

This fixes CI failures after the global Apple workspace was introduced.
2025-06-22 14:33:13 +02:00
Peter Steinberger
a675daae94 Add global Apple workspace 2025-06-22 14:27:38 +02:00
Mario Zechner
b8405b1ff5 fix: remove debug logging from cli.ts
Remove verbose module loading debug logs that were cluttering the output
when running fwd command.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 14:21:34 +02:00
Mario Zechner
4a5052f425 refactor: improve PTY manager cleanup and fwd.ts architecture
- Remove global exit handlers from PTY manager, add clean shutdown() method
- Use file watching approach for control pipes on all platforms (no FIFO)
- Simplify fwd.ts - control pipe and stdin forwarding handled by PTY manager
- Add forwardToStdout and onExit options to createSession
- Add proper TypeScript types to PtySession interface (no more "as any")
- Clean up logging throughout, keep only essential messages
- Add colorful output with chalk for session start/end messages
- Fix hanging process issue by properly unreferencing file watchers
- Update spec.md to reflect architectural changes

This makes the shutdown process predictable and fixes the hanging echo command issue.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-22 14:16:06 +02:00
Peter Steinberger
7e69ea1409 Add comments for native version mismatch 2025-06-22 13:45:19 +02:00
Peter Steinberger
1d2d6cee3c bugfix: clean session was not working in all cases 2025-06-22 13:44:39 +02:00
Peter Steinberger
82b9d65d8f feat: Add Volta support to Node.js detection
- Add Volta path detection in build scripts
- Update install instructions to include Volta option
- Ensure both NVM and Volta users are supported
2025-06-22 11:53:15 +02:00
Peter Steinberger
180caf7e81 Add logic to use custom node compiler 2025-06-22 11:53:15 +02:00
Peter Steinberger
dbe280a68e add custom node folder to ignore 2025-06-22 11:53:00 +02:00