Files
sasedev-knowledge/history/0.0.3/alpha.3.fix.1.md

4.5 KiB

History 0.0.3-alpha.3.fix.1 — correction de l'assertion du test candidat

Statut

PASS

La gate opérateur de 0.0.3-alpha.3.fix.1 exécutée le 2026-09-29 est complète et propre. Le défaut de compilation E0369 de alpha.3 est corrigé sans modification du code produit : l'assertion du test d'intégration vérifie désormais le cas Ok("first\n") sans exiger PartialEq sur std::io::Error.

Baseline opérateur

alpha.3 FAIL a été historisé, committé et poussé avant application du fix :

history/0.0.3/alpha.3.md  FAIL
commit                     c3a8256
message                    0.0.3-alpha.3
branch                     master
push                       origin/master PASS
workspace après push       propre

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

Version et documentation

VERSION                         0.0.3-alpha.3.fix.1
Cargo workspace version         0.0.3-alpha.3.fix.1
git diff --check                PASS
Markdown header audit           clean (110 file(s))
Markdown link audit             clean (78 local link(s), 110 file(s))
Markdown table audit            clean (4 table(s), 110 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

La correction compile et l'ensemble des gates Rust passent :

cargo metadata --format-version 1 --no-deps                  PASS
cargo check --workspace                                      PASS
cargo clippy --workspace --all-targets --all-features
    -- -D warnings                                           PASS
cargo test -p knowledge-git-lib --test git_read_path         PASS (2)
cargo test -p knowledge-git-lib --test git_write_candidate   PASS (2)
cargo test --workspace --all-targets --all-features          PASS

Tests workspace observés :

knowledge-app-lib        3 PASS
knowledge-domain-lib     3 PASS
knowledge-git-api        7 PASS
knowledge-git-lib        8 unit + 4 integration PASS
knowledge-sync-api       1 PASS
knowledge-web-lib        4 PASS
launchers                 0 test chacun

Les deux tests d'écriture réels prouvent maintenant :

  • create/update/delete exacts dans le candidat ;
  • identité auteur/committer explicite ;
  • parent candidat égal à la base demandée ;
  • référence candidate interne conservée ;
  • snapshot de lecture laissé inchangé ;
  • nettoyage du worktree temporaire ;
  • refus d'une traversée par symlink hors du worktree.

Contrôles spécifiques

Le contrôle spécifique a été exécuté avec succès puis rejoué commande par commande après un problème de copier/coller terminal. Les deux passages produisent les mêmes résultats :

Knowledge 0.0.3-alpha.3.fix.1 compile-fix audit: clean
Knowledge 0.0.3-alpha.3.fix.1 text hygiene: clean (110 file(s))

La gate confirme également :

  • history/0.0.3/alpha.3.md = FAIL conservé ;
  • ancienne assertion assert_eq! absente ;
  • nouvelle assertion matches!(snapshot_content.as_deref(), Ok("first\n")) présente ;
  • aucun diff sous le code produit knowledge-git-lib/src, ses unit tests, knowledge-git-api, knowledge-app-lib, Web/, CHANGELOG.md ou ROADMAP.md ;
  • crates Gitea/PostgreSQL et migrations toujours absentes ;
  • Cargo.lock local présent, ignoré et non suivi ;
  • package-lock Web présent ;
  • git diff --cached --check propre.

Le staging final est exactement :

M  Cargo.toml
M  VERSION
M  crates/knowledge-git-lib/tests/git_write_candidate.rs
A  deltas/0.0.3/alpha.3.fix.1.md
M  docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md

Décision

0.0.3-alpha.3.fix.1 est PASS.

La création locale du candidat est acquise. 0.0.3-alpha.4 peut implémenter l'observation distante et le push gardé avec comparaison-et-échange, conflit récupérable et tests sur remote bare local, sans introduire forge, PostgreSQL, rebase/merge automatique ni workflow applicatif de proposition.