0.0.1-alpha.5

This commit is contained in:
2026-09-28 09:50:20 +02:00
parent 8f6f072e11
commit c17b7068a3
26 changed files with 1952 additions and 23 deletions

75
deltas/0.0.1/alpha.5.md Normal file
View File

@@ -0,0 +1,75 @@
<!-- file: deltas/0.0.1/alpha.5.md -->
<!-- version: 1 -->
# Delta 0.0.1-alpha.5 — composition Actix/Maud et manifest Vite
## Base requise
État `0.0.1-alpha.4.fix.2` committé et poussé après application du history `PASS`.
La version devient `0.0.1-alpha.5`.
## Scope
La tranche matérialise :
```text
knowledge-web-lib
knowledge-pgr-server
knowledge-howtos-server
knowledge-snippets-server
```
`knowledge-web-lib` possède la composition Actix Web/Maud partagée, la résolution des assets Vite et les deux routes publiques minimales `/` et `/healthz`. Les trois packages serveur restent des launchers minces.
## Dépendances Web Rust
Versions vérifiées à la préparation de la tranche :
```text
actix-web 4.15.0
actix-files 0.7.0
maud 0.27.0
serde 1.0.229
serde_json 1.0.151
```
Les dépendances restent dans `knowledge-web-lib`, seul owner qui les consomme directement.
## Configuration runtime
Chaque launcher exige sa variable de bind :
```text
KNOWLEDGE_PGR_BIND_ADDRESS
KNOWLEDGE_HOWTOS_BIND_ADDRESS
KNOWLEDGE_SNIPPETS_BIND_ADDRESS
```
La source d'assets est exclusive :
```text
KNOWLEDGE_VITE_DEV_ORIGIN
ou
KNOWLEDGE_VITE_MANIFEST_PATH
```
En production `KNOWLEDGE_ASSET_BASE_PATH` peut remplacer le préfixe `/`.
Aucun origin Vite, port de déploiement ou hostname n'est codé en dur.
## Rendu et assets
Le rendu runtime Maud reprend les invariants de classes/assets utiles du template lab. En développement, il charge `@vite/client` avant `src/main.ts`. En production, il lit `.vite/manifest.json`, résout l'entrée stable `src/main.ts` et sert le répertoire d'assets produit par Vite via Actix Files.
Une configuration absente, ambiguë ou un manifest invalide produit une erreur récupérable avant l'écoute réseau ; aucun `panic!`, `unwrap`, `expect` ou `?` n'est introduit.
## Hors scope
La tranche n'ajoute ni auth, ni administration fonctionnelle, ni routes admin/login, ni PostgreSQL, ni Gitea, ni publication Git, ni logging transverse sans besoin observé.
`Cargo.lock` n'est pas préfabriqué dans le delta : Cargo doit le régénérer dans l'environnement opérateur avec les nouvelles dépendances, puis le versionner.
Ne pas committe `alpha.5` avant production de son history à partir des preuves opérateur.