- Set window theme to dark to match website's dark mode
- Update loading screen and About dialog to use dark colors
- Disable analytics in desktop app via DISABLE_ANALYTICS env var
- Remove About menu item and dialog (was placeholder)
- Clean up unused imports and constants
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Make PIL import conditional in og_image.py for builds without Pillow
- Update OG image routes to fall back to default image when PIL unavailable
- Update Tauri to find and use bundled PyInstaller executable
- Use transparent titlebar for full-width modern appearance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- Loading screen with spinner while FastAPI server starts
- Full native macOS menu bar with:
- Navigate menu: Home, Books, Search, Verse of the Day, Random
- Study menu: Study Guides, Topics, Stories, Strong's, Interlinear, Reading Plans
- View menu: Back, Forward, Reload, Fullscreen
- Standard Edit, Window, Help menus
- About dialog with version info and description
- Keyboard shortcuts for common navigation (Cmd+K search, etc.)
- Version updated to 0.1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Start FastAPI server before Tauri initializes
- Wait for health check to pass before creating window
- Create window programmatically with External URL
- Try uv first, fall back to python3
- Remove window config from tauri.conf.json (now in code)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Introduces a complete Tauri v2 project structure for building a native
macOS desktop application. The app runs FastAPI as a sidecar process
on port 31102 (number of KJV verses) and renders the existing web UI
in a native WebKit webview.
Key additions:
- src-tauri/: Complete Tauri configuration and Rust source
- Desktop entry point (kjvstudy_org/desktop.py)
- PyInstaller bundling script for Python sidecar
- Desktop-specific pyproject.toml without WeasyPrint
- App icons for macOS (.icns) and Windows (.ico)
- Makefile.desktop with build targets
- Comprehensive DESKTOP.md documentation
WeasyPrint is intentionally excluded from the desktop build to avoid
native library bundling complexity. PDF buttons are automatically
hidden when WeasyPrint is unavailable (existing graceful degradation).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>