7.9 KiB
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 :
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 :
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 :
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 :
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 :
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
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 :
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 :
cargo clippy --workspace --all-targets --all-features -- -D warnings FAIL
Erreur observée :
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 :
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 :
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 :
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 :
KNOWLEDGE_POSTGRES_TEST_URL=postgresql://knowledge:knowledge@localhost/knowledge
puis rejoué exactement le test réel :
cargo test -p knowledge-store-postgres-lib --test postgres_migration -- --ignored --nocapture
Résultat :
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
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 :
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.