# History 0.0.4-alpha.2 — owner PostgreSQL, pool et première migration ## Statut FAIL La gate opérateur de `0.0.4-alpha.2` exécutée le `2026-10-01` échoue sur Clippy strict : la crate de test d'intégration `crates/knowledge-store-postgres-lib/tests/postgres_migration.rs` ne possède pas de documentation de crate alors que `missing_docs` est activé et promu en erreur par `-D warnings`. La fondation PostgreSQL compile, les tests Rust hors Clippy passent, et la migration réelle finit par passer sur PostgreSQL après définition explicite de `KNOWLEDGE_POSTGRES_TEST_URL`. Le statut reste néanmoins `FAIL`, car la gate obligatoire Clippy n'est pas propre. ## Baseline opérateur `alpha.1` `PASS` a été historisé, committé et poussé avant application de `alpha.2` : ```text history/0.0.4/alpha.1.md PASS commit b55eb23 message 0.0.4-alpha.1 branch master push origin/master PASS ``` Le push observé a avancé `origin/master` de `b382397` à `b55eb23`. ## Version, scope et dépendances Les contrôles initiaux passent : ```text VERSION 0.0.4-alpha.2 Cargo workspace version 0.0.4-alpha.2 history/0.0.4/alpha.1.md présent, suivi, PASS history/0.0.4/alpha.2.md avant gate absent knowledge-store-postgres-lib présent V1__initial_sources.sql présent git diff --check PASS surfaces hors scope propres ``` Les versions et features observées sont exactement : ```text tokio-postgres 0.7.18 default-features=false, runtime deadpool-postgres 0.14.2 default-features=false, rt_tokio_1 refinery 0.9.2 default-features=false, tokio-postgres tokio dev 1.53.1 default-features=false, macros + rt-multi-thread ``` La façade publique contient exactement : ```text PostgresStoreConfig PostgresStoreError PostgresStore ``` La crate produit ne lit pas `KNOWLEDGE_POSTGRES_TEST_URL`, ne lit pas directement l'environnement et ne contient pas de `println!`, `eprintln!` ou `dbg!`. ## Migration initiale Les contrôles statiques de la migration passent : ```text knowledge_sources présent family CHECK pgr/howto/snippet/project_local knowledge_source_sync_state présent FK source_id ON DELETE CASCADE présente last_synchronized_revision NOT NULL présent contenu/body/credential/account/ proposal/job absents de la migration ``` Le test d'intégration possède bien son marqueur `ignore`, crée un schéma isolé et le supprime avec `DROP SCHEMA ... CASCADE`. ## Markdown, formatage et audits Rust ```text Markdown header audit clean (130 file(s)) Markdown link audit clean (86 local link(s), 130 file(s)) Markdown table audit clean (5 table(s), 130 file(s)) cargo fmt --all PASS cargo fmt --all -- --check PASS Rust test-layout audit clean (10 crate(s)) Rust blank-line audit clean (42 file(s)) Rust item-spacing audit clean (42 file(s)) Rust module-order audit clean (42 file(s)) Rust trait-import-block audit clean (42 file(s)) Rust re-export-block audit clean (42 file(s)) Rust crate-root facade audit clean (7 crate root(s)) Rust export completeness audit 0 candidate(s) across 10 package(s) ``` ## Cargo, Clippy et tests La résolution des nouvelles dépendances et la compilation workspace passent : ```text cargo metadata --format-version 1 --no-deps PASS cargo check --workspace PASS workspace_members 10 ``` Les dix packages observés sont exactement les neuf packages historiques plus `knowledge-store-postgres-lib`. La première défaillance obligatoire survient pendant Clippy : ```text cargo clippy --workspace --all-targets --all-features -- -D warnings FAIL ``` Erreur observée : ```text error: missing documentation for the crate crates/knowledge-store-postgres-lib/tests/postgres_migration.rs -D missing-docs implied by -D warnings ``` Les tests exécutés après cet échec passent fonctionnellement mais reproduisent le warning de documentation : ```text cargo test -p knowledge-store-postgres-lib unit tests PASS (3) postgres_migration ignored (1, gate explicite requise) cargo test --workspace --all-targets --all-features workspace PASS postgres_migration ignored (1) ``` Tests workspace observés : ```text knowledge-app-lib 3 PASS knowledge-domain-lib 3 PASS knowledge-git-api 7 PASS knowledge-git-lib 8 unit + 6 integration PASS knowledge-sync-api 1 PASS knowledge-web-lib 4 PASS knowledge-store-postgres-lib 3 PASS + 1 intégration ignorée launchers 0 test chacun ``` ## Preuve PostgreSQL réelle Une première invocation explicite du test ignoré a été effectuée alors que `KNOWLEDGE_POSTGRES_TEST_URL` n'était pas encore définie. Le test a correctement refusé l'exécution : ```text KNOWLEDGE_POSTGRES_TEST_URL is required postgres_migration FAILED ``` Cette première tentative ne révèle pas un défaut PostgreSQL du produit ; elle constate une précondition opérateur absente. L'opérateur a ensuite défini : ```text KNOWLEDGE_POSTGRES_TEST_URL=postgresql://knowledge:knowledge@localhost/knowledge ``` puis rejoué exactement le test réel : ```text cargo test -p knowledge-store-postgres-lib --test postgres_migration -- --ignored --nocapture ``` Résultat : ```text initial_migration_runs_in_isolated_schema PASS 1 passed; 0 failed ``` La migration initiale, l'isolation par schéma et le nettoyage sont donc prouvés sur PostgreSQL réel. Le warning `missing_docs` reste toutefois présent pendant cette exécution. ## Hygiène et lockfiles ```text Knowledge 0.0.4-alpha.2 text hygiene clean (185 file(s)) Cargo.lock présent localement, ignoré, non suivi Web package-lock.json présent et inchangé git diff --cached --check PASS ``` Le staging final observé avant ajout du présent history est exactement : ```text M Cargo.toml M README.md M RULES.md M VERSION A crates/knowledge-store-postgres-lib/Cargo.toml A crates/knowledge-store-postgres-lib/migrations/V1__initial_sources.sql A crates/knowledge-store-postgres-lib/src/config.rs A crates/knowledge-store-postgres-lib/src/error.rs A crates/knowledge-store-postgres-lib/src/lib.rs A crates/knowledge-store-postgres-lib/src/store.rs A crates/knowledge-store-postgres-lib/tests/postgres_migration.rs A crates/knowledge-store-postgres-lib/unit_tests/config.rs A deltas/0.0.4/alpha.2.md M docs/architecture/001-PROJECT_PROFILE.md M docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md M docs/plans/004-V0_0_4_POSTGRES_FOUNDATION_PLAN.md M docs/studies/008-V0_0_4_POSTGRES_FOUNDATION_STUDY.md M docs/validation/001-VALIDATION_MATRIX.md ``` ## Diagnostic Le défaut est borné à l'en-tête documentaire de la crate de test d'intégration. Les autres tests d'intégration du dépôt utilisent déjà une documentation de crate `//! ...`, ce qui satisfait le lint `missing_docs` appliqué aux targets de test. Aucun retour opérateur ne justifie de modifier le driver, le pool, Refinery, la façade publique, le schéma SQL, les migrations ou le plan d'ownership. Aucun REPLAN n'est requis. ## Décision `0.0.4-alpha.2` est `FAIL`. La correction autorisée est `0.0.4-alpha.2.fix.1`, bornée à l'ajout de la documentation de crate manquante dans `tests/postgres_migration.rs` et au suivi version/plan. Elle doit rejouer Clippy strict, les tests workspace et la preuve PostgreSQL réelle avant d'autoriser `alpha.3`.