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

175 lines
6.1 KiB
Markdown

<!-- file: deltas/0.3.15/pre.011.md -->
<!-- version: 1 -->
# Delta `0.3.15-pre.011`
## Base
```text
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 :
```text
ksp-raw-ingest-route-status
```
et resynchronise explicitement via :
```text
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 :
```text
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 :
```text
lifecycle
health
activity
persisted total
sources active / total
open gap count
```
Le contrôle `Supervision` ouvre un détail borné couvrant :
```text
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 :
```text
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 :
```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
```
Ils vérifient notamment que le module Rust de production du Desk reste exactement celui de `pre.010`.
## Version
```text
workspace.package.version : 0.3.15-pre.11
root Cargo header counter : 620
```
## Validation d'assemblage
Exécuté dans l'environnement d'assemblage :
```text
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 :
```bash
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 :
```text
deltas/0.3.15/pre.011.md
```
Modifications :
```text
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.