v0.1.0-pre.028

This commit is contained in:
2026-07-25 08:53:40 +02:00
parent d4ac628c99
commit fefb45ee11
5 changed files with 50 additions and 40 deletions

View File

@@ -3,12 +3,6 @@
# CHANGELOG # 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 leffacement des buffers secrets.
## 0.1.0-pre.024 ## 0.1.0-pre.024
- Première tranche fonctionnelle de `kb-onchain-transport`. - Première tranche fonctionnelle de `kb-onchain-transport`.

View File

@@ -270,9 +270,9 @@
- [ ] Migrer ensuite les contrats communs et le transport HTTP standard de lancienne `kb_rpc`. - [ ] Migrer ensuite les contrats communs et le transport HTTP standard de lancienne `kb_rpc`.
### 0.1.0-pre.027 — Migration de `kb-wallet`
- [x] Porter les contrats de wallet temporaire et persistant depuis bot2. ### 0.1.0-pre.028 — configuration de tracing wallet
- [x] Conserver les six tests bot2 sans réduction fonctionnelle.
- [x] Préserver les permissions privées, le rejet des symlinks et leffacement des buffers secrets. - [x] Routes canoniques `kb-wallet`.
- [x] Maintenir la séparation entre signature locale et politique dexécution. - [x] Configuration dexemple sans clé fournisseur en clair.
- [ ] Migration fonctionnelle de `kb-pipeline` à poursuivre à partir de `pre.029`.

View File

@@ -4,7 +4,7 @@
{ {
"name": "local_devnet", "name": "local_devnet",
"app": { "app": {
"name": "khadhroony-bot2", "name": "khadhroony-bot3",
"environment": "development", "environment": "development",
"auto_reconnect_default": false "auto_reconnect_default": false
}, },
@@ -45,7 +45,7 @@
"kb-lib.materializer.transaction", "kb-lib.materializer.transaction",
"kb-store", "kb-store",
"kb-onchain-transport", "kb-onchain-transport",
"kb_wallet", "kb-wallet",
"kb_pipeline", "kb_pipeline",
"kb_app_demo", "kb_app_demo",
"kb_executor_metadata_metaplex_token_metadata", "kb_executor_metadata_metaplex_token_metadata",
@@ -1048,12 +1048,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "debug", "level": "debug",
"path": "logs/devnet/kb_wallet/debug.log", "path": "logs/devnet/kb-wallet/debug.log",
"rotation": "daily", "rotation": "daily",
"format": "human", "format": "human",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -1061,12 +1061,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "info", "level": "info",
"path": "logs/devnet/kb_wallet/info.log", "path": "logs/devnet/kb-wallet/info.log",
"rotation": "daily", "rotation": "daily",
"format": "human", "format": "human",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -1074,12 +1074,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "error", "level": "error",
"path": "logs/devnet/kb_wallet/error.jsonl", "path": "logs/devnet/kb-wallet/error.jsonl",
"rotation": "daily", "rotation": "daily",
"format": "json", "format": "json",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -1645,7 +1645,7 @@
{ {
"name": "mainnet_research", "name": "mainnet_research",
"app": { "app": {
"name": "khadhroony-bot2", "name": "khadhroony-bot3",
"environment": "research", "environment": "research",
"auto_reconnect_default": false "auto_reconnect_default": false
}, },
@@ -1693,7 +1693,7 @@
"kb_pipeline", "kb_pipeline",
"kb-onchain-transport", "kb-onchain-transport",
"kb-store", "kb-store",
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -2689,12 +2689,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "debug", "level": "debug",
"path": "logs/mainnet_research/kb_wallet/debug.log", "path": "logs/mainnet_research/kb-wallet/debug.log",
"rotation": "daily", "rotation": "daily",
"format": "human", "format": "human",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -2702,12 +2702,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "info", "level": "info",
"path": "logs/mainnet_research/kb_wallet/info.log", "path": "logs/mainnet_research/kb-wallet/info.log",
"rotation": "daily", "rotation": "daily",
"format": "human", "format": "human",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -2715,12 +2715,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "error", "level": "error",
"path": "logs/mainnet_research/kb_wallet/error.jsonl", "path": "logs/mainnet_research/kb-wallet/error.jsonl",
"rotation": "daily", "rotation": "daily",
"format": "json", "format": "json",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -3210,7 +3210,7 @@
"enabled": true, "enabled": true,
"provider": "helius", "provider": "helius",
"cluster": "mainnet-beta", "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, "connect_timeout_ms": 4000,
"request_timeout_ms": 10000, "request_timeout_ms": 10000,
"max_idle_connections_per_host": 8, "max_idle_connections_per_host": 8,
@@ -3370,7 +3370,7 @@
"enabled": true, "enabled": true,
"provider": "helius", "provider": "helius",
"cluster": "mainnet-beta", "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, "connect_timeout_ms": 5000,
"request_timeout_ms": 10000, "request_timeout_ms": 10000,
"unsubscribe_timeout_ms": 1500, "unsubscribe_timeout_ms": 1500,
@@ -3486,7 +3486,7 @@
{ {
"name": "mainnet", "name": "mainnet",
"app": { "app": {
"name": "khadhroony-bot2", "name": "khadhroony-bot3",
"environment": "mainnet", "environment": "mainnet",
"auto_reconnect_default": false "auto_reconnect_default": false
}, },
@@ -3534,7 +3534,7 @@
"kb_pipeline", "kb_pipeline",
"kb-onchain-transport", "kb-onchain-transport",
"kb-store", "kb-store",
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -4530,12 +4530,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "debug", "level": "debug",
"path": "logs/mainnet/kb_wallet/debug.log", "path": "logs/mainnet/kb-wallet/debug.log",
"rotation": "daily", "rotation": "daily",
"format": "human", "format": "human",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -4543,12 +4543,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "info", "level": "info",
"path": "logs/mainnet/kb_wallet/info.log", "path": "logs/mainnet/kb-wallet/info.log",
"rotation": "daily", "rotation": "daily",
"format": "human", "format": "human",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -4556,12 +4556,12 @@
"enabled": true, "enabled": true,
"sink": "file", "sink": "file",
"level": "error", "level": "error",
"path": "logs/mainnet/kb_wallet/error.jsonl", "path": "logs/mainnet/kb-wallet/error.jsonl",
"rotation": "daily", "rotation": "daily",
"format": "json", "format": "json",
"ansi": false, "ansi": false,
"targets": [ "targets": [
"kb_wallet" "kb-wallet"
] ]
}, },
{ {
@@ -5051,7 +5051,7 @@
"enabled": true, "enabled": true,
"provider": "helius", "provider": "helius",
"cluster": "mainnet-beta", "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, "connect_timeout_ms": 4000,
"request_timeout_ms": 10000, "request_timeout_ms": 10000,
"max_idle_connections_per_host": 8, "max_idle_connections_per_host": 8,
@@ -5211,7 +5211,7 @@
"enabled": true, "enabled": true,
"provider": "helius", "provider": "helius",
"cluster": "mainnet-beta", "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, "connect_timeout_ms": 5000,
"request_timeout_ms": 10000, "request_timeout_ms": 10000,
"unsubscribe_timeout_ms": 1500, "unsubscribe_timeout_ms": 1500,

View File

@@ -56,7 +56,7 @@ La validation se fait en deux étapes :
## Secrets et placeholders ## 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 ## Exports TS-rs

View File

@@ -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] #[test]
fn example_config_parses_and_resolves_active_profile() { fn example_config_parses_and_resolves_active_profile() {
let config_result = super::parse_config_json(EXAMPLE_CONFIG); let config_result = super::parse_config_json(EXAMPLE_CONFIG);