v0.3.3-pre.009

This commit is contained in:
2026-08-30 14:29:33 +02:00
parent 7f0a642972
commit ce658e58f7
8 changed files with 1450 additions and 12 deletions

View File

@@ -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.007archive, purge, compare-and-transition et rejet Compacted
0.3.3-pre.009preuve 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 ;