22 KiB
22 KiB
ROADMAP — khadhroony-bot3
0.1.0 — Consolidation du workspace
- Créer les dix crates initiales du workspace avec le nom canonique
kb-wallet. - Regrouper les contrats decoder/executor/materializer dans
kb-lib. - Générer l’arborescence des modules à partir des anciennes crates.
- Conserver une copie de référence complète de
khadhroony-bot2. - Restaurer l’architecture modulaire de
kb-coreà partir dekb_core, aveclib.rslimité aux modules et réexports. - Porter exactement les contrats publics de
kb_decoder_api. - Porter exactement les contrats publics des APIs d’exécution et de matérialisation.
- Porter les modèles de
kb_modelverskb-lib. - Porter les décodeurs Solana core, SPL et Metaplex déjà implémentés dans bot2.
- Porter leurs matérialisateurs déjà implémentés dans bot2.
- Porter leurs exécuteurs.
- Fusionner
kb_store_coreetkb_store_pgdanskb-store. - Migrer
kb-onchain-transportdepuis l’anciennekb_rpc.- Renommer structurellement la crate.
- Porter les contrats JSON-RPC, rôles d’endpoints, validation, clients/pools HTTP et méthodes HTTP standard.
- Porter WebSocket, sessions et pools d’abonnements.
- Porter l’acquisition canonique
getTransactionetgetSignaturesForAddress. - Porter simulation, envoi et confirmation réseau complets.
- Adapter
kb-pipelineaux nouveaux chemins publics. - Adapter
kb-app-demoet rétablir les validations fonctionnelles. - Créer ultérieurement une crate off-chain dédiée au fetch borné HTTP/IPFS/Arweave des URI de metadata, séparée des décodeurs, matérialisateurs et du replay canonique on-chain.
- Réorganiser les chemins d’export TS‑RS de
kb-libdans 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
- Porter les modèles partagés de
kb_modeldanskb-lib. - Porter les contrats publics de décodage dans
kb-lib::decoder::api. - Porter les contrats publics de matérialisation dans
kb-lib::materializer::api. - Porter les contrats publics d'exécution dans
kb-lib::executor::api. - Maintenir
lib.rscomme façade sans implémentation métier. - Valider le workspace avec Cargo sur la machine de développement.
0.1.0-pre.003 — Réécriture de kb-store
- Remplacer le scaffold par une architecture intégrée contrats/adaptateurs.
- Porter les DTO, entités, traits et validations store-neutral.
- Porter l’adaptateur PostgreSQL, ses requêtes, diagnostics et initialisations idempotentes.
- Conserver
MdCoreInstructionReplayInputdanskb-libet le réexporter depuiskb-store. - Supprimer la dépendance directe de
kb-storeverskb-config. - Adapter les règles bot2 devenues incompatibles avec l’architecture bot3.
- Valider
cargo check, les 84 tests et Clippy pourkb-store, puiscargo check --workspace. - Valider
cargo test --workspaceetcargo clippy --workspace --all-targets. - Valider les 84 tests PostgreSQL réels avec
KB_POSTGRES_TEST_URL.
0.1.0-pre.004 — Décodeur Solana Core dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::solana::corepar le décodeur maximal validé de bot2. - Conserver les 18 surfaces natives, leurs 121 déclarations de couverture et leurs tests.
- Adapter les contrats vers les réexports de
kb-libsans dépendance verskb-store. - Préfixer les symboles internes afin d’éviter les collisions avec les futurs décodeurs fusionnés.
- Déclarer le target hiérarchique
kb-lib.decoder.solana.core. - Valider
cargo check -p kb-lib, les 169 tests dekb-libet les deux audits Rust. - Valider Clippy et l’ensemble du workspace sur la machine de développement.
- Poursuivre avec SPL Memo après validation.
0.1.0-pre.005 — Décodeur SPL Memo dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::spl::memopar le décodeur validé de bot2. - Conserver les générations v1, v3 et v4, leurs règles distinctes et les 9 tests.
- Ajouter les trois Program IDs canoniques dans
kb-program-idssans les classer comme natifs. - Préserver le payload borné, le SHA-256, les comptes ordonnés et les statuts non commités.
- Porter la matrice machine-readable
docs/SPL_MEMO_MATRIX.json. - Valider
kb-program-ids,kb-libet le workspace avec Cargo sur la machine de développement. - Poursuivre avec SPL Token classique après validation.
0.1.0-pre.006 — Décodeur SPL Token classique dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::spl::tokenpar le décodeur maximal validé de bot2. - Conserver les 28 tags publiés par
spl-token-interface 3.0.0et les huit tests différentiels. - Préserver montants bruts, comptes ordonnés, autorités simple/multisig, suffixes et statuts non commités.
- Conserver les bornes de
Batch, ses chemins enfants et le refus des batches imbriqués. - Porter le target de tracing vers
kb-lib.decoder.spl.token. - Rendre la contrainte
wincode 0.5.5etsolana-wincode-varint 1.0.0vérifiable par l’audit workspace. - Valider
kb-program-ids,kb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - 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
- Remplacer le scaffold
kb-lib::decoder::spl::associated_token_accountpar le décodeur exact validé de bot2. - Conserver
Create,CreateIdempotent,RecoverNestedet la forme historiqueCreateà payload vide. - Préserver l’ordre des comptes, les flags, doublons, chemins outer/inner et statuts non commités.
- Valider les PDA canoniques
[wallet, token_program, mint]sans remplacer les adresses observées. - Distinguer explicitement SPL Token classique et Token‑2022 sans décoder leurs états ni extensions.
- Conserver les dix tests différentiels et la matrice machine-readable ATA.
- Porter le target de tracing vers
kb-lib.decoder.spl.associated_token_account. - Valider
kb-program-ids, les 196 tests dekb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec les décodeurs Token‑2022 et registre ElGamal après validation.
0.1.0-pre.008 — Décodeurs Token‑2022 et registre ElGamal dans kb-lib
- Remplacer les scaffolds
token2022etelgamal_registrypar les décodeurs exacts validés de bot2. - Conserver les 48 enveloppes Token‑2022, les sous-instructions d’extensions identifiables et les interfaces Metadata/Group incorporées.
- Porter le parseur borné des états Mint, Account et Multisig avec leurs entrées TLV ordonnées.
- Maintenir le registre ElGamal comme programme indépendant avec ses deux instructions et son état de compte exact de 64 octets.
- Ajouter le Program ID du registre ElGamal à
kb-program-idssans le classer comme surface native. - Déplacer
ProgramIdEntryet les fonctions du registre danskb-program-ids/src/programs.rs, aveclib.rslimité aux réexports. - Porter les targets de tracing vers
kb-lib.decoder.spl.token2022etkb-lib.decoder.spl.elgamal_registry. - Conserver les 55 tests Token‑2022/ElGamal et leurs matrices machine-readable.
- Valider
kb-program-ids, les 251 tests dekb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec le décodeur Metaplex Token Metadata après validation.
0.1.0-pre.009 — Décodeur Metaplex Token Metadata dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::metadata::metaplex_token_metadatapar le décodeur maximal validé de bot2. - Conserver l’inventaire exhaustif des 58 discriminateurs d’instructions
0..=57, y compris les variantes historiques. - Conserver l’inventaire exhaustif des 15 variantes de comptes
Key 0..=14, avec rejet explicite deUninitialized. - Porter les parseurs bornés de Metadata, Edition, Master Edition, Edition Marker, Token Record, records d’autorité et de délégation, escrow et Reservation List.
- Préserver les validations d’owner, de PDA, de bump, de longueur, de suffixe, de comptes ordonnés et de provenance.
- Maintenir les layouts historiques matérialisables avec lifecycle explicite mais définitivement non exécutables.
- Ajouter le Program ID Metaplex Token Metadata à
kb-program-idssans le classer comme surface native. - Porter le target de tracing vers
kb-lib.decoder.metadata.metaplex_token_metadata. - Conserver les 69 tests Metaplex et la matrice machine-readable exhaustive.
- Valider
kb-program-ids, les 320 tests dekb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - 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
- Porter
MtLifecycleMaterializer,MtAdminMaterializer,MtComplianceAuditMaterializeretMtStakingMaterializerdans les modules consolidés dekb-lib. - Conserver leurs 50 tests de projections natives, de politique de transaction et d’idempotence.
- Réexporter les types concrets et les fonctions stateful publiques depuis la façade de
kb-lib. - Ajouter un test d’intégration aval prouvant qu’un futur crate externe peut implémenter
MtApiEventMaterializeravec la seule API publique. - Porter les targets vers
kb-lib.materializer.admin,kb-lib.materializer.compliance,kb-lib.materializer.lifecycleetkb-lib.materializer.staking. - Conserver les identités de processor historiques afin de préserver les clés de replay et d’idempotence existantes.
- Ajouter la règle d’ordre et d’absence de ligne vide interne dans les blocs de réexports publics.
- Valider les 370 tests unitaires et le test d’intégration de
kb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec les matérialisateurs Memo, SPL Token, ATA, Token‑2022, registre ElGamal et Metaplex.
0.1.0-pre.011 — Matérialisateurs SPL et Metaplex dans kb-lib
- Porter
MtTransactionAnnotationMaterializer,MtTokenAccountsMaterializer,MtFeesMaterializer,MtRiskMaterializeretMtMetadataMaterializer. - Conserver leurs 45 tests historiques, en plus des 370 tests unitaires déjà validés.
- Réexporter à la racine les cinq types concrets, les fonctions de snapshots Token‑2022/Metaplex et les types canoniques Metaplex nécessaires à leurs signatures publiques.
- Rendre privée toute l’arborescence
kb-lib::materializeret interdire mécaniquement tout nouveaupub moddans cette frontière. - Étendre les tests aval aux trois contrats d’extension publics :
DcApiProtocolDecoder,MtApiEventMaterializeretExApiInstructionExecutor. - Étendre l’audit aux lignes vides internes des blocs homogènes
pub useetpub(crate) use. - Porter les targets de risque, comptes Token et annotations vers
kb-lib.materializer.risk,kb-lib.materializer.tokenetkb-lib.materializer.transactiondans les trois profils. - Maintenir le fetch HTTP/IPFS/Arweave hors de
kb-lib, dans une future crate off-chain dédiée. - Normaliser les symboles fusionnés avec les préfixes
DC,MT,EXetMD, sans alias de réexport. - Restaurer les 98 scaffolds de décodeurs avec des constantes
DC_*uniques et réellement référencées. - Étendre l’audit 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 d’inté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
- Remplacer les 98 frontières
LEGACY_CRATE/MIGRATION_STATUSpar des typesDc*Decoderconcrets. - Implémenter
DcApiProtocolDecoderavec une compatibilitéMaybeet un résultat vide sans faux événement. - Conserver Anchor sans Program ID statique et rattacher les 97 autres squelettes à une surface exacte.
- Ajouter les 97 Program IDs correspondants à
kb-program-idset porter le registre total à 130 entrées uniques. - Exposer tous les types exclusivement par la façade
kb-lib/src/lib.rs. - Supprimer
DC_MIGRATION_BOUNDARIES,*_LEGACY_CRATEet*_MIGRATION_STATUSde l’arborescence des décodeurs. - Ajouter un test central de contrat pour les 98 squelettes et étendre l’audit contre le retour des marqueurs temporaires.
- Valider le nouveau test unitaire, les 130 Program IDs, Clippy et le workspace avec Cargo sur la machine de développement.
- Vérifier puis restaurer les squelettes des familles de matérialisation encore vides.
- Passer ensuite à l’API 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
- Remplacer les 14 frontières
LEGACY_CRATE/MIGRATION_STATUSpar des typesMt*Materializerconcrets. - Conserver le contrat historique
MtMaterializeret implémenter le contrat bot3MtApiEventMaterializer. - Maintenir les squelettes inactifs : aucune famille acceptée et résultat API
Ignored. - Préserver la famille de sortie historique pour les appels directs via l’ancien contrat.
- Exposer les 14 types uniquement depuis la façade
kb-lib/src/lib.rs. - Étendre le test aval et l’audit contre le retour des marqueurs temporaires.
- Aligner
RUST023sur l’ordre naturel produit parrustfmt. - Valider les deux nouveaux tests unitaires, le test aval, Clippy et le workspace avec Cargo sur la machine de développement.
- Vérifier la parité de l’API des exécuteurs avant de restaurer leurs squelettes.
0.1.0-pre.014 — API et squelettes des exécuteurs
- Vérifier la parité exacte des contrats
ExApi*aveckb_execution_apide bot2. - Étendre le test aval au contrat
ExApiTypedInstructionExecutoret au plan typé public. - Remplacer les 104 frontières
LEGACY_CRATE/MIGRATION_STATUSpar des typesEx*Executorconcrets. - Rattacher chaque squelette à ses Program IDs enregistrés sans dépendre des décodeurs.
- Maintenir les squelettes inactifs : support
Maybeet plan explicite à zéro instruction. - Exposer les 104 types uniquement depuis la façade
kb-lib/src/lib.rs. - Ajouter un test central couvrant les 104 squelettes et étendre l’audit contre le retour des marqueurs temporaires.
- Valider le nouveau test unitaire, le test aval, Clippy et le workspace avec Cargo sur la machine de développement.
- Porter ensuite l’exécuteur Solana Core déjà validé dans bot2.
0.1.0-pre.015 — Exécuteur Solana Core
- Porter les 109 opérations typées de
kb_executor_solana_core. - Couvrir System, Compute Budget, Address Lookup Table, précompiles, Config, Feature, Slashing, ZK ElGamal, Stake, Vote et Loaders v3/v4.
- Conserver les surfaces historiques non exécutables en refus explicite.
- Préfixer les types publics
ExSolanaCore*et les constantesEX_SOLANA_CORE_*. - Préserver le pont JSON historique et le contrat de plan préparé typé.
- Étendre le test aval à une construction Compute Budget réelle.
- Réduire les frontières réservées à 103 et adapter l’audit.
- Imposer les blocs
pub usepuispub(crate) use, séparés par une ligne vide. - Valider les 507 tests unitaires, les trois tests d’intégration, Clippy et le workspace avec Cargo sur la machine de développement.
- Porter ensuite les exécuteurs SPL déjà validés dans bot2.
0.1.0-pre.016 — Safety d’exécution et exécuteur SPL Memo
- Porter
kb_execution_safetydanskb-libsous les contratsExSafety*. - Conserver les décisions
Deny,RequireConfirmationetAllow, avec violations stables. - Conserver les contrôles de simulation, blockhash/nonce, cluster, signers autorisés et plafonds de coût.
- Remplacer le squelette Memo par
ExSplMemoExecutoret ses intents typés. - Maintenir Memo v1/v3 en decode-only et Memo v4 exécutable.
- Construire l’instruction avec
spl-memo-interfaceen conservant ordre et doublons des signers. - Étendre le test aval à un plan Memo réel et à son évaluation safety.
- Réduire les frontières réservées à 102 et adapter l’audit.
- 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
- Remplacer le squelette ATA par l’exécuteur typé validé de bot2.
- Conserver
Create,CreateIdempotent,RecoverNested, les builders officiels et les validations post-exécution. - Porter le target vers
kb-lib.executor.spl.associated_token_account. - Réduire les frontières réservées à 101.
- Valider les 548 tests unitaires, les tests d’intégration, Clippy et le workspace sur la machine de développement.
0.1.0-pre.018 — Exécuteur SPL Token-2022
- Remplacer le squelette Token-2022 par les cinq modules métier complets de bot2.
- Conserver les 33 tests, les extensions, Confidential Transfer et Confidential Mint/Burn.
- Porter le target vers
kb-lib.executor.spl.token2022et la nomenclature interne versTOKEN2022. - Réduire les frontières réservées à 100.
- Valider les 592 tests unitaires, les tests d’intégration, Clippy et le workspace sur la machine de développement.
0.1.0-pre.019 — Exécuteur SPL ElGamal Registry
- Remplacer le squelette ElGamal Registry par les opérations
CreateRegistryetUpdateRegistryvalidées de bot2. - Conserver les preuves inline/contexte, la simulation obligatoire, les plafonds de frais et les validations post-exécution.
- Déplacer
spl-elgamal-registry-interfacedans les dépendances normales dekb-lib. - Porter le target vers
kb-lib.executor.spl.elgamal_registry. - Réduire les frontières réservées à 99.
- Valider les 598 tests unitaires, les tests d’intégration, Clippy et le workspace sur la machine de développement.
0.1.0-pre.020 — Configuration et logging
- Remplacer le scaffold
kb-configpar les modèles, parseurs, sérialiseurs, validations JSON Schema et 20 tests de bot2. - Remplacer le scaffold
kb-loggingpar la configuration des routes, le runtime tracing multi-writers et les 17 tests de bot2. - Préserver
kb_logging::tracing_target()pour la compatibilité temporaire dekb-app-demo. - Corriger les targets et chemins de logs de Solana Core et SPL Memo dans les trois profils.
- Vérifier ATA, Token-2022 et ElGamal Registry, déjà alignés sur leurs targets bot3.
- Laisser SPL Token classique sous son identité réservée tant que son exécuteur n’est pas migré.
- Valider
kb-config,kb-logging, Clippy et le workspace avec Cargo sur la machine de développement. - Décider le nom
kb-onchain-transport; appliquer le renommage structurel dans0.1.0-pre.023.
0.1.0-pre.021 — Exécuteur SPL Token classique
- Migrer l’exécuteur SPL Token classique, ses builders officiels, ses intents et ses tests.
- Adapter le portage à l’API consolidée de
kb-libet supprimer les références aux anciennes crateskb_modeletkb_execution_safety. - Déplacer
spl-token-interfacedans les dépendances normales dekb-lib. - Valider 613 tests
kb-lib, les testskb-configetkb-logging, Clippy et le workspace.
0.1.0-pre.022 — Couche transactionnelle Solana
- Migrer
kb_execution_solanadanskb-lib::executor::solana::transaction. - Conserver les transactions legacy, durable nonce, preuves de simulation, résolution des signataires et limites de paquet.
- Adapter les tests à
solana_keypair::Keypairsans couplage àkb-wallet. - Valider 625 tests
kb-lib, Clippy et le workspace.
0.1.0-pre.023 — Renommage du transport on-chain
- Renommer la crate scaffold
kb-rpcenkb-onchain-transport. - Renommer l’identifiant Rust en
kb_onchain_transport. - Mettre à jour le workspace, les dépendances, le lockfile, les targets et chemins de logs.
- 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 l’ancienne
kb_rpc.
0.1.0-pre.028 — configuration de tracing wallet
- Routes canoniques
kb-wallet. - Configuration d’exemple sans clé fournisseur en clair.
- Migration fonctionnelle de
kb-pipelineà poursuivre à partir depre.029.
0.1.0-pre.029 — Pipeline, fondations
-
Planification et scopes de replay.
-
Extraction canonique vers les tables core.
-
Backfill et replay de décodage.
-
Orchestrations Solana stateful et exécution.
-
Migrer
decode_replaydanskb-pipeline.
0.1.0-pre.031 — Backfill HTTP
- Porter les campagnes par signatures explicites et historique d’adresse.
- Conserver les directions
beforeetafter, les ancres et la pagination RPC bornée. - Conserver la reprise au dernier candidat contigu, les retries, le pacing et l’annulation coopérative.
- Adapter la persistance à
kb-storeet l’acquisition àkb-onchain-transport. - Conserver les 14 tests bot2.
- Valider avec Cargo sur la machine de développement.
- Porter ensuite les orchestrations Solana stateful et d’exécution.
0.1.0-pre.033 — Pipeline stateful Token-2022
-
Lecture et validation stateful Token-2022.
-
Routage des projections matérialisées Token-2022.
-
Lecture et validation du registre ElGamal.
-
Préflight multi-comptes Token-2022 borné.
-
Orchestration des preuves et de l'exécution Token-2022.
-
0.1.0-pre.037— contrôles stateful Solana natifs migrés danskb-pipeline.