# History 0.0.1-alpha.3 — contrats domaine, Git et synchronisation ## Statut FAIL La gate opérateur de `0.0.1-alpha.3` exécutée le `2026-09-27` valide le cadrage structurel et les audits, puis échoue sur une erreur de compilation Rust dans `knowledge-domain-lib`. ## Baseline opérateur La tranche précédente a été clôturée et publiée avant application de `alpha.3` : ```text history/0.0.1/alpha.2.md = PASS commit 8cd187b message 0.0.1-alpha.2 branch master push origin/master PASS status clean après push ``` Le push observé a avancé `origin/master` de `d632afe` à `8cd187b`. ## Structure et metadata Les contrôles initiaux ont réussi : ```text VERSION = 0.0.1-alpha.3 git diff --check = clean Knowledge 0.0.1-alpha.3 structural audit: clean Knowledge 0.0.1-alpha.3 Cargo boundary audit: clean ``` `cargo metadata --format-version 1 --no-deps` a produit le graphe attendu avec exactement : ```text knowledge-domain-lib knowledge-git-api knowledge-sync-api ``` Les frontières de dépendances observées sont conformes : ```text knowledge-domain-lib -> aucune dépendance workspace knowledge-git-api -> knowledge-domain-lib knowledge-sync-api -> knowledge-domain-lib ``` ## Formatage et audits Rust Les commandes suivantes ont réussi : ```text cargo fmt --all cargo fmt --all -- --check 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) ``` Ces preuves restent valides pour la structure livrée mais ne compensent pas l'échec de compilation. ## Défaut de compilation `cargo check --workspace` échoue avec `E0423` dans : ```text crates/knowledge-domain-lib/src/source.rs:33 ``` Le code tente de construire : ```text crate::SourceId(value.to_owned()) ``` alors que `SourceId` est un tuple struct à champ privé défini dans le sous-module `source` puis réexporté par la façade crate-root. Le re-export rend le type accessible mais ne rend pas son constructeur de champ privé visible depuis la racine. Le compilateur suggère l'accès direct depuis le module propriétaire. Le correctif retenu doit préserver la façade publique tout en construisant la valeur depuis le scope qui possède le champ privé. ## Propagation du défaut Le même `E0423` bloque : ```text cargo clippy --workspace --all-targets --all-features -- -D warnings cargo test -p knowledge-domain-lib --all-targets --all-features cargo test -p knowledge-git-api --all-targets --all-features cargo test -p knowledge-sync-api --all-targets --all-features ``` Aucune de ces commandes ne peut donc établir un `PASS` de tranche. `Cargo.lock` reste présent et non ignoré. La vérification de metadata/boundaries exécutée après les échecs reste propre, mais elle ne constitue pas une compilation. ## Scope Git observé `git diff --cached --check` est propre. Le staging transmis avant ajout du présent history contient : ```text M CHANGELOG.md M Cargo.lock M Cargo.toml M README.md M RULES.md M VERSION A crates/knowledge-domain-lib/src/content_family.rs M crates/knowledge-domain-lib/src/lib.rs A crates/knowledge-domain-lib/src/source.rs A crates/knowledge-domain-lib/src/unit_tests.rs A crates/knowledge-git-api/Cargo.toml A crates/knowledge-git-api/src/lib.rs A crates/knowledge-git-api/src/unit_tests.rs A crates/knowledge-sync-api/Cargo.toml A crates/knowledge-sync-api/src/lib.rs A crates/knowledge-sync-api/src/unit_tests.rs A deltas/0.0.1/alpha.3.md M docs/architecture/001-PROJECT_PROFILE.md M docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md M docs/plans/001-V0_0_1_FOUNDATION_PLAN.md M docs/validation/001-VALIDATION_MATRIX.md A scripts/_rust_audit_common.py A scripts/audit_rust_blank_lines.py A scripts/audit_rust_export_completeness.py A scripts/audit_rust_item_spacing.py A scripts/audit_rust_module_order.py A scripts/audit_rust_reexport_blocks.py A scripts/audit_rust_trait_import_blocks.py ``` Ce scope correspond au delta annoncé et au `Cargo.lock` régénéré par Cargo. ## Précision Web reçue avant clôture Avant production du présent history, le rôle futur du profil Web a été précisé : le skeleton Web PGR sera réellement utilisé pour développer et valider des templates statiques, TypeScript, Sass, Bootstrap et le pipeline Vite. Le markup runtime sera ensuite adapté en Maud dans les applications Actix Web. Le corpus historique `actix-auth-app` contient en outre un pattern d'intégration utile entre manifest Vite et rendu Maud. Cette précision ne change pas la cause du `FAIL` `alpha.3`; elle peut être documentée dans le fix sans démarrer l'implémentation Web. ## Décision `0.0.1-alpha.3` est `FAIL`. La transition autorisée est : ```text 0.0.1-alpha.3.fix.1 ``` Le fix doit corriger l'accès au constructeur privé de `SourceId`, ajouter une preuve de régression ciblée, rejouer les gates Rust complètes et conserver le scope fonctionnel de `alpha.3`. La clarification Web peut mettre à jour le plan vivant et l'architecture, mais aucun frontend/serveur fonctionnel ne doit être matérialisé dans ce fix.