Files
khadhroony-solana-project/deltas/0.3.15/pre.011.md
2026-09-16 09:07:31 +02:00

6.1 KiB

Delta 0.3.15-pre.011

Base

base archive : ksp-general-0.3.15-pre.010-fix.001.zip
base SHA-256 : 8a8f550cb5efbca5b8f7bd2f7ed0ed467a35b2e636b002fa2705bf302113bf5f
base version : 0.3.15-pre.10.fix.1

Le gate opérateur du 15 septembre 2026 confirme la base : audits Rust/Markdown propres, cargo check --workspace, Clippy strict, suites ciblées Raw Transaction Ingest Desk/Worker et workspace all-targets/all-features sans échec. Le canari desktop_security corrigé par pre.010-fix.001 passe. Le lancement Tauri et les essais Mainnet confirment aussi Yellowstone et HTTP Block Polling productifs puis terminalement Stopped après Stop ciblé.

Objectif

Finaliser le frontend fonctionnel de sélection/supervision au-dessus du contrat latest-value pre.010, sans modifier Config, Transport, Store, Worker, Common RAW ni les stratégies d'acquisition.

Monitoring frontend

Le frontend écoute désormais :

ksp-raw-ingest-route-status

et resynchronise explicitement via :

get_route_monitoring

Une Map latest-value indexée par profile_id + route_id conserve les projections sûres. Chaque événement ou resync réconcilie également les activeRuntimes / lastRuntimes afin que :

Starting / Running / Stopping -> route active
Stopped / Faulted             -> route terminale
sélecteur réseau              -> verrouillé tant qu'au moins un Worker est actif
header Store                  -> idle/shared selon le nombre de Workers actifs

Start et Stop déclenchent une resynchronisation après leur acknowledgement/terminal afin de couvrir une éventuelle perte d'événement UI sans introduire de polling métier.

Supervision opérateur

Chaque route disposant d'un snapshot affiche dans sa carte :

lifecycle
health
activity
persisted total
sources active / total
open gap count

Le contrôle Supervision ouvre un détail borné couvrant :

identity logique : route / network / commitment / sequence
terminal fault domain/code sûrs
admission queue depth/capacity
persistence in-flight/concurrency
admitted / canonicalized / persisted
entity inserted / already present / purged skipped
observation inserted / already present
content/store/source failure counters
backpressure waits
hydration pending
processing frontier / oldest pending
source state / active / reconnecting / failed
reconnect / replay attempt / continuity-gap counters
continuity policy/frontier/open gaps/future coverage
failed-source loss reconciliation
open / repairing / repaired / unresolved gaps
bounded current/recent gap details
replay / redundant coverage / HTTP scan / block fetch / transaction hydration repair totals

Les slots, séquences et compteurs u64 restent rendus directement sous forme de texte décimal. Le frontend ne les convertit jamais en number.

Tracing TypeScript

La matrice prévue est matérialisée pour :

clics génériques sans valeur de contrôle
navigation tabs
sélection profil/réseau avec counts sûrs
sélection commitment
sélection route de supervision avec route_id/family sûrs
Start / Stop avec route_id + lifecycle outcome
monitoring event avec route_id + sequence + state + terminal
refresh/resync avec source + status/active counts
IPC avec command id uniquement via invokeKsp

Le DTO monitoring complet n'est jamais sérialisé dans une trace. Aucun endpoint, URL, credential, source key, WorkerId, signature, transaction bytes, gap range ou payload RAW n'est journalisé.

Canaris

Trois canaris de Desk sont ajoutés :

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

Ils vérifient notamment que le module Rust de production du Desk reste exactement celui de pre.010.

Version

workspace.package.version : 0.3.15-pre.11
root Cargo header counter  : 620

Validation d'assemblage

Exécuté dans l'environnement d'assemblage :

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.3.15

Un contrôle TypeScript strict auxiliaire a aussi compilé main.ts, frontend_log.ts et invoke.ts avec des déclarations temporaires reproduisant la surface des bindings ts-rs de pre.010; aucun diagnostic TypeScript n'a été produit. Ce contrôle ne remplace pas le build Tauri officiel.

Cargo/rustfmt ne sont pas disponibles dans l'environnement d'assemblage ; aucun gate Cargo de pre.011 n'est déclaré PASS ici.

Le gate opérateur attendu reste :

cargo fmt --all
cargo fmt --all -- --check
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.3.15
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-app-raw-transaction-ingest-desk --all-targets --all-features
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
cargo test --workspace --all-targets --all-features
(cd crates/ksp-app-raw-transaction-ingest-desk && cargo tauri dev)

Aucun npm run build manuel n'est demandé ; le cycle frontend reste piloté par Tauri/Vite.

Inventaire exact du delta

Ajout :

deltas/0.3.15/pre.011.md

Modifications :

Cargo.toml
crates/ksp-app-raw-transaction-ingest-desk/README.md
crates/ksp-app-raw-transaction-ingest-desk/USAGE.md
crates/ksp-app-raw-transaction-ingest-desk/frontend/main.html
crates/ksp-app-raw-transaction-ingest-desk/frontend/sass/_app.scss
crates/ksp-app-raw-transaction-ingest-desk/frontend/ts/main.ts
crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_contract.rs
crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_security.rs
crates/ksp-app-raw-transaction-ingest-desk/tests/release_completeness.rs
docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md
docs/validation/032-V0_3_15_RAW_TRANSACTION_INGEST_DESK.md

Suppressions : aucune.