0.3.15-pre.011

This commit is contained in:
2026-09-16 09:07:31 +02:00
parent e919945d1e
commit a248be04ca
12 changed files with 807 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_contract.rs
// version: 7
// version: 8
//! Desktop scaffold contract canaries for Raw Transaction Ingest Desk.
@@ -217,3 +217,39 @@ fn pre_010_runtime_monitoring_is_backend_owned_event_driven_and_resynchronizable
assert!(state.contains("route_monitoring(&self)"));
assert!(state.contains("pre.010-runtime-monitoring"));
}
#[test]
fn pre_011_frontend_consumes_latest_value_monitoring_and_renders_full_route_supervision() {
let main = read_text(app_root().join("frontend/ts/main.ts").as_path());
for required in [
"listen<RawIngestRouteMonitoringDto>",
"ksp-raw-ingest-route-status",
"get_route_monitoring",
"routeMonitoring",
"syncRouteMonitoring",
"persistedTotal",
"sourceActive",
"openGapCount",
"repairTransactionHydrationTotal",
"route supervision selected",
"route monitoring resynchronization requested",
] {
assert!(main.contains(required), "missing pre.011 frontend monitoring marker {required}");
}
let html = read_text(app_root().join("frontend/main.html").as_path());
for required in [
"id=\"refreshRouteMonitoring\"",
"id=\"routeMonitoringDetail\"",
"id=\"monitorPersistedTotal\"",
"id=\"monitorSourceCounts\"",
"id=\"monitorContinuityFrontier\"",
"id=\"monitorGapList\"",
"id=\"headerStore\"",
] {
assert!(html.contains(required), "missing pre.011 supervision UI marker {required}");
}
let styles = read_text(app_root().join("frontend/sass/_app.scss").as_path());
for required in [".app-route-monitoring-summary {", ".app-monitoring-detail {", ".app-monitoring-list dd", ".app-monitoring-gaps"] {
assert!(styles.contains(required), "missing pre.011 bounded supervision style {required}");
}
}

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/desktop_security.rs
// version: 7
// version: 8
//! Desktop security canaries for the Raw Transaction Ingest Desk scaffold.
@@ -160,3 +160,38 @@ fn pre_010_monitoring_projection_is_source_neutral_payload_free_and_javascript_e
assert!(!dto_surface.contains(forbidden), "monitoring DTO exposes forbidden RAW marker {forbidden}");
}
}
#[test]
fn pre_011_frontend_monitoring_tracing_is_source_neutral_and_does_not_log_raw_material() {
let main = read_text(app_root().join("frontend/ts/main.ts").as_path());
for required in [
"route supervision selected",
"route monitoring latest value applied",
"route monitoring resynchronization requested",
"route monitoring refresh button clicked",
"commitment selection changed",
"routeId",
"sequence",
"statusCount",
] {
assert!(main.contains(required), "missing pre.011 safe tracing marker {required}");
}
for forbidden in [
"endpointUrl",
"connectionUri",
"apiKey",
"sourceKey",
"workerId",
"x-token",
"rawTransaction",
"transactionPayload",
"canonicalBytes",
"wireBytes",
"transactionBytes",
"signature",
] {
assert!(!main.contains(forbidden), "pre.011 frontend exposes forbidden marker {forbidden}");
}
assert!(!main.contains("frontendTrace(\"main\", \"Raw Transaction Ingest Desk route monitoring latest value applied\", status"));
assert!(!main.contains("frontendDebug(\"main\", \"Raw Transaction Ingest Desk route monitoring resynchronization completed\", statuses"));
}

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-raw-transaction-ingest-desk/tests/release_completeness.rs
// version: 9
// version: 10
//! Release-completeness canaries for Raw Transaction Ingest Desk Start-resource reconstruction.
@@ -167,3 +167,24 @@ fn pre_010_latest_value_monitoring_reuses_worker_snapshot_source_and_tauri_event
assert!(runtime.contains("monitoring_statuses"));
assert!(runtime.contains("last_monitoring"));
}
#[test]
fn pre_011_frontend_supervision_closes_planned_ui_without_backend_module_growth() {
let lib = read_text(app_root().join("src/lib.rs").as_path());
assert_eq!(lib.matches("mod ").count(), 16);
let main = read_text(app_root().join("frontend/ts/main.ts").as_path());
for required in [
"RawIngestRouteMonitoringDto",
"bindRouteMonitoring",
"renderMonitoringDetail",
"syncRouteMonitoring(\"startup\")",
"syncRouteMonitoring(\"start\")",
"syncRouteMonitoring(\"stop\")",
] {
assert!(main.contains(required), "missing pre.011 frontend completeness marker {required}");
}
let html = read_text(app_root().join("frontend/main.html").as_path());
for required in ["Supervision route", "Pipeline / persistence", "Sources / continuité / repair", "Gaps courants / récents"] {
assert!(html.contains(required), "missing pre.011 operator supervision surface {required}");
}
}