0.3.15-pre.010-fix.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md -->
|
||||
<!-- version: 17 -->
|
||||
<!-- version: 19 -->
|
||||
|
||||
# Validation v0.3.15 — Raw Transaction Ingest Desk
|
||||
|
||||
@@ -431,7 +431,13 @@ Le profil `publicnode_mainnet` contient deux endpoints HTTP de même rôle : Pub
|
||||
|
||||
### `pre.010` — monitoring
|
||||
|
||||
Snapshots/events/monitoring lifecycle-health-activity-backpressure-reconnect-replay-gaps-repair.
|
||||
Implémenté dans l'assemblage de tranche. Le nouveau module `route_monitoring` projette les snapshots Worker existants vers un DTO latest-value source-neutral comprenant lifecycle, health, activity, admission/persistence, backpressure, hydration pending, processing frontier, continuité, source counts, reconnect/replay, gaps et repair. Le Worker expose uniquement les cinq getters de continuité qui manquaient à la façade publique de son snapshot ; aucun type ni comportement d'acquisition n'est ajouté.
|
||||
|
||||
Le Tauri backend démarre un monitor de snapshot indépendant pour chaque Worker lancé et émet `ksp-raw-ingest-route-status` vers la fenêtre principale. La commande `get_route_monitoring` permet une resynchronisation complète sans dépendre de la livraison de tous les événements intermédiaires. Le runtime conserve le dernier snapshot terminal sûr de chaque route jusqu'à un nouveau Start de la même identité ou au changement de session réseau.
|
||||
|
||||
Sécurité attendue : aucune URL, credential, provider physique, source key, `WorkerId`, handle, URI Store, signature ou payload RAW dans le DTO. Les `u64` traversant IPC sont encodés en texte décimal ; les cardinalités bornées sont projetées en `u32`. Le monitor d'observabilité ne possède ni Store ni lifecycle et ne peut pas arrêter/redémarrer un Worker.
|
||||
|
||||
La consommation UI détaillée de ces snapshots et le tracing TypeScript associé restent `pre.011`.
|
||||
|
||||
### `pre.011` — frontend
|
||||
|
||||
@@ -647,3 +653,31 @@ La cause Mainnet est une race interne commune : le superviseur Worker ferme le r
|
||||
|
||||
Validation attendue après `fix.003` : le drain coopératif ne ferme plus l’admission au début ; il consomme la file jusqu’à destruction naturelle des senders après propagation du Stop. Le hard-close reste dans le chemin `shutdown_drain_timeout`. Un test unitaire force cette fenêtre de propagation et exige `Stopped` sans source failure.
|
||||
|
||||
### `pre.010-fix.001` — faux positif du canari de sécurité monitoring
|
||||
|
||||
Le gate opérateur de `0.3.15-pre.010` confirme que la tranche compile et que son comportement runtime Mainnet attendu est opérationnel, mais détecte un unique échec déterministe dans le canari Desktop Security :
|
||||
|
||||
```text
|
||||
pre_010_monitoring_projection_is_source_neutral_payload_free_and_javascript_exact
|
||||
FAIL : monitoring projection exposes forbidden marker raw_transaction
|
||||
```
|
||||
|
||||
Le marqueur est trop large : `route_monitoring.rs` doit nécessairement référencer `ksp_worker_raw_transaction_ingest_lib` et les chemins d'export TypeScript propres à `ksp-app-raw-transaction-ingest-desk`. Ces identifiants contiennent la chaîne `raw_transaction` sans exposer aucune donnée RAW.
|
||||
|
||||
Le gate opérateur confirme en parallèle :
|
||||
|
||||
```text
|
||||
audit Rust workspace PASS
|
||||
audit Markdown PASS (318 tables / 212 fichiers)
|
||||
cargo check --workspace PASS
|
||||
Clippy workspace strict -D warnings PASS
|
||||
tests Worker PASS : 160 unitaires + suites d'intégration
|
||||
Raw Transaction Ingest Desk 1 seul échec : canari desktop_security ci-dessus
|
||||
workspace all-targets/all-features même échec déterministe
|
||||
cargo tauri dev lancé et application opérationnelle
|
||||
```
|
||||
|
||||
Le live Mainnet exécuté pendant ce gate confirme aussi que `yellowstone-hydrated` et `http-block-polling` peuvent fonctionner simultanément sur le Store partagé, puis terminer toutes deux en `Stopped` après Stop ciblé. Aucun fault `source.admission_closed` n'est réapparu.
|
||||
|
||||
Le correctif ne modifie pas la projection runtime. Il sépare le canari en deux niveaux : les marqueurs physiques/secrets (`endpoint_url`, `connection_uri`, `api_key`, `source_key`, `worker_id`, `x-token`) restent interdits dans tout `route_monitoring.rs`, tandis que les marqueurs RAW (`raw_transaction`, `signature`, `payload`, `canonical_bytes`, `wire_bytes`, `transaction_bytes`) sont interdits dans la seule surface déclarative de `RawIngestRouteMonitoringDto`. Le test vérifie explicitement les bornes de cette déclaration. Il reste donc strict sur l'IPC sans confondre les noms normaux des crates/bindings avec des champs réellement projetés.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user