diff --git a/README.md b/README.md index d20dd19..f9ef8e0 100644 --- a/README.md +++ b/README.md @@ -501,7 +501,7 @@ Runtime Intelligence boundary: - `collection_mode` starts as `single_result_export`; EdgeEnv owns telemetry history accumulation and comparability-first regression. - Missing device telemetry remains explicit in `missing_fields` instead of being fabricated. - `runtime_telemetry.coverage` records expected / observed / missing telemetry fields, with `comparability_owner: edgeenv` and `missing_telemetry_is_failure: false`. -- `runtime_telemetry.history_seed` uses `inferedge-runtime-telemetry-history-seed-v1`, keeps `registry_owner: edgeenv`, `decision_owner: lab`, `production_monitoring: false`, and exposes a `single_result_to_history` replay point that mirrors the Runtime telemetry timestamp, sequence id, latency values, operation flags, power mode, and telemetry source for EdgeEnv accumulation. It also carries a compact `run_config` snapshot so EdgeEnv can keep replay/comparability evidence with the seed without turning Runtime into a registry. +- `runtime_telemetry.history_seed` uses `inferedge-runtime-telemetry-history-seed-v1`, keeps `registry_owner: edgeenv`, `decision_owner: lab`, `production_monitoring: false`, and exposes a `single_result_to_history` replay point that mirrors the Runtime telemetry timestamp, sequence id, latency values, operation flags, power mode, and telemetry source for EdgeEnv accumulation. It also carries a compact `run_config` snapshot, including input/preprocess and Jetson clocks markers, so EdgeEnv can keep replay/comparability evidence with the seed without turning Runtime into a registry. - EdgeEnv validates and preserves this seed as `runtime_telemetry_history_seed`; Lab may display the preserved marker in a Runtime Intelligence risk report, but Runtime does not own the registry or deployment decision. - Runtime exports telemetry evidence only. AIGuard may turn it into deterministic anomaly evidence, and Lab remains the deployment decision owner. diff --git a/scripts/smoke_default.sh b/scripts/smoke_default.sh index d12b000..feb3fac 100755 --- a/scripts/smoke_default.sh +++ b/scripts/smoke_default.sh @@ -128,7 +128,9 @@ assert history_seed["run_config"]["warmup"] == data["run_config"]["warmup"], his assert history_seed["run_config"]["runs"] == data["run_config"]["runs"], history_seed assert history_seed["run_config"]["timeout_ms"] == data["run_config"]["timeout_ms"], history_seed assert history_seed["run_config"]["input_mode"] == health["input_mode"], history_seed +assert history_seed["run_config"]["input_preprocess"] == health["input_preprocess"], history_seed assert history_seed["run_config"]["power_mode"] == telemetry["power_mode"], history_seed +assert history_seed["run_config"]["jetson_clocks"] == data["run_config"]["jetson_clocks"], history_seed assert history_seed["points"][0]["telemetry_timestamp"] == telemetry["telemetry_timestamp"], history_seed assert history_seed["points"][0]["execution_sequence_id"] == telemetry["execution_sequence_id"], history_seed assert history_seed["points"][0]["mean_ms"] == telemetry["latency"]["mean_ms"], history_seed @@ -218,7 +220,9 @@ assert history_seed["run_config"]["batch"] == data["run_config"]["batch"], histo assert history_seed["run_config"]["runs"] == data["run_config"]["runs"], history_seed assert history_seed["run_config"]["timeout_ms"] == data["run_config"]["timeout_ms"], history_seed assert history_seed["run_config"]["input_mode"] == health["input_mode"], history_seed +assert history_seed["run_config"]["input_preprocess"] == health["input_preprocess"], history_seed assert history_seed["run_config"]["power_mode"] == telemetry["power_mode"], history_seed +assert history_seed["run_config"]["jetson_clocks"] == data["run_config"]["jetson_clocks"], history_seed assert history_seed["points"][0]["p99_ms"] == telemetry["latency"]["p99_ms"], history_seed assert history_seed["points"][0]["deadline_missed"] == telemetry["operation"]["deadline_missed"], history_seed assert "runtime_telemetry_recorded" in events, events diff --git a/tests/test_agent_runtime_result_contract.py b/tests/test_agent_runtime_result_contract.py index b6f6e81..2523c2f 100644 --- a/tests/test_agent_runtime_result_contract.py +++ b/tests/test_agent_runtime_result_contract.py @@ -242,7 +242,12 @@ def test_runtime_output_records_optional_agent_block_when_manifest_is_provided(s self.assertEqual(history_seed["run_config"]["runs"], result["run_config"]["runs"]) self.assertEqual(history_seed["run_config"]["timeout_ms"], result["run_config"]["timeout_ms"]) self.assertEqual(history_seed["run_config"]["input_mode"], result["runtime_health_snapshot"]["input_mode"]) + self.assertEqual( + history_seed["run_config"]["input_preprocess"], + result["runtime_health_snapshot"]["input_preprocess"], + ) self.assertEqual(history_seed["run_config"]["power_mode"], telemetry["power_mode"]) + self.assertEqual(history_seed["run_config"]["jetson_clocks"], result["run_config"]["jetson_clocks"]) point = history_seed["points"][0] self.assertEqual(point["execution_sequence_id"], telemetry["execution_sequence_id"]) self.assertEqual(point["telemetry_timestamp"], telemetry["telemetry_timestamp"])