v0.2.11-pre.010-fix.001
This commit is contained in:
118
deltas/0.2.11/pre.010-fix.001.md
Normal file
118
deltas/0.2.11/pre.010-fix.001.md
Normal file
@@ -0,0 +1,118 @@
|
||||
<!-- file: deltas/0.2.11/pre.010-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.2.11-pre.010-fix.001` — Canari ownership logging du hardening
|
||||
|
||||
## 1. Base requise
|
||||
|
||||
Ce correctif s'applique exclusivement après `0.2.11-pre.010`.
|
||||
|
||||
Version Cargo attendue à l'entrée :
|
||||
|
||||
```text
|
||||
0.2.11-pre.10
|
||||
```
|
||||
|
||||
Version Cargo de sortie :
|
||||
|
||||
```text
|
||||
0.2.11-pre.10.fix.1
|
||||
```
|
||||
|
||||
## 2. Motif du correctif
|
||||
|
||||
Le gate opérateur du `2026-08-26` a produit :
|
||||
|
||||
```text
|
||||
cargo fmt --all exécuté
|
||||
audit Rust workspace PASS
|
||||
audit Markdown PASS, 124 tables / 118 files
|
||||
cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets PASS
|
||||
cargo test -p ksp-offchain-transport-lib PASS
|
||||
cargo test -p ksp-config-lib PASS
|
||||
cargo test --workspace FAIL
|
||||
```
|
||||
|
||||
L'échec workspace provient du canari global :
|
||||
|
||||
```text
|
||||
ksp-logging-lib/tests/ownership.rs
|
||||
workspace_crates_do_not_bypass_ksp_logging_facade
|
||||
```
|
||||
|
||||
Le nouveau `tests/security_hardening.rs` de `pre.010` contenait lui-même le chemin lexical interdit dans une assertion destinée à vérifier son absence dans les modules `market_price_*`. Le scanner global inspectant tous les fichiers Rust, il a correctement détecté ce littéral dans le test et l'a interprété comme un bypass.
|
||||
|
||||
## 3. Correction
|
||||
|
||||
Le canari local Off-chain ne duplique plus la vérification de ownership logging.
|
||||
|
||||
`tests/security_hardening.rs` continue de vérifier ses invariants propres :
|
||||
|
||||
```text
|
||||
redaction des API keys dans Debug
|
||||
absence de lecture directe de std::env dans market_price_*
|
||||
absence de as_f64 comme vérité canonique de prix
|
||||
absence d'URL provider libre dans Config
|
||||
absence de rate-limit provider libre dans Config
|
||||
```
|
||||
|
||||
L'autorité unique pour interdire les chemins logging directs dans les crates du workspace reste :
|
||||
|
||||
```text
|
||||
crates/ksp-logging-lib/tests/ownership.rs
|
||||
```
|
||||
|
||||
Il n'est ni nécessaire ni souhaitable de contourner ce scanner en fragmentant ou construisant dynamiquement la chaîne interdite dans un autre test.
|
||||
|
||||
## 4. Scope fonctionnel inchangé
|
||||
|
||||
Ce fix ne modifie pas :
|
||||
|
||||
```text
|
||||
les huit providers V1
|
||||
HTTP commun
|
||||
rate limits / cooldowns
|
||||
MarketPriceService
|
||||
refresh / refresh_many / refresh_all
|
||||
Config Off-chain Transport
|
||||
numeric safety
|
||||
parsing timestamps
|
||||
provenance
|
||||
redaction runtime
|
||||
API publique #[non_exhaustive]
|
||||
endpoints ou credentials
|
||||
smoke live
|
||||
```
|
||||
|
||||
Aucune nouvelle dépendance n'est ajoutée.
|
||||
|
||||
## 5. Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-offchain-transport-lib/tests/security_hardening.rs
|
||||
docs/plans/018-V0_2_11_OFFCHAIN_PRICE_TRANSPORT_PLAN.md
|
||||
docs/validation/014-V0_2_11_OFFCHAIN_PRICE_TRANSPORT.md
|
||||
```
|
||||
|
||||
## 6. Fichier ajouté
|
||||
|
||||
```text
|
||||
deltas/0.2.11/pre.010-fix.001.md
|
||||
```
|
||||
|
||||
## 7. Gate opérateur requis
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.11
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-offchain-transport-lib
|
||||
cargo test -p ksp-config-lib
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
`pre.011` ne doit commencer qu'après ce gate propre.
|
||||
Reference in New Issue
Block a user