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.2historiséPASS; - la présence du worktree candidat, des contrôles de symlink, de l'identité explicite, de
--no-verify,--no-gpg-sign,HEAD^1et de la référence candidate interne ; - la neutralisation des configurations Git globale/système et des hooks ;
- l'absence de
push_candidatedans l'implémentationalpha.3; - l'absence de diff sous
knowledge-git-api,knowledge-app-lib,Web/,CHANGELOG.mdetROADMAP.md; Cargo.lockpré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.