Files
sasedev-knowledge/deltas/0.0.1/alpha.4.fix.2.md

133 lines
2.9 KiB
Markdown

<!-- file: deltas/0.0.1/alpha.4.fix.2.md -->
<!-- version: 1 -->
# 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.