v0.3.1-pre.005
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/018-V0_3_1_STORE_RAW.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Validation `0.3.1` — Store API RAW foundation
|
||||
|
||||
@@ -181,12 +181,12 @@ crate/test backend externe
|
||||
| status surfaces artificiellement fusionnées | aucun modèle commun prématuré | `pre.004` PASS |
|
||||
| duplicate same content | `AlreadyPresent` | `pre.006` |
|
||||
| duplicate divergent content | Conflict stable | `pre.006` |
|
||||
| partial transaction+observation | interdit par atomic acquisition | `pre.005` |
|
||||
| partial transaction+observation | interdit par atomic acquisition | `pre.005` PASS |
|
||||
| event-only -> Store capability | absent par défaut | `pre.004/007` |
|
||||
| Interface/Store duplicate model | absent | `pre.007` |
|
||||
| page limit 0/>500 | rejet | `pre.006` |
|
||||
| SQL/backend cursor leak | absent | `pre.006/007` |
|
||||
| external backend | implémente API sans Store lib | `pre.005` |
|
||||
| external backend | implémente API sans Store lib | `pre.005` PASS |
|
||||
| processing `bool` comme vérité | absent ; future preuve version-aware documentée | `pre.006/007` |
|
||||
| purge sans policy/evidence | impossible par contrat | `pre.006/007` |
|
||||
| tombstone supprimé avec payload | interdit | `pre.006` |
|
||||
@@ -268,6 +268,45 @@ jsonParsed/dataSlice/bare program -> non
|
||||
|
||||
La conversion source -> modèle reste hors `ksp-store-api`; la crate ne dépend toujours que de `ksp-core-lib`.
|
||||
|
||||
### 8.3 Matérialisation `pre.005`
|
||||
|
||||
La tranche ajoute uniquement des contracts de capability backend-agnostic :
|
||||
|
||||
```text
|
||||
StoreApiFuture<'a, T>
|
||||
|
||||
RawTransactionRead
|
||||
RawTransactionWrite
|
||||
RawTransactionObservationRead
|
||||
RawTransactionObservationWrite
|
||||
|
||||
RawAccountStateRead
|
||||
RawAccountStateWrite
|
||||
RawAccountObservationRead
|
||||
RawAccountObservationWrite
|
||||
```
|
||||
|
||||
Gates matérialisés :
|
||||
|
||||
```text
|
||||
traits Send + Sync et dyn-compatible
|
||||
aucune dépendance async-trait/tokio/futures-util ajoutée
|
||||
backend externe implémentable avec std + ksp-store-api seulement
|
||||
aucun trait StoreBackend monolithique
|
||||
aucune façade runtime Store
|
||||
aucun type Config/backend/SQL public
|
||||
persist_raw_transaction_acquisition = transaction + observation atomiques
|
||||
persist_raw_account_acquisition = account state + observation atomiques
|
||||
record_*_observation = acquisition supplémentaire sans retransmettre le RAW
|
||||
get_* = référence/observation key backend-independent
|
||||
write success/failure seulement en pre.005
|
||||
outcomes/idempotence/conflict détaillés réservés à pre.006
|
||||
```
|
||||
|
||||
Le canari `tests/external_backend.rs` définit un backend mémoire externe qui implémente les huit traits sans dépendre de `ksp-store-lib`, PostgreSQL ou d'un runtime async. Il prouve également que chaque capability est utilisable derrière `dyn Trait`.
|
||||
|
||||
Aucune implémentation de persistence n'est fournie par `ksp-store-api`; les futures concrètes du canari ne servent qu'à vérifier le contrat d'extension.
|
||||
|
||||
## 9. Gates de fermeture prévus
|
||||
|
||||
### Gate technique final `pre.008`
|
||||
@@ -359,7 +398,7 @@ sécurité
|
||||
| `pre.002` | scaffold + taxonomie Store API | À FAIRE |
|
||||
| `pre.003` | primitives + RawTransaction | À FAIRE |
|
||||
| `pre.004` | admission matrix + account/status models | PRÊT après gate local |
|
||||
| `pre.005` | backend contracts/capabilities | À FAIRE |
|
||||
| `pre.005` | backend contracts/capabilities | PRÊT après gate local |
|
||||
| `pre.006` | queries/outcomes/retention/tombstone | À FAIRE |
|
||||
| `pre.007` | boundary/adversarial/completeness | À FAIRE |
|
||||
| `pre.008` | gate technique final | À FAIRE |
|
||||
|
||||
Reference in New Issue
Block a user