# Delta 0.0.1-alpha.4.fix.2 — types Node et `ESNext.Disposable` ## Base requise État `0.0.1-alpha.4.fix.1` committé et poussé après application du history : ```text history/0.0.1/alpha.4.fix.1.md = FAIL ``` La version devient : ```text 0.0.1-alpha.4.fix.2 ``` ## Causes du second fix Le premier fix Web corrige l'import Sass côté Vite client et l'hygiène EOF, mais sa gate opérateur montre encore deux familles d'erreurs TypeScript. ### Types Node absents Les déclarations de Vite et `sass-embedded` utilisent notamment : ```text Buffer NodeJS node:http node:url node:stream ``` Le package ajoute donc : ```json "@types/node": "24.13.6" ``` dans `devDependencies`. Cette branche est alignée sur l'environnement opérateur Node 24 plutôt que sur le `latest` global des types Node. Le `tsconfig.json` du code Web devient : ```json "types": ["vite/client", "node"] ``` Le `tsconfig.vite.json` de la configuration Vite utilise : ```json "types": ["node"] ``` ### `Symbol.asyncDispose` Rolldown expose une déclaration utilisant : ```text Symbol.asyncDispose ``` Le projet conserve `target = ES2022` et ajoute la bibliothèque de types : ```text ESNext.Disposable ``` conformément au modèle TypeScript prévu pour l'explicit resource management sur un target plus ancien. ### Défaut de la gate structurelle précédente La gate `alpha.4.fix.1` parcourait tous les fichiers `*.d.ts` sous `Web/`, donc aussi ceux de `node_modules`. Cette vérification était incorrecte : Vite doit précisément fournir ses propres déclarations de modules d'assets. La nouvelle gate ne vérifie que les éventuels fichiers `*.d.ts` appartenant à : ```text Web/knowledge-template-lab/src/ ``` afin d'empêcher uniquement un shim SCSS local ajouté pour masquer le problème. ## Fichiers remplacés ```text VERSION Cargo.toml Web/knowledge-template-lab/package.json Web/knowledge-template-lab/tsconfig.json Web/knowledge-template-lab/tsconfig.vite.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.2.md ``` Aucun fichier n'est supprimé. ## Lockfiles Le delta ne préfabrique pas `package-lock.json`. L'opérateur doit exécuter `npm install` pour intégrer `@types/node` au lockfile, puis `npm ci` pour vérifier la restauration reproductible. Le bump Cargo peut également modifier `Cargo.lock`; toute modification réelle reste versionnée. ## Scope exclu Le fix n'ajoute pas : - Actix Web ; - Maud ; - crate serveur ; - loader Rust du manifest ; - route runtime ; - migration PostgreSQL ; - adapter de forge. ## Validation attendue Après application du history `alpha.4.fix.1 FAIL`, commit/push de `alpha.4.fix.1`, puis extraction du présent delta, exécuter la gate opérateur fournie. Ne pas committe `alpha.4.fix.2` avant production de son history à partir des résultats opérateur.