v0.3.10-pre.001
This commit is contained in:
263
deltas/0.3.10/pre.001.md
Normal file
263
deltas/0.3.10/pre.001.md
Normal file
@@ -0,0 +1,263 @@
|
||||
<!-- file: deltas/0.3.10/pre.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.3.10-pre.001 — audit/sizing RAW Transaction + Worker ingest
|
||||
|
||||
## Base
|
||||
|
||||
```text
|
||||
archive : khadhroony-solana-project-v0.3.9.zip
|
||||
SHA-256 : 41ef2589a11410aabfb329d387f0008e116006da60ada0802e5f72bc30d3466f
|
||||
ZIP bytes : 7859118
|
||||
ZIP entries : 1855
|
||||
unzip -t : PASS
|
||||
workspace members : 19
|
||||
workspace.package.version base : 0.3.9
|
||||
```
|
||||
|
||||
Le ZIP a été contrôlé sans path traversal/entrée absolue, symlink, `.git/`, `target/`, `node_modules/`, `Cargo.lock`, `.env` ou fichier de clé privée détecté.
|
||||
|
||||
## Type de livraison
|
||||
|
||||
```text
|
||||
ksp-general-0.3.10-pre.001.zip
|
||||
```
|
||||
|
||||
Le type `general` est obligatoire parce que `Cargo.toml` racine est synchronisé vers `0.3.10-pre.1` par `VER-ID-009`. L’archive d’échange ne doit contenir que les fichiers ajoutés/modifiés et le delta, conformément à `VER-ARCHIVE-004`.
|
||||
|
||||
## Baseline exécutée avant modification
|
||||
|
||||
```text
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
General Rust rule audit: clean
|
||||
Rust export completeness audit: 0 candidate(s)
|
||||
KSP workspace Rust rule audit: clean
|
||||
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
|
||||
Markdown table audit: clean (332 table(s), 750 file(s))
|
||||
```
|
||||
|
||||
`cargo` n’est pas installé dans l’environnement d’assemblage. Aucun gate Cargo local n’est déclaré PASS. Le journal opérateur stable `0.3.9` reste une preuve externe distincte.
|
||||
|
||||
## Objectif
|
||||
|
||||
Exécuter le gate d’ouverture `0.3.10-pre.001` demandé par le prompt `029` : vérifier intégralement la base `v0.3.9`, auditer l’extraction RAW commune et les capabilities live, réévaluer `TR-B..TR-F`, fixer les frontières Common/Worker/Transport/Config/Store, puis dimensionner les tranches suivantes sans commencer l’implémentation lourde.
|
||||
|
||||
## Mission exécutée
|
||||
|
||||
`pre.001` reste une tranche de planification, conformément au prompt `029` :
|
||||
|
||||
```text
|
||||
lecture règles/architecture obligatoires
|
||||
inventaire workspace/manifests/features
|
||||
extraction RAW commune auditée
|
||||
capability matrix Worker implementation-ready
|
||||
TR-B..TR-F réévalués
|
||||
fraîcheur Solana/Yellowstone/providers revalidée
|
||||
runtime/source supervision décidés
|
||||
continuité/gap repair décidés
|
||||
snapshot concret décidé
|
||||
Config/secrets boundary décidée
|
||||
threat model et preuves définis
|
||||
dependency graph cible fixé
|
||||
prereleases redimensionnées
|
||||
```
|
||||
|
||||
Aucune implémentation lourde des deux nouvelles crates n’est commencée.
|
||||
|
||||
## Décisions principales
|
||||
|
||||
### Common RAW
|
||||
|
||||
```text
|
||||
crate : ksp-raw-transaction-lib
|
||||
RAW format : ksp.solana.raw_transaction v1 inchangé
|
||||
common deps : ksp-core-lib + ksp-store-lib(default-features=false) + serde_json + sha2
|
||||
aucun Transport/Config/Job/Worker/runtime/backend
|
||||
RawObservationKey reste producer-owned
|
||||
Backfill conserve son observation key/job_id/scope_fingerprint/origin
|
||||
```
|
||||
|
||||
Golden confirmé :
|
||||
|
||||
```text
|
||||
byte_len = 112
|
||||
sha256 = 220792d2b15d262fda242cb220774ee9ddeffebf04dcfadabcf8ef76a9b1a7c3
|
||||
```
|
||||
|
||||
Toute source full doit prouver une parité byte-for-byte avec RAW v1 avant persistence directe ; sinon elle reste discovery + hydration.
|
||||
|
||||
### Worker concret
|
||||
|
||||
```text
|
||||
crate : ksp-worker-raw-transaction-ingest-lib
|
||||
caller-owned Tokio runtime
|
||||
Worker-owned source/supervisor tasks
|
||||
bounded channels uniquement
|
||||
multi-source simultané
|
||||
Store idempotence comme vérité de convergence
|
||||
observations distinctes conservées
|
||||
content conflict terminal
|
||||
repair borné au run frontier
|
||||
reconnect != replay
|
||||
aucun paramètre historique métier au start
|
||||
```
|
||||
|
||||
### Transport gaps
|
||||
|
||||
```text
|
||||
TR-B confirmé : get_block_observed
|
||||
TR-C confirmé/scindé : common material + adapters Worker + Transport change only if DTO lacks fidelity
|
||||
TR-D confirmé : provenance durable full-material + source runtime snapshot
|
||||
TR-E confirmé : reuse from_slot/replay info, aucun second Yellowstone client
|
||||
TR-F réservé : EARLY seulement si protocole/accès/rôle RAW prouvés
|
||||
```
|
||||
|
||||
### Config
|
||||
|
||||
```text
|
||||
aucun edge Worker -> Config
|
||||
std.transport V3 actuel réutilisé
|
||||
pas de nouveau document métier Worker imposé en 0.3.10
|
||||
adaptation Config seulement si un manque Transport concret l’exige
|
||||
secrets restent Config-owned et redacted
|
||||
```
|
||||
|
||||
## Fraîcheur externe
|
||||
|
||||
Vérifié le 5 septembre 2026 :
|
||||
|
||||
```text
|
||||
yellowstone-grpc-proto latest = 12.7.0 (2026-08-29)
|
||||
workspace stable = ^12.7 -> aucun bump initial
|
||||
Yellowstone block from_slot replay a reçu un fix upstream en juillet 2026 -> smoke block replay obligatoire
|
||||
Helius transactionSubscribe courant ; Helius blockSubscribe explicitement non supporté
|
||||
Helius LaserStream replay 24 h documenté
|
||||
PublicNode Yellowstone Mainnet/Testnet visible ; replay depth non prouvée
|
||||
OrbitFlare gRPC Devnet disponible Free/Developer
|
||||
QuickNode gRPC Scale+ ; port 443/x-token ; port 10000 sunset 2026-10-01
|
||||
Alchemy replay docs contradictoires 6000 vs 432000 slots -> aucune constante KSP
|
||||
Jito ShredStream shutdown annoncé pour 2026-09-05 -> SUNSET, non retenu TR-F
|
||||
```
|
||||
|
||||
## Plan recalibré
|
||||
|
||||
```text
|
||||
pre.002 common RAW foundation
|
||||
pre.003 Backfill migration
|
||||
pre.004 observed block + HTTP block material
|
||||
pre.005 WS/Helius full parity
|
||||
pre.006 Yellowstone parity
|
||||
pre.007 Worker runtime foundation
|
||||
pre.008 Yellowstone live/replay
|
||||
pre.009 WS/HTTP live
|
||||
pre.010 multi-source persistence/hardening
|
||||
pre.011 gap repair
|
||||
pre.012 Config/profiles + smokes accessibles
|
||||
pre.013 EARLY si prouvé, sinon consolidation
|
||||
pre.014 gate technique/live final
|
||||
pre.015 réconciliation documentaire
|
||||
pre.016 préparation publication
|
||||
rel.001 stable
|
||||
```
|
||||
|
||||
## Fichiers ajoutés
|
||||
|
||||
```text
|
||||
docs/plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md
|
||||
docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md
|
||||
deltas/0.3.10/pre.001.md
|
||||
```
|
||||
|
||||
## Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
```
|
||||
|
||||
`Cargo.toml` :
|
||||
|
||||
```text
|
||||
file version 489 -> 490
|
||||
workspace.package.version 0.3.9 -> 0.3.10-pre.1
|
||||
```
|
||||
|
||||
Ce bump est requis par `VER-ID-009` pour toute prerelease non-fix, même lorsque la tranche est documentaire.
|
||||
|
||||
## Fichiers supprimés
|
||||
|
||||
```text
|
||||
aucun
|
||||
```
|
||||
|
||||
## Validation après modification
|
||||
|
||||
Audits statiques réellement exécutés après matérialisation de `pre.001` :
|
||||
|
||||
```text
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
General Rust rule audit: clean
|
||||
Rust export completeness audit: 0 candidate(s)
|
||||
KSP workspace Rust rule audit: clean
|
||||
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
|
||||
Markdown table audit: clean (339 table(s), 753 file(s))
|
||||
```
|
||||
|
||||
Le premier passage Markdown post-modification a détecté 32 erreurs d’alignement uniquement dans les nouvelles tables. Elles ont été corrigées selon la règle KSP, puis le gate complet ci-dessus a été relancé jusqu’à PASS.
|
||||
|
||||
La comparaison byte-à-byte contre le contenu du ZIP stable, après suppression du cache Python d’audit, donne exactement :
|
||||
|
||||
```text
|
||||
ajoutés :
|
||||
deltas/0.3.10/pre.001.md
|
||||
docs/plans/031-V0_3_10_RAW_TRANSACTION_INGEST_PLAN.md
|
||||
docs/validation/027-V0_3_10_RAW_TRANSACTION_INGEST.md
|
||||
modifié :
|
||||
Cargo.toml
|
||||
supprimé :
|
||||
aucun
|
||||
```
|
||||
|
||||
Les commandes Cargo/Tauri ne sont pas exécutables dans l’environnement d’assemblage courant (`cargo` absent). Elles restent donc explicitement `NON EXÉCUTÉES LOCALEMENT` pour ce delta ; aucune preuve opérateur antérieure n’est transformée en PASS local.
|
||||
|
||||
## Validations non exécutées localement
|
||||
|
||||
```text
|
||||
cargo fmt --all
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||
cargo test --workspace --all-targets --all-features
|
||||
cargo tree --duplicates
|
||||
builds Tauri
|
||||
smokes live opt-in
|
||||
```
|
||||
|
||||
Motif : toolchain Cargo absent du sandbox d’assemblage et aucune credential/provider live n’est injectée. Les preuves stables fournies par l’opérateur sont conservées comme contexte externe distinct ; elles ne remplacent pas les gates futurs de `0.3.10`.
|
||||
|
||||
## Questions ouvertes
|
||||
|
||||
Aucune question de boundary ne bloque `pre.002`. Restent volontairement à résoudre par preuve pendant les tranches prévues :
|
||||
|
||||
```text
|
||||
parité byte-for-byte RAW v1 des sources WS/Helius/Yellowstone full
|
||||
profondeur replay réellement observable par provider au moment du smoke
|
||||
nécessité éventuelle d’un profil/rôle Transport supplémentaire pour un smoke accessible
|
||||
admission d’une source EARLY seulement si protocole, accès et rôle RAW sont effectivement prouvés
|
||||
```
|
||||
|
||||
Ces points ne doivent pas être anticipés par des constantes, des claims lossless ou une RAW v2.
|
||||
|
||||
## Non inclus
|
||||
|
||||
```text
|
||||
aucune nouvelle crate créée
|
||||
aucun Rust modifié
|
||||
aucun Transport/Config/Store code modifié
|
||||
aucun kbot3 ouvert ou copié
|
||||
aucun Worker live
|
||||
aucun RAW v2
|
||||
aucun CHANGELOG/ROADMAP modifié
|
||||
aucun prompt 0.3.11 créé
|
||||
aucun Cargo gate déclaré localement
|
||||
```
|
||||
Reference in New Issue
Block a user