Commit graph

734 commits

Author SHA1 Message Date
Peter Steinberger
4e55c98f10 add monitor 2025-06-20 17:45:30 +02:00
Peter Steinberger
d702d1c390 update ios feature list 2025-06-20 17:45:15 +02:00
Peter Steinberger
891e184bb2 Improve padding for About 2025-06-20 16:55:54 +02:00
Peter Steinberger
3fb4a1fac4 Remove double debug toggle 2025-06-20 16:55:47 +02:00
Peter Steinberger
b669b63fc9 redesign new session dialog 2025-06-20 16:54:09 +02:00
Peter Steinberger
d1ecdaac8e improve network monitor 2025-06-20 16:35:45 +02:00
Peter Steinberger
cfc0c9d505 better feature party with node 2025-06-20 16:35:28 +02:00
Peter Steinberger
428cb37708 towards feature parity on iOS 2025-06-20 16:34:41 +02:00
Peter Steinberger
c6a9e84bec Add session details to menui 2025-06-20 16:34:22 +02:00
Peter Steinberger
d6d3a8f570 design tweaks 2025-06-20 16:34:10 +02:00
Peter Steinberger
6e2cd2abcd fix: Run gofmt on terminal files to fix formatting 2025-06-20 16:29:56 +02:00
Peter Steinberger
709330ccde fix: Add platform-specific terminal constants for cross-platform build
- Create terminal_darwin.go with macOS-specific TIOCGETA/TIOCSETA
- Create terminal_linux.go with Linux-specific TCGETS/TCSETS
- Create terminal_other.go with fallback for other Unix systems
- Update terminal.go to use platform-specific constants
2025-06-20 16:26:41 +02:00
Peter Steinberger
20395d6e09 fix: Fix CI test failures
- Fix hanging TestNewStdinWatcher by not calling Stop() without Start()
- Fix TestSession_Signal and TestSession_KillWithSignal by adding PID values
- Fix isProcessRunning to use syscall.Signal(0) instead of os.Signal(nil)
- Update websocket test to expect new 'Unknown WebSocket endpoint' error message
- Add timeout handling to websocket integration test
2025-06-20 16:21:27 +02:00
Peter Steinberger
ad60da3140 frontend design tweaks 2025-06-20 16:01:50 +02:00
Peter Steinberger
08bdc5ecb4 broader support for SetDoNotAllowColumnSet + tests 2025-06-20 16:01:38 +02:00
Peter Steinberger
eee508c36d towards featire parity on iOS 2025-06-20 16:01:04 +02:00
Peter Steinberger
70f5bf2c18 linting and test fixes 2025-06-20 15:43:06 +02:00
Peter Steinberger
b751dabd36 fix: Run gofmt to fix CI formatting errors
Applied gofmt to fix formatting issues in:
- pkg/api/websocket.go: Remove trailing whitespace
- pkg/session/pty.go: Remove trailing whitespace
2025-06-20 15:23:27 +02:00
Peter Steinberger
bec49c86e1 feat(cli): Improve CLI installation to copy both vt and vibetunnel
- Update CLIInstaller to install both vt script and vibetunnel binary
- Remove duplicate replacement dialog for better UX
- Check versions of both files and use lowest version for updates
- Prioritize finding vibetunnel in same directory as vt script
- Bump vt version to 1.0.6
- Add comprehensive CLI versioning documentation
2025-06-20 15:22:37 +02:00
Peter Steinberger
f96b63c77d Port node implementation details to go 2025-06-20 15:11:26 +02:00
Peter Steinberger
014bbb9e1e Prioritize same path first 2025-06-20 14:24:16 +02:00
Peter Steinberger
d0e92ea932 Tweaks from the rust implementation 2025-06-20 14:19:56 +02:00
Peter Steinberger
f4a21d8459 Ensure CLI installer also installs go binary 2025-06-20 14:11:41 +02:00
Peter Steinberger
eced88b829 remove problematic code for terminal resize? 2025-06-20 13:57:16 +02:00
Peter Steinberger
0b240c3ce9 up version 2025-06-20 13:57:01 +02:00
Peter Steinberger
04438cace2 Add vt help menu 2025-06-20 13:56:53 +02:00
Peter Steinberger
d87f1b6e10 fix: Add vt script to git and remove from .gitignore
The vt script was previously gitignored which caused build failures on fresh checkouts.
This script is required by the Xcode build process during the "Copy VT Script" phase.
2025-06-20 13:50:35 +02:00
Peter Steinberger
1dd8a55fc6 lint 2025-06-20 13:28:49 +02:00
Peter Steinberger
c704b2394a test: fix ServerManagerTests after server refactoring
- Remove references to deleted ServerProtocol and ServerMode
- Update tests to work with GoServer-only implementation
- Simplify mock server code that was commented out
- Update test expectations to match current server behavior
- Keep all critical tests functional with the new architecture
2025-06-20 13:22:15 +02:00
Peter Steinberger
a9fd66c291 refactor: major project restructuring - move macOS app to mac/ directory
- Move all macOS-specific code from root to mac/ directory
- Move app icons and assets to dedicated assets/ directory
- Update GitHub workflows for new structure
- Consolidate documentation files
- Clean up root directory for better multi-platform organization
2025-06-20 13:20:01 +02:00
Helmut Januschka
afee29f2e3
fix: add missing newlines to platform-specific select files (#36)
- Add proper newlines at end of select_darwin.go and select_linux.go
- Resolves gofmt formatting issues in CI
- Ensures all Go files follow standard formatting conventions
2025-06-20 12:56:14 +02:00
Peter Steinberger
697dadf167 disable app mover for debug 2025-06-20 12:54:52 +02:00
Peter Steinberger
a9ea5b7cd5 build fixes 2025-06-20 12:54:52 +02:00
Peter Steinberger
1ca7bbdfa5 cleanup 2025-06-20 12:54:51 +02:00
Peter Steinberger
a314fe8bf0 modernize mac code 2025-06-20 12:54:51 +02:00
Peter Steinberger
26413645b3 Suppress GNU folding constant warning 2025-06-20 12:54:51 +02:00
Helmut Januschka
766147073b
fix: update Go CI workflow and fix formatting issues (#35)
* fix: update Go CI workflow and fix formatting issues

- Update Go version from 1.21.x to 1.24.x to match go.mod requirements
- Fix Go module cache path to use linux/go.sum instead of **/go.sum
- Run gofmt on all Go files to fix formatting issues
- Fix benchmark files formatting
- Fix linux/pkg/api/server.go formatting

This resolves the GitHub Actions CI failures related to:
- Missing go.sum file (wrong cache path)
- Go version mismatch
- Code formatting violations

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

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

* fix: add platform-specific syscall.Select wrappers for Linux/Darwin compatibility

- Create select_linux.go: handles syscall.Select returning (n int, err error)
- Create select_darwin.go: handles syscall.Select returning (err error)
- Update select.go to use platform-agnostic selectCall function
- Resolves typecheck errors while maintaining compatibility on both platforms

Tested on both macOS and Linux targets successfully.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-20 12:53:31 +02:00
Helmut Januschka
f758426ff4
fix: resolve golangci-lint issues and format Go code (#34)
- Run go fmt on all Go files (10 files formatted)
- Fix 50+ errcheck issues by adding proper error handling
- Fix 3 staticcheck issues (empty branches, error string capitalization)
- Remove 2 unused struct fields
- Install and configure golangci-lint v2.1.6 for Go 1.24 compatibility
- All linting now passes with 0 issues

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

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-20 12:43:59 +02:00
Mario Zechner
8558c481a0 feat: implement distributed buffer aggregation for HQ mode
- Enhanced /buffers WebSocket endpoint to aggregate updates from all remotes
- Added remote WebSocket connection management with proper Bearer auth
- Implemented connection pooling and automatic reconnection
- Forward binary buffer messages transparently from remotes to clients
- Track subscriptions per remote and handle cleanup properly
- Support both local and remote sessions through unified interface

This enables real-time terminal viewing across distributed VibeTunnel instances.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20 12:43:26 +02:00
Peter Steinberger
31d9e3e839 comment iOS + CI 2025-06-20 12:32:59 +02:00
Peter Steinberger
e1afae29c8 Simplify Mac app now that have ONE TRUE SERVER 2025-06-20 12:32:59 +02:00
Peter Steinberger
ce1dd762e9 Add support for Kitty Terminal 2025-06-20 12:32:59 +02:00
Mario Zechner
96a5f1c3d8 docs: add comprehensive server specification
- Complete architectural overview of VibeTunnel server
- Detailed protocol specifications for all components
- Binary buffer encoding format documentation
- HQ mode distributed architecture details
- API endpoint reference with examples
- WebSocket protocol specifications
- File system structure and session storage format
- Implementation notes for cross-language compatibility

This specification enables implementing VibeTunnel servers in any language
while maintaining full compatibility with the protocol and architecture.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20 12:20:21 +02:00
Armin Ronacher
f4c940221f remove tty-fwd from xcode and set go path correctly 2025-06-20 12:20:01 +02:00
Mario Zechner
8b200d6f9b refactor: major HQ architecture improvements based on review
- Remove registration retry from HQClient, let caller handle retries
- Make HQClient destroy method async and await unregister
- Remove session ID namespacing - UUIDs are unique enough
- Add /api/health endpoint for cheaper health checks
- Remove unnecessary RemoteServer.status field
- Track sessions by remote using sessionIds Set
- Fix remote session creation to use remote's token (not HQ's auth)
- Update session proxy to lookup remote by session ID
- Make cleanup-exited work across all remotes
- Remove tty_fwd_path code - always use node-pty
- Fix duplicate HQ endpoints
- Improve health check to try /api/health first, fall back to /api/sessions
- Remove offline remotes automatically on failed health check

BREAKING CHANGES:
- HQClient.destroy() is now async
- RemoteServer no longer has status field
- Session IDs are no longer namespaced with remoteId prefix

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-20 12:16:43 +02:00
Peter Steinberger
4c9f68b4c1 check for go library when installed manually 2025-06-20 12:08:16 +02:00
Peter Steinberger
95aa5f9637 add ios xcodeproj file 2025-06-20 11:55:19 +02:00
Peter Steinberger
d993efb8c7 CI fixes 2025-06-20 11:55:19 +02:00
Peter Steinberger
adf0646960 fix iOS app 2025-06-20 11:55:19 +02:00
Helmut Januschka
70edaaddd5
feat: add cross-platform process checking with POSIX-first approach (#33)
**Platform-Optimized Strategy:**
- **POSIX Systems** (Linux, macOS, FreeBSD): Use efficient kill(pid, 0)
- **Windows Only**: Use gopsutil.PidExists() when kill() unavailable

**Implementation:**
- Primary: kill(pid, 0) on all POSIX platforms (most efficient)
- Fallback: gopsutil only on Windows (where kill() doesn't exist)
- No unnecessary overhead - each platform uses optimal method

**Benefits:**
- Maximum Performance: POSIX systems use native kill(pid, 0)
- Windows Support: gopsutil provides Windows compatibility
- Minimal Dependencies: gopsutil only loaded when needed
- Platform Optimal: Each OS uses its most efficient method

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

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-20 11:52:31 +02:00