260 lines
20 KiB
Markdown
260 lines
20 KiB
Markdown
<!-- 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 l’URL des snapshots backend et supprime `endpointUrl` des payloads d’exé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 d’exécution depuis `ExecutionConfig` et conserve les payloads Tauri actuels jusqu’au 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 l’adaptation 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 n’est 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, à l’audit 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 l’inté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 n’est 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 d’exé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 l’inspection 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 d’exécution en pleine largeur sous la grille ;
|
||
- enregistre la première validation Tauri de `pre.014` : `cargo check --workspace`, Clippy et l’audit 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 l’exécution desktop complète de Token-2022 Token Metadata et Solana Program Metadata sur Devnet, tandis que l’ancien parcours Metaplex s’arrê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 d’exécution hors de la colonne gauche afin qu’il 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 qu’un parcours `Fungible` annonce un token standard incompatible avec le mint réellement préparé ;
|
||
- conserve l’action 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 l’appel 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 l’evidence JSON le backfill canonique, l’extraction Core, le replay, la seconde passe d’idempotence, 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 l’observer Solana Core par un observer Metadata ciblant exclusivement `demo_execution_metadata` ;
|
||
- déplace le garde de l’exé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 l’inventaire 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 qu’une 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 l’inventaire ;
|
||
- 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 l’intent et les lectures stateful avant/après ;
|
||
- ajoute la navigation étape précédente/suivante et refuse l’exécution d’un 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 l’option 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 d’un intent précédent lorsqu’aucun modèle nommé n’existe.
|
||
|
||
## 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 l’initialisation du panneau Metadata : ajout des contrôles HTML du journal attendus par le TypeScript ;
|
||
- ajout d’un 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 d’exécution et de titres explicites pour les résultats JSON Metaplex.
|
||
- Ajout d’un 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 l’extraction 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 l’inventaire 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 l’architecture Tauri : `tauri.rs` reste l’unique 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 l’initialisation de l’état ;
|
||
- complétion des rustdoc manquantes dans `lib.rs` ;
|
||
- correction de l’audit statique pour contrôler la minceur sémantique de `tauri.rs` plutôt qu’un seuil arbitraire de lignes ;
|
||
- réduction de `tauri.rs` à l’assemblage 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 l’audit statique Tauri/frontend et du scénario de validation du cycle de vie WebSocket ;
|
||
- identification de l’orchestration 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 l’interface Tauri ;
|
||
- ajout d’exemples 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 l’application de démonstration vers `kb-app-demo-desktop` ;
|
||
- maintien d’un 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.
|