6.1 KiB
History 0.0.2-alpha.3 — refresh, résolution et snapshot Git réels
Statut
FAIL
La gate opérateur de 0.0.2-alpha.3 exécutée le 2026-09-28 confirme le comportement fonctionnel du chemin Git réel, mais la tranche reste bloquée par trois défauts de conformité : hygiène Git, formatage rustfmt et documentation de la crate de test d'intégration sous Clippy strict.
Baseline opérateur
alpha.2.fix.2 a été historisé PASS, committé et poussé avant application d'alpha.3 :
history/0.0.2/alpha.2.fix.2.md PASS
commit 3802526
message 0.0.2-alpha.2.fix.2
branch master
push origin/master PASS
workspace après push propre
Le push observé a avancé origin/master de ffb4721 à 3802526.
Version et audit structurel
Les contrôles initiaux passent :
VERSION 0.0.2-alpha.3
Cargo workspace version 0.0.2-alpha.3
history alpha.2.fix.2 PASS
Knowledge 0.0.2-alpha.3 structural audit: clean
Les audits Rust structurels passent également :
Rust test-layout audit: clean (8 crate(s))
Rust blank-line audit: clean (23 file(s))
Rust item-spacing audit: clean (23 file(s))
Rust module-order audit: clean (23 file(s))
Rust trait-import-block audit: clean (23 file(s))
Rust re-export-block audit: clean (23 file(s))
Rust export completeness audit: 0 candidate(s) across 8 package(s)
Hygiène Git et formatage
git diff --check échoue sur :
docs/validation/001-VALIDATION_MATRIX.md:639: new blank line at EOF.
cargo fmt --all -- --check échoue uniquement sur crates/knowledge-git-api/unit_tests/lib.rs, où rustfmt compacte l'assertion finale GitSnapshot sur une seule ligne.
Ces deux défauts sont bloquants même si la compilation réussit ensuite.
Compilation et Clippy
cargo metadata --format-version 1 --no-deps et cargo check --workspace passent.
Clippy strict échoue sur :
crates/knowledge-git-lib/tests/git_read_path.rs
missing documentation for the crate
-D missing-docs
Le test d'intégration constitue une crate Cargo indépendante ; il doit donc posséder une documentation de crate explicite compatible avec la politique missing_docs du workspace.
Tests fonctionnels Git
Le contrat provider-neutral compile et son test passe :
cargo test -p knowledge-git-api --all-targets --all-features
1 passed; 0 failed
knowledge-git-lib exécute huit tests unitaires et deux tests d'intégration avec de vrais repositories Git temporaires :
8 unit tests PASS
2 integration tests PASS
Les preuves observées couvrent notamment :
- enregistrement de source et rejet des doublons ;
- refresh du mirror réel ;
- résolution de
refs/heads/main; - matérialisation d'un snapshot par révision ;
- second commit source puis nouvelle révision/snapshot ;
- rejet d'une référence inexistante ;
- rejet d'un snapshot existant rendu sale.
Le test d'intégration ciblé cargo test -p knowledge-git-lib --test git_read_path passe également avec 2 passed; 0 failed.
Les tests workspace passent intégralement malgré le warning missing_docs non promu en erreur par cargo test :
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
Métadonnées et frontières
L'audit Cargo passe :
Knowledge 0.0.2-alpha.3 Cargo metadata audit: clean
Les contrôles de frontière passent :
Web/ sans diff
crates/knowledge-sync-api sans diff
crates/knowledge-app-lib absent
crates/knowledge-forge-gitea-lib absent
crates/knowledge-store-postgres-lib absent
history/0.0.2/alpha.3.md absent avant clôture
Cargo.lock présent localement, ignoré et non suivi
Le git diff --cached --check final échoue pour la même ligne vide terminale déjà signalée dans la matrice. La commande finale git status --short n'a pas été exécutée en raison d'une faute de frappe opérateur (it status --short), sans effet sur la décision déjà acquise.
Replanification décidée
Pendant la revue de la tranche, deux besoins structurels ont été confirmés sans remettre en cause les primitives Git d'alpha.3 :
- Knowledge doit devenir autonome après son adoption PGR : seules les règles réellement retenues doivent être adaptées et matérialisées localement ; PGR
v0.1.3reste une provenance d'adoption et ne doit pas être rechargé automatiquement au début de chaque version, session ou tranche. - Les crates Rust doivent être auditées afin que
lib.rsreste une façade de crate et que les définitions soient possédées par des modules nommés selon leur responsabilité lorsque la taille/structure le justifie, en particulier pour les crates-api.
Ces sujets ne corrigent pas le comportement Git d'alpha.3 et ne doivent donc pas être absorbés dans son implémentation. Le plan 0.0.2 est replanifié pour insérer une tranche alpha.4 dédiée à cette autonomie normative et à l'organisation interne des crates ; l'ancien cas d'usage de synchronisation devient alpha.5.
Diagnostic
alpha.3 est fonctionnellement probante mais ne satisfait pas la gate complète.
Le correctif doit uniquement :
- supprimer la ligne vide terminale fautive de la matrice ;
- appliquer le formatage rustfmt attendu au test de
knowledge-git-api; - ajouter la documentation de crate requise au test d'intégration
git_read_path; - enregistrer explicitement le REPLAN
alpha.4/alpha.5et la règle d'autonomie PGR ; - ne pas élargir le comportement Git déjà validé par les tests.
Décision
0.0.2-alpha.3 est FAIL.
La transition autorisée est :
appliquer ce history
-> git add / diff --cached --check / status
-> commit exact "0.0.2-alpha.3"
-> push origin master
-> vérifier le workspace propre
-> appliquer seulement ensuite 0.0.2-alpha.3.fix.1