Files
khadhroony-solana-project/deltas/0.3.8/pre.009.md
2026-09-03 20:44:21 +02:00

115 lines
3.9 KiB
Markdown

<!-- file: deltas/0.3.8/pre.009.md -->
<!-- version: 1 -->
# Delta `0.3.8-pre.009` — inspection Store des observations RAW
## Base requise
Base directe attendue : `0.3.8-pre.008-fix.001` (`workspace.package.version = 0.3.8-pre.8.fix.1`).
## Objet
Ajouter les listings backend-neutres et random-access des observations RAW Transaction et Account, sans modifier le schéma PostgreSQL, les reads par clé existants ni l'UI Store Desk.
## Store API
Deux queries sont ajoutées :
```text
RawTransactionObservationInspectionQuery
RawAccountObservationInspectionQuery
```
Elles portent uniquement :
```text
network obligatoire
référence d'entité exacte optionnelle
direction canonique
RawInspectionPageRequest { offset, limit }
```
Une référence fournie doit appartenir au même network que la query.
Deux summaries sûres sont ajoutées :
```text
RawTransactionObservationSummary
RawAccountObservationSummary
```
La summary Transaction contient observation key, référence transaction et provenance d'acquisition sûre. La summary Account contient observation key, référence account, provenance sûre et metadata Yellowstone optionnelles déjà présentes dans le modèle (`is_startup`, transaction signature, `write_version`). Aucun payload transaction ni byte Account n'est exposé.
Deux nouvelles capabilities complètent l'API :
```text
RawTransactionObservationInspectionRead
RawAccountObservationInspectionRead
```
L'inventaire RAW passe de 12 à 14 capabilities. Les reads `RawTransactionObservationRead` / `RawAccountObservationRead` par observation key restent inchangés.
## Store façade
`ksp-store-lib::Store` implémente et dispatch les deux capabilities après le même contrôle de cohérence network pré-I/O que les autres opérations Store. Aucun type PostgreSQL, SQL ou handle physique ne traverse la façade.
Les exports crate-root et les canaris d'inventaire sont réconciliés à 105 exports Store façade et 14 capabilities RAW symétriques.
## PostgreSQL
`ksp-store-postgres-lib` ajoute quatre statements privés :
```text
INSPECT_OBSERVATIONS_ASC_SQL
INSPECT_OBSERVATIONS_DESC_SQL
INSPECT_ACCOUNT_OBSERVATIONS_ASC_SQL
INSPECT_ACCOUNT_OBSERVATIONS_DESC_SQL
```
Chaque famille utilise une seule instruction par requête avec :
```text
filtered COUNT exact
total COUNT exact
LEFT JOIN LATERAL
LIMIT/OFFSET checked avant I/O
ordre déterministe received_at_unix_millis + observation_key
```
Transaction filtre optionnellement par signature exacte de la référence Transaction. Account filtre optionnellement par l'identité complète `(pubkey, slot, state_hash)`.
Les projections sont strictement metadata-only : aucun payload/archive Transaction et aucun `account data` ne sont sélectionnés. Les statements keyset/cursor existants restent OFFSET-free et les reads par clé restent inchangés.
Aucune migration ou index n'est ajouté dans cette tranche.
## Règles d'Items
Les nouveaux items `pub`/`pub(crate)` sont réexportés jusqu'aux `lib.rs` concernés. Les accès crate-wide utilisent les chemins `crate::Item`, y compris pour les helpers PostgreSQL visibles entre modules.
## Hors scope
Aucune UI Observation n'est ajoutée à Store Desk dans `pre.009`; l'intégration visuelle et le hardening UX restent réservés à `pre.010`. Aucun Config, capability Tauri, migration, index, action de rétention ou changement des DataTables Transactions/Accounts n'est introduit.
## Version
```text
delivery = 0.3.8-pre.009
workspace.package.version = 0.3.8-pre.9
commit = v0.3.8-pre.009
tag = aucun
```
## Gate requis
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-store-api
cargo test -p ksp-store-postgres-lib
cargo test -p ksp-store-lib
cargo check -p ksp-store-lib --no-default-features
```