v0.4.7-pre.012

This commit is contained in:
2026-08-03 09:34:16 +02:00
parent 4b727e2990
commit 4d08c75b2b
13 changed files with 575 additions and 36 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/V0_4_7_METAPLEX_TOKEN_METADATA_COMPLETION_PLAN.md -->
<!-- version: 13 -->
<!-- version: 14 -->
# Plan `0.4.7` — achèvement de Metaplex Token Metadata
@@ -670,3 +670,11 @@ Le développement fonctionnel peut commencer après acceptation des recommandati
- premier lot attribué à `Create`, `Update`, `Verify` et `Unverify` ;
- preuves réseau encore `not_run` jusquaux exécutions locales et à la validation des postconditions métier ;
- opérations dépréciées refusées dans les campagnes automatiques.
## État de `0.4.7-pre.012`
- le runner RPC réutilisable accepte les 20 opérations `executable_current` ;
- la matrice ne contient plus aucune opération au statut `planned` ;
- un test opt-in permet de fournir lintent typé et les lectures stateful par JSON ;
- les statuts réseau restent `not_run` jusquaux campagnes locales avec fixtures ;
- la préparation des fixtures et la collecte des preuves observées restent obligatoires avant `pre.013`.

View File

@@ -0,0 +1,54 @@
<!-- file: docs/validation/V0_4_7_PRE_012_METAPLEX_DEVNET_RUNNER_COVERAGE.md -->
<!-- version: 4 -->
# Validation `0.4.7-pre.012` — couverture du runner Devnet Metaplex
## Résultat
La matrice Devnet couvre exactement les 20 opérations `executable_current`. Les quatre opérations du premier lot restent attribuées à `pre.011` et les seize restantes à `pre.012`. Toutes portent désormais `runnerStatus: implemented`.
## Accès aux campagnes
`DevnetMetaplexTokenMetadataExecutionRequest::from_operation_json` désérialise une opération typée, rejette les opérations dépréciées et produit une requête simulation-only. Le test opt-in `optional_devnet_current_operation_from_env` permet une simulation RPC réelle ou une soumission explicitement confirmée.
## Correctif de compilation
Le contrat `MetaplexTokenMetadataStatefulReadRequest` dérive désormais `Deserialize` et `Serialize`. Les listes JSON fournies par `KB_DEVNET_METAPLEX_PREFLIGHT_READS_JSON` et `KB_DEVNET_METAPLEX_POSTCONDITION_READS_JSON` peuvent donc être chargées par le test opt-in. Un test de round-trip JSON protège ce contrat.
## Statut réseau
Aucune preuve réseau nest inventée dans ce livrable. Les 20 opérations restent `not_run` jusquà exécution locale avec fixtures, endpoint Devnet, wallet et préconditions compatibles.
## Validations à exécuter localement
```bash
cargo fmt --all
cargo check --workspace
cargo clippy --all-targets
python3 scripts/audit_rust_workspace_rules.py
cargo test -p kb-pipeline-demo-scenarios
```
## Correctif ergonomique `fix-002`
Le placeholder `{"operation":"..."}` n'est plus présenté comme exécutable et est rejeté avec une erreur dédiée. La crate expose désormais :
- l'inventaire des vingt opérations courantes ;
- des modèles JSON pour `Create`, `Update`, `Verify` et `Unverify` ;
- des constructeurs nommés pour `Verify` et `Unverify` créateur ;
- des tests vérifiant la validité JSON des modèles et le caractère conservateur des requêtes nommées.
Les modèles utilisent des valeurs entre chevrons qui doivent être remplacées par des comptes Devnet réels. Ils ne constituent pas une preuve réseau.
## Correctif de dépendance et dassertion `fix-003`
La crate déclare désormais explicitement `mpl-token-metadata.workspace = true`, nécessaire aux types utilisés directement par les modèles de campagnes. Le test de rejet du placeholder attend le code stable `config`, conformément au contrat de `kb_core::Error::config`.
Validations opérateur observées avant ce correctif :
- `cargo fmt --all` : réussi ;
- `cargo check --workspace` : réussi ;
- `cargo clippy --all-targets` : réussi ;
- audit général, exports et règles Khadhroony : propres ;
- `cargo test -p kb-pipeline-demo-scenarios` : 53 tests réussis et un seul échec limité à lassertion `configuration_error` au lieu de `config`.