v0.3.3-pre.009
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 10 -->
|
||||
|
||||
# Plan `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
|
||||
|
||||
@@ -32,15 +32,17 @@ Tranches techniques validées :
|
||||
0.3.3-pre.004 — mapping et lectures RAW
|
||||
0.3.3-pre.005 — écriture atomique et observations
|
||||
0.3.3-pre.006 + fix.001 — pagination keyset + cursor V1
|
||||
0.3.3-pre.007 + fix.001 — archive, purge, compare-and-transition et rejet Compacted
|
||||
0.3.3-pre.008 + fix.001 — six capabilities PostgreSQL + dispatch façade
|
||||
```
|
||||
|
||||
Tranche technique courante :
|
||||
|
||||
```text
|
||||
0.3.3-pre.007 — archive, purge, compare-and-transition et rejet Compacted
|
||||
0.3.3-pre.009 — preuve PostgreSQL live complète RawTransaction
|
||||
```
|
||||
|
||||
Les gates opérateur jusqu'à `pre.006-fix.001` sont verts. `pre.007` complète la surface backend-specific `RawTransaction` avec les transitions physiques `Full -> Archived -> Purged`, sans implémenter encore les six traits ni leur dispatch dans `ksp-store-lib`.
|
||||
Les gates opérateur jusqu'à `pre.008-fix.001` sont verts. `pre.009` n'ajoute aucun comportement métier ni migration : elle matérialise la preuve PostgreSQL réelle opt-in de la vertical slice complète, y compris concurrence, pagination, rétention/rehydrate et rollback/cancellation.
|
||||
|
||||
## 2. Sources et autorité
|
||||
|
||||
@@ -1170,6 +1172,22 @@ Tranche matérialisée :
|
||||
- rétention/rehydrate ;
|
||||
- rollback/cancellation.
|
||||
|
||||
Tranche matérialisée :
|
||||
|
||||
- nouveau test `postgres_raw_transaction_live`, `#[ignore]`, URI dédiée lue uniquement sur `stdin` et jamais affichée ;
|
||||
- refus de démarrer si une table KSP V000/V001 existe déjà ; cleanup uniquement après preuve d'absence initiale ;
|
||||
- bootstrap V000/V001, réouverture idempotente et refus d'un réseau différent ;
|
||||
- suppression contrôlée de l'index business puis preuve `schema_autoupdate=false` bloquante / `schema_autoupdate=true` réparatrice ;
|
||||
- insert canonical + observation, get exact et observation round-trip ;
|
||||
- insert identique et divergent en vraies tâches concurrentes ;
|
||||
- collision d'observation et preuve de rollback du canonical ;
|
||||
- pagination multi-page sur slots ex æquo, ASC/DESC, cursor rejoué sous direction/range différente ;
|
||||
- `Full -> Archived -> Purged`, tombstone, normal skip, ForceRehydrate compatible/divergent, rejet `Compacted` ;
|
||||
- races concurrentes archive/purge puis rehydrate ;
|
||||
- cancellation réelle : verrou PostgreSQL sur l'observation, acquisition bloquée après ouverture transactionnelle, `JoinHandle::abort`, puis preuve que le canonical non committé est absent ;
|
||||
- réouverture finale et lecture d'un canonical durable ;
|
||||
- aucune ressource V000/V001 modifiée.
|
||||
|
||||
### `0.3.3-pre.010` — hardening/completeness
|
||||
|
||||
- scans boundaries ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md -->
|
||||
<!-- version: 13 -->
|
||||
<!-- version: 14 -->
|
||||
|
||||
# Validation `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
|
||||
|
||||
@@ -622,11 +622,24 @@ cap 500/1000 dans Store pagination
|
||||
- `--no-default-features` : PASS ;
|
||||
- V000/V001 inchangées ;
|
||||
- premier gate opérateur : fonctionnellement PASS mais deux warnings Clippy `extra_unused_type_parameters` dans les helpers de preuve de traits ;
|
||||
- `pre.008-fix.001` matérialise `T` via `PhantomData<T>` dans ces deux helpers sans modifier les bounds, la production ni les migrations ; gate opérateur complet à rejouer.
|
||||
- `pre.008-fix.001` matérialise `T` via `PhantomData<T>` dans ces deux helpers sans modifier les bounds, la production ni les migrations ; gate opérateur complet PASS le 2026-08-30.
|
||||
|
||||
### `pre.009`
|
||||
|
||||
- PostgreSQL live opt-in complet.
|
||||
- test `postgres_raw_transaction_live` dédié et `#[ignore]` : MATÉRIALISÉ ;
|
||||
- base dédiée obligatoire, refus de toute table KSP préexistante, URI lue sur `stdin` sans echo : PASS statique ;
|
||||
- bootstrap V000/V001 + réouverture + wrong-network : COUVERT par le test, exécution réelle À FOURNIR ;
|
||||
- réparation additive index avec `schema_autoupdate` off/on : COUVERTE par le test, exécution réelle À FOURNIR ;
|
||||
- canonical+observation atomique + exact reads : COUVERT ;
|
||||
- identical/divergent concurrent inserts : COUVERT en tâches `tokio::spawn` ;
|
||||
- observation idempotence/divergence + rollback canonical sur conflit observation : COUVERT ;
|
||||
- pagination multi-page/ties ASC-DESC + replay cursor autre direction/range : COUVERT ;
|
||||
- archive/purge/tombstone/normal-skip/ForceRehydrate compatible-divergent/Compacted : COUVERT ;
|
||||
- races archive et purge : COUVERT en tâches concurrentes ;
|
||||
- cancellation : verrou observation PostgreSQL + acquisition bloquée + `abort()` + canonical absent après rollback : COUVERT ;
|
||||
- réouverture finale : COUVERTE ;
|
||||
- gate Cargo standard : NON EXÉCUTÉ dans l'environnement de génération ;
|
||||
- test PostgreSQL réel `--ignored` : À EXÉCUTER côté opérateur.
|
||||
|
||||
### `pre.010`
|
||||
|
||||
@@ -648,7 +661,7 @@ cap 500/1000 dans Store pagination
|
||||
|
||||
- publication stable.
|
||||
|
||||
## 22. Gate courant `pre.008-fix.001`
|
||||
## 22. Gate courant `pre.009`
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
|
||||
Reference in New Issue
Block a user