0.0.1-alpha.3.fix.1

This commit is contained in:
2026-09-27 23:00:24 +02:00
parent 6b6bdcfc71
commit fd3d363bff
17 changed files with 625 additions and 30 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Architecture de fondation Knowledge
@@ -238,6 +238,34 @@ Actix Web et Maud sont des choix de composition/rendu locaux. Vite gère les ass
La stratégie exacte de partage des assets/frontend entre les trois applications reste `DEFER` jusqu'à la tranche Web : un package commun n'est créé que si du code/assets sont réellement communs.
### Pipeline Web de référence et rendu runtime
Le frontend Web n’est pas une SPA concurrente du SSR Maud. Il possède deux responsabilités distinctes :
```text
Vite + TypeScript + Sass + Bootstrap
-> assets construits et templates statiques de référence
-> typecheck/build/preview/smoke indépendants du backend
Actix Web + Maud
-> markup runtime des trois applications
-> consommation des mêmes contrats d’assets
```
Les templates statiques de référence permettent de travailler rapidement sur le HTML, le responsive, les classes Bootstrap, les comportements TypeScript et les styles Sass sans démarrer les serveurs Rust. Ils sont ensuite adaptés en composants/templates Maud pour le rendu runtime. Cette adaptation ne doit pas créer deux produits UI indépendants : la tranche Web devra définir les invariants vérifiables qui empêchent la dérive entre référence statique et rendu Maud.
Le build production Vite doit exposer un manifest permettant au backend de convertir une clé d’entrée stable en URL d’asset hashé. Le corpus `actix-auth-app` montre un pattern utile : manifest Vite activé, entrées TypeScript/Sass explicites, loader Rust et sélection dev-server versus manifest en fonction du mode. Knowledge retient le **contrat d’intégration**, pas l’implémentation historique telle quelle.
En particulier, Knowledge ne doit pas hériter mécaniquement :
- d’un origin Vite `localhost:5173` codé en dur ;
- d’un préfixe `/res` universel ;
- d’un `panic!` lorsque le manifest est absent ou invalide ;
- d’une arborescence d’assets spécifique au corpus ;
- de dépendances TypeScript `@types/*` non justifiées par les packages réellement consommés.
`alpha.4` possède le frontend indépendant et la production du manifest. `alpha.5` possède l’intégration Actix/Maud et doit décider si le loader d’assets devient une crate/lib partagée entre les trois serveurs.
## 10. Administration
L'administration Web est une interface vers les mêmes cas d'usage que l'édition locale Git, pas une deuxième source de vérité.