Files
sasedev-knowledge/history/0.0.3/alpha.2.md
2026-09-29 11:31:59 +02:00

143 lines
4.9 KiB
Markdown

<!-- file: history/0.0.3/alpha.2.md -->
<!-- version: 1 -->
# History 0.0.3-alpha.2 — contrat d'écriture Git provider-neutral
## Statut
PASS
La gate opérateur de `0.0.3-alpha.2` exécutée le `2026-09-29` est complète et propre. Elle valide la frontière publique d'écriture Git provider-neutral et autorise `0.0.3-alpha.3` pour le worktree d'écriture isolé et la création réelle du commit candidat.
## Baseline opérateur
`alpha.1.fix.2` `PASS` a été historisé, committé et poussé avant application de `alpha.2` :
```text
history/0.0.3/alpha.1.fix.2.md PASS
commit 3004e4b
message 0.0.3-alpha.1.fix.2
branch master
push origin/master PASS
workspace après push propre
```
Le push observé a avancé `origin/master` de `dd63e85` à `3004e4b`.
## Version et documentation
Les contrôles de version et Markdown passent :
```text
VERSION 0.0.3-alpha.2
Cargo workspace version 0.0.3-alpha.2
git diff --check PASS
Markdown header audit clean (106 file(s))
Markdown link audit clean (78 local link(s), 106 file(s))
Markdown table audit clean (4 table(s), 106 file(s))
```
## Formatage et audits Rust
La séquence locale imposée a été respectée :
```text
cargo fmt --all PASS
cargo fmt --all -- --check PASS
Rust test-layout audit clean (9 crate(s))
Rust blank-line audit clean (33 file(s))
Rust item-spacing audit clean (33 file(s))
Rust module-order audit clean (33 file(s))
Rust trait-import-block audit clean (33 file(s))
Rust re-export-block audit clean (33 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
Les neuf packages compilent en `0.0.3-alpha.2` et Clippy ne produit aucun warning avec `-D warnings`.
```text
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-api --all-targets --all-features PASS (7)
cargo test --workspace --all-targets --all-features PASS
```
Tests workspace observés :
```text
knowledge-app-lib 3 PASS
knowledge-domain-lib 3 PASS
knowledge-git-api 7 PASS
knowledge-git-lib 8 unit PASS + 2 integration PASS
knowledge-sync-api 1 PASS
knowledge-web-lib 4 PASS
launchers 0 test chacun
```
Les sept tests `knowledge-git-api` valident notamment :
- la séparation du contrat d'écriture du contrat de lecture ;
- l'absence de dépendance à une forge ;
- la validation des chemins de mutation et la protection de `.git` ;
- l'identité de commit explicite ;
- les branches bornées à `refs/heads/...` ;
- les états distants absent/révision ;
- le rejet des requêtes sans mutation, messages invalides et chemins dupliqués.
## Audit spécifique d'écriture
L'audit de tranche passe :
```text
Knowledge 0.0.3-alpha.2 write-contract audit: clean
```
Il confirme notamment :
- la présence et le réexport des dix types/traits d'écriture attendus ;
- `GitRepository` de lecture inchangé et sans méthodes `create_candidate` / `push_candidate` ;
- la validation `refs/heads/...`, `ProtectedGitPath` et `DuplicateMutationPath` ;
- l'absence de dépendances Actix, Tokio, forge, PostgreSQL ou ORM dans `knowledge-git-api` ;
- `CHANGELOG.md` toujours sans section prématurée `0.0.3` ;
- absence de history `alpha.2` avant staging ;
- absence de crates Gitea/PostgreSQL et de migrations.
## Hygiène et scope
```text
Knowledge 0.0.3-alpha.2 text hygiene: clean (106 file(s))
```
La gate confirme également :
- aucun diff sous `crates/knowledge-git-lib`, `crates/knowledge-app-lib` ou `Web/` ;
- `Cargo.lock` local présent, ignoré et non suivi ;
- `Web/knowledge-template-lab/package-lock.json` présent ;
- `git diff --cached --check` propre.
Le staging final contient exactement les changements attendus de la tranche :
```text
M Cargo.toml
M README.md
M VERSION
M crates/knowledge-git-api/src/lib.rs
A crates/knowledge-git-api/src/write.rs
M crates/knowledge-git-api/unit_tests/lib.rs
A deltas/0.0.3/alpha.2.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
```
## Décision
`0.0.3-alpha.2` est `PASS`.
La frontière provider-neutral est acquise. La tranche suivante peut implémenter dans `knowledge-git-lib` le worktree d'écriture isolé, les mutations confinées, l'identité explicite, la neutralisation des hooks/configurations pertinentes et la création d'une révision candidate vérifiée. Le push distant gardé reste réservé à `alpha.4`.