# Debugging Path Juggler ## Build System The build scripts use **uv** to manage Python versions and dependencies, ensuring a truly self-contained build that doesn't depend on system Python installations. This means: - ✅ No dependency on system Python versions - ✅ No dependency on Homebrew Python - ✅ Consistent builds across different systems - ✅ Self-contained .app bundle with everything included ## The Problem When you launch the built app and nothing happens, it's because: 1. The app is built with `console=False`, so errors are hidden 2. The app is failing silently due to missing dependencies (like `tkinter`) ## Solution 1: Run from Terminal (Quick Debug) Run the existing app from terminal to see errors: ```bash ./run_app_debug.sh ``` Or manually: ```bash "/Users/justinaspetravicius/Public/Gitea/path-juggler/dist/Path Juggler.app/Contents/MacOS/Path Juggler" ``` This will show you any error messages in the terminal. ## Solution 2: Build Debug Version Build a version with console output enabled: ```bash ./build_app_debug.sh ``` This creates `Path Juggler Debug.app` which will show a terminal window with all output. ## Solution 3: Check System Logs On macOS, you can also check system logs: ```bash # View recent logs for the app log show --predicate 'process == "Path Juggler"' --last 5m # Or use Console.app (GUI) open -a Console ``` ## Common Issues Found ### Issue: Missing tkinter **Error:** `ModuleNotFoundError: No module named 'tkinter'` or `ModuleNotFoundError: No module named '_tkinter'` **Root Cause:** The build scripts now use `uv` to install Python 3.12, which includes tkinter by default. If you still see this error, it may be a PyInstaller bundling issue. **Fix:** The build scripts use `uv` to: 1. Install Python 3.12 (which has tkinter built-in) 2. Create a virtual environment with that Python 3. Install all dependencies 4. Build with PyInstaller (which bundles everything including tkinter) Rebuild the app: ```bash ./build_app.sh ``` **If tkinter is still missing:** 1. Make sure `uv` is installed: `brew install uv` or `curl -LsSf https://astral.sh/uv/install.sh | sh` 2. The build script will automatically download Python 3.12 if needed 3. PyInstaller should bundle tkinter automatically - if not, check the PyInstaller output for warnings ### Issue: Missing watchdog modules **Error:** `ModuleNotFoundError: No module named 'watchdog.observers.fsevents'` **Fix:** Make sure watchdog is installed in the build environment. The build script handles this automatically. ## Rebuilding After Fixes After fixing issues, rebuild: ```bash # Production build (no console) ./build_app.sh # Debug build (with console) ./build_app_debug.sh ``` ## Testing the Fix After rebuilding, test: 1. **Quick test from terminal:** ```bash ./run_app_debug.sh ``` 2. **Or launch the debug version:** ```bash open "dist/Path Juggler Debug.app" ``` 3. **Or launch the production version:** ```bash open "dist/Path Juggler.app" ``` ## Current Status The build scripts have been updated to include `tkinter` in the hidden imports. You should rebuild the app to apply the fix.