Files
2026-09-03 20:44:21 +02:00

3.9 KiB

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 :

RawTransactionObservationInspectionQuery
RawAccountObservationInspectionQuery

Elles portent uniquement :

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 :

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 :

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 :

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 :

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

delivery = 0.3.8-pre.009
workspace.package.version = 0.3.8-pre.9
commit = v0.3.8-pre.009
tag = aucun

Gate requis

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