|
|
|
|
|
|
Les releases sont publiées sur GitHub Releases.
| Fichier | Description |
|---|---|
Layout.Manager.2_*_x64-setup.exe |
Installateur NSIS Windows (utilisateur courant) |
release-checksums.txt |
Empreintes SHA-256 des artefacts |
Prérequis runtime : Microsoft Edge WebView2 (installé automatiquement par l'installateur si nécessaire).
- Windows 10 (1803+) ou Windows 11
- Node.js 22+
- pnpm 10
- Rust stable (MSVC)
- Microsoft C++ Build Tools avec
Desktop development with C++ - WebView2 Runtime
pnpm installpnpm tauri:devpnpm checkExécute formatage, lint, typecheck, tests frontend, build frontend, rustfmt, Clippy et tests Rust.
pnpm tauri:buildL'installateur est généré dans src-tauri/target/release/bundle/.
Layouts, réglages et base SQLite sont stockés dans le dossier de données de l'application Tauri, accessible depuis Réglages → Ouvrir le dossier des données.
| Commande | Description |
|---|---|
pnpm dev |
Serveur Vite seul (frontend) |
pnpm tauri:dev |
Application complète en développement |
pnpm check |
Suite qualité complète |
pnpm test |
Tests unitaires et composants (Vitest) |
pnpm test:e2e |
Parcours e2e mocké |
pnpm tauri:build |
Build production + installateur NSIS |
pnpm rust:test |
Tests Rust backend |
layout-manager-2/
├── src/ → Frontend React (features, composants, bridge Tauri)
│ ├── app/ → Routeur et providers
│ ├── features/
│ │ ├── layouts/ → Liste, éditeur et schémas de validation
│ │ ├── execution/ → Progression et rapport d'exécution
│ │ ├── settings/ → Réglages persistants
│ │ └── windows/ → Sélecteur de fenêtres de bureau
│ ├── components/ui/ → Primitives shadcn/ui partagées
│ └── lib/tauri/ → Commandes et événements typés
├── src-tauri/src/
│ ├── domain/ → Modèles, règles et ports (sans Win32 ni SQLite)
│ ├── application/ → Use cases : layouts, exécution, matching
│ ├── infrastructure/ → Win32, processus, navigateurs, SQLite
│ └── commands/ → Boundary Tauri et DTO
├── src-tauri/migrations/ → Schéma SQLite versionné
├── tests/e2e/ → Parcours UI mocké
├── scripts/ → Outils locaux (lecture base SQLite)
└── .github/workflows/ → CI qualité et pipeline release
Validation → Snapshot fenêtres → Lancement (apps + navigateurs)
→ Placement → Réduction optionnelle → Rapport
Le frontend communique uniquement via des commandes Tauri typées. Aucun accès direct à Win32 ou SQLite depuis l'interface.
| Couche | Technologie |
|---|---|
| Shell desktop | Tauri 2 |
| Backend | Rust 2024, crate windows (Win32) |
| Frontend | React 19, TypeScript strict, Vite |
| Styles | Tailwind CSS, shadcn/ui, Lucide |
| État UI | Zustand, React Hook Form, Zod |
| Persistance | SQLite (rusqlite), migrations versionnées |
| Tests | Vitest, Testing Library, tests Rust + natifs opt-in #[ignore] |
| Qualité | ESLint, Prettier, rustfmt, Clippy, GitHub Actions |
- → Appels Win32 directs pour inventaire, placement et processus
- → Backend typé avec erreurs contrôlées et logs structurés
- → Interface web rapide à itérer sans embarquer Chromium complet
- → Installateur léger et permissions Tauri minimales
| Domaine | Commandes |
|---|---|
| Application | get_app_info |
| Layouts | list_layouts, get_layout, save_layout, duplicate_layout, delete_layout |
| Système | list_desktop_windows, list_monitors, validate_executable, resolve_launch_executable |
| Navigateur | list_installed_browsers |
| Exécution | run_layout, cancel_layout_run |
| Réglages | get_settings, save_settings, open_data_directory |
Événements de progression : layout-run://started, layout-run://action-started, layout-run://action-completed, layout-run://completed.
- Application locale : pas de télémétrie ni de compte dans le MVP
- Capacités Tauri minimales ; pas de shell générique exposé au frontend
- Chemins, arguments et URL validés côté Rust avant exécution
- Aucun handle Windows (
HWND) persisté en base - Journaux avec rotation ; pas d'URL complètes ni d'arguments sensibles par défaut
- Mises à jour vérifiées avec une signature cryptographique avant installation
- Installateur en mode utilisateur courant — pas d'élévation admin par défaut
# Suite complète (recommandé avant contribution)
pnpm check
# Tests natifs Windows (modifient le bureau — opt-in)
cargo test --manifest-path src-tauri/Cargo.toml -- --ignored
# Parcours e2e mocké
pnpm test:e2eLe placement réel sur le bureau et l'installateur sur machine vierge doivent être validés manuellement.
- Branche d'intégration :
dev - Commits :
type(scope): thing done(anglais, sans body) - Releases : tag
v*surmaindéclenche le workflow GitHub Actions - Changelog : voir CHANGELOG.md
Distribué sous licence MIT.
Layout Manager 2 · Version beta · Windows 10/11