Files
khadhroony-bot3/ROADMAP.md
2026-07-30 11:44:26 +02:00

363 lines
26 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: ROADMAP.md -->
<!-- version: 20 -->
# ROADMAP — khadhroony-bot3
## Séquence fonctionnelle après clôture de la migration
Cette séquence reprend la logique du roadmap historique tout en ladaptant aux frontières Bot3. Elle prévaut sur les formulations anciennes encore présentes plus bas.
### A. Clôture desktop et guide opérateur
- [ ] Terminer laudit HTML, JSON viewers, textareas, tables responsives et contrôles Copier/Effacer.
- [x] Créer le guide Devnet avant la campagne de tests, puis le corriger pendant chaque validation réelle.
- [x] Valider sur Devnet Solana Core, Memo v4, SPL Token classique, ATA classique, ATA Token-2022 et les huit opérations publiques Token-2022.
- [ ] Valider le registre ElGamal après ajout dune fixture de contexte `PubkeyValidity` et raccordement fonctionnel du panneau desktop ; report explicite de `pre.062`.
- [x] Vérifier simulation, envoi, confirmation, replay post-exécution et matérialisation depuis les fenêtres desktop pour les scénarios exécutables de `pre.062`, hors registre ElGamal reporté.
### B. Socle metadata général
- [ ] Créer un pipeline metadata générique commun aux metadata on-chain SPL et Metaplex.
- [ ] Définir les contrats de lecture détat, préflight, exécution, validation post-exécution et replay.
- [ ] Ajouter une fenêtre desktop spécialisée `demo_execution_metadata` pour sélectionner la famille metadata, le scénario, les comptes et le mode simulation/envoi.
- [ ] Garder les adapters Tauri minces et placer les scénarios Devnet dans `kb-pipeline-demo-scenarios`.
### C. SPL Token Metadata incorporées à Token-2022
Cette étape précède le programme Metaplex Token Metadata, conformément à la progression SPL du roadmap historique.
- [ ] Fermer la couverture de `spl-token-metadata-interface` et des metadata TLV incorporées à Token-2022.
- [ ] Compléter lexécuteur des opérations metadata incorporées supportées.
- [ ] Ajouter préflight, sécurité, simulation-first, validation post-exécution et matérialisation.
- [ ] Ajouter les scénarios Devnet dans la fenêtre `demo_execution_metadata`.
- [ ] Vérifier la coexistence sans confusion avec Metaplex Token Metadata.
### D. Programme Metaplex Token Metadata
- [ ] Fermer définitivement le décodeur et les matérialisateurs à partir de lIDL locale, des interfaces officielles et de fixtures réelles.
- [ ] Implémenter les intents et builders exécutables, avec inventaire explicite des variantes decode-only.
- [ ] Raccorder lexécuteur au pipeline metadata général.
- [ ] Ajouter les scénarios Devnet Metaplex dans `demo_execution_metadata`.
- [ ] Valider replay et matérialisation après chaque transaction.
### E. Transport off-chain général
- [ ] Décider après le socle metadata de la création de `kb-offchain-transport`.
- [ ] Définir cette crate comme une façade générale des lectures réseau non Solana RPC, et non comme une crate limitée aux metadata.
- [ ] Prévoir des modules séparés pour les URI de metadata HTTP(S)/IPFS/Arweave, les prix et taux de référence SOL/USD, SOL/EUR et SOL/CHF, les APIs Jupiter et les futurs fournisseurs off-chain.
- [ ] Définir des contrats communs de timeout, retry borné, cache, validation de taille/type, provenance, fraîcheur et diagnostics.
- [ ] Décider séparément si certaines actions off-chain mutables ou authentifiées sont admises ; ne pas mélanger lecture publique, exécution distante et exécution on-chain.
- [ ] Ne jamais intégrer les lectures off-chain dans les décodeurs déterministes ni dans le replay canonique on-chain.
### F. Reprise protocolaire
- [ ] Stabiliser ensuite le socle Anchor/IDL.
- [ ] Reprendre Pump.fun, puis Raydium, Meteora, Jupiter et les autres AMM/launchpads selon les priorités du roadmap historique.
## 0.1.0 — Consolidation du workspace
- [x] Créer les dix crates initiales du workspace avec le nom canonique `kb-wallet`.
- [x] Regrouper les contrats decoder/executor/materializer dans `kb-lib`.
- [x] Générer larborescence des modules à partir des anciennes crates.
- [x] Conserver une copie de référence complète de `khadhroony-bot2`.
- [x] Restaurer larchitecture modulaire de `kb-core` à partir de `kb_core`, avec `lib.rs` limité aux modules et réexports.
- [x] Porter exactement les contrats publics de `kb_decoder_api`.
- [x] Porter exactement les contrats publics des APIs dexécution et de matérialisation.
- [x] Porter les modèles de `kb_model` vers `kb-lib`.
- [x] Porter les décodeurs Solana core, SPL et Metaplex déjà implémentés dans bot2.
- [x] Porter leurs matérialisateurs déjà implémentés dans bot2.
- [ ] Porter leurs exécuteurs.
- [x] Fusionner `kb_store_core` et `kb_store_pg` dans `kb-store`.
- [ ] Migrer `kb-onchain-transport` depuis lancienne `kb_rpc`.
- [x] Renommer structurellement la crate.
- [x] Porter les contrats JSON-RPC, rôles dendpoints, validation, clients/pools HTTP et méthodes HTTP standard.
- [ ] Porter WebSocket, sessions et pools dabonnements.
- [ ] Porter lacquisition canonique `getTransaction` et `getSignaturesForAddress`.
- [ ] Porter simulation, envoi et confirmation réseau complets.
- [ ] Adapter `kb-pipeline` aux nouveaux chemins publics.
- [ ] Adapter `kb-app-demo` et rétablir les validations fonctionnelles.
- [ ] Créer ultérieurement une crate off-chain générale pour les lectures HTTP/IPFS/Arweave, prix, APIs de protocoles et autres sources non Solana RPC, séparée des décodeurs, matérialisateurs et du replay canonique on-chain.
- [ ] Réorganiser les chemins dexport TSRS de `kb-lib` dans une tranche dédiée, en conservant `../frontend/ts/bindings/` comme préfixe de base.
- [ ] Auditer rétrospectivement la couverture historique des décodeurs et matérialisateurs.
### 0.1.0-pre.002 — Contrats fondamentaux consolidés
- [x] Porter les modèles partagés de `kb_model` dans `kb-lib`.
- [x] Porter les contrats publics de décodage dans `kb-lib::decoder::api`.
- [x] Porter les contrats publics de matérialisation dans `kb-lib::materializer::api`.
- [x] Porter les contrats publics d'exécution dans `kb-lib::executor::api`.
- [x] Maintenir `lib.rs` comme façade sans implémentation métier.
- [x] Valider le workspace avec Cargo sur la machine de développement.
### 0.1.0-pre.003 — Réécriture de `kb-store`
- [x] Remplacer le scaffold par une architecture intégrée contrats/adaptateurs.
- [x] Porter les DTO, entités, traits et validations store-neutral.
- [x] Porter ladaptateur PostgreSQL, ses requêtes, diagnostics et initialisations idempotentes.
- [x] Conserver `MdCoreInstructionReplayInput` dans `kb-lib` et le réexporter depuis `kb-store`.
- [x] Supprimer la dépendance directe de `kb-store` vers `kb-config`.
- [x] Adapter les règles bot2 devenues incompatibles avec larchitecture bot3.
- [x] Valider `cargo check`, les 84 tests et Clippy pour `kb-store`, puis `cargo check --workspace`.
- [ ] Valider `cargo test --workspace` et `cargo clippy --workspace --all-targets`.
- [x] Valider les 84 tests PostgreSQL réels avec `KB_POSTGRES_TEST_URL`.
### 0.1.0-pre.004 — Décodeur Solana Core dans `kb-lib`
- [x] Remplacer le scaffold `kb-lib::decoder::solana::core` par le décodeur maximal validé de bot2.
- [x] Conserver les 18 surfaces natives, leurs 121 déclarations de couverture et leurs tests.
- [x] Adapter les contrats vers les réexports de `kb-lib` sans dépendance vers `kb-store`.
- [x] Préfixer les symboles internes afin déviter les collisions avec les futurs décodeurs fusionnés.
- [x] Déclarer le target hiérarchique `kb-lib.decoder.solana.core`.
- [x] Valider `cargo check -p kb-lib`, les 169 tests de `kb-lib` et les deux audits Rust.
- [ ] Valider Clippy et lensemble du workspace sur la machine de développement.
- [x] Poursuivre avec SPL Memo après validation.
### 0.1.0-pre.005 — Décodeur SPL Memo dans `kb-lib`
- [x] Remplacer le scaffold `kb-lib::decoder::spl::memo` par le décodeur validé de bot2.
- [x] Conserver les générations v1, v3 et v4, leurs règles distinctes et les 9 tests.
- [x] Ajouter les trois Program IDs canoniques dans `kb-program-ids` sans les classer comme natifs.
- [x] Préserver le payload borné, le SHA-256, les comptes ordonnés et les statuts non commités.
- [x] Porter la matrice machine-readable `docs/SPL_MEMO_MATRIX.json`.
- [x] Valider `kb-program-ids`, `kb-lib` et le workspace avec Cargo sur la machine de développement.
- [x] Poursuivre avec SPL Token classique après validation.
### 0.1.0-pre.006 — Décodeur SPL Token classique dans `kb-lib`
- [x] Remplacer le scaffold `kb-lib::decoder::spl::token` par le décodeur maximal validé de bot2.
- [x] Conserver les 28 tags publiés par `spl-token-interface 3.0.0` et les huit tests différentiels.
- [x] Préserver montants bruts, comptes ordonnés, autorités simple/multisig, suffixes et statuts non commités.
- [x] Conserver les bornes de `Batch`, ses chemins enfants et le refus des batches imbriqués.
- [x] Porter le target de tracing vers `kb-lib.decoder.spl.token`.
- [x] Rendre la contrainte `wincode 0.5.5` et `solana-wincode-varint 1.0.0` vérifiable par laudit workspace.
- [x] Valider `kb-program-ids`, `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Poursuivre avec le décodeur SPL Associated Token Account après validation.
### 0.1.0-pre.007 — Décodeur SPL Associated Token Account dans `kb-lib`
- [x] Remplacer le scaffold `kb-lib::decoder::spl::associated_token_account` par le décodeur exact validé de bot2.
- [x] Conserver `Create`, `CreateIdempotent`, `RecoverNested` et la forme historique `Create` à payload vide.
- [x] Préserver lordre des comptes, les flags, doublons, chemins outer/inner et statuts non commités.
- [x] Valider les PDA canoniques `[wallet, token_program, mint]` sans remplacer les adresses observées.
- [x] Distinguer explicitement SPL Token classique et Token2022 sans décoder leurs états ni extensions.
- [x] Conserver les dix tests différentiels et la matrice machine-readable ATA.
- [x] Porter le target de tracing vers `kb-lib.decoder.spl.associated_token_account`.
- [x] Valider `kb-program-ids`, les 196 tests de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Poursuivre avec les décodeurs Token2022 et registre ElGamal après validation.
### 0.1.0-pre.008 — Décodeurs Token2022 et registre ElGamal dans `kb-lib`
- [x] Remplacer les scaffolds `token2022` et `elgamal_registry` par les décodeurs exacts validés de bot2.
- [x] Conserver les 48 enveloppes Token2022, les sous-instructions dextensions identifiables et les interfaces Metadata/Group incorporées.
- [x] Porter le parseur borné des états Mint, Account et Multisig avec leurs entrées TLV ordonnées.
- [x] Maintenir le registre ElGamal comme programme indépendant avec ses deux instructions et son état de compte exact de 64 octets.
- [x] Ajouter le Program ID du registre ElGamal à `kb-program-ids` sans le classer comme surface native.
- [x] Déplacer `ProgramIdEntry` et les fonctions du registre dans `kb-program-ids/src/programs.rs`, avec `lib.rs` limité aux réexports.
- [x] Porter les targets de tracing vers `kb-lib.decoder.spl.token2022` et `kb-lib.decoder.spl.elgamal_registry`.
- [x] Conserver les 55 tests Token2022/ElGamal et leurs matrices machine-readable.
- [x] Valider `kb-program-ids`, les 251 tests de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Poursuivre avec le décodeur Metaplex Token Metadata après validation.
### 0.1.0-pre.009 — Décodeur Metaplex Token Metadata dans `kb-lib`
- [x] Remplacer le scaffold `kb-lib::decoder::metadata::metaplex_token_metadata` par le décodeur maximal validé de bot2.
- [x] Conserver linventaire exhaustif des 58 discriminateurs dinstructions `0..=57`, y compris les variantes historiques.
- [x] Conserver linventaire exhaustif des 15 variantes de comptes `Key 0..=14`, avec rejet explicite de `Uninitialized`.
- [x] Porter les parseurs bornés de Metadata, Edition, Master Edition, Edition Marker, Token Record, records dautorité et de délégation, escrow et Reservation List.
- [x] Préserver les validations downer, de PDA, de bump, de longueur, de suffixe, de comptes ordonnés et de provenance.
- [x] Maintenir les layouts historiques matérialisables avec lifecycle explicite mais définitivement non exécutables.
- [x] Ajouter le Program ID Metaplex Token Metadata à `kb-program-ids` sans le classer comme surface native.
- [x] Porter le target de tracing vers `kb-lib.decoder.metadata.metaplex_token_metadata`.
- [x] Conserver les 69 tests Metaplex et la matrice machine-readable exhaustive.
- [x] Valider `kb-program-ids`, les 320 tests de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Poursuivre avec les matérialisateurs après validation du port des décodeurs prioritaires.
### 0.1.0-pre.010 — Matérialisateurs Solana natifs dans `kb-lib`
- [x] Porter `MtLifecycleMaterializer`, `MtAdminMaterializer`, `MtComplianceAuditMaterializer` et `MtStakingMaterializer` dans les modules consolidés de `kb-lib`.
- [x] Conserver leurs 50 tests de projections natives, de politique de transaction et didempotence.
- [x] Réexporter les types concrets et les fonctions stateful publiques depuis la façade de `kb-lib`.
- [x] Ajouter un test dintégration aval prouvant quun futur crate externe peut implémenter `MtApiEventMaterializer` avec la seule API publique.
- [x] Porter les targets vers `kb-lib.materializer.admin`, `kb-lib.materializer.compliance`, `kb-lib.materializer.lifecycle` et `kb-lib.materializer.staking`.
- [x] Conserver les identités de processor historiques afin de préserver les clés de replay et didempotence existantes.
- [x] Ajouter la règle dordre et dabsence de ligne vide interne dans les blocs de réexports publics.
- [x] Valider les 370 tests unitaires et le test dintégration de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Poursuivre avec les matérialisateurs Memo, SPL Token, ATA, Token2022, registre ElGamal et Metaplex.
### 0.1.0-pre.011 — Matérialisateurs SPL et Metaplex dans `kb-lib`
- [x] Porter `MtTransactionAnnotationMaterializer`, `MtTokenAccountsMaterializer`, `MtFeesMaterializer`, `MtRiskMaterializer` et `MtMetadataMaterializer`.
- [x] Conserver leurs 45 tests historiques, en plus des 370 tests unitaires déjà validés.
- [x] Réexporter à la racine les cinq types concrets, les fonctions de snapshots Token2022/Metaplex et les types canoniques Metaplex nécessaires à leurs signatures publiques.
- [x] Rendre privée toute larborescence `kb-lib::materializer` et interdire mécaniquement tout nouveau `pub mod` dans cette frontière.
- [x] Étendre les tests aval aux trois contrats dextension publics : `DcApiProtocolDecoder`, `MtApiEventMaterializer` et `ExApiInstructionExecutor`.
- [x] Étendre laudit aux lignes vides internes des blocs homogènes `pub use` et `pub(crate) use`.
- [x] Porter les targets de risque, comptes Token et annotations vers `kb-lib.materializer.risk`, `kb-lib.materializer.token` et `kb-lib.materializer.transaction` dans les trois profils.
- [x] Maintenir le fetch HTTP/IPFS/Arweave hors de `kb-lib`, dans une future crate off-chain dédiée.
- [x] Normaliser les symboles fusionnés avec les préfixes `DC`, `MT`, `EX` et `MD`, sans alias de réexport.
- [x] Restaurer les 98 scaffolds de décodeurs avec des constantes `DC_*` uniques et réellement référencées.
- [x] Étendre laudit aux façades privées, aux réexports transitifs `self::`, aux alias interdits et à la complétude des APIs externes.
- [ ] Valider les 415 tests unitaires et les trois tests dintégration de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement.
### 0.1.0-pre.012 — Squelettes des décodeurs réservés
- [x] Remplacer les 98 frontières `LEGACY_CRATE`/`MIGRATION_STATUS` par des types `Dc*Decoder` concrets.
- [x] Implémenter `DcApiProtocolDecoder` avec une compatibilité `Maybe` et un résultat vide sans faux événement.
- [x] Conserver Anchor sans Program ID statique et rattacher les 97 autres squelettes à une surface exacte.
- [x] Ajouter les 97 Program IDs correspondants à `kb-program-ids` et porter le registre total à 130 entrées uniques.
- [x] Exposer tous les types exclusivement par la façade `kb-lib/src/lib.rs`.
- [x] Supprimer `DC_MIGRATION_BOUNDARIES`, `*_LEGACY_CRATE` et `*_MIGRATION_STATUS` de larborescence des décodeurs.
- [x] Ajouter un test central de contrat pour les 98 squelettes et étendre laudit contre le retour des marqueurs temporaires.
- [x] Valider le nouveau test unitaire, les 130 Program IDs, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Vérifier puis restaurer les squelettes des familles de matérialisation encore vides.
- [ ] Passer ensuite à lAPI des exécuteurs, à leurs squelettes puis au port des exécuteurs déjà implémentés dans bot2.
### 0.1.0-pre.013 — Squelettes des matérialisateurs réservés
- [x] Remplacer les 14 frontières `LEGACY_CRATE`/`MIGRATION_STATUS` par des types `Mt*Materializer` concrets.
- [x] Conserver le contrat historique `MtMaterializer` et implémenter le contrat bot3 `MtApiEventMaterializer`.
- [x] Maintenir les squelettes inactifs : aucune famille acceptée et résultat API `Ignored`.
- [x] Préserver la famille de sortie historique pour les appels directs via lancien contrat.
- [x] Exposer les 14 types uniquement depuis la façade `kb-lib/src/lib.rs`.
- [x] Étendre le test aval et laudit contre le retour des marqueurs temporaires.
- [x] Aligner `RUST023` sur lordre naturel produit par `rustfmt`.
- [x] Valider les deux nouveaux tests unitaires, le test aval, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Vérifier la parité de lAPI des exécuteurs avant de restaurer leurs squelettes.
### 0.1.0-pre.014 — API et squelettes des exécuteurs
- [x] Vérifier la parité exacte des contrats `ExApi*` avec `kb_execution_api` de bot2.
- [x] Étendre le test aval au contrat `ExApiTypedInstructionExecutor` et au plan typé public.
- [x] Remplacer les 104 frontières `LEGACY_CRATE`/`MIGRATION_STATUS` par des types `Ex*Executor` concrets.
- [x] Rattacher chaque squelette à ses Program IDs enregistrés sans dépendre des décodeurs.
- [x] Maintenir les squelettes inactifs : support `Maybe` et plan explicite à zéro instruction.
- [x] Exposer les 104 types uniquement depuis la façade `kb-lib/src/lib.rs`.
- [x] Ajouter un test central couvrant les 104 squelettes et étendre laudit contre le retour des marqueurs temporaires.
- [x] Valider le nouveau test unitaire, le test aval, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Porter ensuite lexécuteur Solana Core déjà validé dans bot2.
### 0.1.0-pre.015 — Exécuteur Solana Core
- [x] Porter les 109 opérations typées de `kb_executor_solana_core`.
- [x] Couvrir System, Compute Budget, Address Lookup Table, précompiles, Config, Feature, Slashing, ZK ElGamal, Stake, Vote et Loaders v3/v4.
- [x] Conserver les surfaces historiques non exécutables en refus explicite.
- [x] Préfixer les types publics `ExSolanaCore*` et les constantes `EX_SOLANA_CORE_*`.
- [x] Préserver le pont JSON historique et le contrat de plan préparé typé.
- [x] Étendre le test aval à une construction Compute Budget réelle.
- [x] Réduire les frontières réservées à 103 et adapter laudit.
- [x] Imposer les blocs `pub use` puis `pub(crate) use`, séparés par une ligne vide.
- [x] Valider les 507 tests unitaires, les trois tests dintégration, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Porter ensuite les exécuteurs SPL déjà validés dans bot2.
### 0.1.0-pre.016 — Safety dexécution et exécuteur SPL Memo
- [x] Porter `kb_execution_safety` dans `kb-lib` sous les contrats `ExSafety*`.
- [x] Conserver les décisions `Deny`, `RequireConfirmation` et `Allow`, avec violations stables.
- [x] Conserver les contrôles de simulation, blockhash/nonce, cluster, signers autorisés et plafonds de coût.
- [x] Remplacer le squelette Memo par `ExSplMemoExecutor` et ses intents typés.
- [x] Maintenir Memo v1/v3 en decode-only et Memo v4 exécutable.
- [x] Construire linstruction avec `spl-memo-interface` en conservant ordre et doublons des signers.
- [x] Étendre le test aval à un plan Memo réel et à son évaluation safety.
- [x] Réduire les frontières réservées à 102 et adapter laudit.
- [ ] Valider les tests portés, Clippy et le workspace avec Cargo sur la machine de développement.
- [ ] Porter ensuite SPL Token classique et SPL Associated Token Account.
### 0.1.0-pre.017 — Exécuteur SPL Associated Token Account
- [x] Remplacer le squelette ATA par lexécuteur typé validé de bot2.
- [x] Conserver `Create`, `CreateIdempotent`, `RecoverNested`, les builders officiels et les validations post-exécution.
- [x] Porter le target vers `kb-lib.executor.spl.associated_token_account`.
- [x] Réduire les frontières réservées à 101.
- [x] Valider les 548 tests unitaires, les tests dintégration, Clippy et le workspace sur la machine de développement.
### 0.1.0-pre.018 — Exécuteur SPL Token-2022
- [x] Remplacer le squelette Token-2022 par les cinq modules métier complets de bot2.
- [x] Conserver les 33 tests, les extensions, Confidential Transfer et Confidential Mint/Burn.
- [x] Porter le target vers `kb-lib.executor.spl.token2022` et la nomenclature interne vers `TOKEN2022`.
- [x] Réduire les frontières réservées à 100.
- [x] Valider les 592 tests unitaires, les tests dintégration, Clippy et le workspace sur la machine de développement.
### 0.1.0-pre.019 — Exécuteur SPL ElGamal Registry
- [x] Remplacer le squelette ElGamal Registry par les opérations `CreateRegistry` et `UpdateRegistry` validées de bot2.
- [x] Conserver les preuves inline/contexte, la simulation obligatoire, les plafonds de frais et les validations post-exécution.
- [x] Déplacer `spl-elgamal-registry-interface` dans les dépendances normales de `kb-lib`.
- [x] Porter le target vers `kb-lib.executor.spl.elgamal_registry`.
- [x] Réduire les frontières réservées à 99.
- [x] Valider les 598 tests unitaires, les tests dintégration, Clippy et le workspace sur la machine de développement.
### 0.1.0-pre.020 — Configuration et logging
- [x] Remplacer le scaffold `kb-config` par les modèles, parseurs, sérialiseurs, validations JSON Schema et 20 tests de bot2.
- [x] Remplacer le scaffold `kb-logging` par la configuration des routes, le runtime tracing multi-writers et les 17 tests de bot2.
- [x] Préserver `kb_logging::tracing_target()` pour la compatibilité temporaire de `kb-app-demo`.
- [x] Corriger les targets et chemins de logs de Solana Core et SPL Memo dans les trois profils.
- [x] Vérifier ATA, Token-2022 et ElGamal Registry, déjà alignés sur leurs targets bot3.
- [x] Laisser SPL Token classique sous son identité réservée tant que son exécuteur nest pas migré.
- [x] Valider `kb-config`, `kb-logging`, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Décider le nom `kb-onchain-transport`; appliquer le renommage structurel dans `0.1.0-pre.023`.
### 0.1.0-pre.021 — Exécuteur SPL Token classique
- [x] Migrer lexécuteur SPL Token classique, ses builders officiels, ses intents et ses tests.
- [x] Adapter le portage à lAPI consolidée de `kb-lib` et supprimer les références aux anciennes crates `kb_model` et `kb_execution_safety`.
- [x] Déplacer `spl-token-interface` dans les dépendances normales de `kb-lib`.
- [x] Valider 613 tests `kb-lib`, les tests `kb-config` et `kb-logging`, Clippy et le workspace.
### 0.1.0-pre.022 — Couche transactionnelle Solana
- [x] Migrer `kb_execution_solana` dans `kb-lib::executor::solana::transaction`.
- [x] Conserver les transactions legacy, durable nonce, preuves de simulation, résolution des signataires et limites de paquet.
- [x] Adapter les tests à `solana_keypair::Keypair` sans couplage à `kb-wallet`.
- [x] Valider 625 tests `kb-lib`, Clippy et le workspace.
### 0.1.0-pre.023 — Renommage du transport on-chain
- [x] Renommer la crate scaffold `kb-rpc` en `kb-onchain-transport`.
- [x] Renommer lidentifiant Rust en `kb_onchain_transport`.
- [x] Mettre à jour le workspace, les dépendances, le lockfile, les targets et chemins de logs.
- [x] Mettre à jour les documents actifs et conserver les documents historiques bot2 inchangés.
- [ ] Valider le renommage avec Cargo sur la machine de développement.
- [ ] Migrer ensuite les contrats communs et le transport HTTP standard de lancienne `kb_rpc`.
### 0.1.0-pre.028 — configuration de tracing wallet
- [x] Routes canoniques `kb-wallet`.
- [x] Configuration dexemple sans clé fournisseur en clair.
- [ ] Migration fonctionnelle de `kb-pipeline` à poursuivre à partir de `pre.029`.
### 0.1.0-pre.029 — Pipeline, fondations
- [x] Planification et scopes de replay.
- [x] Extraction canonique vers les tables core.
- [x] Backfill et replay de décodage.
- [ ] Orchestrations Solana stateful et exécution.
- [x] Migrer `decode_replay` dans `kb-pipeline`.
### 0.1.0-pre.031 — Backfill HTTP
- [x] Porter les campagnes par signatures explicites et historique dadresse.
- [x] Conserver les directions `before` et `after`, les ancres et la pagination RPC bornée.
- [x] Conserver la reprise au dernier candidat contigu, les retries, le pacing et lannulation coopérative.
- [x] Adapter la persistance à `kb-store` et lacquisition à `kb-onchain-transport`.
- [x] Conserver les 14 tests bot2.
- [ ] Valider avec Cargo sur la machine de développement.
- [ ] Porter ensuite les orchestrations Solana stateful et dexécution.
### 0.1.0-pre.033 — Pipeline stateful Token-2022
- [x] Lecture et validation stateful Token-2022.
- [x] Routage des projections matérialisées Token-2022.
- [x] Lecture et validation du registre ElGamal.
- [x] Préflight multi-comptes Token-2022 borné.
- [ ] Orchestration des preuves et de l'exécution Token-2022.
- [x] `0.1.0-pre.037` — contrôles stateful Solana natifs migrés dans `kb-pipeline`.