Application Management
GitInspectorGUI uses a single-process PyO3 architecture with embedded Python. This guide covers application lifecycle management and troubleshooting.
Development vs Production
Development Mode
What this starts:
- Tauri desktop application with embedded Python
- Vite development server for frontend hot reloading
- PyO3 bindings for direct Python integration
Production Mode
What this creates:
- Single desktop application executable
- Embedded Python interpreter
- All dependencies bundled
Application Lifecycle
Starting the Application
Development:
# Start development environment
pnpm run tauri dev
# Expected output:
# - Tauri application window opens
# - Python analysis engine is ready
# - Frontend hot reloading enabled
Production:
# Run built application (example paths)
# Windows: ./target/release/gitinspectorgui.exe
# macOS: ./target/release/bundle/macos/GitInspectorGUI.app
# Linux: ./target/release/gitinspectorgui
Stopping the Application
Development:
- Close the Tauri application window, or
- Press
Ctrl+C
in the terminal runningpnpm run tauri dev
Production:
- Close the application window
- Application terminates cleanly with embedded Python
Troubleshooting
Application Won't Start
Check Python Dependencies:
# Verify Python environment
cd python
uv sync
# Test Python modules directly
python -c "from gigui.analysis import execute_analysis; print('Python modules OK')"
Check Rust/Tauri Dependencies:
# Verify Rust toolchain
rustc --version
cargo --version
# Clean and rebuild
cd src-tauri
cargo clean
cargo build
Check Node.js Dependencies:
Application Crashes
Check Logs:
# Development mode logs appear in terminal
pnpm run tauri dev
# Production logs (platform-specific locations):
# Windows: %APPDATA%/com.gitinspectorgui.app/logs/
# macOS: ~/Library/Logs/com.gitinspectorgui.app/
# Linux: ~/.local/share/com.gitinspectorgui.app/logs/
Common Crash Causes:
- Python Import Errors - Missing Python modules or incorrect module structure
- PyO3 Binding Issues - Incompatible Python/Rust versions
- Memory Issues - Large repository analysis exceeding available memory
- File Permission Issues - Cannot access git repositories
Python Integration Issues
Test Python Functions Independently:
cd python
python -c "
from gigui.analysis import execute_analysis, Settings
settings = Settings(input_fstrs=['.'], n_files=10)
try:
result = execute_analysis(settings)
print('Python analysis OK')
except Exception as e:
print(f'Python error: {e}')
"
Check PyO3 Integration:
Performance Issues
Monitor Resource Usage:
# Check memory usage (Unix-like systems)
ps aux | grep gitinspectorgui
# Check CPU usage
top -p $(pgrep gitinspectorgui)
Optimize Analysis Settings:
- Reduce
n_files
parameter for large repositories - Use
ex_files
to exclude unnecessary files - Limit
processes
to available CPU cores
File Access Issues
Check Repository Permissions:
# Verify git repository access
cd /path/to/repository
git status
# Check file permissions
ls -la .git/
Common Permission Issues:
- Repository on network drive with limited access
- Git repository corrupted or incomplete
- Insufficient permissions to read git objects
Application Configuration
Python Environment
Location: python/pyproject.toml
Tauri Configuration
Location: src-tauri/tauri.conf.json
{
"build": {
"beforeBuildCommand": "pnpm run build",
"beforeDevCommand": "pnpm run dev",
"devPath": "http://localhost:5173",
"distDir": "../dist"
}
}
PyO3 Configuration
Location: src-tauri/Cargo.toml
Maintenance Tasks
Update Dependencies
Python Dependencies:
Rust Dependencies:
Node.js Dependencies:
Clean Build Artifacts
Complete Clean:
# Clean all build artifacts
rm -rf target/
rm -rf dist/
rm -rf node_modules/
cd python && rm -rf .venv/
cd src-tauri && cargo clean
Rebuild Everything:
# Reinstall dependencies and rebuild
pnpm install
cd python && uv sync
cd ../src-tauri && cargo build
pnpm run tauri dev
Backup and Restore
Important Files to Backup:
python/
- Python analysis enginesrc/
- Frontend source codesrc-tauri/src/
- Rust integration code- Configuration files:
package.json
,pyproject.toml
,Cargo.toml
Settings and Data:
- User settings are stored in platform-specific locations
- No database or persistent server state to backup
Best Practices
Development Workflow
- Always test Python functions independently before running in Tauri
- Use development mode for rapid iteration
- Monitor terminal output for PyO3 integration issues
- Clean rebuild when switching between development and production
Production Deployment
- Test thoroughly in development mode before building
- Verify all dependencies are included in build
- Test on target platforms before distribution
- Include error reporting for production issues
Troubleshooting Approach
- Isolate the problem - Test Python, Rust, and frontend separately
- Check logs first - Most issues are logged with clear error messages
- Verify dependencies - Ensure all required packages are installed
- Clean rebuild - Many issues resolve with a clean build
This single-process architecture eliminates the complexity of managing multiple servers while providing robust desktop application functionality with embedded Python analysis capabilities.