Files
sasedev-knowledge/history/0.0.2/alpha.3.md
2026-09-28 19:23:12 +02:00

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 :

  1. 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.3 reste une provenance d'adoption et ne doit pas être rechargé automatiquement au début de chaque version, session ou tranche.
  2. Les crates Rust doivent être auditées afin que lib.rs reste 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.5 et 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