Files
khadhroony-bot3/ROADMAP.md
2026-07-24 14:23:58 +02:00

11 KiB
Raw Blame History

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 larborescence des modules à partir des anciennes crates.
  • Conserver une copie de référence complète de khadhroony-bot2.
  • Restaurer larchitecture modulaire de kb-core à partir de kb_core, avec lib.rs limité aux modules et réexports.
  • Porter exactement les contrats publics de kb_decoder_api.
  • Porter exactement les contrats publics des APIs dexécution et de matérialisation.
  • Porter les modèles de kb_model vers kb-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_core et kb_store_pg dans kb-store.
  • 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 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 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

  • Porter les modèles partagés de kb_model dans kb-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.rs comme 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 ladaptateur PostgreSQL, ses requêtes, diagnostics et initialisations idempotentes.
  • Conserver MdCoreInstructionReplayInput dans kb-lib et le réexporter depuis kb-store.
  • Supprimer la dépendance directe de kb-store vers kb-config.
  • Adapter les règles bot2 devenues incompatibles avec larchitecture bot3.
  • 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.
  • 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::core par 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-lib sans dépendance vers kb-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 de kb-lib et les deux audits Rust.
  • Valider Clippy et lensemble 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::memo par 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-ids sans 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-lib et 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::token par le décodeur maximal validé de bot2.
  • Conserver les 28 tags publiés par spl-token-interface 3.0.0 et 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.5 et solana-wincode-varint 1.0.0 vérifiable par laudit 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_account par le décodeur exact validé de bot2.
  • Conserver Create, CreateIdempotent, RecoverNested et la forme historique Create à payload vide.
  • Préserver lordre 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 Token2022 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 de kb-lib, Clippy et le workspace avec Cargo sur la machine de développement.
  • 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

  • Remplacer les scaffolds token2022 et elgamal_registry par les décodeurs exacts validés de bot2.
  • Conserver les 48 enveloppes Token2022, les sous-instructions dextensions 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-ids sans le classer comme surface native.
  • Déplacer ProgramIdEntry et les fonctions du registre dans kb-program-ids/src/programs.rs, avec lib.rs limité aux réexports.
  • Porter les targets de tracing vers kb-lib.decoder.spl.token_2022 et kb-lib.decoder.spl.elgamal_registry.
  • Conserver les 55 tests Token2022/ElGamal et leurs matrices machine-readable.
  • Valider kb-program-ids, les 251 tests de kb-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_metadata par le décodeur maximal validé de bot2.
  • Conserver linventaire exhaustif des 58 discriminateurs dinstructions 0..=57, y compris les variantes historiques.
  • Conserver linventaire exhaustif des 15 variantes de comptes Key 0..=14, avec rejet explicite de Uninitialized.
  • 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.
  • Préserver les validations downer, 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-ids sans 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 de kb-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, MtComplianceAuditMaterializer et MtStakingMaterializer dans les modules consolidés de kb-lib.
  • Conserver leurs 50 tests de projections natives, de politique de transaction et didempotence.
  • Réexporter les types concrets et les fonctions stateful publiques depuis la façade de kb-lib.
  • Ajouter un test dintégration aval prouvant quun futur crate externe peut implémenter MtApiEventMaterializer avec la seule API publique.
  • Porter les targets vers kb-lib.materializer.admin, kb-lib.materializer.compliance, kb-lib.materializer.lifecycle et kb-lib.materializer.staking.
  • Conserver les identités de processor historiques afin de préserver les clés de replay et didempotence existantes.
  • Ajouter la règle dordre et dabsence de ligne vide interne dans les blocs de réexports publics.
  • 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.
  • 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

  • Porter MtTransactionAnnotationMaterializer, MtTokenAccountsMaterializer, MtFeesMaterializer, MtRiskMaterializer et MtMetadataMaterializer.
  • 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 Token2022/Metaplex et les types canoniques Metaplex nécessaires à leurs signatures publiques.
  • Rendre privée toute larborescence kb-lib::materializer et interdire mécaniquement tout nouveau pub mod dans cette frontière.
  • Étendre les tests aval aux trois contrats dextension publics : DcApiProtocolDecoder, MtApiEventMaterializer et ExApiInstructionExecutor.
  • Étendre laudit aux lignes vides internes des blocs homogènes pub use et pub(crate) use.
  • 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.
  • Maintenir le fetch HTTP/IPFS/Arweave hors de kb-lib, dans une future crate off-chain dédiée.
  • 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.
  • Poursuivre avec les exécuteurs déjà implémentés dans bot2.