- Add vitest integration test for vt command functionality
- Add shell script test for build-time validation
- Include vt tests in main check script to run in CI
- Tests cover: syntax validation, help functionality, error handling, npm package config
- Add pnpm run test:vt script for easy testing
- Exclude vt symlink from package.json bin section to avoid conflicts with other vt installations
Co-authored-by: hewigovens <360470+hewigovens@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
- Modified postinstall script to extract authenticate-pam prebuilds when npm skips optional deps
- Updated authenticate-pam-loader to load from optional-modules directory
- Prepared beta.12 release with all fixes consolidated
- Moved Docker test script to scripts folder
- Updated documentation in npm.md
This commit addresses the Ubuntu installation issues reported in issue 380:
**PAM Module Fix:** - Fix .npmignore to include authenticate-pam module in npm package - Previously node_modules/ exclusion prevented
authenticate-pam from being packaged - Resolves \"PAM Authentication Warning: The native authenticate-pam module isn't found\"
**npm_config_prefix Conflict Detection:** - Add detection for npm_config_prefix conflicts with NVM in postinstall script - Warn users when
npm_config_prefix overrides NVM's per-version configuration - Provide clear instructions to resolve the conflict - Document
troubleshooting steps in docs/npm.md
- 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
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
- 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
- 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
- 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
- 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.
- 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.
- 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
- 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
- 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
- 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>
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.