Files
sasedev-knowledge/history/0.0.3/alpha.3.md
2026-09-29 11:39:02 +02:00

5.4 KiB

History 0.0.3-alpha.3 — worktree d'écriture et commit candidat

Statut

FAIL

La gate opérateur de 0.0.3-alpha.3 exécutée le 2026-09-29 échoue sur la compilation du nouveau test d'intégration git_write_candidate. Le défaut est limité à une assertion de test qui tente de comparer directement deux Result<String, std::io::Error> alors que std::io::Error n'implémente pas PartialEq.

L'implémentation produit passe cargo check --workspace; les audits structurels et spécifiques de la tranche restent propres. Le statut demeure néanmoins FAIL, car Clippy --all-targets et les tests requis ne compilent pas.

Baseline opérateur

alpha.2 PASS a été historisé, committé et poussé avant application de alpha.3 :

history/0.0.3/alpha.2.md  PASS
commit                    88a63b0
message                   0.0.3-alpha.2
branch                    master
push                      origin/master PASS
workspace après push      propre

Le push observé a avancé origin/master de 3004e4b à 88a63b0.

Version et documentation

Les contrôles initiaux passent :

VERSION                         0.0.3-alpha.3
Cargo workspace version         0.0.3-alpha.3
git diff --check                PASS
Markdown header audit           clean (108 file(s))
Markdown link audit             clean (78 local link(s), 108 file(s))
Markdown table audit            clean (4 table(s), 108 file(s))

Formatage et audits Rust

cargo fmt --all                         PASS
cargo fmt --all -- --check              PASS
Rust test-layout audit                  clean (9 crate(s))
Rust blank-line audit                   clean (35 file(s))
Rust item-spacing audit                 clean (35 file(s))
Rust module-order audit                 clean (35 file(s))
Rust trait-import-block audit           clean (35 file(s))
Rust re-export-block audit              clean (35 file(s))
Rust crate-root facade audit            clean (6 crate root(s))
Rust export completeness audit          0 candidate(s) across 9 package(s)

Cargo, Clippy et tests

cargo metadata et cargo check --workspace passent. La première défaillance obligatoire survient pendant Clippy :

cargo metadata --format-version 1 --no-deps    PASS
cargo check --workspace                        PASS
cargo clippy --workspace --all-targets
    --all-features -- -D warnings              FAIL

Erreur observée :

error[E0369]: binary operation `==` cannot be applied to type
`Result<String, std::io::Error>`

crates/knowledge-git-lib/tests/git_write_candidate.rs:253
assert_eq!(snapshot_content, Ok(String::from("first\n")));

std::io::Error does not implement PartialEq

Le chemin de lecture historique reste propre :

cargo test -p knowledge-git-lib --test git_read_path    PASS (2)

Le nouveau test ciblé et la gate workspace reproduisent le même défaut de compilation :

cargo test -p knowledge-git-lib --test git_write_candidate      FAIL E0369
cargo test --workspace --all-targets --all-features             FAIL E0369

Aucun échec runtime du worktree/candidat n'est donc observé dans cette gate : git_write_candidate ne peut pas encore être exécuté jusqu'à ses assertions.

Audits spécifiques après l'échec

Les contrôles statiques et de scope exécutés après l'échec passent :

Knowledge 0.0.3-alpha.3 candidate-worktree audit: clean
Knowledge 0.0.3-alpha.3 text hygiene: clean (108 file(s))

Ils confirment notamment :

  • le contrat alpha.2 historisé PASS ;
  • la présence du worktree candidat, des contrôles de symlink, de l'identité explicite, de --no-verify, --no-gpg-sign, HEAD^1 et de la référence candidate interne ;
  • la neutralisation des configurations Git globale/système et des hooks ;
  • l'absence de push_candidate dans l'implémentation alpha.3 ;
  • l'absence de diff sous knowledge-git-api, knowledge-app-lib, Web/, CHANGELOG.md et ROADMAP.md ;
  • Cargo.lock présent localement, ignoré et non suivi ;
  • le package-lock Web présent.

Le staging final est cohérent avec la tranche :

M  Cargo.toml
M  README.md
M  VERSION
M  crates/knowledge-git-lib/src/backend.rs
M  crates/knowledge-git-lib/src/error.rs
M  crates/knowledge-git-lib/src/lib.rs
A  crates/knowledge-git-lib/src/write.rs
A  crates/knowledge-git-lib/tests/git_write_candidate.rs
M  crates/knowledge-git-lib/unit_tests/backend.rs
A  deltas/0.0.3/alpha.3.md
M  docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md
M  docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md
M  docs/validation/001-VALIDATION_MATRIX.md

Diagnostic

Le défaut est borné au test :

let snapshot_content = std::fs::read_to_string(snapshot.path().join("content.txt"));
assert_eq!(snapshot_content, Ok(String::from("first\n")));

Cette comparaison exige PartialEq sur le type d'erreur du Result, ce que std::io::Error ne fournit pas. Le test doit vérifier le cas Ok("first\n") sans comparer la variante Err.

Aucun élément du retour opérateur ne justifie un REPLAN, une modification du contrat public ou un changement de l'implémentation de worktree.

Décision

0.0.3-alpha.3 est FAIL.

La correction autorisée est 0.0.3-alpha.3.fix.1, bornée à l'assertion de test fautive et au suivi version/plan. Elle doit rejouer Clippy, le test git_write_candidate et la gate workspace avant d'autoriser alpha.4.