Commit graph

1602 commits

Author SHA1 Message Date
Peter Steinberger
bbea65d274 fix: unify READMEs and fix npm package documentation (#381)
- Use web/README.md as single source of truth for npm package
- Remove generated README from build-npm.js, now copies from web/
- Fix incorrect --auth parameter (should be --no-auth)
- Add complete CLI options based on actual code parsing
- Remove non-existent --username/--password CLI flags (env vars only)
- Add missing options: --vapid-email, --repository-base-path, etc.
- Clarify installation differences between npm and source
- Add troubleshooting section for npm installation issues
- Keep port as 4020 (our standard port)

Closes #381
2025-07-17 02:47:10 +02:00
Peter Steinberger
a3d6666eec Unify npm and web readme 2025-07-17 02:35:23 +02:00
Peter Steinberger
bf65e7275b Improve release process and remove stray node folder 2025-07-17 02:34:59 +02:00
Peter Steinberger
d85f7657b1 fix: remove verbose output from vt script (#383)
The vt script now operates silently by default, removing the
'# Using VibeTunnel from Mac app bundle' debug message that was
printed to stderr. Error messages are still shown when appropriate.

Closes #383
2025-07-17 02:23:09 +02:00
Peter Steinberger
d3cce0d776 Update appcast for v1.0.0-beta.11 2025-07-17 01:26:37 +02:00
Peter Steinberger
c9b817d85e Fix Discord badge to show member count with correct server ID
Replace static Discord badge with dynamic member count badge using the actual server ID (1394471066990280875)
2025-07-17 01:13:35 +02:00
Peter Steinberger
92c4863e61 Add Node.js, Discord, and Homebrew badges to README
- Add Node.js 20+ badge with logo to show version requirement
- Add Discord badge with member count for community visibility
- Add Homebrew Cask version badge for installation tracking
2025-07-17 01:06:54 +02:00
Peter Steinberger
d69a4c1ef3
Fix npm package installation issues (#377) 2025-07-17 00:50:33 +02:00
Peter Steinberger
8173a0f500
Fix WebRTC threading crash by dispatching callbacks to main thread (#378) 2025-07-17 00:44:49 +02:00
Peter Steinberger
c6484d21e8
Fix WebRTC threading crash in screen capture (#375) 2025-07-17 00:37:15 +02:00
Peter Steinberger
19f80eaf5c
Fix screencap authentication (fixes #264) (#374) 2025-07-16 23:15:45 +02:00
Peter Steinberger
253d0ae3e7
Fix npm package build and installation issues (#360)
Co-authored-by: Alex Mazanov <alexandr.mazanov@gmail.com>
2025-07-16 23:05:26 +02:00
Peter Steinberger
0d3b437887 Add npm and Linux support badges to README
- Added npm version badge that links to the npm package page
- Added Linux Support badge to highlight cross-platform availability
- Improves visibility of the npm installation option for Linux users
2025-07-16 22:56:16 +02:00
Peter Steinberger
02a7079797 Add JuxtaCode as a Git diff tool option
- Added JuxtaCode to the GitApp enum with bundle identifier com.naiveapps.juxtacode
- Set detection priority to 82 (between Sourcetree and Sublime Merge)
- JuxtaCode will now appear in the Git app selection dropdown and be auto-detected when installed
2025-07-16 22:51:30 +02:00
Peter Steinberger
2f3a4217d0
Fix control message loop and simplify welcome screen repository display (#372) 2025-07-16 09:30:56 +02:00
Peter Steinberger
500c75ebc8
Hide screen sharing button when Mac app is not connected (#367) 2025-07-16 03:37:33 +02:00
Peter Steinberger
12a2468f01
Replace bell icon with settings icon (#366) 2025-07-16 03:26:01 +02:00
Peter Steinberger
d40a78b4f2
Synchronize repository base path from Mac app to web UI (#358) 2025-07-16 03:09:19 +02:00
Peter Steinberger
1481b490e4 Update to version 1.0.0-beta.11 build 200 2025-07-16 03:05:12 +02:00
Peter Steinberger
ad80b804e1
Reorganize Mac settings into logical tabs (#359) 2025-07-16 02:58:09 +02:00
Peter Steinberger
32d92e306a
feat: add verbosity control to vt command (#356) 2025-07-15 22:43:38 +02:00
Peter Steinberger
de2f5bcf59
Only show spawn window toggle when Mac app is connected (#357) 2025-07-15 22:41:51 +02:00
Peter Steinberger
7cef4c1641
Fix file browser constant refresh issue (#354) 2025-07-15 21:06:38 +02:00
Peter Steinberger
6c4adfe10f fix: resolve Tailwind CSS content pattern performance warning
- Remove redundant content patterns
- Add explicit node_modules exclusion
- Prevents accidental matching of node_modules files
2025-07-15 20:45:52 +02:00
Peter Steinberger
4cacb251b3 feat: normalize release titles to "VibeTunnel X.Y.Z Beta N" format
- Created normalize-release-titles.sh script to update existing releases
- Updated all 9 beta releases to use consistent title format
- Modified release.sh to use normalized format for future releases
- Changed from "VibeTunnel 1.0.0-beta.10" to "VibeTunnel 1.0.0 Beta 10"

This makes release titles more readable and consistent across all releases.
2025-07-15 19:41:49 +02:00
Peter Steinberger
7ba1ebbc38 feat: ensure releases show only per-version changelog
- Updated release.md documentation to emphasize per-release changelog behavior
- Added fix-release-changelogs.sh script to update existing releases
- Clarified that release script already extracts only specific version changes
- Script can fix releases that incorrectly show full changelog history

The release system already works correctly - it extracts only the specific
version's changelog. The issue was with some existing releases that somehow
got the full CHANGELOG.md content instead of the extracted version.
2025-07-15 19:29:26 +02:00
Peter Steinberger
8543d4b1e1 chore: move .github-config to mac/ directory
- Move .github-config from project root to mac/
- Update generate-appcast.sh to reference new location
- Keeps all Mac-specific configuration together
2025-07-15 19:22:50 +02:00
Peter Steinberger
5579844425 chore: remove temporary build verification scripts
- Remove appcast-prerelease-corrected.xml (temporary fix file)
- Remove test-homebrew-fix.sh (Homebrew dependency testing)
- Remove verify-release-build.sh (release build verification)

These scripts were used for debugging #269 and are no longer needed
2025-07-15 19:19:44 +02:00
Peter Steinberger
580afd467c docs: add Contributing section with Discord server link
- Add new Contributing section to README
- Include Discord server invite link for community coordination
- Explain how to get involved and contribute
- Reference existing Contributing Guide for technical details
2025-07-15 19:16:10 +02:00
Peter Steinberger
58cc9797de docs: add note about Git repository scanning permission prompts
- Explain that first session Git scanning triggers macOS filesystem permissions
- List common protected folders (Desktop, Documents, Downloads, iCloud Drive)
- Provide workarounds to avoid prompts
- Include link to detailed explanation about macOS privacy-protected folders
2025-07-15 19:10:47 +02:00
Billy Irwin
7462111821 fix: prevent repeated screen recording permission dialogs
- Replace SCShareableContent.current with CGPreflightScreenCaptureAccess for non-triggering permission checks
- Add 5-second cache for permission state to reduce frequent checks
- Add permission guards to WebRTC endpoints (/displays, /processes)
- Only trigger permission dialog on explicit user action (button click)
- Return proper error responses when permission is denied instead of triggering dialog

This fixes the issue where VibeTunnel would repeatedly show the screen recording
permission dialog even after permissions were granted in System Settings.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 18:58:55 +02:00
Peter Steinberger
f59fd5ec6a Update appcast for v1.0.0-beta.10 2025-07-15 09:39:35 +02:00
Peter Steinberger
60136b2744 Update to version 1.0.0-beta.10 build 190 2025-07-15 09:32:46 +02:00
Peter Steinberger
f09eb9a493 fix: increase file browser z-index to appear above modal backdrop
The file browser was rendering behind the session create form modal because its z-index (200) was lower than the modal backdrop (1000). Increased FILE_BROWSER z-index to 1100 to ensure proper layering.

Also added debug logging to handleBrowse method for better troubleshooting.
2025-07-15 09:31:39 +02:00
Igor Tarasenko
4f1dd36be5
fix: allow browser keyboard shortcuts to work properly (#298)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-15 05:38:23 +02:00
Luke
2b8db854d9
fix: prevent duplicating sessions (#345)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-15 03:50:51 +02:00
Peter Steinberger
7545e86e6a
feat: Set Dracula as default theme for new users (#349)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 03:44:42 +02:00
Peter Steinberger
192fd7e941
Improve asciicast clear offset caching (#333)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 03:24:15 +02:00
Marek Šuppa
e8191181c9
feat(web): Add repository discovery to web client (#301)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-15 03:23:28 +02:00
Peter Steinberger
a3631f6d94
Fix Network access mode bind address race condition (#347)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 03:17:46 +02:00
Peter Steinberger
add95f59d2 Fix Network access mode bind address race condition
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>
2025-07-15 03:14:42 +02:00
Tao Xu
e89abc9dc6
Fix SSH key manager modal layout and test compatibility (#325)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 02:52:49 +02:00
Peter Steinberger
68e6456aef
docs: Add Linux setup instructions and authentication documentation (#344)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 02:47:25 +02:00
Peter Steinberger
2fc28b687f
feat: enhance Swift Testing with advanced diagnostics and smart conditions (#334)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 00:52:02 +02:00
Peter Steinberger
34b596a010
Enable keyboard navigation on session grid (#322) 2025-07-12 23:23:28 +02:00
Peter Steinberger
00933690a8
Fix Safari clipboard paste (#336)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-12 23:13:35 +02:00
Peter Steinberger
29f938dcc1
Terminal theme improvements (#332)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-12 22:11:30 +02:00
Peter Steinberger
d019559f2b feat(web): add terminal theme preference 2025-07-12 19:45:27 +02:00
Peter Steinberger
93ba0064bd feat: add compression, security headers, and caching optimizations
Implement several performance and security improvements for Express 5:

Performance:
- Add compression middleware with Brotli support for all responses
- Enable WebSocket compression (perMessageDeflate) for terminal data
- Exclude compression for SSE streams (/api/sessions/:id/stream) to prevent asciicast issues
- Add intelligent caching headers for static assets:
  - Immutable assets (JS, CSS, fonts, images): 1 year cache
  - HTML files: 1 hour cache
  - Enable ETags and Last-Modified headers

Security:
- Add Helmet middleware for security headers
- Disable CSP and COEP to maintain compatibility with terminal features

Additional improvements:
- Remove obsolete @ts-expect-error directives (Express 5 properly types res.flush)
- Balanced compression level (6) for optimal performance

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 19:42:54 +02:00
Peter Steinberger
3beb90a0fd Fix array bounds checking in window parsing
- Add proper bounds checking in TerminalLauncher.swift when parsing AppleScript results
- Add safe array access in WebRTCManager.swift for SDP line parsing
- Add detailed error logging for debugging parsing failures
- Prevents crashes when activity titles contain multiple words

Fixes parsing errors like "Fixed CI build - added native dependencies"
where AppleScript returns unexpected formats.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 19:38:22 +02:00