171 lines
5.6 KiB
Markdown
171 lines
5.6 KiB
Markdown
<!-- file: history/0.0.2/beta.1.fix.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# History 0.0.2-beta.1.fix.1 — clôture de stabilisation runtime
|
|
|
|
## Statut
|
|
|
|
FAIL
|
|
|
|
La gate opérateur de `0.0.2-beta.1.fix.1` exécutée le `2026-09-29` acquiert les preuves Rust, Cargo, tests, Web et les trois smokes HTTP requis, mais deux commandes requises échouent dans la gate elle-même : l'audit Python de stabilisation contient une chaîne mal quotée et `git diff --cached --check` détecte une ligne vide supplémentaire en fin de `docs/validation/001-VALIDATION_MATRIX.md`.
|
|
|
|
Conformément à `400-VALIDATION`, une commande requise en échec conserve le statut `FAIL` même si les preuves runtime exécutées ensuite passent.
|
|
|
|
## Baseline opérateur
|
|
|
|
L'opérateur indique que la matérialisation de `beta.1` a été réalisée correctement avant application de `beta.1.fix.1`. Le rendu terminal du commit/push n'est plus disponible à la suite de la fermeture de la fenêtre GNOME Terminal après activation de `set -euo pipefail`.
|
|
|
|
L'état observé au démarrage de la gate confirme néanmoins :
|
|
|
|
```text
|
|
VERSION 0.0.2-beta.1.fix.1
|
|
Cargo workspace version 0.0.2-beta.1.fix.1
|
|
history/0.0.2/beta.1.md PARTIAL
|
|
```
|
|
|
|
## Contrôles documentaires et formatage
|
|
|
|
Les audits suivants passent :
|
|
|
|
```text
|
|
Markdown header audit clean (89 file(s))
|
|
Markdown link audit clean (72 local link(s), 89 file(s))
|
|
Markdown table audit clean (4 table(s), 89 file(s))
|
|
cargo fmt --all PASS
|
|
cargo fmt --all -- --check PASS
|
|
```
|
|
|
|
Le premier `git diff --check` de la gate signale toutefois :
|
|
|
|
```text
|
|
docs/validation/001-VALIDATION_MATRIX.md:782: new blank line at EOF.
|
|
```
|
|
|
|
## Audits Rust
|
|
|
|
Après formatage, les audits Rust passent :
|
|
|
|
```text
|
|
Rust test-layout audit clean (9 crate(s))
|
|
Rust blank-line audit clean (32 file(s))
|
|
Rust item-spacing audit clean (32 file(s))
|
|
Rust module-order audit clean (32 file(s))
|
|
Rust trait-import-block audit clean (32 file(s))
|
|
Rust re-export-block audit clean (32 file(s))
|
|
Rust crate-root facade audit clean (6 crate root(s))
|
|
Rust export completeness audit 0 candidate(s) across 9 package(s)
|
|
```
|
|
|
|
## Cargo, Clippy et tests
|
|
|
|
Les neuf packages passent :
|
|
|
|
```text
|
|
cargo metadata --format-version 1 --no-deps PASS
|
|
cargo check --workspace PASS
|
|
cargo clippy --workspace --all-targets --all-features
|
|
-- -D warnings PASS
|
|
cargo test --workspace --all-targets --all-features PASS
|
|
```
|
|
|
|
Résultats observés :
|
|
|
|
```text
|
|
knowledge-app-lib 3 PASS
|
|
knowledge-domain-lib 3 PASS
|
|
knowledge-git-api 1 PASS
|
|
knowledge-git-lib 8 unit PASS + 2 integration PASS
|
|
knowledge-sync-api 1 PASS
|
|
knowledge-web-lib 4 PASS
|
|
launchers 0 test chacun
|
|
```
|
|
|
|
Les tests d'intégration Git réels restent propres.
|
|
|
|
## Baseline Web
|
|
|
|
Les commandes suivantes passent :
|
|
|
|
```text
|
|
npm ci
|
|
npm run typecheck
|
|
npm run build
|
|
```
|
|
|
|
Vite transforme `63` modules et produit le manifest attendu. Les warnings Sass issus de Bootstrap et l'avertissement npm sur le script d'installation de `@parcel/watcher@2.6.0` restent non bloquants.
|
|
|
|
## Échec de l'audit de stabilisation
|
|
|
|
Le bloc `PYGATE` échoue avec :
|
|
|
|
```text
|
|
SyntaxError: unterminated string literal
|
|
```
|
|
|
|
La cause est la chaîne Python suivante, délimitée par des apostrophes tout en contenant `n'est` :
|
|
|
|
```text
|
|
assert 'Aucun prompt `0.0.3` n'est créé' in study
|
|
```
|
|
|
|
Cet échec appartient à la gate livrée, pas au produit.
|
|
|
|
## Smokes HTTP
|
|
|
|
Malgré l'échec précédent, les trois smokes HTTP sont exécutés et passent :
|
|
|
|
```text
|
|
knowledge-pgr-server smoke PASS
|
|
knowledge-howtos-server smoke PASS
|
|
knowledge-snippets-server smoke PASS
|
|
Knowledge 0.0.2-beta.1.fix.1 HTTP smoke: clean
|
|
```
|
|
|
|
Ils prouvent `/healthz`, `/`, la présence des assets du manifest dans le HTML et leur service HTTP effectif.
|
|
|
|
## Hygiène texte et EOF
|
|
|
|
Le script d'hygiène texte affiche :
|
|
|
|
```text
|
|
Knowledge beta.1.fix.1 text hygiene: clean (89 file(s))
|
|
```
|
|
|
|
mais son contrat est insuffisant : il vérifie seulement qu'un fichier se termine par `\n`, pas qu'il se termine par exactement un seul `\n`. Il laisse donc passer un suffixe `\n\n`.
|
|
|
|
Après staging, `git diff --cached --check` échoue de nouveau sur la même ligne vide supplémentaire à EOF dans `001-VALIDATION_MATRIX.md`.
|
|
|
|
## Frontières
|
|
|
|
Les contrôles suivants passent :
|
|
|
|
```text
|
|
Cargo.lock présent localement PASS
|
|
Cargo.lock ignoré PASS
|
|
Cargo.lock non suivi PASS
|
|
aucun diff sous crates/ ou Web/ PASS
|
|
aucune crate forge Gitea PASS
|
|
aucun store PostgreSQL PASS
|
|
```
|
|
|
|
Le `git status --short` final montre uniquement les fichiers attendus de la tranche après correction de la faute de frappe opérateur `it status --short`.
|
|
|
|
## Décision
|
|
|
|
`0.0.2-beta.1.fix.1` est `FAIL`.
|
|
|
|
Les preuves runtime manquantes de `beta.1` sont désormais acquises, mais la stabilisation beta ne peut pas être fermée tant que la gate elle-même n'est pas propre.
|
|
|
|
La transition autorisée est :
|
|
|
|
```text
|
|
appliquer ce history
|
|
-> git add / diff --cached --check / status
|
|
-> commit exact "0.0.2-beta.1.fix.1"
|
|
-> push origin master
|
|
-> vérifier le workspace propre
|
|
-> appliquer seulement ensuite 0.0.2-beta.1.fix.2
|
|
```
|
|
|
|
`beta.1.fix.2` doit rester documentaire/gate-only : corriger le quoting Python, normaliser les EOF à exactement un LF, rendre cette propriété vérifiable et ne pas réintroduire `set -euo pipefail` dans une gate destinée au shell interactif.
|