159 lines
5.0 KiB
Markdown
159 lines
5.0 KiB
Markdown
<!-- file: history/0.0.2/alpha.5.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# History 0.0.2-alpha.5 — cas d'usage partagé de synchronisation
|
|
|
|
## Statut
|
|
|
|
PASS
|
|
|
|
La gate opérateur de `0.0.2-alpha.5` exécutée le `2026-09-28` est propre. La tranche matérialise `knowledge-app-lib` comme owner du cas d'usage partagé de synchronisation de lecture et rend durable l'ordre de validation Rust `cargo fmt --all` puis `cargo fmt --all -- --check` avant les audits du code Rust.
|
|
|
|
## Baseline opérateur
|
|
|
|
`alpha.4.fix.1` `PASS` a été historisé, committé et poussé avant application de `alpha.5` :
|
|
|
|
```text
|
|
history/0.0.2/alpha.4.fix.1.md PASS
|
|
commit 1fe39df
|
|
message 0.0.2-alpha.4.fix.1
|
|
branch master
|
|
push origin/master PASS
|
|
workspace après push propre
|
|
```
|
|
|
|
Le push observé a avancé `origin/master` de `3f8c795` à `1fe39df`.
|
|
|
|
## Version, documentation et formatage
|
|
|
|
Les contrôles passent :
|
|
|
|
```text
|
|
VERSION 0.0.2-alpha.5
|
|
Cargo workspace version 0.0.2-alpha.5
|
|
git diff --check PASS
|
|
Markdown header audit clean (84 file(s))
|
|
Markdown link audit clean (71 local link(s), 84 file(s))
|
|
Markdown table audit clean (4 table(s), 84 file(s))
|
|
cargo fmt --all PASS
|
|
cargo fmt --all -- --check PASS
|
|
```
|
|
|
|
Le formatter est exécuté avant les audits Rust, conformément au contrat local désormais possédé par Knowledge.
|
|
|
|
## Audits Rust
|
|
|
|
Après formatage, les audits Rust passent :
|
|
|
|
```text
|
|
Rust test-layout audit: clean (9 crate(s))
|
|
Rust blank-line audit: clean (32 file(s))
|
|
Rust item-spacing audit: clean (32 file(s))
|
|
Rust module-order audit: clean (32 file(s))
|
|
Rust trait-import-block audit: clean (32 file(s))
|
|
Rust re-export-block audit: clean (32 file(s))
|
|
Rust crate-root facade audit: clean (6 crate root(s))
|
|
Rust export completeness audit: 0 candidate(s) across 9 package(s)
|
|
```
|
|
|
|
## Compilation et Clippy
|
|
|
|
Les commandes suivantes passent :
|
|
|
|
```text
|
|
cargo metadata --format-version 1 --no-deps PASS
|
|
cargo check --workspace PASS
|
|
cargo clippy --workspace --all-targets --all-features
|
|
-- -D warnings PASS
|
|
```
|
|
|
|
Les neuf packages attendus sont détectés, dont le nouveau `knowledge-app-lib`.
|
|
|
|
## Cas d'usage de synchronisation
|
|
|
|
`knowledge-app-lib` compose les contrats existants sans introduire de persistance, de scheduler ou de forge :
|
|
|
|
```text
|
|
RepositorySyncSignal
|
|
-> GitRepository::refresh
|
|
-> GitRepository::resolve_revision
|
|
-> comparaison previous_revision
|
|
-> RepositorySyncOutcome::Unchanged
|
|
ou
|
|
-> GitRepository::prepare_snapshot
|
|
-> RepositorySyncOutcome::Changed
|
|
```
|
|
|
|
Les trois tests ciblés passent :
|
|
|
|
```text
|
|
changed_revision_prepares_snapshot_and_returns_observed_revision PASS
|
|
unchanged_revision_does_not_prepare_snapshot PASS
|
|
periodic_signal_uses_the_same_reconciliation_path PASS
|
|
```
|
|
|
|
La cause `Periodic` emprunte donc le même cas d'usage que la synchronisation explicite sans matérialiser de scheduler concret.
|
|
|
|
## Tests ciblés et workspace
|
|
|
|
Les suites ciblées passent :
|
|
|
|
```text
|
|
knowledge-app-lib 3 PASS
|
|
knowledge-git-api 1 PASS
|
|
knowledge-git-lib 8 unit PASS + 2 integration PASS
|
|
knowledge-sync-api 1 PASS
|
|
```
|
|
|
|
La suite workspace passe intégralement :
|
|
|
|
```text
|
|
knowledge-app-lib 3 PASS
|
|
knowledge-domain-lib 3 PASS
|
|
knowledge-git-api 1 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 deux tests d'intégration Git réels continuent de prouver refresh, résolution, snapshots, référence invalide et snapshot sale.
|
|
|
|
## Contrôles structurels et frontières
|
|
|
|
L'audit spécifique passe :
|
|
|
|
```text
|
|
Knowledge 0.0.2-alpha.5 sync/format-order audit: clean
|
|
```
|
|
|
|
Il confirme notamment :
|
|
|
|
- neuf packages Cargo exactement ;
|
|
- `knowledge-app-lib` dépend uniquement de `knowledge-git-api` et `knowledge-sync-api` en production ;
|
|
- `knowledge-domain-lib` reste uniquement une dépendance de test pour cette crate ;
|
|
- `Changed` / `Unchanged`, `previous_revision`, refresh, résolution et snapshot sont matérialisés ;
|
|
- aucune dépendance PostgreSQL, Gitea/GitHub/GitLab, Actix, Tokio ou scheduler dans le cas d'usage ;
|
|
- `cargo fmt --all` précède les audits Rust dans les owners locaux de validation.
|
|
|
|
`Cargo.lock` est présent localement, ignoré et non suivi. `Web/` reste sans diff. Aucun adapter forge ni store PostgreSQL n'est créé.
|
|
|
|
Après staging, `git diff --cached --check` passe.
|
|
|
|
## Décision
|
|
|
|
`0.0.2-alpha.5` est `PASS`.
|
|
|
|
Le scope fonctionnel alpha de `0.0.2` est fermé. La transition autorisée est :
|
|
|
|
```text
|
|
appliquer ce history
|
|
-> git add / diff --cached --check / status
|
|
-> commit exact "0.0.2-alpha.5"
|
|
-> push origin master
|
|
-> vérifier le workspace propre
|
|
-> appliquer seulement ensuite 0.0.2-beta.1
|
|
```
|
|
|
|
`beta.1` doit rester une tranche de réconciliation, stabilisation et revue d'horizon sans grande fonctionnalité nouvelle.
|