v0.3.1-pre.010
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/validation/018-V0_3_1_STORE_RAW.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 10 -->
|
||||
|
||||
# Validation `0.3.1` — Store API RAW foundation
|
||||
|
||||
## 1. Objet
|
||||
|
||||
Cette matrice est ouverte par `0.3.1-pre.001`, corrigée par `pre.001-fix.001` puis recalibrée par `pre.001-fix.002`. Elle valide **`ksp-store-api` uniquement**. La façade/runtime commune `ksp-store-lib` et l'implémentation PostgreSQL séparée `ksp-store-postgres-lib` sont réunies dans `0.3.2`.
|
||||
Cette matrice est ouverte par `0.3.1-pre.001`, corrigée par `pre.001-fix.001` puis recalibrée par `pre.001-fix.002`. Elle valide **`ksp-store-api` uniquement**. La façade/runtime commune `ksp-store-lib` et l'implémentation PostgreSQL séparée `ksp-store-postgres-lib` seront développées de pair sur trois slices : fondation `0.3.2`, `RawTransaction` `0.3.3`, puis `RawAccountState` + complétude `0.3.4`.
|
||||
|
||||
Le scope concret N1 certain est :
|
||||
|
||||
@@ -27,7 +27,7 @@ cycle de rétention logique + tombstone
|
||||
| baseline opérateur | PASS | audits/check/Clippy fournis verts ; validation tests déclarée OK |
|
||||
| archive kbot3 + kbot2 historique | PASS | kbot3 extraite ; `olddocs/archivekbot2` audité pour lifecycle/replay |
|
||||
| règles Store/API relues | PASS | règles KSP/Dependencies/Workflow prescrites relues |
|
||||
| split version | PASS | `0.3.1 = Store API`, `0.3.2 = Store lib + PostgreSQL lib` |
|
||||
| split version | PASS | `0.3.1 = Store API`, `0.3.2..0.3.4 = Store lib + PostgreSQL lib par slices` |
|
||||
| dependency graph `0.3.1` | PASS | cible Core-only |
|
||||
| modèle backend commun | PASS | API object/struct commune, rows backend privées |
|
||||
| admission multi-source | PASS | même modèle seulement si HTTP/WS/gRPC satisfont intégralement la même sémantique |
|
||||
@@ -46,7 +46,7 @@ cycle de rétention logique + tombstone
|
||||
| retention lifecycle | PASS | `Full/Compacted/Archived/Purged` redessiné backend-agnostic |
|
||||
| tombstone anti-rebackfill | PASS | identité/hash/slot minimal conservé après purge ; backfill forcé distinct |
|
||||
| notification ownership runtime | PASS | Store ne possède aucun event bus/scheduler/DB notify |
|
||||
| schema/migrations PostgreSQL | REPORTÉ | responsabilité `ksp-store-postgres-lib` `0.3.2` |
|
||||
| schema/migrations PostgreSQL | REPORTÉ | fondation `0.3.2`, schémas RAW complétés en `0.3.3`/`0.3.4` |
|
||||
| D2/N3/N4 persistence | ABSENT | hors `0.3.1` |
|
||||
| threat model | PASS | source mismatch, purge prématurée, stale processing, backend/event leaks couverts |
|
||||
| sizing | PASS | dix prereleases courtes + lanes fermeture séparées |
|
||||
@@ -77,7 +77,7 @@ cycle de rétention logique + tombstone
|
||||
| backfill normal après purge | skip distinct | `pre.006` |
|
||||
| force rehydrate | chemin explicite distinct, jamais fallback automatique | `pre.006` |
|
||||
| processing evidence | futur ledger version-aware, jamais un bool unique | boundary `pre.006/007` |
|
||||
| façade runtime `Store` | reportée à `ksp-store-lib`, hors `0.3.1` | `0.3.2` |
|
||||
| façade runtime `Store` | reportée à `ksp-store-lib`, hors `0.3.1` | fondation `0.3.2` |
|
||||
|
||||
## 4. Dependency firewall final attendu
|
||||
|
||||
@@ -166,7 +166,7 @@ crate/test backend externe
|
||||
-X-> PostgreSQL
|
||||
```
|
||||
|
||||
`0.3.2` ajoutera ensuite la façade de consommation `ksp-store-lib`. Le backend officiel `ksp-store-postgres-lib` devra satisfaire la même suite de conformance API.
|
||||
`0.3.2` ajoutera ensuite la façade de consommation `ksp-store-lib` et la fondation `ksp-store-postgres-lib`. La conformance API du backend officiel sera matérialisée par famille : `RawTransaction` en `0.3.3`, puis `RawAccountState` et la complétude cross-family en `0.3.4`.
|
||||
|
||||
## 8. Threat/API gates futurs
|
||||
|
||||
@@ -397,6 +397,8 @@ Le graphe normal Store API reste strictement `ksp-store-api -> ksp-core-lib` et
|
||||
|
||||
### 8.7 Réconciliation `pre.009`
|
||||
|
||||
**PASS opérateur ciblé.** Après application de `0.3.1-pre.009`, audits Rust/Markdown, `cargo check --workspace`, Clippy et `cargo test -p ksp-store-api` passent. Aucun re-gate Tauri/workspace complet n'était requis après le gate lourd propre de `pre.008`.
|
||||
|
||||
La surface finale réellement retenue pour `0.3.1` est :
|
||||
|
||||
```text
|
||||
@@ -433,56 +435,88 @@ N2 STRUCTURAL / N3 DECODED / N4 DOMAIN
|
||||
|
||||
### Réconciliation documentaire `pre.009`
|
||||
|
||||
**PRÊT après audits documentaires.** Voir §8.7. Le plan, la validation, les architectures Store réellement concernées et `IDEAS.md` sont réconciliés. Aucun README/USAGE Store n'existe à maintenir actuellement ; `CHANGELOG.md`, `ROADMAP.md` et le prompt suivant restent réservés à `pre.010`.
|
||||
**PASS opérateur ciblé.** Voir §8.7. Le plan, la validation, les architectures Store réellement concernées et `IDEAS.md` sont réconciliés. Aucun README/USAGE Store n'existe à maintenir actuellement.
|
||||
|
||||
### Préparation de publication `pre.010`
|
||||
### Redécoupage documentaire `pre.010`
|
||||
|
||||
Doit rester limitée à :
|
||||
La décision opérateur postérieure à `pre.009` sépare l'ancien scope PostgreSQL unique en trois releases afin de préserver la qualité et la clôture par session, sans séparer `ksp-store-lib` de `ksp-store-postgres-lib`. Cette responsabilité documentaire doit être fermée avant la lane de publication.
|
||||
|
||||
### Préparation de publication `pre.011`
|
||||
|
||||
La préparation de publication finale est décalée à `pre.011` après le redécoupage documentaire `pre.010`. Elle doit rester limitée à :
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
CHANGELOG.md
|
||||
ROADMAP.md
|
||||
prompts/021-V0_3_2_START_PROMPT.md
|
||||
delta pre.010
|
||||
delta pre.011
|
||||
```
|
||||
|
||||
Le `ROADMAP.md` est réconcilié par `pre.001-fix.001` puis `pre.001-fix.002`; `pre.010` ne doit plus avoir à réparer la taxonomie N1/N2 ni le split backend.
|
||||
`pre.011` ne doit plus réparer la taxonomie N1/N2 ni le découpage Store/PostgreSQL : ces décisions appartiennent aux tranches documentaires antérieures.
|
||||
|
||||
## 10. PostgreSQL reporté à `0.3.2`
|
||||
## 10. PostgreSQL reporté aux slices `0.3.2`–`0.3.4`
|
||||
|
||||
Aucun gate PostgreSQL live n'est demandé à `0.3.1`.
|
||||
Aucun gate PostgreSQL live n'est demandé à `0.3.1`. Le développement de `ksp-store-lib` et `ksp-store-postgres-lib` reste conjoint, mais l'ancien scope unique `0.3.2` est redécoupé pour préserver la qualité et la clôture par session.
|
||||
|
||||
Le prochain prompt devra transformer les invariants API en façade commune + backend de référence et prévoir :
|
||||
### `0.3.2` — fondation runtime/backend PostgreSQL
|
||||
|
||||
```text
|
||||
ksp-store-lib
|
||||
-> façade Store commune
|
||||
-> façade Store commune minimale
|
||||
-> réexports utiles de ksp-store-api
|
||||
-> feature postgres par défaut
|
||||
-> dispatch backend selon Config
|
||||
-> erreur backend connu mais non compilé
|
||||
-> health/readiness runtime si justifié par le gate pre.001
|
||||
|
||||
ksp-store-postgres-lib
|
||||
-> tokio-postgres
|
||||
-> pool/TLS audités
|
||||
-> migrations KSP-owned
|
||||
-> schema conformance
|
||||
-> write/read round-trip des modèles API
|
||||
-> idempotence/race
|
||||
-> atomic rollback
|
||||
-> pagination
|
||||
-> connexion/pool/TLS audités
|
||||
-> bootstrap migrations KSP-owned
|
||||
-> transaction primitive privée si nécessaire à la suite
|
||||
|
||||
Config
|
||||
-> std.store
|
||||
-> URI/DSN backend lorsque naturel
|
||||
-> secrets ${KSP_SECRET_*} / .env owned par ksp-config-lib
|
||||
-> aucun vrai secret versionné
|
||||
```
|
||||
|
||||
sécurité
|
||||
-> URI/DSN/credentials redacted
|
||||
-> aucune lecture directe env/.env par Store ou backend
|
||||
-> PostgreSQL réel opt-in puis gate final obligatoire
|
||||
Aucune capability `RawTransaction` ou `RawAccountState` n'est implémentée artificiellement dans cette fondation uniquement pour gonfler le scope.
|
||||
|
||||
### `0.3.3` — vertical slice PostgreSQL `RawTransaction`
|
||||
|
||||
```text
|
||||
RawTransaction + observation
|
||||
write/read/get/list cursorisé
|
||||
atomic RAW + observation
|
||||
idempotence / AlreadyPresent / conflict
|
||||
retention / tombstone / force rehydrate
|
||||
rollback et races réelles
|
||||
conformance ksp-store-api
|
||||
```
|
||||
|
||||
### `0.3.4` — vertical slice PostgreSQL `RawAccountState` + complétude
|
||||
|
||||
```text
|
||||
RawAccountState + observation
|
||||
write/read/get/list cursorisé
|
||||
idempotence / conflict / atomic observation
|
||||
conformance cross-family
|
||||
migration/index hardening
|
||||
backend dispatch/health final
|
||||
gate PostgreSQL réel final
|
||||
```
|
||||
|
||||
Règles communes aux trois slices :
|
||||
|
||||
```text
|
||||
URI/DSN/credentials redacted
|
||||
aucune lecture directe env/.env par Store ou backend
|
||||
aucun plafond métier arbitraire de pagination imposé par Store
|
||||
limitations physiques backend exposées sans devenir policy executor
|
||||
PostgreSQL réel opt-in pendant développement puis gate final de la slice concernée
|
||||
```
|
||||
|
||||
## 11. État des tranches
|
||||
@@ -497,6 +531,7 @@ sécurité
|
||||
| `pre.006` | queries/outcomes/retention/tombstone | PASS après `fix.001` |
|
||||
| `pre.007` | boundary/adversarial/completeness | PASS après `fix.001` |
|
||||
| `pre.008` | gate technique final | PASS opérateur complet |
|
||||
| `pre.009` | réconciliation documentaire | PRÊT après audits documentaires |
|
||||
| `pre.010` | préparation publication | À FAIRE |
|
||||
| `pre.009` | réconciliation documentaire | PASS opérateur ciblé |
|
||||
| `pre.010` | redécoupage documentaire futures slices | PRÊT après audits documentaires |
|
||||
| `pre.011` | préparation publication | À FAIRE |
|
||||
| `rel.001` | stable | À FAIRE |
|
||||
|
||||
Reference in New Issue
Block a user