diff --git a/Cargo.lock b/Cargo.lock index 0f010cf..7e00d46 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,18 +4,18 @@ version = 4 [[package]] name = "knowledge-domain-lib" -version = "0.0.1-alpha.4" +version = "0.0.1-alpha.4.fix.1" [[package]] name = "knowledge-git-api" -version = "0.0.1-alpha.4" +version = "0.0.1-alpha.4.fix.1" dependencies = [ "knowledge-domain-lib", ] [[package]] name = "knowledge-sync-api" -version = "0.0.1-alpha.4" +version = "0.0.1-alpha.4.fix.1" dependencies = [ "knowledge-domain-lib", ] diff --git a/Cargo.toml b/Cargo.toml index 621d26c..c3902d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 6 +# version: 7 [workspace] resolver = "3" @@ -10,7 +10,7 @@ members = [ ] [workspace.package] -version = "0.0.1-alpha.4" +version = "0.0.1-alpha.4.fix.1" edition = "2024" publish = false repository = "https://git.sasedev.com/Sasedev/sasedev-knowledge" diff --git a/VERSION b/VERSION index 2c6630c..e63c77b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1-alpha.4 +0.0.1-alpha.4.fix.1 diff --git a/Web/knowledge-template-lab/tsconfig.json b/Web/knowledge-template-lab/tsconfig.json index c35b7a9..04690ce 100644 --- a/Web/knowledge-template-lab/tsconfig.json +++ b/Web/knowledge-template-lab/tsconfig.json @@ -13,7 +13,10 @@ "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, - "verbatimModuleSyntax": true + "verbatimModuleSyntax": true, + "types": [ + "vite/client" + ] }, "include": [ "src/**/*.ts" diff --git a/deltas/0.0.1/alpha.4.fix.1.md b/deltas/0.0.1/alpha.4.fix.1.md new file mode 100644 index 0000000..cca1973 --- /dev/null +++ b/deltas/0.0.1/alpha.4.fix.1.md @@ -0,0 +1,76 @@ + + + +# Delta 0.0.1-alpha.4.fix.1 — types Vite client et hygiène de matrice + +## Base requise + +État `0.0.1-alpha.4` committé et poussé après application du history : + +```text +history/0.0.1/alpha.4.md = FAIL +``` + +La version devient : + +```text +0.0.1-alpha.4.fix.1 +``` + +## Causes du fix + +La gate `alpha.4` confirme que la structure Web, Cargo, Clippy strict, les tests Rust, `npm ci`, le build Vite et l'audit du manifest fonctionnent. + +Deux défauts empêchent néanmoins le `PASS`. + +### Typecheck TypeScript + +`npm run typecheck` échoue avec `TS2882` sur l'import side-effect `./styles/main.scss`. + +Le fix ajoute le shim officiel Vite : + +```json +"types": ["vite/client"] +``` + +dans `Web/knowledge-template-lab/tsconfig.json`. + +Aucun shim `*.scss` propre au projet n'est ajouté. + +### Hygiène Git/Markdown + +`git diff --check` signale une ligne vide supplémentaire en fin de `docs/validation/001-VALIDATION_MATRIX.md`. + +Le fix normalise la fin du fichier à une seule fin de ligne. + +## Observations non bloquantes + +Le build Vite aboutit mais Sass émet des warnings de dépréciation provenant de Bootstrap 5.3.8. Le projet ne patch pas Bootstrap et ne masque pas ces warnings dans ce fix. + +npm signale aussi `@parcel/watcher@2.6.0` comme dépendance avec script d'installation non encore couvert par `allowScripts`. Le fix n'approuve ni ne refuse automatiquement ce script ; la gate exécute `npm install-scripts ls` afin de conserver l'état observable. + +## Fichiers remplacés + +```text +VERSION +Cargo.toml +Web/knowledge-template-lab/tsconfig.json +docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +docs/validation/001-VALIDATION_MATRIX.md +``` + +## Fichier ajouté + +```text +deltas/0.0.1/alpha.4.fix.1.md +``` + +Aucun fichier n'est supprimé et aucune dépendance npm n'est ajoutée. + +`package-lock.json` appartient déjà à l'état `alpha.4` committé. Le bump Cargo peut régénérer `Cargo.lock`, qui reste versionné. + +## Scope exclu + +Aucun serveur Actix/Maud, loader Rust du manifest, route runtime, migration PostgreSQL ou adapter de forge n'est ajouté. + +Ne pas committe `alpha.4.fix.1` avant production de son history à partir des résultats opérateur. diff --git a/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md b/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md index 06614c7..2e84e45 100644 --- a/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +++ b/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md @@ -1,5 +1,5 @@ - + # Plan 0.0.1 — fondation SaseDev Knowledge @@ -166,6 +166,13 @@ Les outputs et caches restent sous `../builds/sasedev-knowledge/` et hors Git. L La preuve contre la dérive statique/Maud reste volontairement limitée à cette tranche : le package de référence documente les invariants de classes/attributs/assets, tandis que la comparaison runtime réelle n'existe qu'après matérialisation Maud en `alpha.5`. +La gate opérateur d'`alpha.4` reste **FAIL** malgré le passage de Cargo, Clippy, des tests Rust, de `npm ci`, du build Vite et de l'audit du manifest : + +- `npm run typecheck` échoue sur l'import side-effect `./styles/main.scss` faute de types client Vite déclarés ; +- `git diff --check` détecte une ligne vide supplémentaire en fin de `docs/validation/001-VALIDATION_MATRIX.md`. + +`alpha.4.fix.1` corrige exclusivement ces deux défauts : ajout de `vite/client` aux types TypeScript du package et hygiène EOF de la matrice. Les warnings Sass provenant de Bootstrap restent des diagnostics de dépendance tierce non bloquants. La politique npm `allowScripts` reste observée sans approbation automatique. + ### alpha.5 — composition Actix/Maud et manifest Vite Matérialiser le minimum Actix Web/Maud nécessaire pour prouver trois launchers minces et intégrer les assets produits par `alpha.4` : diff --git a/docs/validation/001-VALIDATION_MATRIX.md b/docs/validation/001-VALIDATION_MATRIX.md index a52db88..6bbcb66 100644 --- a/docs/validation/001-VALIDATION_MATRIX.md +++ b/docs/validation/001-VALIDATION_MATRIX.md @@ -1,5 +1,5 @@ - + # Matrice de validation Knowledge @@ -255,3 +255,21 @@ La tranche Web doit prouver : - gates Rust existantes toujours propres après le bump de version ; - `git diff --cached --check` propre et outputs générés absents du staging. +## Gate de `0.0.1-alpha.4.fix.1` + +Le premier fix Web doit prouver : + +- `VERSION = 0.0.1-alpha.4.fix.1` et version workspace Cargo identique ; +- history `alpha.4` `FAIL` committé avant application du fix ; +- `git diff --check` propre ; +- `compilerOptions.types` contient exactement `vite/client` dans `Web/knowledge-template-lab/tsconfig.json` ; +- aucun shim `*.scss` local ajouté pour contourner les types Vite ; +- `npm ci` `PASS` depuis le `package-lock.json` déjà versionné par `alpha.4` ; +- `npm run typecheck` `PASS` ; +- `npm run build` `PASS` ; +- manifest Vite parsable avec entrée `src/main.ts`, JavaScript et CSS ; +- `npm install-scripts ls` exécuté pour exposer les scripts d'installation non approuvés sans les approuver automatiquement ; +- warnings Sass issus de Bootstrap observables mais non traités comme défaut Knowledge tant que le build reste `PASS` ; +- gates Rust existantes toujours propres après le bump de version ; +- aucun serveur Actix/Maud, route runtime, migration PostgreSQL ou adapter de forge ajouté ; +- staging Git propre et outputs générés absents du dépôt. diff --git a/history/0.0.1/alpha.4.fix.1.md b/history/0.0.1/alpha.4.fix.1.md new file mode 100644 index 0000000..f86ec04 --- /dev/null +++ b/history/0.0.1/alpha.4.fix.1.md @@ -0,0 +1,139 @@ + + + +# History 0.0.1-alpha.4.fix.1 — types Vite client et hygiène de matrice + +## Statut + +FAIL + +La gate opérateur de `0.0.1-alpha.4.fix.1` exécutée le `2026-09-28` confirme la correction de l'hygiène Git et maintient le build Vite fonctionnel, mais le typecheck TypeScript reste bloqué par des types Node absents et par `Symbol.asyncDispose`. + +## Baseline opérateur + +`alpha.4` `FAIL` a été historisé, committé et poussé avant application du fix : + +```text +history/0.0.1/alpha.4.md = FAIL +commit 50599da +message 0.0.1-alpha.4 +branch master +push origin/master PASS +status clean après push +``` + +Le push observé a avancé `origin/master` de `91e596e` à `50599da`. + +## Hygiène Git + +Le défaut EOF d'`alpha.4` est corrigé : + +```text +git diff --check = PASS +git diff --cached --check = PASS +``` + +## Audit structurel + +La gate structurelle échoue avant les gates Cargo sur une assertion du contrôle des `*.d.ts`. + +Le contrôle livré inspectait tous les `*.d.ts` sous `Web/knowledge-template-lab`, y compris `node_modules`. Cette portée est incorrecte : les déclarations Vite de modules d'assets sont précisément nécessaires. + +Le contrôle doit être restreint aux déclarations source propres au projet. + +## Rust + +Les audits Rust PGR, `cargo check`, Clippy strict et les tests ciblés passent. + +Résultats : + +```text +knowledge-domain-lib : 3 passed; 0 failed +knowledge-git-api : 1 passed; 0 failed +knowledge-sync-api : 1 passed; 0 failed +``` + +## npm + +`npm ci` passe avec : + +```text +0 vulnerabilities +``` + +L'état des scripts d'installation reste : + +```text +@parcel/watcher@2.6.0 +``` + +non couvert par `allowScripts`. Aucune approbation automatique n'a été faite. + +## Typecheck TypeScript + +`npm run typecheck` échoue avec 44 erreurs réparties principalement entre Vite, Sass/Sass Embedded et Rolldown. + +Les diagnostics montrent explicitement l'absence de : + +```text +Buffer +NodeJS +node:http +node:url +node:stream +@types/node +``` + +Vite référence aussi son propre fichier de types Node. + +Un diagnostic distinct concerne : + +```text +Symbol.asyncDispose +``` + +dans les déclarations Rolldown. + +La correction `vite/client` seule est donc insuffisante. + +## Build et manifest + +`npm run build` reste `PASS`. + +Le manifest Vite reste valide et l'audit confirme : + +```text +src/main.ts +JavaScript hashé +CSS hashé +``` + +Les warnings Sass Bootstrap restent non bloquants. + +## Staging observé + +Après la gate : + +```text +M Cargo.lock +M Cargo.toml +M VERSION +M Web/knowledge-template-lab/tsconfig.json +A deltas/0.0.1/alpha.4.fix.1.md +M docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +M docs/validation/001-VALIDATION_MATRIX.md +``` + +Le staging est propre au regard de `git diff --cached --check`. + +## Décision + +`0.0.1-alpha.4.fix.1` est `FAIL`. + +La transition autorisée est : + +```text +0.0.1-alpha.4.fix.2 +``` + +Le second fix doit ajouter les types Node alignés sur Node 24, la bibliothèque `ESNext.Disposable`, corriger la portée de l'audit structurel et rejouer les gates Rust/Web complètes.