# 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.