- .gitea/workflows/desktop-build.yml: compiles on push to main
- Windows runner: Rust + Tauri + Python embed → MSI
- Linux runner: Rust + Tauri + webkit2gtk → AppImage + .deb
- Artifacts uploaded with 30-day retention
- Triggers when desktop/, frontend/, or backend/ changes
- Manual trigger via workflow_dispatch
- Updated ROADMAP #77 to mark CI/CD as done