v0.3.1-pre.006
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/018-V0_3_1_STORE_RAW.md -->
|
||||
<!-- version: 6 -->
|
||||
<!-- version: 7 -->
|
||||
|
||||
# Validation `0.3.1` — Store API RAW foundation
|
||||
|
||||
@@ -70,7 +70,7 @@ cycle de rétention logique + tombstone
|
||||
| transaction handle | aucun handle SQL/backend public | `pre.005` |
|
||||
| atomic acquisition | méthode métier RAW + observation all-or-nothing | `pre.005/006` |
|
||||
| write outcome | `Inserted / AlreadyPresent`; divergence = `Err Conflict` | `pre.006` |
|
||||
| page/cursor | default 100, max 500, cursor opaque borné | `pre.006` |
|
||||
| page/cursor | limit caller > 0 ; sans max KSP ; cursor opaque <= 4 KiB | `pre.006` |
|
||||
| `RawRetentionState` | logique `Full/Compacted/Archived/Purged`, sans détail physique | `pre.006` |
|
||||
| tombstone | identité/hash/slot minimal durable après purge | `pre.006` |
|
||||
| backfill normal après purge | skip distinct | `pre.006` |
|
||||
@@ -184,7 +184,7 @@ crate/test backend externe
|
||||
| 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` |
|
||||
| page limit 0 | rejet ; aucun max KSP artificiel | `pre.006` |
|
||||
| SQL/backend cursor leak | absent | `pre.006/007` |
|
||||
| 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` |
|
||||
@@ -390,6 +390,41 @@ sécurité
|
||||
-> PostgreSQL réel opt-in puis gate final obligatoire
|
||||
```
|
||||
|
||||
### 8.4 Matérialisation `pre.006`
|
||||
|
||||
La tranche ajoute les contrats logiques suivants sans backend/runtime :
|
||||
|
||||
```text
|
||||
RawPageCursor / RawPageLimit / RawPageRequest / RawPage<T>
|
||||
RawSlotRange / RawSortDirection
|
||||
RawTransactionQuery / RawAccountStateQuery
|
||||
RawEntityWriteOutcome / RawObservationWriteOutcome / RawAcquisitionWriteOutcome
|
||||
RawRetentionState
|
||||
RawTransactionAcquisitionMode
|
||||
RawTransactionTombstone
|
||||
RawTransactionRetentionTransition / RawRetentionWriteOutcome
|
||||
RawTransactionRetentionRead / RawTransactionRetentionWrite
|
||||
```
|
||||
|
||||
Gates matérialisés :
|
||||
|
||||
```text
|
||||
page limit 0 rejeté
|
||||
u64::MAX admis comme demande représentable : aucun maximum métier KSP
|
||||
cursor opaque borné à 4 KiB et Debug sans contenu
|
||||
range de slots inversée rejetée
|
||||
queries limitées aux critères de données, sans backlog/executor policy
|
||||
Inserted / AlreadyPresent explicites
|
||||
contenu divergent = ERROR_CODE_RAW_CONFLICT
|
||||
RAW + observation gardent le contrat atomique
|
||||
Full -> Compacted -> Archived -> Purged, avec Full -> Archived autorisé
|
||||
aucun Full -> Purged direct
|
||||
aucun Purged -> Full via transition générique
|
||||
force rehydrate explicite via acquisition transactionnelle
|
||||
tombstone minimal sans payload
|
||||
retention policy choisie hors Store par worker/job/maintenance
|
||||
```
|
||||
|
||||
## 11. État initial des tranches
|
||||
|
||||
| Tranche | Objet | État |
|
||||
@@ -399,7 +434,7 @@ sécurité
|
||||
| `pre.003` | primitives + RawTransaction | À FAIRE |
|
||||
| `pre.004` | admission matrix + account/status models | PRÊT après gate local |
|
||||
| `pre.005` | backend contracts/capabilities | PRÊT après gate local |
|
||||
| `pre.006` | queries/outcomes/retention/tombstone | À FAIRE |
|
||||
| `pre.006` | queries/outcomes/retention/tombstone | PRÊT après gate local |
|
||||
| `pre.007` | boundary/adversarial/completeness | À FAIRE |
|
||||
| `pre.008` | gate technique final | À FAIRE |
|
||||
| `pre.009` | réconciliation documentaire | À FAIRE |
|
||||
|
||||
Reference in New Issue
Block a user