- Use explicit Xcode 16.3 instead of generic Xcode.app
- Add timeouts to build steps (30 min for builds, 20 min for tests)
- Update both DEVELOPER_DIR env var and xcode-select paths
The hanging was likely due to using the default Xcode 16.0 on macOS-15
which may have compatibility issues with the project.
Swift 6 has issues with NotificationCenter's AsyncSequence returning
non-Sendable types. Use traditional selector-based observer to avoid
concurrency issues.
- Use .values on NotificationCenter notifications AsyncSequence
- Replace openApplication with open to avoid non-Sendable return type
- Properly handle async operations within MainActor context
- Match WelcomeView behavior by checking if vt file physically exists
- Show green checkmark and 'CLI tool is installed' message when installed
- Display installation path when tool is already installed
- Add progress indicator during installation
- Check installation status on view appear
Also updated release scripts to set version before building to prevent version mismatches in About window
- Bump version to build 103
- Clear appcast files for fresh start
- Update CHANGELOG with comprehensive beta.1 notes
- Include menu spacer fix in release notes
- Bump version to build 102
- Add automatic cleanup of development files from app bundle
- Enhance release script with comprehensive build cleaning
- Update CHANGELOG with beta.2 fixes
- Remove app-config.plist, Local.xcconfig, and test files from bundle
- Relocated "The Story" section with blog post link to appear right after "Why VibeTunnel?"
- Makes the full story more discoverable for readers interested in the project's background
- Also includes Swift concurrency improvements for LazyBasicAuthMiddleware
- Include CreditLink component directly in AboutView.swift
- Fix Swift 6 concurrency issue with NSRunningApplication
- Remove Windows build from Rust workflow (tty-fwd is Unix-only)
- tty-fwd uses Unix-specific PTY features not available on Windows