0.0.1-alpha.4.fix.2
This commit is contained in:
6
Cargo.lock
generated
6
Cargo.lock
generated
@@ -4,18 +4,18 @@ version = 4
|
||||
|
||||
[[package]]
|
||||
name = "knowledge-domain-lib"
|
||||
version = "0.0.1-alpha.4.fix.1"
|
||||
version = "0.0.1-alpha.4.fix.2"
|
||||
|
||||
[[package]]
|
||||
name = "knowledge-git-api"
|
||||
version = "0.0.1-alpha.4.fix.1"
|
||||
version = "0.0.1-alpha.4.fix.2"
|
||||
dependencies = [
|
||||
"knowledge-domain-lib",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "knowledge-sync-api"
|
||||
version = "0.0.1-alpha.4.fix.1"
|
||||
version = "0.0.1-alpha.4.fix.2"
|
||||
dependencies = [
|
||||
"knowledge-domain-lib",
|
||||
]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# file: Cargo.toml
|
||||
# version: 7
|
||||
# version: 8
|
||||
|
||||
[workspace]
|
||||
resolver = "3"
|
||||
@@ -10,7 +10,7 @@ members = [
|
||||
]
|
||||
|
||||
[workspace.package]
|
||||
version = "0.0.1-alpha.4.fix.1"
|
||||
version = "0.0.1-alpha.4.fix.2"
|
||||
edition = "2024"
|
||||
publish = false
|
||||
repository = "https://git.sasedev.com/Sasedev/sasedev-knowledge"
|
||||
|
||||
18
Web/knowledge-template-lab/package-lock.json
generated
18
Web/knowledge-template-lab/package-lock.json
generated
@@ -11,6 +11,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bootstrap": "5.2.11",
|
||||
"@types/node": "24.13.6",
|
||||
"sass-embedded": "1.105.0",
|
||||
"typescript": "7.0.2",
|
||||
"vite": "8.3.1"
|
||||
@@ -639,6 +640,16 @@
|
||||
"@popperjs/core": "^2.9.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "24.13.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.6.tgz",
|
||||
"integrity": "sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~7.18.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript/typescript-aix-ppc64": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz",
|
||||
@@ -2005,6 +2016,13 @@
|
||||
"@typescript/typescript-win32-x64": "7.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "7.18.2",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
|
||||
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/varint": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bootstrap": "5.2.11",
|
||||
"@types/node": "24.13.6",
|
||||
"sass-embedded": "1.105.0",
|
||||
"typescript": "7.0.2",
|
||||
"vite": "8.3.1"
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
"lib": [
|
||||
"ES2022",
|
||||
"DOM",
|
||||
"DOM.Iterable"
|
||||
"DOM.Iterable",
|
||||
"ESNext.Disposable"
|
||||
],
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
@@ -15,7 +16,8 @@
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"types": [
|
||||
"vite/client"
|
||||
"vite/client",
|
||||
"node"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
|
||||
@@ -8,7 +8,14 @@
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"verbatimModuleSyntax": true
|
||||
"verbatimModuleSyntax": true,
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"lib": [
|
||||
"ES2022",
|
||||
"ESNext.Disposable"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"vite.config.ts"
|
||||
|
||||
132
deltas/0.0.1/alpha.4.fix.2.md
Normal file
132
deltas/0.0.1/alpha.4.fix.2.md
Normal file
@@ -0,0 +1,132 @@
|
||||
<!-- 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.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/001-V0_0_1_FOUNDATION_PLAN.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 10 -->
|
||||
|
||||
# Plan 0.0.1 — fondation SaseDev Knowledge
|
||||
|
||||
@@ -173,6 +173,15 @@ La gate opérateur d'`alpha.4` reste **FAIL** malgré le passage de Cargo, Clipp
|
||||
|
||||
`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.
|
||||
|
||||
La gate opérateur d'`alpha.4.fix.1` reste **FAIL**. L'hygiène Git est corrigée et le build/manifest restent propres, mais le typecheck expose deux besoins supplémentaires de la toolchain :
|
||||
|
||||
- les déclarations Vite et `sass-embedded` utilisent les types Node (`Buffer`, `NodeJS`, `node:*`) ;
|
||||
- Rolldown utilise `Symbol.asyncDispose`, qui nécessite la bibliothèque TypeScript `ESNext.Disposable` lorsque le target reste `ES2022`.
|
||||
|
||||
L'audit structurel du fix contenait également une vérification trop large de tous les `*.d.ts` sous `Web/`, incluant `node_modules`; il doit être limité aux déclarations appartenant au source du projet.
|
||||
|
||||
`alpha.4.fix.2` ajoute donc `@types/node` sur la branche Node 24, expose les types `node`, ajoute `ESNext.Disposable` et corrige uniquement la gate structurelle associée. Aucun scope runtime n'est ajouté.
|
||||
|
||||
### 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` :
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/001-VALIDATION_MATRIX.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 10 -->
|
||||
|
||||
# Matrice de validation Knowledge
|
||||
|
||||
@@ -273,3 +273,25 @@ Le premier fix Web doit prouver :
|
||||
- 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.
|
||||
|
||||
## Gate de `0.0.1-alpha.4.fix.2`
|
||||
|
||||
Le second fix Web doit prouver :
|
||||
|
||||
- `VERSION = 0.0.1-alpha.4.fix.2` et version workspace Cargo identique ;
|
||||
- history `alpha.4.fix.1` `FAIL` committé avant application du fix ;
|
||||
- `git diff --check` propre ;
|
||||
- `@types/node = 24.13.6` présent dans `devDependencies` ;
|
||||
- `tsconfig.json` contient `types = ["vite/client", "node"]` ;
|
||||
- `tsconfig.json` conserve `ES2022`, `DOM`, `DOM.Iterable` et ajoute `ESNext.Disposable` ;
|
||||
- `tsconfig.vite.json` contient `types = ["node"]` et `lib = ["ES2022", "ESNext.Disposable"]` ;
|
||||
- aucun shim `*.scss` source propre au projet n'est ajouté ;
|
||||
- l'audit de shims ne parcourt pas `node_modules` ;
|
||||
- `npm install` met à jour `package-lock.json` avec `@types/node` puis `npm ci` `PASS` ;
|
||||
- `npm run typecheck` `PASS` ;
|
||||
- `npm run build` `PASS` ;
|
||||
- manifest Vite parsable avec entrée `src/main.ts`, JavaScript et CSS ;
|
||||
- `npm install-scripts ls` garde observable la politique `@parcel/watcher` sans approbation automatique ;
|
||||
- gates Rust existantes toujours propres après le bump de version ;
|
||||
- aucun serveur Actix/Maud, loader Rust du manifest, route runtime, migration PostgreSQL ou adapter de forge ajouté ;
|
||||
- staging Git propre et outputs générés absents du dépôt.
|
||||
|
||||
168
history/0.0.1/alpha.4.fix.2.md
Normal file
168
history/0.0.1/alpha.4.fix.2.md
Normal file
@@ -0,0 +1,168 @@
|
||||
<!-- file: history/0.0.1/alpha.4.fix.2.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# History 0.0.1-alpha.4.fix.2 — types Node et `ESNext.Disposable`
|
||||
|
||||
## Statut
|
||||
|
||||
PASS
|
||||
|
||||
La gate opérateur de `0.0.1-alpha.4.fix.2` exécutée le `2026-09-28` est propre.
|
||||
|
||||
## Baseline opérateur
|
||||
|
||||
`alpha.4.fix.1` `FAIL` a été historisé, committé et poussé avant application du second fix :
|
||||
|
||||
```text
|
||||
history/0.0.1/alpha.4.fix.1.md = FAIL
|
||||
commit 342befa
|
||||
message 0.0.1-alpha.4.fix.1
|
||||
branch master
|
||||
push origin/master PASS
|
||||
status clean après push
|
||||
```
|
||||
|
||||
Le push observé a avancé `origin/master` de `50599da` à `342befa`.
|
||||
|
||||
## Structure
|
||||
|
||||
La gate structurelle passe :
|
||||
|
||||
```text
|
||||
Knowledge 0.0.1-alpha.4.fix.2 structural audit: clean
|
||||
```
|
||||
|
||||
Les décisions corrigées sont effectivement présentes :
|
||||
|
||||
```text
|
||||
@types/node = 24.13.6
|
||||
types = ["vite/client", "node"]
|
||||
lib = ["ES2022", "DOM", "DOM.Iterable", "ESNext.Disposable"]
|
||||
```
|
||||
|
||||
Le `tsconfig.vite.json` contient également les types Node et `ESNext.Disposable`.
|
||||
|
||||
L'audit des éventuels shims SCSS est limité aux sources appartenant au projet et ne parcourt plus `node_modules`.
|
||||
|
||||
## Rust
|
||||
|
||||
Les audits PGR sélectionnés passent :
|
||||
|
||||
```text
|
||||
Rust blank-line audit: clean (8 file(s))
|
||||
Rust item-spacing audit: clean (8 file(s))
|
||||
Rust module-order audit: clean (8 file(s))
|
||||
Rust trait-import-block audit: clean (8 file(s))
|
||||
Rust re-export-block audit: clean (8 file(s))
|
||||
Rust export completeness audit: 0 candidate(s) across 3 package(s)
|
||||
```
|
||||
|
||||
Les commandes suivantes passent :
|
||||
|
||||
```text
|
||||
cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets --all-features
|
||||
-- -D warnings PASS
|
||||
```
|
||||
|
||||
Tests ciblés :
|
||||
|
||||
```text
|
||||
knowledge-domain-lib : 3 passed; 0 failed
|
||||
knowledge-git-api : 1 passed; 0 failed
|
||||
knowledge-sync-api : 1 passed; 0 failed
|
||||
```
|
||||
|
||||
## npm et lockfile
|
||||
|
||||
`npm install` ajoute les deux packages nécessaires au graphe Node et termine avec :
|
||||
|
||||
```text
|
||||
43 packages audited
|
||||
0 vulnerabilities
|
||||
```
|
||||
|
||||
`package-lock.json` est mis à jour.
|
||||
|
||||
`npm ci` restaure ensuite le graphe et termine également avec :
|
||||
|
||||
```text
|
||||
43 packages audited
|
||||
0 vulnerabilities
|
||||
```
|
||||
|
||||
La politique npm conserve un script non approuvé :
|
||||
|
||||
```text
|
||||
@parcel/watcher@2.6.0
|
||||
```
|
||||
|
||||
Cette observation n'empêche ni le typecheck ni le build et aucune approbation automatique n'a été effectuée.
|
||||
|
||||
## Typecheck et build Web
|
||||
|
||||
La commande :
|
||||
|
||||
```text
|
||||
npm run typecheck
|
||||
```
|
||||
|
||||
passe sans diagnostic.
|
||||
|
||||
La commande :
|
||||
|
||||
```text
|
||||
npm run build
|
||||
```
|
||||
|
||||
passe avec Vite `8.3.1`.
|
||||
|
||||
Les warnings de dépréciation Sass proviennent des sources Bootstrap 5.3.8 et restent non bloquants.
|
||||
|
||||
Le build produit notamment :
|
||||
|
||||
```text
|
||||
.vite/manifest.json
|
||||
index.html
|
||||
assets/main-*.css
|
||||
assets/template/index-*.js
|
||||
assets/assets/main-*.js
|
||||
```
|
||||
|
||||
L'audit du manifest passe :
|
||||
|
||||
```text
|
||||
Knowledge 0.0.1-alpha.4.fix.2 Vite manifest audit: clean
|
||||
```
|
||||
|
||||
avec une entrée `src/main.ts`, un JavaScript hashé et un CSS hashé.
|
||||
|
||||
## Hygiène Git
|
||||
|
||||
Les contrôles suivants passent :
|
||||
|
||||
```text
|
||||
git diff --check = PASS
|
||||
git diff --cached --check = PASS
|
||||
```
|
||||
|
||||
Le staging observé après la gate est :
|
||||
|
||||
```text
|
||||
M Cargo.lock
|
||||
M Cargo.toml
|
||||
M VERSION
|
||||
M Web/knowledge-template-lab/package-lock.json
|
||||
M Web/knowledge-template-lab/package.json
|
||||
M Web/knowledge-template-lab/tsconfig.json
|
||||
M Web/knowledge-template-lab/tsconfig.vite.json
|
||||
A deltas/0.0.1/alpha.4.fix.2.md
|
||||
M docs/plans/001-V0_0_1_FOUNDATION_PLAN.md
|
||||
M docs/validation/001-VALIDATION_MATRIX.md
|
||||
```
|
||||
|
||||
## Décision
|
||||
|
||||
`0.0.1-alpha.4.fix.2` est `PASS`.
|
||||
|
||||
La fondation Web indépendante est validée. La transition autorisée est `0.0.1-alpha.5`, consacrée à la composition Actix/Maud, aux trois launchers et à la consommation réelle du manifest Vite.
|
||||
Reference in New Issue
Block a user