Files
sasedev-knowledge/history/0.0.4/alpha.2.md
2026-10-01 11:00:00 +02:00

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.