- frontend/index.html : splash #boot-splash 100% inline (CSS+JS), scripts CDN en defer pour ne pas bloquer le premier paint
- frontend/js/app.js : signale le boot terminé via __OBSIGATE_BOOTED (try/finally)
- desktop/src/main.rs : met à jour le statut du splash avant la redirection vers le backend
- ci: stage backend/ + frontend/ sous desktop/ avant tauri build (resources backend/** et frontend/**) dans desktop-build.yml et build-linux.sh
- desktop/gen/schemas/windows-schema.json : régénéré (permissions store/updater)
- docs: README, README.fr, ROADMAP
- .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