From 5579844425c3d36b793026cbd3cb3e2605e623d9 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 15 Jul 2025 19:19:44 +0200 Subject: [PATCH] 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 --- appcast-prerelease-corrected.xml | 459 ------------------------------- test-homebrew-fix.sh | 64 ----- verify-release-build.sh | 197 ------------- 3 files changed, 720 deletions(-) delete mode 100644 appcast-prerelease-corrected.xml delete mode 100755 test-homebrew-fix.sh delete mode 100755 verify-release-build.sh diff --git a/appcast-prerelease-corrected.xml b/appcast-prerelease-corrected.xml deleted file mode 100644 index ad435910..00000000 --- a/appcast-prerelease-corrected.xml +++ /dev/null @@ -1,459 +0,0 @@ - - - - VibeTunnel Pre-release Updates - https://github.com/amantus-ai/vibetunnel - VibeTunnel pre-release and beta updates feed - en - - VibeTunnel 1.0.0-beta.8 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0.0-beta.8/VibeTunnel-1.0.0-beta.8.dmg - 172 - 1.0.0-beta.8 - VibeTunnel 1.0.0-beta.8 -

Pre-release version

- -

Homebrew Library Dependencies

-
    -
  • FIXED: Release builds now correctly bundle all Homebrew library dependencies
  • -
  • FIXED: App launches reliably on systems without developer tools installed
  • -
  • Updated build scripts to handle dynamic library dependencies properly
  • -
- -

File Browser Enhancements

-
    -
  • FIXED: File browser going dark due to event bubbling issues with modal handling
  • -
- ]]>
- Tue, 08 Jul 2025 10:18:00 +0100 - -
- - VibeTunnel 1.0.0-beta.7 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0.0-beta.7/VibeTunnel-1.0.0-beta.7.dmg - 170 - 1.0.0-beta.7 - VibeTunnel 1.0.0-beta.7 -

Pre-release version

- -

🎯 Major Features

- -

🖥️ Remote Screen Sharing (Beta)

-
    -
  • Share your Mac screen remotely through any web browser - perfect for demonstrations, pair programming, or remote support
  • -
  • Ultra-low latency using WebRTC technology with automatic quality adjustment based on network conditions
  • -
  • Privacy-focused with deferred permission requests (only asks for screen recording when you actually start sharing)
  • -
  • Automatic 4K resolution capping for 5K+ displays to prevent web interface clipping
  • -
  • Clear visual indicators when screen sharing is active
  • -
- -

🪄 Magic Wand for AI Sessions

-
    -
  • Instantly inject helpful context into Claude.ai sessions with a single click
  • -
  • Automatically detects Claude browser windows and adds project information
  • -
  • Includes git repository details, current branch, and recent commit history
  • -
  • Configurable prompts to match your workflow
  • -
  • More forceful prompt injection to prevent AI from directly using the injected title
  • -
- -

🚀 Performance & Stability Improvements

- -

Terminal Performance

-
    -
  • FIXED: Critical flow control issue that caused xterm.js buffer overflow and terminal freezing
  • -
  • FIXED: Infinite scroll loop in terminal output that could freeze the browser
  • -
  • FIXED: Race conditions in terminal output handling causing corrupted or out-of-order text
  • -
  • Improved memory management for long-running sessions
  • -
  • Better handling of high-volume terminal output
  • -
- -

UI Performance

-
    -
  • Removed all UI animations that were causing 1-2 second delays when reopening sessions
  • -
  • Disabled View Transitions API for instant session navigation
  • -
  • Fixed modal backdrop pointer-events issues preventing interaction
  • -
  • Smoother menu bar UI without jumping when copy icon appears
  • -
- -

📱 Touch Device & Mobile Improvements

- -

iPad/Tablet Support

-
    -
  • Unified keyboard layout for all mobile devices (removed separate iPad layout)
  • -
  • Universal touch device detection for better keyboard mode handling
  • -
  • Inline-edit pencil now always visible on touch devices
  • -
  • Reorganized touch device layout with better button placement
  • -
  • Fixed touch interaction issues with modals and overlays
  • -
- -

Mobile Keyboard

-
    -
  • New compact keyboard layout optimized for tablets
  • -
  • Better handling of keyboard shortcuts on touch devices
  • -
  • Improved responsiveness for mobile web browsers
  • -
- -

🐚 Shell Support Enhancements

- -

Fish Shell Integration

-
    -
  • Full support for Fish shell command expansion and completions
  • -
  • Proper handling of Fish-specific syntax and features
  • -
  • Fixed shell configuration files not being loaded correctly
  • -
- -

🔧 Developer Experience

- -

Build System Improvements

-
    -
  • Preserve Swift package resolution in build.sh for faster builds
  • -
  • Better Node.js detection that handles fnm/homebrew conflicts
  • -
- -

Version Management

-
    -
  • Implemented hash-based vt script version detection
  • -
  • Delete old sessions automatically when VibeTunnel version changes
  • -
  • Better handling of version mismatches between components
  • -
- -

🐛 Bug Fixes

- -

Session Management

-
    -
  • Fixed session state synchronization between web and native clients
  • -
  • Resolved memory leaks in long-running sessions
  • -
  • Fixed connection timeout issues on slower networks
  • -
  • Better cleanup of terminal processes and resources
  • -
- -

UI/UX Fixes

-
    -
  • Fixed various UI glitches and visual artifacts
  • -
  • Resolved sidebar animation issues
  • -
  • Fixed file browser problems
  • -
  • Corrected ngrok documentation about free static domains
  • -
- -

🔍 Other Improvements

- -

Control Protocol

-
    -
  • Unified control protocol for better terminal and screen sharing integration
  • -
  • Improved Unix socket handling with better error recovery
  • -
  • Enhanced WebRTC connection management
  • -
- -

Documentation

-
    -
  • Updated ngrok docs to clarify one free static domain per user
  • -
  • Added comprehensive ScreenCaptureKit documentation
  • -
  • Removed outdated debug documentation
  • -
- ]]>
- Tue, 08 Jul 2025 02:35:00 +0100 - -
- - VibeTunnel 1.0.0-beta.6 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0.0-beta.6/VibeTunnel-1.0.0-beta.6.dmg - 160 - 1.0.0-beta.6 - VibeTunnel 1.0.0-beta.6

Pre-release version

-

✨ New Features

- -

Git Repository Monitoring 🆕

-
    -
  • Real-time Git Status - Session rows now display git information including branch name and change counts
  • -
  • Visual Indicators - Color-coded status: orange for branches, yellow for uncommitted changes
  • -
  • Quick Navigation - Click folder icons to open repositories in Finder
  • -
  • GitHub Integration - Context menu option to open repositories directly on GitHub
  • -
  • Smart Caching - 5-second cache prevents excessive git commands while keeping info fresh
  • -
  • Repository Detection - Automatically finds git repositories in parent directories
  • -
- -

Enhanced Command-Line Tool

-
    -
  • Terminal Title Management - `vt title` can set the title of your Terminal. Even Claude can use it!
  • -
  • Version Information - `vt help` now displays binary path, version, build date, and platform information for easier troubleshooting
  • -
  • Apple Silicon Support - Automatic detection of Homebrew installations on ARM Macs (/opt/homebrew path)
  • -
- -

Menu Bar Enhancements

-
    -
  • Rich Session Interface - Powerful new menu bar with visual activity indicators and real-time status tracking
  • -
  • Native Session Overview - See all open terminal sessions and even Claude Code status right from the menu bar.
  • -
  • Sleep Prevention - Mac stays awake when running terminal sessions
  • -
- -

Web Interface Improvements

-
    -
  • Modern Visual Design - Complete UI overhaul with improved color scheme, animations, and visual hierarchy
  • -
  • Collapsible Sidebar - New toggle button to maximize terminal viewing space (preference is remembered)
  • -
  • Better Session Loading - Fixed race conditions that caused sessions to appear as "missing"
  • -
  • Responsive Enhancements - Improved adaptation to different screen sizes with better touch targets
  • -
- -

🚀 Performance & Stability

- -

Terminal Output Reliability

-
    -
  • Fixed Output Corruption - Resolved race conditions causing out-of-order or corrupted terminal output
  • -
  • Stable Title Updates - Terminal titles now update smoothly without flickering or getting stuck
  • -
- -

Server Improvements

-
    -
  • Logger Fix - Fixed double initialization that was deleting log files
  • -
  • Better Resource Cleanup - Improved PTY manager cleanup and timer management
  • -
  • Enhanced Error Handling - More robust error handling throughout the server stack
  • -
- -

Simplified Tailscale Setup

-
    -
  • Switched to Tailscale's local API for easier configuration
  • -
  • Removed manual token management requirements
  • -
  • Streamlined connection UI for minimal setup
  • -
-
- ]]>
- Wed, 03 Jul 2025 00:46:29 +0100 - -
- - VibeTunnel 1.0.0-beta.5 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0.0-beta.5/VibeTunnel-1.0.0-beta.5.dmg - 150 - 1.0.0-beta.5 - VibeTunnel 1.0.0-beta.5

Pre-release version

-

🎯 Features

- -

Real-time Claude Activity Monitoring

-
    -
  • See Claude's live status directly in the VibeTunnel sidebar - Know exactly what Claude is "Thinking", "Crafting", or "Searching" with real-time progress indicators showing duration and token counts.
  • -
  • Activity status persists across browser refreshes - Works seamlessly with external terminal sessions.
  • -
  • Faster sidebar updates - Sidebar now refreshes every second (previously 3 seconds) for more responsive activity tracking.
  • -
- -

Comprehensive Terminal Title Management

-
    -
  • Dynamic, context-aware terminal titles - Terminal windows display your current directory, running command, and live activity status.
  • -
  • Choose your title mode - Select between static titles (path + command) or dynamic titles that include real-time activity indicators.
  • -
  • Automatic directory tracking - Terminal titles update automatically when you change directories with cd commands.
  • -
  • Session name integration - Custom session names are reflected in terminal titles for better organization.
  • -
- -

🌏 International Input Support

-
    -
  • Fixed Japanese/CJK input duplication on iOS - Typing Japanese, Chinese, or Korean text on mobile browsers no longer produces duplicate characters. IME composition is now handled correctly.
  • -
- -

⌨️ Enhanced Terminal Experience

-
    -
  • Shell aliases now work properly - Commands like claude, ll, and other custom aliases from your .zshrc/.bashrc are now recognized when launching terminals through VibeTunnel.
  • -
  • Prevented recursive VibeTunnel sessions - Running vt inside a VibeTunnel session now shows a helpful error instead of creating confusing nested sessions.
  • -
  • Fixed critical race condition in terminal output - Terminal sessions now handle high-volume output without corruption or out-of-order text.
  • -
- -

🤖 Claude Code Integration

-
    -
  • Added Shift+Tab support - Full support for Claude Code's mode switching (regular/planning/autoaccept modes) on both desktop and mobile.
  • -
  • Mobile quick keyboard enhancement - Added dedicated Shift+Tab button (⇤) to the mobile keyboard for easy mode switching.
  • -
  • Fixed keyboard input conflicts - Typing in Monaco Editor or other code editors no longer triggers unintended shortcuts.
  • -
- -

🚀 Quick Start Enhancements

-
    -
  • Added Gemini as quickstart entry - Google's Gemini AI assistant is now available as a one-click option when creating new terminal sessions, alongside Claude and other common commands.
  • -
-
- ]]>
- Sun, 30 Jun 2025 03:26:47 +0000 - -
- - VibeTunnel 1.0.0-beta.4 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0.0-beta.4/VibeTunnel-1.0.0-beta.4.dmg - 114 - 1.0.0-beta.4 - VibeTunnel 1.0.0-beta.4

Pre-release version

✨ Highlights

-
    -
  • Completely revamped mobile keyboard
  • -
  • Mobile and Mac UI polish
  • -
  • Fixes issues with Terminal app
  • -
  • New security model: OS password or SSH keys
  • -
- -

🎨 Improvements

-
    -
  • Enhanced terminal session handling and stability
  • -
  • Fixed various edge cases in terminal rendering and performance
  • -
  • Resolved session management issues
  • -
  • Fixed URL link detection for wrapped URLs on mobile terminals (#85)
  • -
  • Split session view file for better code organization (#89)
  • -
-

View full changelog

- ]]>
- Thu, 27 Jun 2025 00:31:41 +0000 - - 14.0 -
- - VibeTunnel 1.0.0-beta.3 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0.0-beta.3/VibeTunnel-1.0.0-beta.3.dmg - 110 - 1.0.0-beta.3 - VibeTunnel 1.0.0-beta.3

Pre-release version

🎉 Beta 3 Release

-

There's too much to list! This is the version you've been waiting for.

- -

✨ Highlights

-
    -
  • Redesigned, responsive, animated frontend
  • -
  • File-Picker to see files on-the-go
  • -
  • Creating new Terminals is now much more reliable
  • -
  • Fresh new icon for Progressive Web App installations
  • -
- -

🎨 Improvements

-
    -
  • Improved terminal width spanning and layout optimization
  • -
  • Added terminal font size adjustment in the settings dropdown
  • -
  • Refined bounce animations for a more subtle, professional feel
  • -
  • Added retro CRT-style phosphor decay visual effect for closed terminals
  • -
  • Fixed buffer aggregator message handling for smoother terminal updates
  • -
  • Better support for shell aliases and improved debug logging
  • -
  • Enhanced Unix socket server implementation for faster local communication
  • -
  • Special handling for Warp terminal with custom enter key behavior
  • -
  • New dock menu with quick actions when right-clicking the app icon
  • -
  • More resilient vt command-line tool with better error handling
  • -
  • Ensured vibetunnel server properly terminates when Mac app is killed
  • -
-

View full changelog

- ]]>
- Sun, 23 Jun 2025 04:30:00 +0000 - - 14.0 -
- - VibeTunnel 1.0.0-beta.2 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0-beta.2/VibeTunnel-1.0.0-beta.2.dmg - 107 - 1.0-beta.2 - VibeTunnel 1.0.0-beta.2

Pre-release version

🎨 Improvements

-
    -
  • Redesigned slick new web frontend
  • -
  • Faster terminal rendering in the web frontend
  • -
  • New Sessions spawn new Terminal windows. (This needs Applescript and Accessibility permissions)
  • -
  • Enhanced font handling with system font priority
  • -
  • Better async operations in PTY service for improved performance
  • -
  • Improved window activation when showing the welcome and settings windows
  • -
  • Preparations for Linux support
  • -
-

🐛 Bug Fixes

-
    -
  • Fixed window front order when dock icon is hidden
  • -
  • Fixed PTY service enhancements with proper async operations
  • -
  • Fixed race condition in session creation that caused frontend to open previous session
  • -
-

View full changelog

- ]]>
- Thu, 19 Jun 2025 12:50:59 +0200 - - 15.0 -
- - VibeTunnel 1.0-beta.1 - https://github.com/amantus-ai/vibetunnel/releases/download/v1.0-beta.1/VibeTunnel-1.0-beta.1.dmg - 103 - 1.0-beta.1 - VibeTunnel 1.0-beta.1

Pre-release version

🎉 First Public Beta Release

-This is the first public beta release of VibeTunnel, ready for testing by early adopters. -

✨ What's Included

-
    -
  • Complete terminal session proxying to web browsers
  • -
  • Support for multiple concurrent sessions
  • -
  • Real-time terminal rendering with full TTY support
  • -
  • Secure password-protected dashboard
  • -
  • Tailscale and ngrok integration for remote access
  • -
  • Automatic updates via Sparkle framework
  • -
  • Native macOS menu bar application
  • -
-

🐛 Bug Fixes Since Internal Testing

-
    -
  • Fixed visible circle spacer in menu (now uses Color.clear)
  • -
  • Removed development files from app bundle
  • -
  • Enhanced build process with automatic cleanup
  • -
  • Fixed Sparkle API compatibility for v2.7.0
  • -
-

📝 Notes

-
    -
  • This is a beta release - please report any issues on GitHub
  • -
  • Auto-update functionality is fully enabled
  • -
  • All core features are stable and ready for daily use
  • -
-

✨ What's New Since Internal Testing

-
    -
  • Improved stability and performance
  • -
  • Enhanced error handling for edge cases
  • -
  • Refined UI/UX based on internal feedback
  • -
  • Better session cleanup and resource management
  • -
  • Optimized for macOS Sonoma and Sequoia
  • -
-

🐛 Known Issues

-
    -
  • Occasional connection drops with certain terminal applications
  • -
  • Performance optimization needed for very long sessions
  • -
  • Some terminal escape sequences may not render perfectly
  • -
-

📝 Notes

-
    -
  • This is a beta release - please report any issues on GitHub
  • -
  • Auto-update functionality is fully enabled
  • -
  • All core features are stable and ready for daily use
  • -
-

View full changelog

- ]]>
- Tue, 17 Jun 2025 01:09:18 +0200 - - 15.0 -
-
-
diff --git a/test-homebrew-fix.sh b/test-homebrew-fix.sh deleted file mode 100755 index 7b7ee80d..00000000 --- a/test-homebrew-fix.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash - -set -e - -echo "Testing Homebrew dependency fix..." -echo "================================" - -cd "$(dirname "$0")" - -# Clean up existing builds -echo "1. Cleaning existing Node.js builds..." -rm -rf web/.node-builds - -echo "2. Cleaning existing native builds..." -rm -rf web/native -rm -rf web/build - -echo "3. Building custom Node.js without Homebrew dependencies..." -cd web -# Set clean build environment to avoid Homebrew contamination -export VIBETUNNEL_BUILD_CLEAN_ENV=true -node build-custom-node.js - -echo "" -echo "4. Checking custom Node.js dependencies..." -CUSTOM_NODE=$(find .node-builds -name "node-v*-minimal" -type d -exec test -f {}/out/Release/node \; -print | sort -V | tail -n1) -if [ -n "$CUSTOM_NODE" ]; then - echo "Custom Node.js found at: $CUSTOM_NODE" - echo "Dependencies:" - otool -L "$CUSTOM_NODE/out/Release/node" | grep -v "/usr/lib\|/System" - echo "" -fi - -echo "5. Building vibetunnel with custom Node.js..." -node build-native.js --custom-node - -echo "" -echo "6. Checking vibetunnel dependencies..." -if [ -f native/vibetunnel ]; then - echo "Dependencies of native/vibetunnel:" - otool -L native/vibetunnel | grep -v "/usr/lib\|/System" - - # Check for Homebrew dependencies - if otool -L native/vibetunnel | grep -q "/opt/homebrew\|/usr/local/Cellar"; then - echo "" - echo "❌ ERROR: Homebrew dependencies found!" - otool -L native/vibetunnel | grep -E "/opt/homebrew|/usr/local/Cellar" - exit 1 - else - echo "" - echo "✅ SUCCESS: No Homebrew dependencies found!" - fi -else - echo "❌ ERROR: native/vibetunnel not found!" - exit 1 -fi - -echo "" -echo "7. Testing the binary..." -cd native -./vibetunnel --version - -echo "" -echo "Test complete!" \ No newline at end of file diff --git a/verify-release-build.sh b/verify-release-build.sh deleted file mode 100755 index cb983f40..00000000 --- a/verify-release-build.sh +++ /dev/null @@ -1,197 +0,0 @@ -#!/bin/bash - -set -e - -# Colors for output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' # No Color - -echo "VibeTunnel Release Build Verification" -echo "=====================================" - -# Check if an app path was provided -if [ $# -eq 0 ]; then - echo "Usage: $0 /path/to/VibeTunnel.app" - echo "Example: $0 /Applications/VibeTunnel.app" - exit 1 -fi - -APP_PATH="$1" -ERRORS=0 -WARNINGS=0 - -# Verify the app exists -if [ ! -d "$APP_PATH" ]; then - echo -e "${RED}❌ ERROR: App not found at $APP_PATH${NC}" - exit 1 -fi - -echo "Checking: $APP_PATH" -echo "" - -# Function to check a binary for issues -check_binary() { - local binary_path="$1" - local binary_name=$(basename "$binary_path") - - echo "Checking $binary_name..." - - # Check for Thread Sanitizer - if otool -L "$binary_path" 2>/dev/null | grep -q "libclang_rt.tsan"; then - echo -e "${RED}❌ ERROR: Thread Sanitizer library found in $binary_name${NC}" - ((ERRORS++)) - fi - - # Check for Address Sanitizer - if otool -L "$binary_path" 2>/dev/null | grep -q "libclang_rt.asan"; then - echo -e "${RED}❌ ERROR: Address Sanitizer library found in $binary_name${NC}" - ((ERRORS++)) - fi - - # Check for Undefined Behavior Sanitizer - if otool -L "$binary_path" 2>/dev/null | grep -q "libclang_rt.ubsan"; then - echo -e "${RED}❌ ERROR: Undefined Behavior Sanitizer library found in $binary_name${NC}" - ((ERRORS++)) - fi - - # Check for Homebrew dependencies - local homebrew_deps=$(otool -L "$binary_path" 2>/dev/null | grep -E "/opt/homebrew|/usr/local/Cellar" || true) - if [ -n "$homebrew_deps" ]; then - echo -e "${RED}❌ ERROR: Homebrew dependencies found in $binary_name:${NC}" - echo "$homebrew_deps" - ((ERRORS++)) - fi - - # Check for debug symbols (for main app binary) - if [[ "$binary_name" == "VibeTunnel" ]]; then - # Check if binary was built with debug configuration - if nm -a "$binary_path" 2>/dev/null | grep -q "_NSZombieEnabled"; then - echo -e "${YELLOW}⚠️ WARNING: Binary may contain debug code (NSZombie references found)${NC}" - ((WARNINGS++)) - fi - fi -} - -# 1. Check main app binary -echo "1. Main App Binary" -echo "------------------" -MAIN_BINARY="$APP_PATH/Contents/MacOS/VibeTunnel" -if [ -f "$MAIN_BINARY" ]; then - check_binary "$MAIN_BINARY" -else - echo -e "${RED}❌ ERROR: Main binary not found${NC}" - ((ERRORS++)) -fi - -# 2. Check for sanitizer libraries in Frameworks -echo "" -echo "2. Checking Frameworks" -echo "---------------------" -FRAMEWORKS_DIR="$APP_PATH/Contents/Frameworks" -if [ -d "$FRAMEWORKS_DIR" ]; then - SANITIZER_LIBS=$(find "$FRAMEWORKS_DIR" -name "*clang_rt*san*" -o -name "*asan*" -o -name "*tsan*" -o -name "*ubsan*" 2>/dev/null || true) - if [ -n "$SANITIZER_LIBS" ]; then - echo -e "${RED}❌ ERROR: Sanitizer libraries found in Frameworks:${NC}" - echo "$SANITIZER_LIBS" - ((ERRORS++)) - else - echo -e "${GREEN}✅ No sanitizer libraries in Frameworks${NC}" - fi -else - echo "No Frameworks directory found" -fi - -# 3. Check vibetunnel server binary -echo "" -echo "3. VibeTunnel Server Binary" -echo "--------------------------" -SERVER_BINARY="$APP_PATH/Contents/Resources/vibetunnel" -if [ -f "$SERVER_BINARY" ]; then - check_binary "$SERVER_BINARY" - - # Check size (debug builds are often larger) - SIZE_MB=$(ls -lh "$SERVER_BINARY" | awk '{print $5}') - echo "Binary size: $SIZE_MB" - - # Get size in bytes for comparison - SIZE_BYTES=$(stat -f%z "$SERVER_BINARY" 2>/dev/null || stat -c%s "$SERVER_BINARY" 2>/dev/null) - if [ "$SIZE_BYTES" -gt 157286400 ]; then # 150 MB - echo -e "${YELLOW}⚠️ WARNING: Binary size exceeds 150MB, might be a debug build${NC}" - ((WARNINGS++)) - fi -else - echo -e "${RED}❌ ERROR: Server binary not found${NC}" - ((ERRORS++)) -fi - -# 4. Check native modules -echo "" -echo "4. Native Modules" -echo "----------------" -for module in pty.node authenticate_pam.node spawn-helper; do - MODULE_PATH="$APP_PATH/Contents/Resources/$module" - if [ -f "$MODULE_PATH" ]; then - check_binary "$MODULE_PATH" - else - echo -e "${YELLOW}⚠️ WARNING: $module not found${NC}" - ((WARNINGS++)) - fi -done - -# 5. Check build configuration (if Info.plist contains debug info) -echo "" -echo "5. Build Configuration" -echo "--------------------" -INFO_PLIST="$APP_PATH/Contents/Info.plist" -if [ -f "$INFO_PLIST" ]; then - # Check for common debug keys - if plutil -p "$INFO_PLIST" 2>/dev/null | grep -qi "debug"; then - echo -e "${YELLOW}⚠️ WARNING: Info.plist may contain debug configuration${NC}" - ((WARNINGS++)) - else - echo -e "${GREEN}✅ No obvious debug configuration in Info.plist${NC}" - fi -else - echo -e "${YELLOW}⚠️ WARNING: Info.plist not found${NC}" - ((WARNINGS++)) -fi - -# 6. Check code signature -echo "" -echo "6. Code Signature" -echo "----------------" -CODESIGN_INFO=$(codesign -dvvv "$APP_PATH" 2>&1 || true) -if echo "$CODESIGN_INFO" | grep -q "Authority="; then - echo -e "${GREEN}✅ App is signed${NC}" - # Check if it's a development certificate - if echo "$CODESIGN_INFO" | grep -q "Developer ID"; then - echo -e "${GREEN}✅ Signed with Developer ID (release)${NC}" - elif echo "$CODESIGN_INFO" | grep -q "Apple Development"; then - echo -e "${YELLOW}⚠️ WARNING: Signed with development certificate${NC}" - ((WARNINGS++)) - fi -else - echo -e "${YELLOW}⚠️ WARNING: App is not signed${NC}" - ((WARNINGS++)) -fi - -# Summary -echo "" -echo "=====================================" -echo "Verification Summary" -echo "=====================================" - -if [ $ERRORS -eq 0 ] && [ $WARNINGS -eq 0 ]; then - echo -e "${GREEN}✅ All checks passed! This appears to be a valid release build.${NC}" - exit 0 -elif [ $ERRORS -eq 0 ]; then - echo -e "${YELLOW}⚠️ Build has $WARNINGS warning(s) but no critical errors.${NC}" - echo "Review the warnings above to ensure they're acceptable." - exit 0 -else - echo -e "${RED}❌ Build has $ERRORS error(s) and $WARNINGS warning(s).${NC}" - echo "This build should NOT be released!" - exit 1 -fi \ No newline at end of file