0.3.15-pre.011
This commit is contained in:
174
deltas/0.3.15/pre.011.md
Normal file
174
deltas/0.3.15/pre.011.md
Normal file
@@ -0,0 +1,174 @@
|
||||
<!-- 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.
|
||||
Reference in New Issue
Block a user