0.1.0-1-alpha.2-fix.2
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# Documentation games.sasedev
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/architecture/001-WORKSPACE_ARCHITECTURE.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Architecture du workspace
|
||||
|
||||
@@ -21,13 +21,12 @@ games.sasedev/
|
||||
│ └── apps/
|
||||
│ ├── game-reflex-poc-desktop/
|
||||
│ ├── game-snake-poc-desktop/
|
||||
│ └── game-reflex-poc-tauri/
|
||||
│ ├── game-reflex-poc-tauri/
|
||||
│ └── game-reflex-poc-wasm/
|
||||
├── assets/
|
||||
│ ├── common/
|
||||
│ ├── game-reflex-poc/
|
||||
│ └── game-snake-poc/
|
||||
├── Tauri/
|
||||
│ └── game-reflex-poc/
|
||||
├── Android/
|
||||
│ ├── common/
|
||||
│ ├── game-reflex-poc/
|
||||
@@ -80,3 +79,5 @@ La variante Tauri est distincte du runner SDL3 natif.
|
||||
- un binaire natif Tauri qui héberge la WebView locale.
|
||||
|
||||
Le frontend statique sous `Tauri/game-reflex-poc/frontend/` pilote un Canvas et appelle l'adaptateur WASM. Les règles Reflex restent exclusivement dans `game-reflex-poc`.
|
||||
|
||||
La crate Tauri suit le modèle des apps Desk KSP : façade `lib.rs`, pont `tauri.rs`, modules propriétaires séparés et frontend Vite/TypeScript local à la crate.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/development/008-WASM_TAURI_POC.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# POC WebAssembly embarqué dans Tauri
|
||||
|
||||
@@ -111,3 +111,37 @@ crates/apps/game-reflex-poc-tauri/icons/icon.png
|
||||
```
|
||||
|
||||
Il s'agit d'une icône minimale de développement ; l'identité graphique définitive viendra plus tard.
|
||||
|
||||
## Réorganisation fix.2
|
||||
|
||||
La crate Tauri et la crate WASM sont désormais séparées.
|
||||
|
||||
```text
|
||||
crates/apps/game-reflex-poc-tauri/
|
||||
├── src/lib.rs
|
||||
├── src/tauri.rs
|
||||
├── src/runtime.rs
|
||||
├── src/main.rs
|
||||
├── frontend/
|
||||
├── package.json
|
||||
├── tsconfig.json
|
||||
├── vite.config.ts
|
||||
└── tauri.conf.json
|
||||
|
||||
crates/apps/game-reflex-poc-wasm/
|
||||
├── src/lib.rs
|
||||
└── src/runtime.rs
|
||||
```
|
||||
|
||||
`lib.rs` joue le rôle de façade. `tauri.rs` contient le pont Web/Rust et l'assemblage Tauri. Les fonctions métier/runtime sont portées par leurs modules puis appelées par les commandes Tauri.
|
||||
|
||||
Le frontend utilise Vite + TypeScript. Le build WASM reste séparé et produit les bindings `wasm-bindgen` dans `frontend/wasm/`.
|
||||
|
||||
Le logging est unifié avec `tracing` :
|
||||
|
||||
- `tracing` côté Rust ;
|
||||
- `tauri-plugin-tracing` côté Tauri ;
|
||||
- `@fltsci/tauri-plugin-tracing` côté TypeScript ;
|
||||
- capability `tracing:default`.
|
||||
|
||||
Les événements frontend utiles sont donc remontés dans le même système de traces que le backend Rust.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/rules/FILE_CONTRACTS.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Contrats des fichiers principaux
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
|
||||
## Tauri
|
||||
|
||||
- `Tauri/<game>/frontend/` contient le frontend Web statique versionné d'une variante Tauri.
|
||||
- `crates/apps/<game>-tauri/frontend/` contient le frontend Vite/TypeScript versionné.
|
||||
- `crates/apps/<game>-tauri/src/lib.rs` est la façade Rust de l'app Tauri.
|
||||
- `crates/apps/<game>-tauri/src/tauri.rs` assemble Tauri et porte le pont Web/Rust.
|
||||
- `crates/apps/<game>-wasm/` contient l'adaptation WebAssembly distincte.
|
||||
- Les bindings JavaScript et modules `.wasm` générés restent ignorés par Git.
|
||||
- Le backend Rust Tauri reste sous `crates/apps/`.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/rules/RULES_COMMANDS.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Règles d'exécution des commandes
|
||||
|
||||
@@ -53,10 +53,12 @@
|
||||
|
||||
- **CMD-WEB-001** — Aucun gestionnaire de paquets JavaScript ni build Web n'est exécuté tant qu'un frontend Web réel n'a pas été introduit dans le dépôt.
|
||||
- **CMD-WEB-002** — Lorsqu'une cible Web existe, ses commandes de build et test sont documentées avant d'être ajoutées aux gates.
|
||||
- **CMD-WEB-003** — Le POC Tauri/WASM utilise `scripts/build_reflex_tauri_wasm.py`; aucun gestionnaire de paquets JavaScript ni serveur Web externe n'est requis pour cette variante.
|
||||
- **CMD-WEB-003** — Le POC Tauri/WASM utilise `scripts/build_reflex_tauri_wasm.py` pour WASM et Vite/TypeScript pour le frontend local ; aucun site distant n'est requis.
|
||||
- **CMD-WEB-004** — Les fichiers produits par `wasm-bindgen` sont générés localement et ne sont pas commités.
|
||||
|
||||
## Git et fichiers générés
|
||||
|
||||
- **CMD-GIT-001** — Les commandes Git destructives (`reset --hard`, nettoyage forcé, réécriture non demandée) ne sont jamais utilisées pour remettre artificiellement le workspace en état.
|
||||
- **CMD-GIT-002** — Les fichiers générés ne sont pas commités sauf contrat explicite du dépôt ou exigence de distribution.
|
||||
|
||||
- **CMD-WEB-005** — `npm run dev` et `npm run build` du frontend Tauri sont pilotés par les hooks Tauri ; ils ne constituent pas des gates manuelles indépendantes.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/rules/RULES_PROJECT.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Règles spécifiques games.sasedev
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
- **GAME-PLATFORM-004** — Ads et Billing sont des capacités optionnelles ; le gameplay reste fonctionnel lorsqu'elles sont disponibles, désactivées ou non supportées.
|
||||
- **GAME-PLATFORM-005** — Un backend de monétisation est spécifique à sa plateforme et à sa distribution ; une intégration Android n'est pas réutilisée implicitement sur Web ou Desktop.
|
||||
- **GAME-PLATFORM-006** — Le runner Desktop natif SDL3 est la forme Desktop par défaut. Une variante Tauri peut coexister uniquement lorsqu'un besoin explicite le justifie et consomme la même crate lib de jeu.
|
||||
- **GAME-PLATFORM-007** — Une variante Tauri conserve son backend Rust sous `crates/apps/`; son frontend Web statique réside sous `Tauri/<game>/` et ne duplique pas le gameplay Rust.
|
||||
- **GAME-PLATFORM-007** — Une variante Tauri conserve son backend Rust sous `crates/apps/`; son frontend Vite/TypeScript réside dans la même crate sous `frontend/` et ne duplique pas le gameplay Rust.
|
||||
- **GAME-PLATFORM-008** — Le gameplay compilé en WebAssembly est adapté par une frontière dédiée ; le code JavaScript orchestre la WebView, les événements et le rendu Canvas mais ne réimplémente pas les règles du jeu.
|
||||
|
||||
## POC
|
||||
@@ -63,3 +63,7 @@
|
||||
- **GAME-TRACE-002** — `tracing-subscriber` compose les subscribers applicatifs et de test ; une librairie métier ne configure pas silencieusement le subscriber global.
|
||||
- **GAME-TRACE-003** — `tracing-appender` est utilisé lorsque l’écriture non bloquante ou les fichiers de logs deviennent nécessaires ; le guard associé reste vivant pendant toute la durée utile.
|
||||
- **GAME-TRACE-004** — La configuration de logging commune réside dans une crate transverse et ne doit pas être dupliquée par jeu.
|
||||
|
||||
- **GAME-PLATFORM-009** — Une adaptation WebAssembly réutilisable est une crate dédiée distincte de la crate Tauri.
|
||||
- **GAME-PLATFORM-010** — Dans une app Tauri, `lib.rs` reste une façade/reexport ; `tauri.rs` assemble Tauri et expose les commandes qui délèguent aux modules propriétaires.
|
||||
- **GAME-PLATFORM-011** — Les traces frontend Tauri passent par `@fltsci/tauri-plugin-tracing` vers `tauri-plugin-tracing`/`tracing`; les `console.*` applicatifs directs sont interdits hors fallback interne.
|
||||
|
||||
Reference in New Issue
Block a user