5.9 KiB
Delta 0.2.1-pre.001 — audit HTTP, matrice exhaustive, architecture et sizing
Base requise
Release stable attendue :
v0.2.0
L'archive KSP fournie porte workspace.package.version = "0.2.0" et contient les quatre crates N1 attendues. Elle ne contient pas .git; le tag v0.2.0 n'est donc pas revérifiable localement depuis le zip.
Archive historique auditée :
khadhroony-bot3_v0.5.3-pre.005-fix010.zip
workspace.package.version = "0.5.3-pre.5"
Objectif
Exécuter la première tranche obligatoire d'audit/conception de 0.2.1 sans grosse implémentation : relecture KSP, audit détaillé du transport bot3, inventaire officiel Solana HTTP actuel, matrice exhaustive, décisions d'architecture et gate de sizing.
Version Cargo
Conformément à VER-ID-009, la prerelease non-fix synchronise le signal technique :
0.2.0 -> 0.2.1-pre.1
Aucune crate, source Rust ou dépendance n'est ajoutée dans cette tranche.
Résultats principaux
- index HTTP Solana courant audité : 52 méthodes ;
- navigation Deprecated officielle : 14 méthodes historiques ;
- changelog Agave : endpoints RPC v1 obsolete/deprecated retirés en v2 ; les 14 pages sont donc conservées dans la matrice comme
Deprecated / runtime Removed, pas comme wrappers callables ; - aucune méthode HTTP courante marquée unstable/experimental trouvée dans l'audit du 2026-08-17 ; les marqueurs Unstable trouvés concernent WebSocket/PubSub ;
getBlocketgetTransactionsont des méthodes courantes stables mais leur deuxième paramètre legacy sous forme de bare encoding string est explicitement deprecated ;- bot3 contient exactement les 52 noms courants, tous
TypedAdapter, sans manque ni extra ; il n'intègre pas les 14 Deprecated au registre HTTP ; - bot3 doit être refondu pour supprimer Transport -> Config, Transport ->
ks-libettracingdirect.
Gate de sizing
Réponse pour le périmètre monolithique du prompt 006 :
NON
Le scope est scindé immédiatement, sans masquer aucune méthode :
0.2.1 foundation + registry exhaustif + pool/resilience/config + 4 canaris
0.2.2 Accounts + Tokens
0.2.3 Transactions
0.2.4 Blocks
0.2.5 Cluster
0.2.6 Economics + compliance finale HTTP
Wallet est décalé à 0.2.7, Wallet Desk à 0.2.8, puis les releases suivantes sont renumérotées.
Réponse pour la 0.2.1 réduite définie par le plan 008 :
OUI, raisonnablement clôturable dans la session.
Architecture décidée
- settings runtime publics possédés par Transport, utilisant notamment
Duration; - provider/cluster/role/request kind sous descriptors ouverts/newtypes ;
- URL encapsulée avec
Debugredacted ; - descriptor central séparant statut documentaire, statut runtime, statut de forme de requête, operation kind et retry class ;
- pool logique : priorité globale puis round-robin/fallback, avec endpoints disabled exclus ;
- RPS/burst/concurrence/cooldown par endpoint/rôle ;
- retry transport borné seulement pour opérations retry-safe ;
sendTransaction/requestAirdropne sont jamais resend automatiquement après dispatch ambigu ; - erreurs via l'unique
ksp_core_lib::Error; - réponses Transport/wire, aucun modèle Store/Program/canonical ;
- Config standard IDs candidats
cfg.std.transport/schema.std.transportet adapter Config -> Transport ; - aucune nouvelle variable
.env.exampledanspre.001.
Dépendances auditées
reqwest courant observé : 0.13.4; Tokio courant observé : 1.53.1. Le workspace possède déjà serde, serde_json et tokio ^1.53. reqwest sera ajouté seulement à pre.002 après vérification exacte de ses features. base64/bs58 sont différés jusqu'au premier besoin concret.
Fichiers ajoutés
docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
deltas/0.2.1/pre.001.md
Fichiers modifiés
Cargo.toml
ROADMAP.md
docs/000-README.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
prompts/006-V0_2_1_START_PROMPT.md
Fichiers supprimés
Aucun.
Validations exécutées
- relecture des sources internes obligatoires et des contrats publics Core/Logging/Config ;
- inspection du workspace stable fourni ;
- inspection du transport/config bot3 fourni ;
- comparaison automatisée locale des 52 noms bot3 avec les 52 noms de l'index officiel audité :
missing = [],extra = []; - consultation de la documentation officielle Solana HTTP et Deprecated ;
- consultation de JSON-RPC 2.0 ;
- consultation du changelog Agave pour le statut runtime des endpoints deprecated ; aucun POST JSON-RPC live vers un provider n’a été exécuté, les éventuelles divergences provider restent donc à documenter séparément ;
- vérification des versions actuelles candidates
reqwest/tokio; - vérification de l'absence de
.gitdans l'archive KSP.
Validations non exécutées
Le sandbox ne contient pas le binaire cargo (cargo: command not found). Les commandes suivantes n'ont donc pas été exécutées ici et doivent être rejouées sur le checkout de développement avant commit :
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test --workspace
Aucun cargo tree n'est pertinent avant ajout de la crate/dépendance ; les audits cargo tree -p ksp-onchain-transport-lib ... deviennent obligatoires dès pre.002.
L'archive source ne contient pas .git; le commit attendu après application/validation suit VER-GIT-001 :
v0.2.1-pre.001
Questions ouvertes
Aucune question bloquante pour ouvrir pre.002. Les détails de nommage Rust peuvent encore être ajustés si une contrainte concrète apparaît, sans modifier l'ownership et les invariants fixés par le plan.
Suite
0.2.1-pre.002 : créer la crate, fixer les settings/validation, JSON-RPC, descriptors/status, erreurs et base Logging sur le périmètre réduit.