v0.4.8-pre.009

This commit is contained in:
2026-08-06 06:45:18 +02:00
parent f576fbade2
commit b314bfc244
21 changed files with 2688 additions and 32 deletions

View File

@@ -1,11 +1,11 @@
<!-- file: docs/plans/V0_4_8_SOLANA_PROGRAM_METADATA_AND_TOKEN_2022_COMPLETENESS_PLAN.md -->
<!-- version: 13 -->
<!-- version: 14 -->
# Plan `0.4.8` — Solana Program Metadata et complétude Token-2022
## 1. Statut et rôle
Ce document est le livrable principal de `0.4.8-pre.001`, réconcilié après laudit contractuel de `0.4.8-pre.002`, les modèles de `pre.003`, les décodeurs de comptes de `pre.004`, le décodeur dinstructions de `pre.005`, la matérialisation de `pre.006`, lexécuteur de `pre.007` et lorchestration généraliste de `pre.008`. Il constitue le plan vivant de la version et reste modifiable lorsque laudit du code, des interfaces officielles, de lIDL ou des validations Devnet impose un ajustement.
Ce document est le livrable principal de `0.4.8-pre.001`, réconcilié après laudit contractuel de `0.4.8-pre.002`, les modèles de `pre.003`, les décodeurs de comptes de `pre.004`, le décodeur dinstructions de `pre.005`, la matérialisation de `pre.006`, lexécuteur de `pre.007`, lorchestration généraliste de `pre.008` et les scénarios réutilisables de `pre.009`. Il constitue le plan vivant de la version et reste modifiable lorsque laudit du code, des interfaces officielles, de lIDL ou des validations Devnet impose un ajustement.
Il doit être maintenu pendant chaque prerelease, puis archivé pendant la dernière prerelease après transfert des décisions durables vers le ROADMAP, les matrices, les guides, les rapports, les TODO et les changelogs concernés.
@@ -276,7 +276,7 @@ Résultat durable : les neuf instructions stables possèdent une opération typ
Travaux parallèles intégrés : les fonctions de matérialisation Metaplex existaient déjà dans `materializer/metadata/core.rs`; il ne sagissait donc pas dun oubli fonctionnel de `0.4.6/0.4.7`. Elles sont déplacées dans un sous-module dédié sans changement de clé métier. Token-2022 reçoit également son composant dédié de snapshots, puis `pre.008` ajoute son matérialiseur instructionnel spécialisé ainsi que celui de Metaplex. Laudit est ensuite étendu à lensemble de `src/materializer` : 25 identités sont harmonisées, les façades deviennent pures, les implémentations utilisent `materializer.rs`, les constantes sont centralisées et les coquilles réservées ne produisent plus de faux événements legacy. Les constats sont consignés dans `docs/audits/V0_4_8_PRE_007_METAPLEX_MATERIALIZER_STRUCTURE_AUDIT.md` et `docs/audits/V0_4_8_PRE_007_MATERIALIZER_CONVENTION_AUDIT.md`. Un audit transversal de toutes les surfaces déjà livrées est planifié en `0.5.x` pour vérifier les règles de décodage exhaustif, propriété de matérialisation, exécution des opérations dangereuses via `ExSafetyChecker`, dépréciation officielle et versions remplacées decode-only.
### `0.4.8-pre.008` — pipeline stateful Solana Program Metadata — code terminé, replay historique à revalider
### `0.4.8-pre.008` — pipeline stateful et replay mainnet Solana Program Metadata — terminé
- lectures RPC bornées des comptes absents, non initialisés, `Buffer` et `Metadata` ;
- décodage et matérialisation autoritative des états via `kb-lib` ;
@@ -284,50 +284,66 @@ Travaux parallèles intégrés : les fonctions de matérialisation Metaplex exis
- passage par `ExSafetyChecker`, readiness simulation-first, résolution des signers et autorisation de soumission ;
- postconditions avant/après des neuf opérations, sans succès inventé lorsquune lecture manque ;
- matrice pipeline machine-readable ;
- enregistrement du décodeur et des trois matérialiseurs metadata spécialisés dans le replay générique desktop pour le futur test `demo_backfill` ;
- enregistrement du décodeur et des trois matérialiseurs metadata spécialisés dans le replay générique desktop ;
- nomenclature interne `metadata_*`, `spl_*` et `solana_*` alignée sur les domaines de `kb-lib` ;
- aucune modification de `kb-pipeline-demo-scenarios` ni de `demo_execution_metadata`.
- audit consigné dans `docs/audits/V0_4_8_PRE_008_METADATA_SOLANA_PROGRAM_PIPELINE_AUDIT.md`.
- première campagne historique : 200 transactions importées, 582 instructions rejouées et 132 instructions `ProgM6…` reconnues ; toutes ont été rejetées à tort parce que le décodeur comparait les privilèges globaux du message par égalité avec les minima de linstruction ;
- `pre.008-fix-002` remplace cette égalité par une validation de minima et ajoute une régression sur les neuf instructions ; la campagne des 132 entrées doit être rejouée avant douvrir `pre.009`.
- correction du décodeur pour valider les privilèges requis comme minima au lieu dexiger légalité avec les privilèges globaux du message ;
- replay mainnet final : 132 instructions `ProgM6…` dispatchées, 132 décodées, 132 matérialisées, zéro échec et zéro refus ;
- opérations observées : `Write` 88, `Allocate` 15, `Initialize` 11, `SetAuthority` 7, `Close` 5, `SetData` 5 et `SetImmutable` 1 ;
- `Trim` et `Extend` restent non observées dans léchantillon mainnet et doivent être prouvées sur Devnet ;
- preuve conservée sous `docs/validation/evidence/v0.4.8/pre.008/mainnet/`.
### `0.4.8-pre.009` — campagne Devnet et desktop Solana Program Metadata
### `0.4.8-pre.009` — scénarios réutilisables Solana Program Metadata — terminé côté delta
- fixture Rust native et comptes préfinancés ;
- scénarios réutilisables dans `kb-pipeline-demo-scenarios` ;
- appels RPC de simulation, soumission, confirmation, lectures avant/après et replay ;
- adaptation du sous-panneau `ProgM6…` de `demo_execution_metadata` pour consommer les runners réutilisables ;
- validation historique préalable via `demo_backfill`, Core extraction et decode replay sur un échantillon de signatures ;
- preuves RPC et rapport intermédiaire.
- séparation stricte : `kb-pipeline` reste généraliste et inchangé, tandis que les fixtures et campagnes réseau appartiennent à `kb-pipeline-demo-scenarios` ;
- deux parcours ordonnés couvrent exactement les neuf opérations stables ;
- parcours Buffer : `Allocate → Extend → Write → Trim → Close` ;
- parcours Metadata : `Initialize → SetData → SetAuthority → SetImmutable` ;
- création de deux PDA non canoniques uniques et préfinancés avec le wallet persistant du profil Devnet ;
- calcul RPC du rent pour les tailles initiales et finales ;
- runner unitaire simulation-first avec `ExSafetyChecker`, soumission contrôlée, confirmation, lectures avant/après et postconditions ;
- campagne confirmée réutilisable exécutant séquentiellement les neuf étapes ;
- projections stateful matérialisées après confirmation, ou preuve dabsence après `Close` ;
- matrice Devnet conservative à `not_run` avant exécution réelle ;
- aucune modification de `demo_execution_metadata` dans cette prerelease.
### `0.4.8-pre.010` — complétude Token-2022 Token Metadata
### `0.4.8-pre.010` — intégration desktop et campagne Devnet Solana Program Metadata
- adapter le sous-panneau `ProgM6…` de `demo_execution_metadata` pour consommer exclusivement les runners de `kb-pipeline-demo-scenarios` ;
- préparer la fixture, présenter les deux parcours et exiger la confirmation explicite avant les transferts ou mutations ;
- exécuter les neuf opérations sur Devnet, avec signatures, simulations, confirmations et postconditions ;
- hydrater les signatures confirmées, lancer Core extraction, decode replay et matérialisation canonique ;
- mettre à jour la matrice de validation sans convertir une simulation ou une construction synthétique en preuve confirmée ;
- confirmer particulièrement `Trim` et `Extend`, absentes de léchantillon mainnet ;
- conserver des résultats JSON dans le JsonViewer commun.
### `0.4.8-pre.011` — complétude Token-2022 Token Metadata
- fermeture des écarts dintents/builders/exécution confirmés pour `UpdateAuthority` et `Emit`, après réaudit des cinq instructions `Initialize`, `UpdateField`, `RemoveKey`, `UpdateAuthority` et `Emit` ;
- conservation des snapshots dédiés `metadata/token_2022/` pour `TokenMetadata`, `TokenGroup` et `TokenGroupMember` ;
- validation de la matérialisation instructionnelle spécialisée déjà ajoutée en `pre.008` pour les interfaces Token Metadata et Token Group ;
- validation de la matérialisation instructionnelle spécialisée des interfaces Token Metadata et Token Group ;
- maintien de `InitializeMetadataPointer` et `UpdateMetadataPointer` dans le matérialiseur dadministration qui en possède déjà les faits ;
- tests synthétiques et stateful.
### `0.4.8-pre.011` — campagne Devnet Token-2022 Token Metadata
### `0.4.8-pre.012` — campagne Devnet Token-2022 Token Metadata
- fixture mint ;
- simulations, soumissions sûres, confirmations, postconditions, replay et matérialisation.
### `0.4.8-pre.012` — finalisation desktop metadata
### `0.4.8-pre.013` — finalisation desktop metadata
- compléter le sous-panneau Token-2022 après les travaux de `pre.010` et `pre.011` ;
- compléter le sous-panneau Token-2022 après les travaux de `pre.011` et `pre.012` ;
- conserver des accordéons ou sous-panneaux séparés pour `ProgM6…`, Token-2022 et Metaplex ;
- réutiliser le JsonViewer commun pour les résultats intégralement JSON ;
- réconcilier préparation, simulation, soumission, lectures et preuves des trois domaines ;
- aucun bouton de fetch URI.
### `0.4.8-pre.013` — stockage, matrices et réconciliation transversale
### `0.4.8-pre.014` — stockage, matrices et réconciliation transversale
- stockage si de nouveaux contrats persistants sont requis ;
- exports, registres, matrices, nomenclature IDL et guides ;
- retrait des statuts `reserved` uniquement lorsque limplémentation correspondante est réelle.
### `0.4.8-pre.014` — clôture obligatoire
### `0.4.8-pre.015` — clôture obligatoire
Réservée à :