v0.3.3-pre.002

This commit is contained in:
2026-08-30 08:41:26 +02:00
parent a560df80ce
commit 9712c7e1f7
8 changed files with 640 additions and 152 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Plan `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
@@ -17,13 +17,19 @@ Base canonique auditée :
v0.3.2
```
Première tranche :
Première tranche validée :
```text
0.3.3-pre.001 — audit, threat model, physical design, sizing et planning
```
`pre.001` est volontairement une tranche de conception. Elle ne crée ni migration métier `V001`, ni repository PostgreSQL métier, ni dispatch RAW dans `ksp-store-lib`.
Tranche technique courante :
```text
0.3.3-pre.002 — moteur de migrations multi-version
```
`pre.001` est restée volontairement une tranche de conception. Son gate opérateur est vert. `pre.002` généralise uniquement le moteur de migrations PostgreSQL ; elle ne crée toujours ni migration métier `V001`, ni repository PostgreSQL métier, ni dispatch RAW dans `ksp-store-lib`.
## 2. Sources et autorité
@@ -1007,6 +1013,18 @@ L'audit montre que le moteur de migration `0.3.2` doit être généralisé avant
- préparer le hook atomique de binding réseau ;
- ajouter les tests du moteur sans créer encore de repository métier.
Statut matérialisé en `pre.002` :
- registre embedded privé ordonné, actuellement limité à V000 ;
- version courante dérivée du dernier élément du registre plutôt que d'une constante V000 dédiée ;
- historique validé comme préfixe exact et immuable du registre ;
- migrations pending appliquées séquentiellement dans la transaction déjà protégée par advisory lock ;
- `auto_migrate = false` refuse tout préfixe incomplet par `migration_pending` ;
- hook de migration exécuté pour les versions déjà appliquées à chaque ouverture et, pour une nouvelle version, après son SQL mais avant insertion de l'historique et commit ;
- `RawNetworkId` est déjà transmis jusqu'au hook afin que `pre.003` puisse binder V001 atomiquement sans déplacer la frontière transactionnelle ;
- V000 conserve strictement son SQL et son checksum historique ;
- aucun fichier V001 ni objet `ksp_store_identity` n'est encore créé.
### `0.3.3-pre.003` — V001 physique + binding réseau
- créer V001 ;