# History 0.0.2-alpha.4 — autonomie normative et façades de crates ## Statut FAIL La gate opérateur de `0.0.2-alpha.4` exécutée le `2026-09-28` valide l'autonomie documentaire, les audits locaux et la structure des façades, mais la tranche ne compile pas à cause de deux constructions de tuple structs privés depuis leurs réexports crate-root. ## Baseline opérateur `alpha.3.fix.1` `PASS` a été historisé, committé et poussé avant application d'`alpha.4` : ```text history/0.0.2/alpha.3.fix.1.md PASS commit b9508b0 message 0.0.2-alpha.3.fix.1 branch master push origin/master PASS workspace après push propre ``` Le push observé a avancé `origin/master` de `721e8a6` à `b9508b0`. ## Version et autonomie normative Les contrôles de version et de provenance passent : ```text VERSION 0.0.2-alpha.4 Cargo workspace version 0.0.2-alpha.4 history alpha.3.fix.1 PASS ``` Les audits Markdown possédés localement passent : ```text Markdown header audit: clean (80 file(s)) Markdown link audit: clean (71 local link(s), 80 file(s)) Markdown table audit: clean (4 table(s), 80 file(s)) ``` L'audit d'autonomie/structure passe : ```text Knowledge 0.0.2-alpha.4 autonomy/structure audit: clean ``` Les owners locaux `200`, `210`, `300`, `400`, `510` et `530-WEB_FRONTEND`, le mapping d'adoption, les templates locaux et les audits Markdown/Rust attendus sont présents. PGR `v0.1.3` reste une provenance d'adoption et aucune consultation PGR automatique n'est requise. ## Audits Rust et formatage Les audits structurels passent : ```text Rust test-layout audit: clean (8 crate(s)) Rust blank-line audit: clean (29 file(s)) Rust item-spacing audit: clean (29 file(s)) Rust module-order audit: clean (29 file(s)) Rust trait-import-block audit: clean (29 file(s)) Rust re-export-block audit: clean (29 file(s)) Rust crate-root facade audit: clean (5 crate root(s)) Rust export completeness audit: 0 candidate(s) across 8 package(s) ``` `cargo fmt --all -- --check` passe. ## Compilation et Clippy `cargo check --workspace` échoue dans `knowledge-git-api` sur deux erreurs `E0423` : ```text crates/knowledge-git-api/src/reference.rs:11 return crate::GitReference(value.to_owned()); crates/knowledge-git-api/src/revision.rs:11 return crate::GitRevision(value.to_owned()); ``` Après déplacement des types dans leurs modules propriétaires, leurs champs tuple privés ne sont plus constructibles via le réexport crate-root. Les deux implémentations doivent construire leur propre type avec `Self(...)`. Clippy strict échoue pour les mêmes deux erreurs de compilation. Aucun assouplissement de visibilité ou de lint n'est justifié. ## Tests `knowledge-sync-api` compile et son test passe : ```text cargo test -p knowledge-sync-api --all-targets --all-features 1 passed; 0 failed ``` Les suites `knowledge-git-api`, `knowledge-git-lib` et workspace sont bloquées par la compilation de `knowledge-git-api` et ne peuvent donc pas valider la tranche. ## Métadonnées et frontières L'audit Cargo passe : ```text Knowledge 0.0.2-alpha.4 Cargo metadata audit: clean ``` Les huit packages attendus sont présents. `Cargo.lock` est présent localement, ignoré et non suivi. Les contrôles de frontière passent : ```text Web/ sans diff crates/knowledge-git-lib/src sans diff crates/knowledge-app-lib absent crates/knowledge-forge-gitea-lib absent crates/knowledge-store-postgres-lib absent history/0.0.2/alpha.4.md absent avant clôture ``` Le staging final est propre à la tranche et `git diff --cached --check` passe. ## Diagnostic L'architecture `alpha.4` n'est pas remise en cause. Le défaut est local aux constructeurs des deux tuple structs après séparation de `lib.rs` en modules propriétaires. Le correctif doit uniquement : - construire `GitReference` avec `Self(value.to_owned())` dans son propre `impl` ; - construire `GitRevision` avec `Self(value.to_owned())` dans son propre `impl` ; - conserver l'API publique crate-root inchangée ; - rejouer la gate complète `alpha.4` sans modifier les autres owners, templates, audits ou comportements Git/sync. ## Décision `0.0.2-alpha.4` est `FAIL`. La transition autorisée est : ```text appliquer ce history -> git add / diff --cached --check / status -> commit exact "0.0.2-alpha.4" -> push origin master -> vérifier le workspace propre -> appliquer seulement ensuite 0.0.2-alpha.4.fix.1 ```