0.3.15-pre.011
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md -->
|
||||
<!-- version: 17 -->
|
||||
<!-- version: 18 -->
|
||||
|
||||
# Plan v0.3.15 — Raw Transaction Ingest Desk
|
||||
|
||||
@@ -817,13 +817,19 @@ Le relais Tauri suit le pattern KSP déjà utilisé par Backfill Desk : l'évén
|
||||
|
||||
Les compteurs, séquences et slots issus de `u64` sont sérialisés en texte décimal pour éviter toute perte de précision JavaScript. Les cardinalités bornées `usize` sont converties en `u32` avec échec fermé si elles deviennent non représentables. Le Worker ouvre uniquement cinq getters publics source-neutral déjà portés par son snapshot (`continuity_policy_observed`, `continuity_frontier_slot`, `continuity_has_open_gaps`, `failed_source_losses_reconciled`, `future_target_coverage`) ; aucune logique d'acquisition, retry, repair ou persistence n'est déplacée.
|
||||
|
||||
Le frontend détaillé ne consomme pas encore cette surface pour construire la vue de supervision complète : ce rendu et son tracing TypeScript restent `pre.011`.
|
||||
Cette surface est désormais le contrat backend figé consommé par le frontend de `pre.011`; aucune extension de l'acquisition n'est nécessaire pour construire la supervision opérateur.
|
||||
|
||||
Budget cible : une tranche observabilité.
|
||||
|
||||
### `pre.011` — frontend fonctionnel et tracing TypeScript
|
||||
|
||||
Finaliser l'UI de sélection/supervision et tracer les interactions frontend conformément aux règles Desk KSP, sans journaliser de valeurs sensibles ni dupliquer la logique Worker.
|
||||
**État : implémenté.** Le frontend consomme maintenant `ksp-raw-ingest-route-status` et `get_route_monitoring` sans polling métier ni seconde logique d'acquisition. Les latest values mettent à jour les cartes de routes, les états actifs/terminaux, le verrouillage du sélecteur réseau et l'indicateur du Store partagé.
|
||||
|
||||
Chaque route disposant d'un snapshot affiche un résumé source-neutral (`health`, `activity`, persisted, sources actives, gaps). Le contrôle `Supervision` ouvre un détail borné couvrant pipeline/admission/persistence, entity/observation outcomes, backpressure, hydration/pending/frontier, source lifecycle/reconnect/replay, continuité, gaps et compteurs de repair. Les slots/séquences/compteurs `u64` restent affichés comme texte décimal exact ; le frontend ne parse pas ces valeurs en `number`.
|
||||
|
||||
Le bouton `Resync monitoring` relit explicitement la latest value backend et réconcilie les cartes après événement manqué. Start et Stop déclenchent également une resynchronisation après leur acknowledgement/terminal. Le tracing TypeScript couvre clics, navigation, sélection profil/commitment/route, Start/Stop, événements monitoring, refresh/resync et IPC avec seulement IDs logiques sûrs, lifecycle codes, séquences et counts ; aucun endpoint, credential, source key, Worker handle, signature ou payload RAW n'est journalisé.
|
||||
|
||||
Aucun module Rust de production n'est ajouté dans cette tranche ; `pre.012` reste propriétaire des races Start/Stop, stale inventory, shutdown applicatif et hardening IPC hostile.
|
||||
|
||||
Budget cible : une tranche frontend.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md -->
|
||||
<!-- version: 19 -->
|
||||
<!-- version: 20 -->
|
||||
|
||||
# Validation v0.3.15 — Raw Transaction Ingest Desk
|
||||
|
||||
@@ -681,3 +681,51 @@ Le live Mainnet exécuté pendant ce gate confirme aussi que `yellowstone-hydrat
|
||||
|
||||
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.
|
||||
|
||||
### `pre.011` — frontend fonctionnel et tracing TypeScript
|
||||
|
||||
Base : `0.3.15-pre.010-fix.001`, validée par le gate opérateur du 15 septembre 2026. Le correctif de canari `desktop_security` est confirmé propre ; les audits Rust/Markdown, `cargo check --workspace`, Clippy strict, les suites Raw Transaction Ingest Desk/Worker et le workspace all-targets/all-features sont passés avant le lancement Tauri. Les smokes opérateur Mainnet montrent également Yellowstone et HTTP Block Polling productifs puis terminalement `Stopped` après Stop ciblé.
|
||||
|
||||
Périmètre `pre.011` : frontend uniquement au-dessus du contrat latest-value `pre.010`.
|
||||
|
||||
```text
|
||||
écoute Tauri ksp-raw-ingest-route-status
|
||||
resynchronisation get_route_monitoring
|
||||
Map frontend latest-value par profile_id + route_id
|
||||
réconciliation des active/last runtimes depuis le snapshot Worker projeté
|
||||
résumé route : lifecycle / health / activity / persisted / sources / gaps
|
||||
détail supervision : admission / persistence / outcomes / backpressure / hydration / frontier
|
||||
sources : active / reconnecting / failed / reconnect / replay / continuity-gap counters
|
||||
continuité : frontier / open gaps / failed-source reconciliation / future coverage
|
||||
gaps bornés : range / state / reason / latest repair method
|
||||
repair totals : replay / redundant coverage / HTTP scan / block fetch / transaction hydration
|
||||
resync explicite après Start, Stop et action opérateur
|
||||
Store header dérivé du nombre de Workers actifs, sans exposer de handle Store
|
||||
```
|
||||
|
||||
Le frontend ne transforme jamais les compteurs, slots ou séquences `u64` en `number`; les chaînes décimales `pre.010` sont rendues directement. Les cardinalités `u32` restent les seules valeurs numériques de présentation.
|
||||
|
||||
Tracing TypeScript ajouté/fermé :
|
||||
|
||||
```text
|
||||
clics génériques sans valeur de contrôle
|
||||
navigation tabs
|
||||
sélection profil logique avec counts sûrs
|
||||
sélection commitment
|
||||
sélection route de supervision avec route_id/family sûrs
|
||||
Start/Stop avec route_id/lifecycle
|
||||
latest-value event avec route_id/sequence/state/terminal
|
||||
refresh/resync monitoring avec source/counts
|
||||
IPC via invokeKsp avec command id seulement
|
||||
```
|
||||
|
||||
Les traces ne sérialisent jamais le DTO monitoring complet et ne journalisent aucun gap slot/range, endpoint, URL, credential, provider secret, source key, WorkerId, signature, transaction bytes ou payload RAW.
|
||||
|
||||
Canaris ajoutés :
|
||||
|
||||
```text
|
||||
pre_011_frontend_consumes_latest_value_monitoring_and_renders_full_route_supervision
|
||||
pre_011_frontend_monitoring_tracing_is_source_neutral_and_does_not_log_raw_material
|
||||
pre_011_frontend_supervision_closes_planned_ui_without_backend_module_growth
|
||||
```
|
||||
|
||||
Aucune modification Config, Transport, Store, Worker ou Common RAW n'est introduite par `pre.011`. Le module Rust de production du Desk reste exactement celui de `pre.010`; la tranche suivante `pre.012` reste dédiée aux races/shutdown/sécurité IPC.
|
||||
|
||||
Reference in New Issue
Block a user