diff --git a/CHANGELOG.md b/CHANGELOG.md index f4fe333..5077c8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,6 @@ # CHANGELOG -## [0.1.0-pre.027] - 2026-07-25 - -- Migration complète de `kb-wallet` depuis `kb_wallet` bot2. -- Conservation des six tests de validation des alias, signatures, persistance, non-écrasement, corruption et permissions Unix. -- Conservation du format JSON Solana standard, de la protection contre les symlinks et de l’effacement des buffers secrets. - ## 0.1.0-pre.024 - Première tranche fonctionnelle de `kb-onchain-transport`. diff --git a/ROADMAP.md b/ROADMAP.md index 0fc4121..a41740f 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -270,9 +270,9 @@ - [ ] Migrer ensuite les contrats communs et le transport HTTP standard de l’ancienne `kb_rpc`. -### 0.1.0-pre.027 — Migration de `kb-wallet` -- [x] Porter les contrats de wallet temporaire et persistant depuis bot2. -- [x] Conserver les six tests bot2 sans réduction fonctionnelle. -- [x] Préserver les permissions privées, le rejet des symlinks et l’effacement des buffers secrets. -- [x] Maintenir la séparation entre signature locale et politique d’exécution. +### 0.1.0-pre.028 — configuration de tracing wallet + +- [x] Routes canoniques `kb-wallet`. +- [x] Configuration d’exemple sans clé fournisseur en clair. +- [ ] Migration fonctionnelle de `kb-pipeline` à poursuivre à partir de `pre.029`. diff --git a/config/example.config.json b/config/example.config.json index 22b8eb0..d4ff4b6 100644 --- a/config/example.config.json +++ b/config/example.config.json @@ -4,7 +4,7 @@ { "name": "local_devnet", "app": { - "name": "khadhroony-bot2", + "name": "khadhroony-bot3", "environment": "development", "auto_reconnect_default": false }, @@ -45,7 +45,7 @@ "kb-lib.materializer.transaction", "kb-store", "kb-onchain-transport", - "kb_wallet", + "kb-wallet", "kb_pipeline", "kb_app_demo", "kb_executor_metadata_metaplex_token_metadata", @@ -1048,12 +1048,12 @@ "enabled": true, "sink": "file", "level": "debug", - "path": "logs/devnet/kb_wallet/debug.log", + "path": "logs/devnet/kb-wallet/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -1061,12 +1061,12 @@ "enabled": true, "sink": "file", "level": "info", - "path": "logs/devnet/kb_wallet/info.log", + "path": "logs/devnet/kb-wallet/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -1074,12 +1074,12 @@ "enabled": true, "sink": "file", "level": "error", - "path": "logs/devnet/kb_wallet/error.jsonl", + "path": "logs/devnet/kb-wallet/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -1645,7 +1645,7 @@ { "name": "mainnet_research", "app": { - "name": "khadhroony-bot2", + "name": "khadhroony-bot3", "environment": "research", "auto_reconnect_default": false }, @@ -1693,7 +1693,7 @@ "kb_pipeline", "kb-onchain-transport", "kb-store", - "kb_wallet" + "kb-wallet" ] }, { @@ -2689,12 +2689,12 @@ "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet_research/kb_wallet/debug.log", + "path": "logs/mainnet_research/kb-wallet/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -2702,12 +2702,12 @@ "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet_research/kb_wallet/info.log", + "path": "logs/mainnet_research/kb-wallet/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -2715,12 +2715,12 @@ "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet_research/kb_wallet/error.jsonl", + "path": "logs/mainnet_research/kb-wallet/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -3210,7 +3210,7 @@ "enabled": true, "provider": "helius", "cluster": "mainnet-beta", - "url": "https://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857", + "url": "https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}", "connect_timeout_ms": 4000, "request_timeout_ms": 10000, "max_idle_connections_per_host": 8, @@ -3370,7 +3370,7 @@ "enabled": true, "provider": "helius", "cluster": "mainnet-beta", - "url": "wss://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857", + "url": "wss://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}", "connect_timeout_ms": 5000, "request_timeout_ms": 10000, "unsubscribe_timeout_ms": 1500, @@ -3486,7 +3486,7 @@ { "name": "mainnet", "app": { - "name": "khadhroony-bot2", + "name": "khadhroony-bot3", "environment": "mainnet", "auto_reconnect_default": false }, @@ -3534,7 +3534,7 @@ "kb_pipeline", "kb-onchain-transport", "kb-store", - "kb_wallet" + "kb-wallet" ] }, { @@ -4530,12 +4530,12 @@ "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet/kb_wallet/debug.log", + "path": "logs/mainnet/kb-wallet/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -4543,12 +4543,12 @@ "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet/kb_wallet/info.log", + "path": "logs/mainnet/kb-wallet/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -4556,12 +4556,12 @@ "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet/kb_wallet/error.jsonl", + "path": "logs/mainnet/kb-wallet/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_wallet" + "kb-wallet" ] }, { @@ -5051,7 +5051,7 @@ "enabled": true, "provider": "helius", "cluster": "mainnet-beta", - "url": "https://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857", + "url": "https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}", "connect_timeout_ms": 4000, "request_timeout_ms": 10000, "max_idle_connections_per_host": 8, @@ -5211,7 +5211,7 @@ "enabled": true, "provider": "helius", "cluster": "mainnet-beta", - "url": "wss://mainnet.helius-rpc.com/?api-key=95e73621-b539-4a79-af39-3b0877a13857", + "url": "wss://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}", "connect_timeout_ms": 5000, "request_timeout_ms": 10000, "unsubscribe_timeout_ms": 1500, diff --git a/kb-config/README.md b/kb-config/README.md index a20e382..b7279b6 100644 --- a/kb-config/README.md +++ b/kb-config/README.md @@ -56,7 +56,7 @@ La validation se fait en deux étapes : ## Secrets et placeholders -Le fichier versionné doit rester sans secret. Les placeholders restent directement dans les URLs. Les keypairs générés par `kb_wallet` vivent hors du fichier de configuration et sous un répertoire ignoré par Git. +Le fichier versionné doit rester sans secret. Les placeholders restent directement dans les URLs. Les keypairs générés par `kb-wallet` vivent hors du fichier de configuration et sous un répertoire ignoré par Git. ## Exports TS-rs diff --git a/kb-config/src/settings.rs b/kb-config/src/settings.rs index cdec64e..db7da9f 100644 --- a/kb-config/src/settings.rs +++ b/kb-config/src/settings.rs @@ -1345,6 +1345,22 @@ mod tests { } } + #[test] + fn example_config_uses_canonical_wallet_tracing_routes_without_embedded_secrets() { + let config_result = super::parse_config_json(EXAMPLE_CONFIG); + let config = match config_result { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("example config must parse: {error}"), + }; + assert!(!EXAMPLE_CONFIG.contains("api-key=95e73621")); + assert!(!EXAMPLE_CONFIG.contains("\"kb_wallet\"")); + for profile in config.profiles { + assert!(profile.logging.targets.iter().any(|target| { + return target.enabled && target.targets == std::vec!["kb-wallet".to_string()]; + })); + } + } + #[test] fn example_config_parses_and_resolves_active_profile() { let config_result = super::parse_config_json(EXAMPLE_CONFIG);