diff --git a/CHANGELOG.md b/CHANGELOG.md index 83d6c52..197b514 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,14 @@ - + # Changelog KSP Ce changelog résume uniquement les releases KSP considérées comme stables, dans l'ordre chronologique décroissant. Les détails de chaque livraison restent dans `deltas/`. +## 0.2.3 — HTTP Transactions — 2026-08-18 + +`0.2.3` complète la famille HTTP Transactions de `ksp-onchain-transport-lib` avec 11 wrappers typés, portant la surface HTTP typée courante à 37 méthodes : 4 foundation, 22 Accounts/Tokens/Cluster et 11 Transactions. La release stabilise la classification exacte `8 Read / RetrySafe`, `2 WriteSubmission / NeverAfterDispatch` (`requestAirdrop`, `sendTransaction`) et `1 Simulation / RetrySafe` (`simulateTransaction`), avec preuves end-to-end qu'une write submission n'est jamais resoumise après dispatch ambigu mais peut retenter lorsqu'un échec est prouvé `NotDispatched`. `getTransaction` couvre la config moderne complète et la forme bare encoding legacy dépréciée ; les variantes de transaction, metadata, version et `transactionIndex` restent préservées losslessly. `simulateTransaction` couvre sa config complète, ses invariants déterministes et son résultat riche sans introduire de client RPC Solana haut niveau ni de décodage transactionnel dans Transport. La release formalise `KSP-TRANSPORT-007` et réaudite rétroactivement les 37 wrappers courants sans remédiation fonctionnelle. Les canaries conservent 52 méthodes HTTP courantes, 14 historiques Deprecated/Removed et 15 Blocks/Economics réservées à `0.2.4`. Les graphes Cargo et les deux smokes Devnet — Transport pur read-only et composition Config -> Transport transitoire — ont été validés avant publication. Le prompt `prompts/009-V0_2_4_START_PROMPT.md` ouvre `0.2.4 — HTTP Blocks + Economics + compliance HTTP finale`. + ## 0.2.2 — HTTP Accounts + Tokens + Cluster — 2026-08-18 `0.2.2` complète la surface HTTP typée de `ksp-onchain-transport-lib` avec 22 wrappers supplémentaires : 5 Accounts, 5 Tokens et 12 Cluster, portant la couverture typée totale à 26 méthodes avec les quatre canaris foundation de `0.2.1`. La release stabilise les DTOs/configs wire communs, préserve les formes Account encodées/`jsonParsed`, les `null` et champs optionnels, les selectors Token exclusifs, les contextes RPC, les structures Cluster/leader/vote et les limites locales auditées (`getMultipleAccounts <= 100`, `getProgramAccounts <= 4` filtres, `memcmp` raw <= 128 octets, `getSlotLeaders` entre 1 et 5000). Les 22 descriptors restent `Read / RetrySafe` et passent exclusivement par le flux central `descriptor -> execute_standard_rpc -> pool/admission -> executor HTTP`. La release n'ajoute aucune dépendance externe, ne crée aucun client HTTP parallèle et conserve le firewall Transport -> Config/Store/Program. Elle ajoute un smoke Devnet pur à Transport avec settings programmatiques couvrant Accounts/Tokens/Cluster, conserve séparément le smoke historique Config -> Transport comme exception transitoire, et valide les deux explicitement avant publication. Les canaries figent toujours 52 méthodes HTTP courantes, 14 historiques Deprecated/Removed et la partition typed `4 / 22 / 11 / 15`. Le prompt `prompts/008-V0_2_3_START_PROMPT.md` ouvre `0.2.3 — HTTP Transactions`. diff --git a/Cargo.toml b/Cargo.toml index 9c9f4b6..0321a84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 130 +# version: 131 [workspace] resolver = "3" members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib"] [workspace.package] -version = "0.2.3-pre.9" +version = "0.2.3" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/ROADMAP.md b/ROADMAP.md index 2faaa15..5011942 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # Roadmap KSP @@ -47,7 +47,7 @@ Le roadmap décrit les objectifs à atteindre et les grandes étapes prévues. U - [X] `0.2.1` — **HTTP transport foundation réduite par le gate `pre.001`** : crate/settings/JSON-RPC/registry 52 current + 14 deprecated historiques, pool/rôles/limites/retry, Config adapter, documentation et 4 méthodes typées canari (`getBalance`, `getGenesisHash`, `getHealth`, `getVersion`) publiés stables. - [X] `0.2.2` — HTTP Accounts + Tokens + Cluster : 22 wrappers typés (5 Accounts + 5 Tokens + 12 Cluster), canaries de complétude 52+14, smoke Devnet Transport pur et smoke historique Config -> Transport validés, documentation durable et prompt `0.2.3` publiés stables. -- [/] `0.2.3` — HTTP Transactions candidate : 11/11 wrappers typés implémentés, classification `8 Read / 2 WriteSubmission / 1 Simulation`, no-resend ambigu prouvé pour les write submissions, `KSP-TRANSPORT-007` réaudité sur les 37 wrappers HTTP courants et clôture `pre.009` préparée ; publication stable encore réservée à `rel.001`. +- [X] `0.2.3` — HTTP Transactions stable : 11/11 wrappers typés publiés, classification `8 Read / 2 WriteSubmission / 1 Simulation`, no-resend ambigu prouvé pour les write submissions, `KSP-TRANSPORT-007` réaudité conforme sur les 37 wrappers HTTP courants, graphes Cargo et deux smokes Devnet validés ; `0.2.4` reprend les 15 Blocks/Economics restants. - [ ] `0.2.4` — Compléter les 10 méthodes HTTP Blocks + 5 Economics et exécuter la compliance finale de toute la surface HTTP 52 current + 14 deprecated historiques. - [ ] `0.2.5` — Introduire `ksp-wallet-lib`, le format `.kspwallet`, la gestion sûre des secrets et une architecture d'import/export extensible ; exclure `WalletPolicy`. - [ ] `0.2.6` — Introduire `ksp-app-wallet-desk` utilisant Config composite + Wallet + transport HTTP, notamment pour afficher l'identité et le solde d'un wallet. diff --git a/crates/ksp-onchain-transport-lib/README.md b/crates/ksp-onchain-transport-lib/README.md index 4530570..4a871e0 100644 --- a/crates/ksp-onchain-transport-lib/README.md +++ b/crates/ksp-onchain-transport-lib/README.md @@ -1,5 +1,5 @@ - + # `ksp-onchain-transport-lib` @@ -69,7 +69,7 @@ Le registre porte notamment : - remplacement historique éventuel ; - release de couverture typée KSP. -La candidate `0.2.3-pre.009` porte la surface typée à **37 méthodes courantes** : +La release stable `0.2.3` porte la surface typée à **37 méthodes courantes** : ```text 0.2.1 foundation : 4 @@ -144,6 +144,6 @@ Les deux sont `ignored` par défaut. Le smoke Transport appartient durablement - [`../../docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](../../docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md) — foundation HTTP stable ; - [`../../docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md`](../../docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md) — extension typed Accounts/Tokens/Cluster ; - [`../../docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md`](../../docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md) — matrice finale validée `0.2.2` ; -- [`../../docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`](../../docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md) — plan de la candidate `0.2.3` ; -- [`../../docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md`](../../docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md) — matrice de clôture candidate `0.2.3` ; +- [`../../docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`](../../docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md) — plan historique clôturé de `0.2.3` ; +- [`../../docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md`](../../docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md) — matrice finale validée `0.2.3` ; - [`../../config/std.transport.json`](../../config/std.transport.json) — configuration standard HTTP. diff --git a/crates/ksp-onchain-transport-lib/USAGE.md b/crates/ksp-onchain-transport-lib/USAGE.md index 7d60f25..4df4c3e 100644 --- a/crates/ksp-onchain-transport-lib/USAGE.md +++ b/crates/ksp-onchain-transport-lib/USAGE.md @@ -1,5 +1,5 @@ - + # Utilisation de `ksp-onchain-transport-lib` @@ -96,7 +96,7 @@ let epoch = pool.get_epoch_info(&role, None).await; let vote_accounts = pool.get_vote_accounts(&role, None).await; ``` -La candidate `0.2.3-pre.009` contient 37 wrappers typés : 4 foundation + 5 Accounts + 5 Tokens + 12 Cluster + 11 Transactions. Les DTOs Transport conservent les `null`, options et formes wire sans décodage Program/SPL métier. +La release stable `0.2.3` contient 37 wrappers typés : 4 foundation + 5 Accounts + 5 Tokens + 12 Cluster + 11 Transactions. Les DTOs Transport conservent les `null`, options et formes wire sans décodage Program/SPL métier. Exemples Transaction représentatifs : diff --git a/deltas/0.2.3/rel.001.md b/deltas/0.2.3/rel.001.md new file mode 100644 index 0000000..779832e --- /dev/null +++ b/deltas/0.2.3/rel.001.md @@ -0,0 +1,144 @@ + + + +# Delta `v0.2.3-rel.001` + +## Base + +Base attendue : + +```text +v0.2.3-pre.009 +``` + +Version Cargo cible : + +```text +0.2.3 +``` + +La candidate `pre.009` a été validée localement par l'opérateur le 2026-08-18 avec `cargo fmt --all`, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, les tests ciblés Transport/Config/Core/Config Desk, `cargo test --workspace`, les quatre graphes Cargo pour Transport et Config, puis les deux smokes Devnet opt-in. + +## Objectif + +Publier `0.2.3 — HTTP Transactions` sans ajouter de capacité fonctionnelle après `pre.009`. + +`rel.001` est strictement publicationnelle : + +- passage du workspace à la version stable `0.2.3` ; +- clôture `[X]` de `0.2.3` dans le ROADMAP ; +- ajout de l'entrée stable `0.2.3` au CHANGELOG ; +- clôture du plan `010` et de la matrice `validation/006` avec les preuves opérateur ; +- synchronisation des index, de l'inventaire composant et des README/USAGE Transport vers le statut stable ; +- conservation du prompt `prompts/009-V0_2_4_START_PROMPT.md` comme point d'ouverture de `0.2.4`. + +Aucun fichier Rust de production, aucune API publique, aucune configuration runtime, aucune dépendance et aucune feature Cargo ne changent dans cette livraison. + +## Surface stable publiée + +`0.2.3` ajoute exactement 11 wrappers Transactions : + +```text +8 Read / RetrySafe +2 WriteSubmission / NeverAfterDispatch +1 Simulation / RetrySafe +``` + +Avec `0.2.1` et `0.2.2`, la surface HTTP typée atteint : + +```text +37 wrappers typés courants +52 méthodes HTTP courantes enregistrées +14 méthodes historiques Deprecated / Removed +15 méthodes Blocks/Economics restantes pour 0.2.4 +``` + +Contrats stabilisés notamment : `getFeeForMessage`, latest blockhash, prioritization fees, pagination signatures, statuses positionnels, `getTransaction` moderne + bare encoding legacy deprecated, transaction/version/meta/index lossless, airdrop, soumission signée avec no-resend après dispatch ambigu et `simulateTransaction` complet. + +`KSP-TRANSPORT-007` est désormais une règle formelle : un wrapper RPC KSP doit couvrir les possibilités supportées retenues par l'audit — paramètres/options, overloads/formes legacy encore supportés, contraintes déterministes utiles et variantes de réponse pertinentes sans perte. Le réaudit `pre.008` conclut les **37/37 wrappers conformes sans remédiation fonctionnelle**. + +## Validation de la candidate + +La candidate `0.2.3-pre.009` a confirmé : + +```text +cargo fmt --all OK +cargo check --workspace OK +cargo clippy --workspace --all-targets OK +cargo test --workspace OK +``` + +Transport : + +```text +182 unit +19 public API +14 release completeness +1 smoke live ignored par défaut +``` + +Les tests ciblés Config/Core/Config Desk passent également. Les graphes `cargo tree`, `cargo tree -d`, `cargo tree -e features` et `cargo tree -e normal` ont été inspectés pour Transport et Config. La frontière reste : + +```text +ksp-config-lib -> ksp-onchain-transport-lib +ksp-onchain-transport-lib -X-> ksp-config-lib +Transport -X-> Store/Program/tracing direct +``` + +Les doublons observés restent transitifs/proc-macro, notamment `syn` 2.x/3.x ; aucune seconde stack HTTP KSP n'est introduite. + +Les deux smokes ont ensuite été exécutés explicitement : + +```text +Transport pur read-only : Accounts/Tokens/Cluster + trois reads Transactions 1 passed +Config -> Transport -> foundation 1 passed +``` + +Le smoke Config -> Transport reste une exception transitoire cross-crates et devra migrer vers une future surface d'intégration/orchestration/demo lorsqu'elle existera. + +## Documentation de clôture + +Mises à jour : + +```text +CHANGELOG.md +ROADMAP.md +crates/ksp-onchain-transport-lib/README.md +crates/ksp-onchain-transport-lib/USAGE.md +docs/000-README.md +docs/architecture/004-COMPONENT_INVENTORY.md +docs/plans/000-README.md +docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md +docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md +docs/validation/000-README.md +docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md +``` + +La matrice rétroactive `docs/validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md`, corrigée par l'opérateur avant `pre.009`, reste inchangée byte-for-byte. Le prompt `prompts/009-V0_2_4_START_PROMPT.md` reste également inchangé et attend la base stable `v0.2.3`. + +## Commit et tag + +Identifiant de commit attendu : + +```text +v0.2.3-rel.001 +``` + +Le tag stable ne doit être créé qu'après application et validation de ce delta : + +```text +v0.2.3 +``` + +## Validation finale après application + +Comme `rel.001` ne modifie aucun code de production et ne change que le signal de version et la documentation, la gate finale reste : + +```bash +cargo fmt --all +cargo check --workspace +cargo clippy --workspace --all-targets +cargo test --workspace +``` + +Après succès : commit `v0.2.3-rel.001`, puis création du tag `v0.2.3`. La prochaine session s'ouvre avec `prompts/009-V0_2_4_START_PROMPT.md`. diff --git a/docs/000-README.md b/docs/000-README.md index 2770e95..e4af262 100644 --- a/docs/000-README.md +++ b/docs/000-README.md @@ -1,5 +1,5 @@ - + # Documentation KSP @@ -67,7 +67,7 @@ D'autres sous-répertoires seront ajoutés uniquement lorsque leur rôle aura é ## Documents de planification -Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la release stable `0.1.1` est conservé comme historique clôturé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.2` est conservé comme historique clôturé dans [`plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md`](plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.3 — Configuration foundation` est conservé comme historique clôturé dans [`plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md`](plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.4 — ksp-app-config-desk` est conservé comme historique clôturé dans [`plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md`](plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md), avec sa matrice finale [`validation/001-V0_1_4_CONFIG_DESKTOP.md`](validation/001-V0_1_4_CONFIG_DESKTOP.md). Son prompt d'ouverture historique reste [`../prompts/004-V0_1_4_START_PROMPT.md`](../prompts/004-V0_1_4_START_PROMPT.md). La release stable `0.2.0` clôt l'audit de bot3 et le découpage de la série. Son plan directeur est conservé comme historique clôturé dans [`plans/007-V0_2_0_SERIES_PLANNING.md`](plans/007-V0_2_0_SERIES_PLANNING.md), avec sa matrice finale [`validation/002-V0_2_0_SERIES_PLANNING.md`](validation/002-V0_2_0_SERIES_PLANNING.md). La release stable `0.2.1 — HTTP Solana foundation` a été ouverte par [`../prompts/006-V0_2_1_START_PROMPT.md`](../prompts/006-V0_2_1_START_PROMPT.md). Son gate de sizing et sa matrice exhaustive sont conservés dans [`plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md), avec la validation finale [`validation/003-V0_2_1_ONCHAIN_HTTP.md`](validation/003-V0_2_1_ONCHAIN_HTTP.md), README/USAGE Transport et le smoke Devnet opt-in de composition Config -> Transport. Le prompt [`../prompts/007-V0_2_2_START_PROMPT.md`](../prompts/007-V0_2_2_START_PROMPT.md) a ouvert la release stable `0.2.2 — HTTP Accounts + Tokens + Cluster`. Son plan clôturé [`plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md`](plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md) conserve l'audit et l'implémentation des 22 wrappers typés, tandis que [`validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md`](validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md) enregistre les validations déterministes, les graphes Cargo et les deux smokes Devnet passés avant publication. Le prompt [`../prompts/008-V0_2_3_START_PROMPT.md`](../prompts/008-V0_2_3_START_PROMPT.md) ouvre `0.2.3 — HTTP Transactions`. Son plan candidat [`plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`](plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md) conduit les 11 wrappers jusqu'à `pre.009`; le réaudit [`validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md`](validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md) confirme la complétude des 37 wrappers HTTP typés et [`validation/006-V0_2_3_HTTP_TRANSACTIONS.md`](validation/006-V0_2_3_HTTP_TRANSACTIONS.md) porte la matrice de clôture candidate. Le prompt [`../prompts/009-V0_2_4_START_PROMPT.md`](../prompts/009-V0_2_4_START_PROMPT.md) prépare la dernière release de complétude HTTP. +Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la release stable `0.1.1` est conservé comme historique clôturé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.2` est conservé comme historique clôturé dans [`plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md`](plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.3 — Configuration foundation` est conservé comme historique clôturé dans [`plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md`](plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.4 — ksp-app-config-desk` est conservé comme historique clôturé dans [`plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md`](plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md), avec sa matrice finale [`validation/001-V0_1_4_CONFIG_DESKTOP.md`](validation/001-V0_1_4_CONFIG_DESKTOP.md). Son prompt d'ouverture historique reste [`../prompts/004-V0_1_4_START_PROMPT.md`](../prompts/004-V0_1_4_START_PROMPT.md). La release stable `0.2.0` clôt l'audit de bot3 et le découpage de la série. Son plan directeur est conservé comme historique clôturé dans [`plans/007-V0_2_0_SERIES_PLANNING.md`](plans/007-V0_2_0_SERIES_PLANNING.md), avec sa matrice finale [`validation/002-V0_2_0_SERIES_PLANNING.md`](validation/002-V0_2_0_SERIES_PLANNING.md). La release stable `0.2.1 — HTTP Solana foundation` a été ouverte par [`../prompts/006-V0_2_1_START_PROMPT.md`](../prompts/006-V0_2_1_START_PROMPT.md). Son gate de sizing et sa matrice exhaustive sont conservés dans [`plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md), avec la validation finale [`validation/003-V0_2_1_ONCHAIN_HTTP.md`](validation/003-V0_2_1_ONCHAIN_HTTP.md), README/USAGE Transport et le smoke Devnet opt-in de composition Config -> Transport. Le prompt [`../prompts/007-V0_2_2_START_PROMPT.md`](../prompts/007-V0_2_2_START_PROMPT.md) a ouvert la release stable `0.2.2 — HTTP Accounts + Tokens + Cluster`. Son plan clôturé [`plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md`](plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md) conserve l'audit et l'implémentation des 22 wrappers typés, tandis que [`validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md`](validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md) enregistre les validations déterministes, les graphes Cargo et les deux smokes Devnet passés avant publication. Le prompt [`../prompts/008-V0_2_3_START_PROMPT.md`](../prompts/008-V0_2_3_START_PROMPT.md) a ouvert la release stable `0.2.3 — HTTP Transactions`. Son plan clôturé [`plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`](plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md) conserve l'audit et l'implémentation des 11 wrappers ; le réaudit [`validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md`](validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md) confirme la complétude des 37 wrappers HTTP typés et [`validation/006-V0_2_3_HTTP_TRANSACTIONS.md`](validation/006-V0_2_3_HTTP_TRANSACTIONS.md) enregistre les validations finales, graphes Cargo et deux smokes Devnet passés avant publication. Le prompt [`../prompts/009-V0_2_4_START_PROMPT.md`](../prompts/009-V0_2_4_START_PROMPT.md) ouvre `0.2.4 — HTTP Blocks + Economics + compliance HTTP finale`. `IDEAS.md` conserve les pistes et questions qui ne sont pas encore des engagements du roadmap ni des décisions architecturales. diff --git a/docs/architecture/004-COMPONENT_INVENTORY.md b/docs/architecture/004-COMPONENT_INVENTORY.md index 618604a..eac2857 100644 --- a/docs/architecture/004-COMPONENT_INVENTORY.md +++ b/docs/architecture/004-COMPONENT_INVENTORY.md @@ -1,5 +1,5 @@ - + # Inventaire initial des composants KSP @@ -17,41 +17,41 @@ Ce document maintient l'inventaire synthétique des composants retenus ou presse ## Inventaire synthétique -| Domaine | Composant | Type | Statut | Première cible actuelle | Mission | -|-------------------------|------------------------------------------|--------------------|--------------|---------------------------------|-----------------------------------------------------------| -| Core | `ksp-core-lib` | lib | Stable | `0.1.1` | Error/Result, Program IDs et primitives fondamentales | -| Logging | `ksp-logging-lib` | lib | Stable | `0.1.2` | façade unique tracing KSP | -| Config | `ksp-config-lib` | lib | Stable | `0.1.3` | documents, profils, env et persistence Config | -| Config Desk | `ksp-app-config-desk` | app | Stable | `0.1.4` | validation/management Config | -| On-chain HTTP | `ksp-onchain-transport-lib` | lib | Stable | `0.2.1` | foundation HTTP + 37 wrappers typés candidats après 0.2.3 | -| Wallet | `ksp-wallet-lib` | lib | Retenu | `0.2.5` | `.kspwallet`, secrets, signature, import/export | -| Wallet Desk | `ksp-app-wallet-desk` | app | Retenu | `0.2.6` | Wallet + Config composite + HTTP/balance | -| Standard WS | `ksp-onchain-transport-lib` | lib | Retenu | `0.2.7` | WebSocket Solana complet, sessions/subscriptions | -| Helius WS | `ksp-onchain-transport-lib` | lib | Retenu | `0.2.8` | LaserStream WebSocket comme extension du moteur standard | -| Yellowstone | `ksp-onchain-transport-lib` | lib | Pressenti | `0.2.9` | client gRPC standard/provider-neutral | -| Off-chain price | `ksp-offchain-transport-lib` | lib | Retenu | `0.2.10` | première abstraction/provider de prix SOL/USD, SOL/EUR | -| Price Desk | nom à fixer | app | Retenu | `0.2.11` | visualisation/validation des prix | -| Wire | `ksp-interface-lib` | lib | Retenu | `0.2.12` | façade wire officielle + API publique wire | -| Program API | `ksp-program-api` | API | Retenu | `0.2.13` | contrats extensibles Program | -| Program impl. | `ksp-program-lib` | lib | Retenu | vertical slices ultérieurs | implementations Program officielles | -| Program extension | `ksp-program--lib` | lib externe | À la demande | dès besoin | implementation externe de `ksp-program-api` | -| Store API | `ksp-store-api` | API | Retenu | `0.3.1` | contrats persistence backend-agnostic, RAW d'abord | -| Store PostgreSQL | `ksp-store-lib` | lib | Retenu | `0.3.1` | backend PostgreSQL officiel, RAW d'abord | -| Job lifecycle | `ksp-job-api` | API | Retenu | `0.3.3` | lifecycle des jobs terminables | -| Backfill | `ksp-job-backfill` | job/lib à préciser | Retenu | `0.3.3` | acquisition historique vers RAW | -| Backfill Desk | nom à fixer | app | Retenu | `0.3.4` | contrôle/inspection du backfill RAW | -| Worker lifecycle | `ksp-worker-api` | API | Retenu | fin couche RAW | lifecycle des services continus | -| RAW worker | `ksp-worker-raw-retriever` ou nom révisé | worker | Retenu | fin couche RAW | acquisition live vers RAW | -| CORE processor | nom à fixer | processor/lib | Retenu | couche CORE | normalisation Solana générique RAW -> CORE | -| CORE worker | nom à fixer | worker | Retenu | fin couche CORE | backlog RAW -> CORE continu | -| Materializer API | `ksp-materializer-api` | API | Retenu | premier groupe DECODE | contrats extensibles matérialisation | -| Materializer impl. | `ksp-materializer-lib` | lib | Retenu | premier groupe DECODE | implementations officielles communes | -| Execution policy | `ksp-execution-policy-api` | API | Retenu | premier vrai besoin execution | décision/safety multi-contexte | -| Execution orchestration | `ksp-execution-lib` | lib | Retenu | premier vrai cycle execution | Program + policy + Wallet + transport | -| Scenarios | `ksp-scenario--lib` | lib | Retenu | vertical slices | validation métier/devnet par groupe | -| Scenario API | `ksp-scenario-api` | API | Non retenu | — | norme souple avant trait commun | -| Market Desk | `ksp-app-market-desk` | app | Pressenti | après Meteora/Raydium/Pump/Orca | tokens, pools, trades, liquidity, price, OHLC | -| Trading Intelligence | noms à définir | libs/jobs | Futur | après données stables | features/signaux/anomalies/ML | +| Domaine | Composant | Type | Statut | Première cible actuelle | Mission | +|-------------------------|------------------------------------------|--------------------|--------------|---------------------------------|----------------------------------------------------------| +| Core | `ksp-core-lib` | lib | Stable | `0.1.1` | Error/Result, Program IDs et primitives fondamentales | +| Logging | `ksp-logging-lib` | lib | Stable | `0.1.2` | façade unique tracing KSP | +| Config | `ksp-config-lib` | lib | Stable | `0.1.3` | documents, profils, env et persistence Config | +| Config Desk | `ksp-app-config-desk` | app | Stable | `0.1.4` | validation/management Config | +| On-chain HTTP | `ksp-onchain-transport-lib` | lib | Stable | `0.2.1` | foundation HTTP + 37 wrappers typés stables après 0.2.3 | +| Wallet | `ksp-wallet-lib` | lib | Retenu | `0.2.5` | `.kspwallet`, secrets, signature, import/export | +| Wallet Desk | `ksp-app-wallet-desk` | app | Retenu | `0.2.6` | Wallet + Config composite + HTTP/balance | +| Standard WS | `ksp-onchain-transport-lib` | lib | Retenu | `0.2.7` | WebSocket Solana complet, sessions/subscriptions | +| Helius WS | `ksp-onchain-transport-lib` | lib | Retenu | `0.2.8` | LaserStream WebSocket comme extension du moteur standard | +| Yellowstone | `ksp-onchain-transport-lib` | lib | Pressenti | `0.2.9` | client gRPC standard/provider-neutral | +| Off-chain price | `ksp-offchain-transport-lib` | lib | Retenu | `0.2.10` | première abstraction/provider de prix SOL/USD, SOL/EUR | +| Price Desk | nom à fixer | app | Retenu | `0.2.11` | visualisation/validation des prix | +| Wire | `ksp-interface-lib` | lib | Retenu | `0.2.12` | façade wire officielle + API publique wire | +| Program API | `ksp-program-api` | API | Retenu | `0.2.13` | contrats extensibles Program | +| Program impl. | `ksp-program-lib` | lib | Retenu | vertical slices ultérieurs | implementations Program officielles | +| Program extension | `ksp-program--lib` | lib externe | À la demande | dès besoin | implementation externe de `ksp-program-api` | +| Store API | `ksp-store-api` | API | Retenu | `0.3.1` | contrats persistence backend-agnostic, RAW d'abord | +| Store PostgreSQL | `ksp-store-lib` | lib | Retenu | `0.3.1` | backend PostgreSQL officiel, RAW d'abord | +| Job lifecycle | `ksp-job-api` | API | Retenu | `0.3.3` | lifecycle des jobs terminables | +| Backfill | `ksp-job-backfill` | job/lib à préciser | Retenu | `0.3.3` | acquisition historique vers RAW | +| Backfill Desk | nom à fixer | app | Retenu | `0.3.4` | contrôle/inspection du backfill RAW | +| Worker lifecycle | `ksp-worker-api` | API | Retenu | fin couche RAW | lifecycle des services continus | +| RAW worker | `ksp-worker-raw-retriever` ou nom révisé | worker | Retenu | fin couche RAW | acquisition live vers RAW | +| CORE processor | nom à fixer | processor/lib | Retenu | couche CORE | normalisation Solana générique RAW -> CORE | +| CORE worker | nom à fixer | worker | Retenu | fin couche CORE | backlog RAW -> CORE continu | +| Materializer API | `ksp-materializer-api` | API | Retenu | premier groupe DECODE | contrats extensibles matérialisation | +| Materializer impl. | `ksp-materializer-lib` | lib | Retenu | premier groupe DECODE | implementations officielles communes | +| Execution policy | `ksp-execution-policy-api` | API | Retenu | premier vrai besoin execution | décision/safety multi-contexte | +| Execution orchestration | `ksp-execution-lib` | lib | Retenu | premier vrai cycle execution | Program + policy + Wallet + transport | +| Scenarios | `ksp-scenario--lib` | lib | Retenu | vertical slices | validation métier/devnet par groupe | +| Scenario API | `ksp-scenario-api` | API | Non retenu | — | norme souple avant trait commun | +| Market Desk | `ksp-app-market-desk` | app | Pressenti | après Meteora/Raydium/Pump/Orca | tokens, pools, trades, liquidity, price, OHLC | +| Trading Intelligence | noms à définir | libs/jobs | Futur | après données stables | features/signaux/anomalies/ML | ## Contrats séparés retenus @@ -78,7 +78,7 @@ ksp-data-api ## Transport -`ksp-onchain-transport-lib` doit couvrir l'intégralité des opérations documentées de la surface ciblée par chaque release. `0.2.1` stabilise la foundation HTTP et quatre wrappers typés canari. `0.2.2` stabilise 22 wrappers Accounts/Tokens/Cluster supplémentaires. La candidate `0.2.3-pre.009` ajoute les 11 Transactions et porte la surface typed à 37 méthodes ; les 15 méthodes Blocks/Economics restent affectées à `0.2.4`, qui exécutera aussi la compliance finale de la surface 52 current + 14 historiques. Les statuts deprecated/obsolete encore fonctionnels et unstable/experimental restent exposés avec warning runtime KSP. +`ksp-onchain-transport-lib` doit couvrir l'intégralité des opérations documentées de la surface ciblée par chaque release. `0.2.1` stabilise la foundation HTTP et quatre wrappers typés canari. `0.2.2` stabilise 22 wrappers Accounts/Tokens/Cluster supplémentaires. `0.2.3` stabilise les 11 Transactions et porte la surface typed à 37 méthodes ; les 15 méthodes Blocks/Economics restent affectées à `0.2.4`, qui exécutera aussi la compliance finale de la surface 52 current + 14 historiques. Les statuts deprecated/obsolete encore fonctionnels et unstable/experimental restent exposés avec warning runtime KSP. La Config standard Transport appartient à `ksp-config-lib`, qui adapte vers les settings publics du transport ; le transport ne dépend jamais de Config. diff --git a/docs/plans/000-README.md b/docs/plans/000-README.md index ff07a53..186de15 100644 --- a/docs/plans/000-README.md +++ b/docs/plans/000-README.md @@ -1,5 +1,5 @@ - + # Plans KSP @@ -18,7 +18,7 @@ Un plan décrit le périmètre, les décisions déjà acquises, les questions ou - [`007-V0_2_0_SERIES_PLANNING.md`](007-V0_2_0_SERIES_PLANNING.md) — plan historique clôturé de la release stable `0.2.0`, ouvert par `pre.001`, consolidé par `pre.002`, audité par `pre.003` puis publié par `rel.001`; il fixe l'ordre `0.2.1+`, la stratégie RAW/CORE/DECODE/SPECIALIZED, les vertical slices Program et le prompt `0.2.1`. - [`008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](008-V0_2_1_ONCHAIN_HTTP_PLAN.md) — plan de `0.2.1`, établi par `0.2.1-pre.001`, recalibré par `pre.001-fix.001` et amené en clôture candidate par `pre.007`; il conserve l'inventaire 52 méthodes HTTP courantes + 14 Deprecated historiques, le design Transport/Config et le split de couverture typée sur `0.2.1`–`0.2.4`. - [`009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md`](009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md) — plan clôturé de la release stable `0.2.2`, établi par `pre.001`, corrigé après réaudit Agave v4.2.1 puis exécuté jusqu'à `pre.007-fix.002`; il couvre les 22 wrappers Accounts/Tokens/Cluster, le smoke Transport opt-in et la préparation de `0.2.3`. -- [`010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`](010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md) — plan candidat de `0.2.3 — HTTP Transactions`, ouvert par `pre.001` puis exécuté jusqu'à `pre.009`; il couvre les 11 méthodes, la classification `8 Read / 2 WriteSubmission / 1 Simulation`, `KSP-TRANSPORT-007`, le no-resend et la préparation de `0.2.4`. +- [`010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`](010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md) — plan historique clôturé de la release stable `0.2.3 — HTTP Transactions`, ouvert par `pre.001`, exécuté jusqu'à `pre.009` puis publié par `rel.001`; il couvre les 11 méthodes, la classification `8 Read / 2 WriteSubmission / 1 Simulation`, `KSP-TRANSPORT-007`, le no-resend et la préparation de `0.2.4`. Le `pre.001` de chaque release fonctionnelle peut introduire son propre plan détaillé lorsque la release s'ouvre. diff --git a/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md b/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md index 42ec9b1..1b3f54f 100644 --- a/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md +++ b/docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md @@ -1,5 +1,5 @@ - + # Séquence des releases fonctionnelles KSP @@ -392,7 +392,7 @@ Chaque `pre.001` réaudite la documentation officielle actuelle. Les méthodes D `0.2.2-pre.001` a confirmé la partition de 22 méthodes et son fix documentaire a recoupé les formes wire avec Agave v4.2.1. Les tranches `pre.002`–`pre.006` ont livré les DTOs puis les 5 Accounts, 5 Tokens et 12 Cluster. `pre.007`, puis `pre.007-fix.001` et `pre.007-fix.002`, ont fermé les canaries exactes 22/22, le smoke Devnet Transport pur, README/USAGE, la matrice de validation `004` et le prompt `0.2.3`. `0.2.2-rel.001` publie cette surface stable après validation du workspace et des deux smokes Devnet. Le smoke cross-crates Config -> Transport de `0.2.1` reste séparé et transitoire. -`0.2.3-pre.001` réaudite le 2026-08-18 la catégorie Transactions contre la documentation Solana actuelle et Agave v4.2.1 : les 11 méthodes prévues restent exactes, la classification `8 Read / RetrySafe`, `2 WriteSubmission / NeverAfterDispatch` et `1 Simulation / RetrySafe` reste correcte, et le gate de sizing est positif. `pre.002`–`pre.007` livrent ensuite les primitives wire puis les 11 wrappers, `pre.008` réaudite rétroactivement `KSP-TRANSPORT-007` sur les 37 wrappers HTTP typés sans remédiation fonctionnelle, et `pre.009` prépare la candidate finale avec documentation, smoke Transport read-only étendu et prompt `0.2.4`. Aucun `base64`, `bs58`, `wincode` ni client RPC Solana supplémentaire n'est ajouté : les payloads sérialisés restent opaques dans Transport tant qu'un besoin de décodage local n'est pas démontré. Le plan détaillé candidat est `docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`. +`0.2.3-pre.001` réaudite le 2026-08-18 la catégorie Transactions contre la documentation Solana actuelle et Agave v4.2.1 : les 11 méthodes prévues restent exactes, la classification `8 Read / RetrySafe`, `2 WriteSubmission / NeverAfterDispatch` et `1 Simulation / RetrySafe` reste correcte, et le gate de sizing est positif. `pre.002`–`pre.007` livrent ensuite les primitives wire puis les 11 wrappers, `pre.008` réaudite rétroactivement `KSP-TRANSPORT-007` sur les 37 wrappers HTTP typés sans remédiation fonctionnelle, et `pre.009` prépare la candidate finale avec documentation, smoke Transport read-only étendu et prompt `0.2.4`. `0.2.3-rel.001` publie cette surface stable après validation du workspace, des graphes Cargo Transport/Config et des deux smokes Devnet. Aucun `base64`, `bs58`, `wincode` ni client RPC Solana supplémentaire n'est ajouté : les payloads sérialisés restent opaques dans Transport tant qu'un besoin de décodage local n'est pas démontré. Le plan détaillé clôturé est `docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md`. ## `0.2.5` — Wallet foundation diff --git a/docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md b/docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md index 64e6c49..6d924be 100644 --- a/docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md +++ b/docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md @@ -1,11 +1,11 @@ - + # Plan `0.2.3` — HTTP Transactions ## Statut -Ce plan est ouvert par `0.2.3-pre.001` sur la base stable `v0.2.2`. `pre.009` amène la release au statut **candidate de clôture** ; la publication stable reste réservée à `0.2.3-rel.001`. +Ce plan, ouvert par `0.2.3-pre.001` sur la base stable `v0.2.2`, est désormais **clôturé par `0.2.3-rel.001`**. `pre.009` a constitué la candidate finale validée avant publication stable. `0.2.1` a stabilisé la foundation HTTP Solana et quatre wrappers typés canari. `0.2.2` a ajouté les 22 wrappers Accounts/Tokens/Cluster, les DTOs wire communs, le smoke Devnet Transport pur et les canaries exactes de complétude. @@ -654,9 +654,29 @@ La candidate `pre.009` ne modifie aucun wrapper fonctionnel. Elle : La publication stable reste strictement publicationnelle : version Cargo finale, ROADMAP `[X]`, CHANGELOG, clôture des preuves opérateur et tag stable après validation. +## Résultat de `rel.001` — publication stable + +La candidate `0.2.3-pre.009` a été validée par l'opérateur le **18 août 2026** avec la matrice de clôture complète : formatage, check et clippy workspace, tests ciblés Transport/Config/Core/Config Desk, `cargo test --workspace`, graphes Cargo Transport/Config et les deux smokes Devnet opt-in. + +Preuves principales : + +```text +Transport : 182 unit + 19 public API + 14 release completeness, 0 échec +Config : 95 unit + 5 ownership + 13 public API, 0 échec +Core : 14 unit + 3 public API + 2 workspace dependencies + 1 workspace logging, 0 échec +Config Desk : 63 unit + 2 desktop contract + 2 desktop security + 1 public API, 0 échec +cargo test --workspace : OK +smoke Transport Devnet : 1 passed +smoke Config -> Transport Devnet : 1 passed +``` + +Les graphes confirment la frontière attendue `Config -> Transport`, sans dépendance inverse Transport -> Config/Store/Program ni `tracing` direct. Les doublons observés restent transitifs/proc-macro, notamment `syn` 2.x/3.x, sans seconde stack HTTP KSP. + +`rel.001` ne modifie aucun wrapper, DTO, comportement runtime, dépendance ou feature. Il publie uniquement la version Cargo stable `0.2.3`, clôt le ROADMAP/CHANGELOG et transforme cette matrice candidate en historique stable. Le point d'entrée suivant est `prompts/009-V0_2_4_START_PROMPT.md`. + ## Critères de clôture de `0.2.3` -La release ne peut être candidate stable que si : +Les critères de clôture suivants sont satisfaits par la candidate validée `pre.009` : - les 11 wrappers sont publics et passent tous par `execute_standard_rpc` ; - chaque wrapper couvre tous les paramètres/options/overloads normatifs ou runtime supportés retenus par l'audit, selon `KSP-TRANSPORT-007` ; @@ -671,7 +691,7 @@ La release ne peut être candidate stable que si : - aucune dépendance Transport -> Config/Store/Program/tracing direct n'est introduite ; - README/USAGE, plan, matrice de validation et prompt `0.2.4` sont synchronisés ; - les validations Cargo de clôture et graphes de dépendances ont une preuve opérateur ou une exécution réelle ; -- `CHANGELOG.md` reste réservé à `0.2.3-rel.001` ; +- `CHANGELOG.md` est renseigné uniquement par `0.2.3-rel.001` ; - la release stable finale reste strictement publicationnelle. ## Validations prévues pendant le développement diff --git a/docs/validation/000-README.md b/docs/validation/000-README.md index 3971d7b..403e035 100644 --- a/docs/validation/000-README.md +++ b/docs/validation/000-README.md @@ -1,5 +1,5 @@ - + # Validations KSP @@ -15,4 +15,4 @@ Documents : - [`004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md`](004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md) — matrice finale validée de `0.2.2`, 22 wrappers Accounts/Tokens/Cluster, canaries 52+14, graphes Cargo, smoke Devnet Transport pur, smoke historique Config -> Transport et préparation de `0.2.3`. - [`005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md`](005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md) — réaudit rétroactif de complétude `KSP-TRANSPORT-007` des 37 wrappers HTTP typés livrés de `0.2.1` à `0.2.3-pre.007`, avec preuves Solana/Agave et verdict méthode par méthode. -- [`006-V0_2_3_HTTP_TRANSACTIONS.md`](006-V0_2_3_HTTP_TRANSACTIONS.md) — matrice de clôture candidate `0.2.3`, 11 wrappers Transactions, sécurité write/simulation, réaudit final 52+14, smoke Transport read-only étendu et validations de publication à exécuter avant `rel.001`. +- [`006-V0_2_3_HTTP_TRANSACTIONS.md`](006-V0_2_3_HTTP_TRANSACTIONS.md) — matrice finale validée de `0.2.3`, 11 wrappers Transactions, sécurité write/simulation, réaudit 52+14, `KSP-TRANSPORT-007` 37/37, graphes Cargo et deux smokes Devnet passés avant publication stable. diff --git a/docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md b/docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md index c15df98..436d615 100644 --- a/docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md +++ b/docs/validation/006-V0_2_3_HTTP_TRANSACTIONS.md @@ -1,15 +1,15 @@ - + -# Validation candidate `0.2.3` — HTTP Transactions +# Validation finale `0.2.3` — HTTP Transactions ## Objet -Cette matrice porte la clôture candidate de `0.2.3 — HTTP Transactions`. +Cette matrice enregistre la clôture validée et la publication stable de `0.2.3 — HTTP Transactions`. Elle complète le réaudit transversal [`005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md`](005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md), qui vérifie la complétude de requête/réponse des 37 wrappers HTTP typés courants. -La publication stable reste réservée à `0.2.3-rel.001`. +La publication stable est réalisée par `0.2.3-rel.001` après validation opérateur complète de `pre.009`. ## Réaudit final de l'inventaire @@ -28,19 +28,19 @@ L'inventaire reste : 14 méthodes historiques Deprecated ``` -Partition KSP candidate : +Partition KSP stable : ```text 0.2.1 foundation 4 0.2.2 Accounts/Tokens/Cluster 22 0.2.3 Transactions 11 -surface typée candidate 37 +surface typée stable 37 0.2.4 Blocks/Economics restant 15 ``` Aucun recalibrage de `HttpRpcCoverageRelease` n'est nécessaire. -## Surface Transactions candidate +## Surface Transactions stable | Méthode | Classe KSP | Contrat de clôture principal | |-------------------------------|--------------------------------------|-------------------------------------------------------------------------------------------------| @@ -95,7 +95,7 @@ NotDispatched prouvé -> retry/fallback central autorisé ## Canaries déterministes -La candidate conserve : +La release stable conserve : ```text current registry == 52 @@ -165,47 +165,88 @@ ksp-onchain-transport-lib -X-> tracing direct Aucune nouvelle dépendance `base64`, `bs58`, `wincode`, `solana-client` ou client RPC haut niveau n'est introduite par `0.2.3`. -## Validations de candidate à exécuter +## Preuves opérateur finales -La clôture opérateur de `pre.009` doit exécuter : +La candidate `0.2.3-pre.009` a été validée le **18 août 2026** avec succès : + +```text +cargo fmt --all OK +cargo check --workspace OK +cargo clippy --workspace --all-targets OK, sans warning signalé + +Transport + 182 unit passed + 19 public API passed + 14 release completeness passed + 1 smoke live ignored par défaut + +Config + 95 unit passed + 5 ownership passed + 13 public API passed + 1 smoke live ignored par défaut + +Core + 14 unit passed + 3 public API passed + 2 workspace dependencies passed + 1 workspace logging passed + +Config Desk + 63 unit passed + 2 desktop contract passed + 2 desktop security passed + 1 public API passed + +cargo test --workspace OK +``` + +Le probe diagnostic d'overhead Logging reste volontairement `ignored`; il ne constitue pas un échec. + +Les graphes suivants ont été inspectés pour Transport et Config : + +```text +cargo tree +cargo tree -d +cargo tree -e features +cargo tree -e normal +``` + +Ils confirment la frontière attendue `ksp-config-lib -> ksp-onchain-transport-lib`, sans dépendance inverse Transport -> Config/Store/Program et sans import direct `tracing` dans Transport. Les doublons notables restent transitifs/proc-macro, notamment `syn` 2.x/3.x. + +Les deux smokes live ont ensuite été exécutés explicitement et passent : + +```text +Transport pur read-only + programmatic_devnet_transport_reaches_accounts_tokens_cluster_and_transaction_read_wrappers + -> 1 passed; 0 failed + +Config -> Transport transitoire + committed_devnet_transport_profile_reaches_all_foundation_canaries + -> 1 passed; 0 failed +``` + +## Publication `rel.001` + +`0.2.3-rel.001` reste strictement publicationnelle : + +```text +workspace.package.version = 0.2.3 +ROADMAP : 0.2.3 -> [X] +CHANGELOG : synthèse stable 0.2.3 +commit attendu : v0.2.3-rel.001 +tag stable après validation : v0.2.3 +``` + +Aucune nouvelle méthode HTTP, aucun nouveau DTO, aucune dépendance, aucune feature et aucun nouveau comportement runtime ne sont introduits pendant `rel.001`. + +Après application du delta publicationnel, la gate finale est : ```bash cargo fmt --all cargo check --workspace cargo clippy --workspace --all-targets -cargo test -p ksp-onchain-transport-lib -cargo test -p ksp-config-lib -cargo test -p ksp-core-lib -cargo test -p ksp-app-config-desk cargo test --workspace - -cargo tree -p ksp-onchain-transport-lib -cargo tree -p ksp-onchain-transport-lib -d -cargo tree -p ksp-onchain-transport-lib -e features -cargo tree -p ksp-onchain-transport-lib -e normal -cargo tree -p ksp-config-lib -cargo tree -p ksp-config-lib -d -cargo tree -p ksp-config-lib -e features -cargo tree -p ksp-config-lib -e normal - -cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture -cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture ``` -Aucune de ces commandes n'est considérée réussie avant preuve opérateur. - -## Passage à `rel.001` - -Si la candidate est propre, `0.2.3-rel.001` doit rester strictement publicationnelle : - -```text -workspace.package.version -> 0.2.3 -ROADMAP : 0.2.3 -> [X] -CHANGELOG : synthèse stable 0.2.3 -plan 010 / validation 006 : clôture avec preuves opérateur -deltas/0.2.3/rel.001.md -commit v0.2.3-rel.001 -tag stable v0.2.3 après validation -``` - -Aucune nouvelle méthode HTTP, aucun nouveau DTO et aucun nouveau comportement runtime ne doivent être introduits pendant `rel.001`. +Après succès, créer le commit `v0.2.3-rel.001`, puis le tag stable `v0.2.3`. La prochaine session s'ouvre avec `prompts/009-V0_2_4_START_PROMPT.md`.