0.0.3-alpha.4

This commit is contained in:
2026-09-29 13:57:45 +02:00
parent aca00e6595
commit a87f3ba4ab
12 changed files with 857 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/001-VALIDATION_MATRIX.md -->
<!-- version: 35 -->
<!-- version: 36 -->
# Matrice de validation Knowledge
@@ -156,6 +156,27 @@ La tranche de création locale du commit candidat doit prouver :
- `cargo fmt --all`, check, Clippy strict, tests ciblés `knowledge-git-lib` et tests workspace propres ;
- `knowledge-app-lib` et `Web/` sans diff, `Cargo.lock` ignoré/non suivi et staging final propre.
## Gate de `0.0.3-alpha.4`
La tranche de push gardé et concurrence doit prouver :
- `VERSION = 0.0.3-alpha.4` et version workspace identique ;
- history `history/0.0.3/alpha.3.fix.1.md` présent avec statut `PASS` et committé avant application ;
- `GitBackend` implémente désormais `GitRepositoryWriter` sans modifier le contrat public `knowledge-git-api` ;
- le candidat à pousser doit exister sous la référence interne contrôlée créée par `alpha.3` ;
- l'état distant est observé par le remote générique `origin`, sans API de forge ;
- une attente `GitRemoteState::Revision(r)` utilise une lease exacte sur `r` ;
- une attente `GitRemoteState::Absent` n'autorise que la création d'une branche absente ;
- un écart observé avant le push produit immédiatement `GitPushOutcome::Conflict` ;
- `--force-with-lease` protège également la course entre observation et push ;
- après rejet d'un push, une nouvelle observation traduit une divergence en conflit récupérable sans écrasement ;
- aucun rebase/merge automatique, force-push non gardé, forge, PostgreSQL ou orchestration applicative n'est ajouté ;
- tests d'intégration Git réels avec remote bare local couvrant mise à jour d'une branche existante, création sous attente d'absence et conflit concurrent sans écrasement ;
- `cargo fmt --all`, check, Clippy strict, tests ciblés `knowledge-git-lib` et tests workspace propres ;
- `knowledge-git-api`, `knowledge-app-lib`, `Web/`, `CHANGELOG.md` et `ROADMAP.md` sans diff ;
- `Cargo.lock` ignoré/non suivi et staging final propre.
## PostgreSQL
Aucune gate PostgreSQL n'est créée avant matérialisation d'une dépendance ou d'un schéma réel.