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

9.8 KiB
Raw Blame History

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

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.