mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-03-28 09:55:53 +00:00
Fixes GitHub issue #326 where VibeTunnel's "Network" access mode was still binding to localhost instead of 0.0.0.0, preventing access over Tailscale and other networks. ## Root Cause Race condition in UserDefaults handling when changing access modes: - UI updates accessModeString via @AppStorage (writes to UserDefaults) - restartServerWithNewBindAddress() had redundant bindAddress assignment - Two concurrent UserDefaults writes to same key could cause stale config ## Changes **DashboardSettingsView.swift:** - Remove redundant `serverManager.bindAddress = accessMode.bindAddress` - @AppStorage already persists the access mode change - Add detailed logging for access mode changes **BunServer.swift:** - Add debug logging for server configuration (port + bindAddress) - Applies to both production and development servers - Helps diagnose future binding issues ## Testing Users can verify the fix by: 1. Change Access Mode in VibeTunnel Settings → Dashboard 2. Check with: `lsof -iTCP:4020 -sTCP:LISTEN` - Network mode: `TCP *:trap (LISTEN)` (0.0.0.0:4020) ✅ - Localhost mode: `TCP localhost:trap (LISTEN)` (127.0.0.1:4020) ✅ 3. View logs: `./scripts/vtlog.sh -s "bind\|configuration"` 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs | ||
| scripts | ||
| VibeTunnel | ||
| VibeTunnel-Mac.xcodeproj | ||
| VibeTunnelTests | ||
| .gitignore | ||
| .swiftformat | ||
| .swiftlint.yml | ||
| bun.lock | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| package-lock.json | ||
| package.json | ||
| Package.swift | ||
| README.md | ||
| VibeTunnel-Info.plist | ||
VibeTunnel macOS App
This directory contains the macOS version of VibeTunnel.
Quick Start
Building
# Using Xcode
xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel build
# Using build script
./scripts/build.sh
Running Tests
xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel test
Creating Release
./scripts/build.sh --configuration Release --sign
./scripts/create-dmg.sh build/Build/Products/Release/VibeTunnel.app
Project Structure
mac/
├── VibeTunnel/ # Source code
│ ├── Core/ # Core services and models
│ ├── Presentation/ # Views and UI components
│ └── Utilities/ # Helper utilities
├── VibeTunnelTests/ # Unit tests
├── scripts/ # Build and release scripts
├── docs/ # macOS-specific documentation
└── private/ # Signing keys (not in git)
Scripts
build.sh- Build the app with optional signingcreate-dmg.sh- Create a DMG for distributionrelease.sh- Full release processmonitor-ci.sh- Monitor CI build statussign-and-notarize.sh- Code signing and notarization
Documentation
See docs/ for macOS-specific documentation:
- Code signing setup
- Release process
- Sparkle update framework
- Development signing
CI/CD
The app is built automatically on GitHub Actions:
- On every push to main
- On pull requests
- For releases (tagged with v*)
See .github/workflows/swift.yml for the build configuration.