diff --git a/Cargo.toml b/Cargo.toml
index 208ac96..f2e7d01 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,5 @@
# file: Cargo.toml
-# version: 15
+# version: 16
[workspace]
resolver = "3"
@@ -18,7 +18,7 @@ members = [
]
[workspace.package]
-version = "0.4.7-pre.8"
+version = "0.4.7-pre.9"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-bot3"
diff --git a/docs/plans/V0_4_7_METAPLEX_TOKEN_METADATA_COMPLETION_PLAN.md b/docs/plans/V0_4_7_METAPLEX_TOKEN_METADATA_COMPLETION_PLAN.md
index 452128f..d75c919 100644
--- a/docs/plans/V0_4_7_METAPLEX_TOKEN_METADATA_COMPLETION_PLAN.md
+++ b/docs/plans/V0_4_7_METAPLEX_TOKEN_METADATA_COMPLETION_PLAN.md
@@ -1,5 +1,5 @@
-
+
# Plan `0.4.7` — achèvement de Metaplex Token Metadata
@@ -592,3 +592,12 @@ Le développement fonctionnel peut commencer après acceptation des recommandati
- aucune soumission automatique ;
- CLI inchangé faute de besoin démontré pour une fixture Metaplex dédiée ;
- scénarios UI du desktop conservés pour `pre.009`.
+
+
+## État de `0.4.7-pre.009`
+
+- fenêtre desktop Metaplex dédiée ;
+- adaptateurs Tauri limités aux contrats de scénarios ;
+- affichage des exigences de préflight, simulation-first et postconditions ;
+- scénario sélectionné restauré à la réouverture ;
+- aucune logique métier dupliquée et aucune soumission automatique.
diff --git a/docs/validation/V0_4_7_PRE_009_METAPLEX_DESKTOP.md b/docs/validation/V0_4_7_PRE_009_METAPLEX_DESKTOP.md
new file mode 100644
index 0000000..45a3bd5
--- /dev/null
+++ b/docs/validation/V0_4_7_PRE_009_METAPLEX_DESKTOP.md
@@ -0,0 +1,37 @@
+
+
+
+# Validation `0.4.7-pre.009` — desktop Metaplex Token Metadata
+
+## Périmètre
+
+La prerelease ajoute la fenêtre Tauri `demo_execution_metadata` et adapte les inventaires synthétiques et Devnet de `kb-pipeline-demo-scenarios`.
+
+## État constaté après `fix-001`
+
+Le panneau changeait uniquement les contrats JSON affichés. Il ne chargeait aucun profil Devnet, ne préparait aucune base PostgreSQL et n'appelait aucune commande de simulation ou de soumission Metaplex. La présence de scénarios marqués `network_simulation` ne constituait donc pas une validation réseau.
+
+## Correction `fix-002`
+
+- ajout du choix d'un profil Devnet compatible ;
+- réutilisation de la commande commune `demo_execution_solana_core_options` pour charger les profils ;
+- réutilisation de `demo_execution_devnet_prepare_profile` pour vérifier ou initialiser réellement la base PostgreSQL du profil ;
+- affichage du rapport de préparation de la base avec le JSON viewer commun ;
+- ajout explicite de `networkExecutionPerformed: false` et `networkEvidenceCollected: false` dans les résultats tant qu'aucune transaction Metaplex n'est simulée ;
+- suppression de toute présentation des contrats Devnet comme preuve de simulation réseau ;
+- conservation des scénarios synthétiques de démonstration.
+
+## Limite restante
+
+`fix-002` corrige le faux raccordement Devnet et restaure le chargement du profil et de la base. Il n'ajoute pas encore l'orchestration complète d'une transaction Metaplex Devnet. `pre.009` ne peut donc pas être déclarée validée sur réseau tant que le desktop n'appelle pas un scénario d'exécution réel produisant au minimum une simulation RPC, un slot et les postconditions correspondantes.
+
+## Validation locale
+
+```bash
+cargo fmt --all
+cargo check --workspace
+cargo clippy --all-targets
+python3 scripts/audit_rust_workspace_rules.py
+cargo test -p kb-app-demo-desktop
+cargo tauri dev -c kb-app-demo-desktop/tauri.conf.json
+```
diff --git a/kb-app-demo-desktop/CHANGELOG.md b/kb-app-demo-desktop/CHANGELOG.md
index c4ad700..a3aa352 100644
--- a/kb-app-demo-desktop/CHANGELOG.md
+++ b/kb-app-demo-desktop/CHANGELOG.md
@@ -1,8 +1,32 @@
-
+
# CHANGELOG — kb-app-demo-desktop
+## 0.4.7-pre.009-fix-002
+
+- correction du panneau qui présentait des contrats Devnet sans exécuter de commande réseau ;
+- chargement explicite du profil Devnet et préparation réelle de sa base PostgreSQL ;
+- affichage du contexte de profil et du rapport de readiness dans le JSON viewer commun ;
+- marquage explicite de l'absence de simulation et de preuves réseau ;
+- consolidation du rapport de validation `pre.009` et suppression du rapport de correctif dupliqué.
+
+## 0.4.7-pre.009-fix-001
+
+- renommage de la fenêtre en `demo_execution_metadata` ;
+- ajout des accordéons extensibles par famille et mode ;
+- réutilisation du JSON viewer partagé ;
+- ajout des inventaires Devnet Metaplex en parallèle des scénarios synthétiques ;
+- alignement des versions Tauri et npm sur `0.4.7`.
+
+## 0.4.7-pre.009 — panneau Exécution Metadata Devnet
+
+- ajout d'une fenêtre dédiée aux scénarios Exécution Metadata ;
+- adaptateurs Tauri minces vers `kb-pipeline-demo-scenarios` ;
+- affichage des opérations, exigences de préflight et preuves attendues ;
+- restauration du scénario sélectionné lors de la réouverture de la fenêtre ;
+- aucune logique métier ni soumission automatique dans le desktop.
+
## 0.4.6
- alignement de la crate sur la version fonctionnelle bot3 `0.4.6` ;
diff --git a/kb-app-demo-desktop/README.md b/kb-app-demo-desktop/README.md
index eddb811..41fd522 100644
--- a/kb-app-demo-desktop/README.md
+++ b/kb-app-demo-desktop/README.md
@@ -1,51 +1,35 @@
-
+
# kb-app-demo-desktop
-`kb-app-demo-desktop` est l’application Tauri de démonstration et de validation opérateur de `khadhroony-bot3`.
+`kb-app-demo-desktop` est l’application Tauri de démonstration, de diagnostic et de validation opérateur de `khadhroony-bot3`.
-La crate reste volontairement mixte :
+La crate reste un package mixte bibliothèque et binaire. Elle fournit les fenêtres et adaptateurs nécessaires pour utiliser les capacités réutilisables du workspace sans déplacer leur logique métier dans l’interface.
-- bibliothèque `kb_app_demo_desktop_lib` ;
-- binaire `kb-app-demo-desktop`.
+## Fonctionnalités
-## Responsabilités
-
-- démarrage Tauri et gestion d’une instance unique ;
-- chargement de la configuration et du logging ;
-- fenêtres de diagnostic et démonstration ;
-- commandes Tauri pour HTTP, WebSocket, SQL, backfill, extraction Core et replay ;
-- commandes de simulation et exécution Devnet ;
-- adaptation TS-RS des résultats des crates réutilisables ;
-- gestion de progression, annulation et état applicatif.
+- configuration et diagnostics de logging ;
+- transport HTTP JSON-RPC et WebSocket ;
+- diagnostics PostgreSQL, requêtes et replay candidates ;
+- backfill, extraction Core et replay de décodage ;
+- démonstrations SPL Token, Token-2022 et ATA ;
+- exécution Devnet Solana Core, SPL et metadata ;
+- affichage des plans, simulations, confirmations, postconditions et matérialisations ;
+- progression, annulation et restauration de l’état des fenêtres.
## Frontière architecturale
-La logique générique reste dans :
+La logique générique reste dans `kb-lib`, `kb-pipeline`, `kb-pipeline-demo-scenarios`, `kb-onchain-transport`, `kb-store` et `kb-wallet`. Le desktop conserve uniquement les commandes Tauri minces, les modèles TS-RS et la présentation opérateur.
-- `kb-pipeline-demo-scenarios` pour les scénarios réutilisables ;
-- `kb-pipeline` pour l’orchestration ;
-- `kb-onchain-transport` pour les communications réseau ;
-- `kb-store` pour PostgreSQL ;
-- `kb-lib` pour décodage, exécution et matérialisation ;
-- `kb-wallet` pour les signers locaux.
-
-Le desktop ne doit pas devenir l’unique endroit où un scénario fonctionnel existe.
-
-## Validation frontend
-
-La validation autorisée est :
+## Validation
```bash
cargo tauri dev -c kb-app-demo-desktop/tauri.conf.json
```
-Ne pas utiliser `npm --prefix kb-app-demo-desktop run build` comme validation du desktop.
-
## Documentation
- [USAGE.md](USAGE.md)
- [TODO.md](TODO.md)
- [CHANGELOG.md](CHANGELOG.md)
-- [Scénarios réutilisables](../kb-pipeline-demo-scenarios/README.md)
diff --git a/kb-app-demo-desktop/TODO.md b/kb-app-demo-desktop/TODO.md
index 970a099..1fc0fd6 100644
--- a/kb-app-demo-desktop/TODO.md
+++ b/kb-app-demo-desktop/TODO.md
@@ -5,7 +5,7 @@
## `0.4.7`
-- [ ] Metaplex Token Metadata - ajouter les panneaux nécessaires aux scénarios complétés.
+- [ ] Exécution Metadata Devnet - ajouter les panneaux nécessaires aux scénarios complétés.
## Versions ultérieures
@@ -17,3 +17,5 @@
- [ ] Registre ElGamal - confirmer le déploiement réseau et la disponibilité des preuves avant de rendre le panneau exécutable.
- [ ] Registre ElGamal - raccorder un handler uniquement après validation d’un scénario réutilisable hors desktop.
+
+- Validation manuelle Metaplex — exécuter les parcours réseau disponibles et confirmer la cohérence préflight/simulation/postconditions pendant `0.4.7-pre.010`.
diff --git a/kb-app-demo-desktop/USAGE.md b/kb-app-demo-desktop/USAGE.md
index cfada53..c0fe1fa 100644
--- a/kb-app-demo-desktop/USAGE.md
+++ b/kb-app-demo-desktop/USAGE.md
@@ -244,3 +244,19 @@ La base validée de `pre.062` contient 117 tests pour cette crate.
- le desktop est une application de démonstration et validation, pas le worker de production ;
- les payloads Tauri sont une API applicative spécifique au frontend ;
- l’application nécessite un environnement graphique pour sa validation complète.
+
+## Ouvrir le panneau Exécution Metadata Devnet
+
+Depuis la fenêtre principale, choisir **Exécution Devnet → Exécution Metadata Devnet**. Le panneau charge l’inventaire canonique par la commande Tauri `demo_execution_metadata_scenarios`, puis affiche pour chaque scénario :
+
+- les codes d’opération ;
+- les exigences de collection et de rule set ;
+- les contrôles de préflight ;
+- la politique simulation-first ;
+- les preuves de postcondition requises.
+
+Le scénario sélectionné est conservé dans le stockage local de la WebView et restauré à la réouverture.
+
+## Exécution metadata Devnet
+
+Depuis **Exécution Devnet → Metadata**, ouvrir la fenêtre `demo_execution_metadata`. L’accordéon Metaplex sépare les scénarios synthétiques des scénarios Devnet et conserve une structure extensible pour SPL Token Metadata. Les résultats JSON sont rendus avec le composant `json_viewer` partagé.
diff --git a/kb-app-demo-desktop/capabilities/default.json b/kb-app-demo-desktop/capabilities/default.json
index 9a233a8..41b298d 100644
--- a/kb-app-demo-desktop/capabilities/default.json
+++ b/kb-app-demo-desktop/capabilities/default.json
@@ -16,10 +16,11 @@
"demo_core_extraction",
"demo_decode_replay",
"demo_execution_solana_core",
- "demo_execution_spl"
+ "demo_execution_spl",
+ "demo_execution_metadata"
],
"permissions": [
"core:default",
"tracing:default"
]
-}
+}
\ No newline at end of file
diff --git a/kb-app-demo-desktop/frontend/demo_execution_metadata.html b/kb-app-demo-desktop/frontend/demo_execution_metadata.html
new file mode 100644
index 0000000..41ccc4a
--- /dev/null
+++ b/kb-app-demo-desktop/frontend/demo_execution_metadata.html
@@ -0,0 +1,104 @@
+
+
+
+
+
+
Cette fenêtre accueille les familles d’exécution metadata. Metaplex Token Metadata est la première famille ; SPL Token Metadata sera ajouté ultérieurement sans changer la frontière de la fenêtre.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
État du profilNon chargé
+
+
Cette version prépare réellement le profil et sa base Devnet, mais n’exécute pas encore de transaction Metaplex. Les contrats affichés ne constituent pas une preuve de simulation réseau.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exigences
+
+
+
+
+
+
+
+
Préflight et opérations
+
+
+
+
+
+
Simulation et confirmation
+
+
+
+
+
+
Postconditions et preuves
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kb-app-demo-desktop/frontend/main.html b/kb-app-demo-desktop/frontend/main.html
index 5a39646..05ac84c 100644
--- a/kb-app-demo-desktop/frontend/main.html
+++ b/kb-app-demo-desktop/frontend/main.html
@@ -1,5 +1,5 @@
-
+
@@ -61,6 +61,7 @@