Files
khadhroony-bot3/ks-config/CHANGELOG.md
2026-08-11 22:22:40 +02:00

152 lines
9.8 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: ks-config/CHANGELOG.md -->
<!-- version: 26 -->
# CHANGELOG — ks-config
## `0.5.3-pre.002-delta-fix-001`
- aligne tous les contrats/types publics de `ks-config` sur la règle workspace imposant `crate::Item` depuis leur crate propriétaire, y compris dans leur module de déclaration et dans les tests ;
- aligne les appels aux fonctions publiques réexportées sur le crate-root et ajoute le canari `KH_CFG015` pour empêcher le retour d'une référence locale non qualifiée à un type public de configuration.
## `0.5.3-pre.002`
- remplace les contrats runtime `PostgresConfig`/`SqliteConfig` par `DatabaseConfig { enabled, backend, backend_options }` afin que `ks-config` ne connaisse plus les paramètres d'un moteur non sélectionné ;
- limite la validation store à la structure backend-agnostique et laisse `ks-store` interpréter/valider les options concrètes, sans modifier les conventions `KS_SECRET_*` ni la résolution des placeholders ;
- aligne `store.config.json`, son exemple, le schéma spécialisé, le schéma runtime et les fixtures de configuration sur ce contrat opaque.
## `0.5.2-pre.006-delta-fix-007`
- corrige le test de séparation des répertoires wallet afin quil résolve dabord `${KS_WALLETS_DIRECTORY:-wallets}` comme le chemin de chargement runtime ;
- rend le test indépendant dun éventuel override `KS_WALLETS_DIRECTORY` en vérifiant la relation `temporary_wallet_dir = wallet_dir/temporary/local_devnet` plutôt quune racine littérale.
## `0.5.2-pre.006-delta-fix-006`
- réinclut dans le delta `config/wallet.config.json` et `config/exemples/example.wallet.config.json`, omis par erreur dans `fix-005`, afin que leurs sous-répertoires temporaires `temporary/...` correspondent au contrat runtime résolu ;
- précise dans le schéma wallet que `wallets_directory` est la racine persistante `.kswallet` et que `profile.directory` désigne les wallets/fixtures temporaires du profil.
## `0.5.2-pre.006-delta-fix-005`
- sépare le store natif persistant `wallet_dir` de `temporary_wallet_dir` : les `.kswallet` utilisent désormais directement la racine `wallets_directory`, tandis que les wallets et keypairs de fixtures restent sous le sous-répertoire temporaire du profil ;
- propage les deux chemins dans le contrat runtime résolu et son schéma sans déplacer automatiquement les fichiers existants.
## `0.5.2-pre.006`
- ajoute `wallet_alias` aux profils du document wallet comme sélection optionnelle/nullable d'un wallet natif persistant, sans password ni matériau secret dans `ks-config` ;
- propage cette sélection non sensible vers le contrat runtime `WalletConfig` et valide l'alias avec les mêmes bornes que `ks-wallet` ;
- garde les documents `0.5.1` compatibles lorsque `wallet_alias` est omis, conserve `null` comme absence explicite de sélection et documente un exemple de sélection persistante.
## `0.5.1-pre.009`
- réconcilie schémas, exemples sous `config/exemples/`, guide de configuration et documentation de crate avant archivage du plan `0.5.1` ;
- retire du TODO la tâche de clôture `pre.009` désormais terminée, sans modifier les contrats runtime.
## `0.5.1-pre.008`
- Fix: use `Result::is_err()` for execution and wallet schema validation checks, removing the Clippy redundant-pattern warnings without changing fail-closed behavior.
- retire `ts-rs` de `ks-config`, supprime ses bindings TypeScript générés et réserve les projections frontend aux DTO des applications propriétaires ;
- rend les contrats source/runtime susceptibles de contenir des valeurs résolues non sérialisables et non `Debug` par défaut, et retire les sérialiseurs publics de `AppConfig` ;
- ajoute la classification `Secret > Internal > Public`, y compris pour les chaînes composées contenant plusieurs placeholders d'environnement, ainsi qu'une représentation diagnostic générique qui ne révèle jamais les valeurs secret/internal ;
- rend la section `application` des compositions opaque pour `ks-config` et fournit un helper générique de validation JSON Schema pour les fragments possédés par les binaires ;
- durcit les erreurs de validation/décodage afin de ne plus recopier les valeurs rejetées, notamment pour les URLs et fragments contenant potentiellement des secrets ;
- ajoute un test d'API externe et des canaris de non-divulgation pour les helpers de sensibilité.
## `0.5.1-pre.007`
- extrait store, wallet et execution vers `config/store.config.json`, `config/wallet.config.json` et `config/execution.config.json`, chacun avec schéma, exemple et `default_profile` ;
- place `wallets_directory` hors profils wallet et déplace les autorisations `*_send_enabled` dans la politique execution ;
- remplace `app.auto_reconnect_default` par des classes de defaults WebSocket nommées dans le transport, avec overrides propres à chaque endpoint ;
- permet la composition directe des defaults partagés sans fichier applicatif et valide les références de profils dune composition avant production du contrat runtime ;
- supprime la nécessité dune composition par défaut propre à `ks-pipeline-demo-scenarios`.
## `0.5.1-pre.006`
- remplace le document source monolithique `app.config.json` par des compositions propres aux binaires, dont `config/kb-app-demo-desktop.default.config.json` et `config/ks-pipeline-demo-scenarios.default.config.json` ;
- extrait les endpoints HTTP/WebSocket vers `config/transport.config.json` et les listeners vers `config/listeners.config.json`, chacun avec schéma et exemple dédiés sous `config/schemas/` / `config/` ;
- conserve `AppConfig`/`ProfileConfig` comme contrat runtime résolu transitoire, reconstruit depuis la composition et les documents partagés ;
- ajoute les APIs typées de chargement, validation et sélection de profils de composition, transport et listeners ;
- ajoute un test dAPI externe garantissant que composition, transport et listeners restent accessibles uniquement via les exports crate-root ;
- réserve le split store/data, wallet, execution et configuration spécifique des binaires à `pre.007`, avant les surfaces publiques sûres de `pre.008`.
## `0.5.1-pre.005`
- retire définitivement le bloc `logging` de `ProfileConfig` et du schéma général ;
- aligne le contrat général et le desktop sur `config/app.config.json`, validé par `config/schemas/app.config.schema.json` ;
- conserve des profils applicatifs indépendants du document logging possédé par `ks-logging` ;
- ajoute `config/example.app.config.json` comme exemple minimal conforme.
## `0.5.1-pre.004`
- migre le sélecteur d'environnement vers `KS_ENV_FILE` et les placeholders PostgreSQL/Helius vers `KS_SECRET_*` ;
- aligne `.env.example`, `config/example.config.json`, les tests et la documentation sur le namespace Khadhroony Solana ;
- ne met pas encore en œuvre le camouflage ou la propagation de sensibilité, réservés à la frontière runtime/public après le split config/logging.
## `0.5.1-pre.003`
- aligne `config/example.config.json` sur les identités hiérarchiques `ks-lib-*` afin que les routes de logging de référence suivent les producteurs renommés ;
- ne modifie ni le schéma de configuration ni les variables d'environnement, réservées aux prereleases suivantes.
## `0.5.1-pre.002`
- renomme `kb-config` en `ks-config` et l'identifiant Rust `kb_config` en `ks_config` ;
- met à jour les chemins TS-RS source vers `frontend/ts/bindings/ks_config` sans livrer les bindings générés ;
- conserve le format de configuration et les variables d'environnement historiques jusqu'aux prereleases dédiées.
## `0.5.0-pre.002`
- confirme pour `0.5.1` le split de la configuration générale et du logging en documents et schémas distincts ;
- fixe la convention cible `KS_SECRET_*` / `KS_PUBLIC_*` / `KS_*` pour les variables denvironnement propres au projet ;
- documente la séparation future source/runtime/public et interdit lusage diagnostic du JSON résolu complet ;
- précise les tâches de migration, tests externes et non-divulgation sans modifier encore le contrat runtime `0.4.8`.
## 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.075
- validation statique que `ks-config` reste lunique propriétaire direct de `dotenvy` ;
## 0.1.0-pre.073
- ajout du guide transversal [`docs/guides/CONFIGURATION.md`](../docs/guides/CONFIGURATION.md) ;
## 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.070
- enrichissement de `USAGE.md` avec plusieurs exemples couvrant les familles dAPI publiques significatives.
## 0.1.0-pre.069
### Documentation
- création de `TODO.md`, `USAGE.md` et du changelog détaillé ;
- réécriture du README selon larchitecture bot3 ;
- suppression de la section `Non publié`, incompatible avec le rôle chronologique du changelog ;
- retrait des limitations et travaux futurs, désormais maintenus dans `TODO.md` ou `USAGE.md` selon leur nature ;
- clarification de la séparation entre historique de prerelease et objectifs futurs ;
- réécriture de `TODO.md` sous forme de tâches uniquement ;
- correction des exemples de `USAGE.md` afin de ne pas utiliser lopérateur `?`.
## 0.1.0
### Migré
- migration et consolidation de la configuration typée bot2 dans `ks-config` ;
- conservation du schéma JSON, des profils, endpoints, listeners, paramètres de stockage, logging, wallet et exécution.
### Modifié
- adoption des règles Rust 2024 et Khadhroony ;
- export TypeScript contrôlé des types destinés au frontend ;
- validation structurée par `ks_core::Error`.
### Validation
- validation de lexemple contre le schéma ;
- tests de round-trip, profils actifs, placeholders, URLs, rôles et invariants opérationnels.