Files
khadhroony-bot3/kb-app-demo-desktop/CHANGELOG.md
2026-08-10 11:21:07 +02:00

260 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: kb-app-demo-desktop/CHANGELOG.md -->
<!-- version: 52 -->
# CHANGELOG — kb-app-demo-desktop
## `0.5.1-pre.008`
- Fix: remplace les snapshots `ks-onchain-transport` retournés directement par les commandes Tauri HTTP/WS par des DTO desktop sanitisés, fait supprimer lURL des snapshots backend et supprime `endpointUrl` des payloads dexécution/statut et ajoute des canaris empêchant toute URL résolue de traverser le frontend. Supprime également le chemin local du fixture Token-2022 des payloads fonctionnels et des erreurs affichées.
- Fix: use the crate-root DTO façades inside the configuration projection itself so required `pub(crate)` re-exports are not dead imports.
- Fix: remove the unused desktop application-schema getter; validation continues to use the embedded schema directly.
- remplace l'exposition Tauri de `AppConfig/ProfileConfig` résolus par une projection publique typée et un diagnostic borné construits champ par champ ;
- n'expose plus les URLs RPC/WebSocket, DSN PostgreSQL, chemins SQLite/wallet ni aucune valeur secrète ; les diagnostics correspondants transmettent seulement des états `configured`/`missing` et des paramètres non sensibles explicitement retenus ;
- devient propriétaire du fragment `application` de sa composition et le valide avec `config/schemas/kb-app-demo-desktop.application.config.schema.json` ;
- conserve TS-RS uniquement à la frontière applicative et ajoute des canaris garantissant que les valeurs sensibles injectées dans le runtime ne traversent pas les payloads configuration.
## `0.5.1-pre.007`
- consomme les nouveaux documents store/wallet/execution via la composition desktop ;
- lit les autorisations dexécution depuis `ExecutionConfig` et conserve les payloads Tauri actuels jusquau chantier de non-divulgation de la prerelease suivante.
## `0.5.1-pre.006`
- remplace `config/app.config.json` par la composition dédiée `config/kb-app-demo-desktop.default.config.json`, sélectionnable via `KB_APP_DEMO_DESKTOP_CONFIG_PATH` ;
- résout les profils transport/listeners partagés via `ks-config` et sélectionne explicitement le profil logging déclaré par la composition ;
- conserve les contrats runtime et payloads Tauri actuels jusqu'au chantier public/diagnostic de `pre.008`.
## `0.5.1-pre.005`
- charge séparément `config/app.config.json` et `config/logging.config.json` ;
- ajoute `KS_LOGGING_CONFIG_PATH` sans coupler sa sélection à `KS_CONFIG_PATH` ;
- initialise `ks-logging` directement depuis son profil actif et supprime la conversion manuelle depuis un type logging de `ks-config` ;
- conserve les payloads Tauri de configuration existants jusquà la fermeture de la surface publique en `pre.006`.
## `0.5.1-pre.004`
- lit désormais le chemin de configuration Solana via `KS_CONFIG_PATH` et les fixtures Token-2022 via leurs noms `KS_PUBLIC_*` canoniques ;
- conserve le namespace applicatif `KB_*` disponible pour de futurs besoins réellement spécifiques au Bot, sans créer de variable Bot artificielle dans cette prerelease ;
- ne modifie aucun payload Tauri de configuration résolue : le camouflage et les DTO sûrs restent réservés à la prerelease dédiée après le split config/logging.
## `0.5.1-pre.002`
- adapte les dépendances Rust et tous les appels de crates Solana vers `ks_*` sans renommer l'application ;
- conserve `kb-app-demo-desktop` comme banc de validation et future surface de démonstrations propres au bot ;
- laisse les bindings TS-RS générés être régénérés par les tests après migration de `kb_config` vers `ks_config`.
## `0.5.1-pre.001`
### Documentation
- aligne les versions frontend/Tauri sur `0.5.1` pour ouvrir la version de fondation sans modifier le runtime desktop ;
- confirme que `kb-app-demo-desktop` conserve son nom pendant la migration des bibliothèques généralistes vers `ks-*` et que le workspace racine reste `khadhroony-bot3`.
## `0.5.0-pre.003`
### Documentation
- réaligne la frontière desktop/scénarios : les campagnes réutilisables appartiennent à `ks-pipeline-demo-scenarios`, tandis que le desktop conserve ladaptation UI/Tauri, létat applicatif et la présentation ;
- identifie pour `0.5.4` les dispatchs, critères de complétion et projections de preuves encore réutilisables à sortir du desktop ; aucun parcours runtime nest modifié dans cette prerelease.
## 0.5.0-pre.001
- aligne les versions frontend et Tauri sur `0.5.0` pour ouvrir la nouvelle version fonctionnelle ;
- ne modifie aucun parcours desktop : `0.5.0-pre.001` reste limitée au cadrage, à laudit initial et au plan de la série `0.5.x`.
## 0.4.8-pre.016
- corrige la sortie de build Vite pour tenir compte de `root: 'frontend'` : `build.outDir` pointe vers `../../dist` et la page `demo_execution_metadata.html` est référencée sous son nom réel ;
- aligne `tauri.conf.json` sur le même répertoire physique avec `frontendDist: '../dist'` ;
- confirme la règle de validation : aucun `npm run build` autonome, le build frontend est déclenché par `cargo tauri build` via `beforeBuildCommand` ;
- valide le build release complet et la génération des bundles `.deb`, `.rpm` et `.AppImage` en version desktop `0.4.8`.
## 0.4.8-pre.014
- `pre.014-delta-fix-004` clôture la finalisation desktop Metadata après validation de `fix-003` : formatage, `cargo check --workspace`, Clippy sans warning, audit workspace et 144 tests desktop sont propres ; la disposition finale des trois accordéons de résultats, de la carte **Exigences** et du journal pleine largeur est validée visuellement ;
- réconcilie le rapport et le TODO avec cet état final, sans nouvelle campagne réseau ni changement fonctionnel ;
- `pre.014-delta-fix-003` consolide lintégration Metadata après validation réelle de `fix-002` : les 11 campagnes Metaplex qualifiées atteignent toutes `campaign_completed`, les campagnes Maintenance et Use conservent leurs probes indisponibles sans soumission et aucun fichier `error*.jsonl` fourni nest non vide ;
- fusionne `demo_execution_metadata_metaplex_campaign.rs` dans `demo_execution_metadata_metaplex_token_metadata.rs` afin que Metaplex suive le même modèle de module unique que Token-2022 Token Metadata et Solana Program Metadata, sans modifier les commandes Tauri ni les bindings TS-RS ;
- transforme les blocs `Préflight et opérations`, `Simulation et confirmation` et `Postconditions et preuves` en accordéons Bootstrap, sur le modèle de `demo_execution_spl`, tout en conservant `Exigences` sous les détails et le journal dexécution en pleine largeur ;
- `pre.014-delta-fix-002` réaligne le test de contrôles Metaplex sur la nouvelle UI qualifiée (`metadataMetaplexCampaignSelect` + confirmation + exécution) et retire les assertions sur les anciens contrôles Devnet supprimés par `fix-001` ;
- après deux crashs reproductibles du desktop pendant `Create -> Mint — NFT`, les logs montrent `Create` simulé, soumis et confirmé, puis un arrêt brutal pendant le `getTransaction` de l'hydratation canonique, sans panic Rust ni erreur JSONL ;
- boxe explicitement le futur volumineux du dispatch des 11 campagnes Metaplex avant son exécution dans le runtime Tauri afin de réduire l'état async conservé par la commande desktop et ajoute des marqueurs backend `campaign_start`, `campaign_completed` et `campaign_failed` ; cette correction reste volontairement limitée à l'adaptateur desktop et ne modifie aucune campagne Devnet déjà qualifiée ;
- `pre.014-delta-fix-001` remplace le chemin Devnet Metaplex générique du panneau par 11 campagnes qualifiées réutilisant directement les runners spécialisés de `ks-pipeline-demo-scenarios` : cinq `Create -> Mint`, collection, Print/Burn, lifecycle pNFT, escrow, maintenance et probe Use ;
- conserve les scénarios Metaplex synthétiques pour linspection de contrats, mais ne présente plus `scenario + step + intent JSON` comme parcours Devnet principal ;
- confine `Use`, `Resize`, `Migrate`, `Collect` et `CloseAccounts` aux probes simulation-only de leurs campagnes qualifiées et ne les expose jamais comme soumissions isolées ;
- déplace la carte **Exigences** en bas de la colonne droite, après les postconditions, tout en conservant le journal dexécution en pleine largeur sous la grille ;
- enregistre la première validation Tauri de `pre.014` : `cargo check --workspace`, Clippy et laudit workspace sont propres, `ks-pipeline-demo-scenarios` réussit 105 tests unitaires + 1 CLI + 1 API externe, et `kb-app-demo-desktop` réussit 139 tests unitaires ;
- les logs fournis confirment lexécution desktop complète de Token-2022 Token Metadata et Solana Program Metadata sur Devnet, tandis que lancien parcours Metaplex sarrêtait après la seule préparation de fixture, défaut de câblage corrigé par ce delta ;
- ajoute le troisième sous-panneau **Token-2022 Token Metadata** dans `demo_execution_metadata` ;
- appelle directement la campagne réutilisable de cinq opérations `Initialize -> UpdateField -> Emit -> RemoveKey -> UpdateAuthority` sur un mint Token-2022 frais ;
- exige la préparation PostgreSQL, un profil Devnet autorisé et une confirmation explicite avant la fixture et les cinq mutations ;
- affiche la fixture, les simulations, confirmations, snapshots stateful, return data `Emit`, matérialisations et postconditions avec le JsonViewer commun ;
- synchronise le profil entre Metaplex, Token-2022 et Solana Program Metadata ;
- déplace le journal dexécution hors de la colonne gauche afin quil occupe toute la largeur du panneau.
## 0.4.8-pre.013
- `pre.013-delta-fix-022` restaure la compatibilité `Future + Send` de la commande Tauri Metaplex en corrigeant le runner partagé : l'effacement temporaire `Signer + Sync -> &dyn Signer` est limité à un helper synchrone de signature et n'est plus conservé au travers des `await` ; aucun assouplissement de la commande desktop n'est nécessaire ;
- `pre.013-delta-fix-002` retire la réécriture locale du JSON `Create` par famille et consomme désormais directement la fixture Metaplex réutilisable, afin déviter quun parcours `Fungible` annonce un token standard incompatible avec le mint réellement préparé ;
- conserve laction Create autonome sur une fixture NFT par défaut, tandis que les parcours de scénario sélectionnent explicitement leur famille lors de la préparation.
- `pre.013-delta-fix-001` sérialise explicitement les summaries de backfill, extraction Core et replay dans l'evidence JSON au lieu d'exiger `serde::Serialize` sur les contrats internes de `ks-pipeline` ;
- adapte lappel Metaplex au runner Devnet renforcé sans ajouter encore de nouveau parcours UI ;
- initialise le store PostgreSQL avant une exécution Metaplex réelle et fournit le décodeur ainsi que les matérialiseurs runtime ;
- conserve dans levidence JSON le backfill canonique, lextraction Core, le replay, la seconde passe didempotence, les matérialisations instructionnelles et le diagnostic post-exécution.
## 0.4.8-pre.010
- scinde le panneau Metadata en un module commun, un adaptateur `metadata_metaplex_token_metadata` et un adaptateur `metadata_solana_program` ;
- renomme les contrats et commandes Tauri Metaplex afin de rendre leur domaine explicite ;
- remplace la réutilisation erronée de lobserver Solana Core par un observer Metadata ciblant exclusivement `demo_execution_metadata` ;
- déplace le garde de lexécution Devnet partagée dans `demo_devnet_common` sous le nom générique `DemoExecutionRunGuard` ;
- consomme la borne RPC complète de `65536` octets exposée par `ks-onchain-transport` pour les lectures Solana Program Metadata ;
- ajoute un adaptateur desktop séparé pour les deux parcours Solana Program Metadata ;
- expose linventaire exact des neuf opérations et leurs états attendus ;
- synchronise le profil Devnet entre les sections Metaplex et Solana Program Metadata ;
- appelle directement la campagne réutilisable de `ks-pipeline-demo-scenarios` sans dupliquer la logique réseau ;
- affiche la fixture, les deux signatures de préfinancement, les neuf simulations, confirmations, postconditions et snapshots matérialisés ;
- exige une confirmation explicite unique couvrant les deux préfinancements et les neuf mutations ;
- conserve les parcours Metaplex existants inchangés.
## 0.4.8-pre.008
- enregistre `metadata.solana_program_metadata` dans le replay générique afin que les signatures hydratées par `demo_backfill` puissent être décodées ;
- enregistre les trois matérialiseurs spécialisés `MtMetadataMetaplexTokenMetadataMaterializer`, `MtMetadataSolanaProgramMaterializer` et `MtMetadataToken2022Materializer` dans le replay générique ;
- vérifie par test quune observation représentative de chaque domaine metadata possède exactement un matérialiseur runtime ;
- ne modifie ni `demo_execution_metadata`, ni les scénarios Devnet, réservés à `0.4.8-pre.009`.
## 0.4.8-pre.001
- aligne les versions Tauri et frontend sur `0.4.8` pour ouvrir la nouvelle version fonctionnelle ;
- ne modifie encore aucun parcours desktop : les panneaux Solana Program Metadata et Token-2022 Token Metadata sont planifiés pour des prereleases ultérieures.
## 0.4.7-pre.016
- généralise README et USAGE sans classement par prerelease ;
- nettoie le TODO et reporte les validations Devnet spécialisées ;
- archive les rapports de travail `0.4.7` au profit du rapport consolidé.
## 0.4.7-pre.015
- expose létape NFT « rendre les metadata immutables » dans le runner cohérent ;
- prépare cette étape depuis le contexte confirmé de létape précédente ;
- maintient les lectures de postcondition et la matérialisation sur le PDA metadata.
## 0.4.7-pre.014
- Afficher les cinq parcours Metaplex Devnet dans le runner Metadata.
- Adapter automatiquement le JSON `Create`, les lectures de postcondition et les cibles de matérialisation à la famille sélectionnée.
## 0.4.7-pre.013-fix-015
- aligne les tests desktop sur le nombre réel de scénarios synthétiques et Devnet exposés par les registres réutilisables ;
- conserve explicitement au moins un scénario collection et un scénario programmable dans linventaire ;
- borne les lectures Metadata et Edition à `65536` octets conformément au contrat `getAccountInfo` ;
- sérialise les toggles Metaplex `Collection`, `CollectionDetails`, `Uses` et `RuleSet` avec la variante `None` au lieu de `null` dans létape Update.
## 0.4.7-pre.013-fix-014
- remplace le flux global opération/modèle/fixture Create par une préparation contextuelle de létape du scénario ;
- remplit automatiquement lintent et les lectures stateful avant/après ;
- ajoute la navigation étape précédente/suivante et refuse lexécution dun intent périmé ;
- rend la matérialisation utilisable sans saisie manuelle des comptes de postcondition ;
- expose uniquement le parcours Devnet NFT actuellement entièrement préparé (`create` puis `update`).
### 0.4.7-pre.013-fix-011
- remplace la préparation Metaplex fondée sur `solana-keygen`, `solana` et `spl-token` par une transaction Rust native ;
- crée le mint par `SystemCreateAccount` puis `SPL Token InitializeMint2` dans un même message simulé, signé et confirmé ;
- utilise explicitement le wallet du profil comme mint authority et freeze authority ;
- conserve le keypair du mint dans `ks-wallet` sans exposer ni déléguer ses secrets à une CLI externe.
## 0.4.7-pre.013-fix-009
- affiche les parcours, fixtures et états Metaplex dans le panneau Devnet ;
- ajoute loption de matérialisation des snapshots confirmés ;
- expose le nombre de projections produites dans les résultats.
## 0.4.7-pre.013-fix-008 — les fixtures `Create` utilisent un nouveau mint à freeze authority active, valident owner/layout/décimales/supply/autorités avant simulation et empêchent la réutilisation dun intent précédent lorsquaucun modèle nommé nexiste.
## 0.4.7-pre.013-fix-005
- alignement du panneau Metadata sur les paramètres communs Devnet, boutons simulation/soumission séparés et correction du contrat dry-run après simulation ;
- correction de linitialisation du panneau Metadata : ajout des contrôles HTML du journal attendus par le TypeScript ;
- ajout dun test de contrat empêchant la disparition des sélecteurs de profil, scénario, opération et journal.
## 0.4.7-pre.013-fix-002
- Ajout du guide intégré, du journal dexécution et de titres explicites pour les résultats JSON Metaplex.
- Ajout dun préparateur idempotent de fixture `Create` : mint SPL classique Devnet, PDA metadata et master edition dérivés, intent JSON prêt à simuler.
## 0.4.7-pre.013 — exécution Metadata Devnet réelle
- ajout des commandes Tauri minces pour inventorier les opérations courantes, générer les modèles typés et appeler le runner Devnet réutilisable ;
- ajout de la simulation RPC réelle et de la soumission doublement autorisée depuis le panneau Metadata ;
- affichage séparé du plan, du préflight, de la simulation, de la signature, de la confirmation et des états avant/après ;
- conservation parallèle des scénarios synthétiques ;
- ajout des bindings TS-RS de requête et de résultat.
- correction de lextraction de la signature réseau depuis le newtype `MdSignature` sans dépendre de `Display`.
## 0.4.7-pre.011 — réouverture des démonstrations Devnet
### Documentation
- réorganisation des quatre documents de crate ;
- ajout du lot `pre.013` au TODO pour raccorder les campagnes réseau Metaplex réutilisables ;
- clarification que les scénarios UI restent dans le desktop et sont couverts en parallèle par des tests automatisés.
## 0.4.7-pre.009 — panneau Exécution Metadata
- ajout de la fenêtre dédiée et des adaptateurs Tauri minces ;
- ajout des accordéons, du JSON viewer commun et des scénarios synthétiques ;
- ajout de linventaire Devnet, du choix de profil et de la préparation réelle de la base PostgreSQL ;
- distinction explicite entre contrat Devnet et exécution réseau réellement effectuée ;
- consolidation du rapport de validation et correction des documents dupliqués.
## 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.076
- correction de larchitecture Tauri : `tauri.rs` reste lunique propriétaire des `#[tauri::command]` et délègue via la façade `crate::*` ;
- suppression des modules intermédiaires `tauri_*` ajoutés à tort ;
- suppression de 43 exports `pub(crate)` qui ne franchissaient aucune frontière de module ;
- renommage des fonctions `*_inner` en noms fonctionnels directs ;
- suppression du helper IPC utilisé une seule fois et simplification de linitialisation de létat ;
- complétion des rustdoc manquantes dans `lib.rs` ;
- correction de laudit statique pour contrôler la minceur sémantique de `tauri.rs` plutôt quun seuil arbitraire de lignes ;
- réduction de `tauri.rs` à lassemblage runtime et aux wrappers strictement nécessaires ;
- répartition des commandes Tauri par domaine dans des modules dédiés ;
- validation Mainnet de la persistance de session WebSocket après fermeture et réouverture de `demo_ws` ;
- ajout du scénario borné de backfill `mainnet_research`.
## 0.1.0-pre.075
- ajout de laudit statique Tauri/frontend et du scénario de validation du cycle de vie WebSocket ;
- identification de lorchestration encore substantielle dans `tauri.rs` comme blocant avant `0.4.6` ;
## 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.071
- ajout du contrat documentaire complet de la crate mixte ;
- documentation de la bibliothèque, du binaire et de linterface Tauri ;
- ajout dexemples frontend pour les principales familles de commandes ;
- clarification de la persistance de létat WebSocket hors cycle de vie de la fenêtre ;
- inscription des travaux ElGamal et Metaplex restants dans le TODO.
## 0.1.0-pre.062
- migration de lapplication de démonstration vers `kb-app-demo-desktop` ;
- maintien dun package unique bibliothèque et binaire ;
- migration des fenêtres HTTP, WebSocket, SQL, backfill, extraction, replay et exécution ;
- raccordement aux crates consolidées bot3 ;
- validation connue de 117 tests.