# CHANGELOG — kb-pipeline ## `0.4.8-pre.015` - `pre.015-delta-fix-001` retire du TODO les validations Solana Program Metadata déjà closes par le replay mainnet `pre.008`, la campagne Devnet `pre.010` et le desktop `pre.014`, ainsi que la dette Metaplex Print/Burn/collection/pNFT fermée en `pre.013` ; - le delta initial ajoute un test d’API externe dédié à Token-2022 Token Metadata afin de vérifier les exports crate-root des lectures stateful, de la validation de plage `Emit`, de l’inspection du `returnData` et de la postcondition d’autorité ; - ne modifie aucun contrat d’exécution ou de stockage. ## `0.4.8-pre.013` - `pre.013-delta-fix-031` expose `MetaplexTokenMetadataAccountKind::TokenOwnedEscrow` dans les lectures stateful et réutilise le décodeur strict déjà présent dans `kb-lib`, y compris validation du propriétaire, du discriminant, du PDA d’autorité et du bump ; - ajoute une régression de projection canonique pour un escrow `TokenOwner` et conserve `base_token`, `authority_kind`, `creator` et `stored_bump` comme postconditions queryables. - `pre.013-delta-fix-030` conserve les simulations Metaplex exactes échouées comme résultats observables lorsque `submit=false`, afin que les probes de disponibilité puissent classifier un refus runtime sans le transformer en erreur d'orchestration ; - maintient une barrière stricte pour toute soumission : `submit=true` exige toujours `simulation_succeeded=true`, et une simulation négative ne peut jamais produire `send_authorized=true` ; - ajoute une régression dédiée au contrat « failed simulation reportable for probe only ». - `pre.013-delta-fix-021` ajoute une régression stateful construisant un compte `Edition` compact de 42 octets et exige sa matérialisation autoritative, afin de couvrir directement l’allocation produite par un `Print` courant ; - enrichit `metaplex_stateful_decode_failed` avec l’adresse et le `kind` de la requête, sans affaiblir le refus des comptes invalides. - `pre.013-delta-fix-020` réembarque explicitement le variant public `MetaplexTokenMetadataAccountKind::EditionMarker { mint, edition }` afin qu’un overlay incomplet de `fix-019` ne puisse plus laisser le scénario `Print -> Burn` compiler contre un contrat stateful ancien ; - ajoute un test d’API externe qui construit et sérialise une requête `EditionMarker` uniquement via les exports crate-root ; - valide également les pubkeys de dérivation `mint` et `token` directement dans `MetaplexTokenMetadataStatefulReadRequest::validate`. - `pre.013-delta-fix-019` ajoute `MetaplexTokenMetadataAccountKind::EditionMarker { mint, edition }` aux lectures stateful afin de décoder et matérialiser explicitement `EditionMarker`/`EditionMarkerV2` lors des campagnes d’éditions imprimées ; - la projection stateful conserve le groupe, l’index de bit, le masque, `edition_taken`, le ledger borné et le payload canonique sans inventer de sémantique de fermeture après burn. ## `0.4.8-pre.013` — borne stateful Metaplex - aligne `MAX_METAPLEX_TOKEN_METADATA_ACCOUNT_BYTES` sur `kb_onchain_transport::MAX_COMPLETE_ACCOUNT_DATA_BYTES`, soit `65536` octets pour une lecture complète `getAccountInfo` ; - valide la borne dans `MetaplexTokenMetadataStatefulReadRequest` avant la construction de la requête RPC ; - conserve séparées les bornes de décodage offline et la borne du transport d'exécution ; - ajoute une régression empêchant de réintroduire une limite stateful supérieure au contrat du transport. ## `0.4.8-pre.011` — validation Token-2022 Token Metadata - ajoute l’extraction bornée du retour base64 produit par `Emit` ; - aligne la fixture de simulation Token-2022 sur le variant canonique `ExApiExecutionBlockhashKind::Latest` ; - refuse les plages `Emit` ouvertes avec `start` sans `end`, en cohérence avec le builder et la limite de retour Solana ; - décode uniquement un retour complet et conserve un retour partiel sans inventer un état ; - ajoute la postcondition stateful de changement ou suppression de l’autorité metadata. ## 0.4.8-pre.010 - remplace l’assertion runtime sur la relation entre borne RPC et borne de décodage par une assertion `const`, afin de supprimer le dernier warning `clippy::assertions_on_constants` ; - borne les lectures complètes Solana Program Metadata au maximum réellement accepté par l’adaptateur RPC, soit `65536` octets ; - conserve séparément la capacité du décodeur à valider des données plus grandes provenant de sources offline ou d’un futur lecteur par tranches ; - ajoute un test empêchant de réaligner par erreur la borne stateful sur la limite de décodage de `10 MiB` ; ## 0.4.8-pre.008 — orchestration Solana Program Metadata généraliste - ajoute les lectures de comptes `Buffer` et `Metadata` bornées, avec décodage et projection autoritative délégués à `kb-lib` ; - ajoute le préflight stateful des neuf opérations stables, les preuves de préfinancement rent et l’évaluation commune par `ExSafetyChecker` ; - ajoute la readiness simulation-first, la résolution des signers et les postconditions confirmées sans transformer une absence de lecture en succès ; - publie la matrice `METADATA_SOLANA_PROGRAM_PIPELINE_MATRIX.json` et maintient une frontière stricte avec les fixtures et scénarios Devnet de `kb-pipeline-demo-scenarios` ; - renomme les modules internes selon la hiérarchie de domaine : `metadata_*` pour Metaplex et Solana Program Metadata, `spl_*` pour ATA, ElGamal Registry, Token et Token-2022, tout en conservant les fonctions publiques existantes ; - remplace les assertions runtime sur constantes du test d’API externe par des assertions `const`, afin de rester propre sous Clippy. ## 0.4.7-pre.016 — clôture documentaire Metaplex - aligne la documentation du pipeline sur la qualification finale des preuves réseau ; - reporte les futures postconditions spécialisées sans introduire de branche Metaplex dans l’orchestration généraliste. ## 0.4.7-pre.011 — réouverture des validations réseau ### Documentation - réorganisation des quatre documents de crate ; - clarification que les campagnes Devnet appartiennent à `kb-pipeline-demo-scenarios`, tandis que `kb-pipeline` reste généraliste et indépendant des scénarios. ## 0.4.7-pre.007 — orchestration Metaplex généraliste - ajout des lectures stateful bornées, du préflight, de l’orchestration simulation-first et des postconditions ; - correction de la rustdoc et ajout d’exemples publics ; - ajout des diagnostics de dépréciation et de l’approbation opérateur. ## 0.4.6 - alignement de la crate sur la version fonctionnelle bot3 `0.4.6` ; - clôture des tâches de migration applicables et report explicite des évolutions ultérieures dans le TODO. ## 0.1.0-pre.074 - suppression du blocant d’audit générique après production de `V0_4_6_ALIGNMENT_AUDIT.md`, désormais archivé sous `olddocs/archivekbot3/`, aucun écart pipeline concret supplémentaire n’ayant été démontré ; ## 0.1.0-pre.073 - ajout du guide transversal [`docs/guides/REPLAY_CORE_EXTRACTION_AND_MATERIALIZATION.md`](../docs/guides/REPLAY_CORE_EXTRACTION_AND_MATERIALIZATION.md) ; ## 0.1.0-pre.072 - reclassement du TODO selon les blocants avant `0.4.6`, les travaux `0.4.7`, les versions ultérieures et les dépendances conditionnelles. ## 0.1.0-pre.070 - enrichissement du `USAGE.md` avec plusieurs exemples couvrant les principales familles d’API publiques ; - ajout du contrat documentaire de la crate ; - classement des APIs publiques par campagnes, replay et inspections stateful ; - clarification des invariants de déterminisme, bornage et matérialisation ; - inscription des travaux Metaplex et ElGamal restants dans le TODO. ## 0.1.0-pre.062 - migration du pipeline bot2 dans l’architecture consolidée bot3 ; - reprise du backfill, de l’extraction Core, du decode replay et des matérialisations ; - migration des préflights, corrélations et orchestrations Token-2022 ; - migration des contrats stateful SPL Token, ATA et registre ElGamal ; - adaptation aux normes Rust 2024 et Khadhroony bot3.