{
  "schema_version": 1,
  "channel": "homelab-runtime",
  "command_id": "AUTOMATIC-FIXED-RESULT-ANCHOR-PLAN-FIX1-20260728T194512Z",
  "status": "OK",
  "rc": 0,
  "host": "pve01",
  "mode": "verify",
  "component": "automatic-fixed-result-anchor-plan",
  "started_at_utc": "2026-07-28T19:51:59Z",
  "finished_at_utc": "2026-07-28T19:52:10Z",
  "reference_register_checked": true,
  "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
  "error_register_checked": true,
  "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
  "command_sha256": "caee96c5f93f5da7f3be667c35bf1a84efb963c8c2101bafbea5570d5c77377b",
  "duplicate_failed_command_blocked": false,
  "block_reason": null,
  "execution_started": true,
  "change_declared": false,
  "result_contract_valid": true,
  "result_contract_status": null,
  "result_contract_error": null,
  "command_rc": 0,
  "changes_made": false,
  "rollback_started": false,
  "rollback_restored": null,
  "mutation_outcome": "NO_MUTATION",
  "sanitized": true,
  "secrets_included": false,
  "private_addresses_included": false,
  "raw_evidence_retained_locally": true,
  "raw_evidence_sha256": "f1c7c7873bf66bd08e5ddb3a88c3939db7935cf1f9cbd2180e1da712125c8433",
  "sanitized_output_sha256": "f1c7c7873bf66bd08e5ddb3a88c3939db7935cf1f9cbd2180e1da712125c8433",
  "output_truncated_in_json": false,
  "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
  "output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"AUTOMATIC-FIXED-RESULT-ANCHOR-PLAN-FIX1-20260728T194512Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"PLAN_SHA256\":\"a8e505c40b43b03cff18748d511d8d3125759e0129a5693c5083cab54d194797\",\"adapter_changed\":false,\"backup_changed\":false,\"changes_made\":false,\"cluster_changed\":false,\"command_id\":\"AUTOMATIC-FIXED-RESULT-ANCHOR-PLAN-FIX1-20260728T194512Z\",\"edge_changed\":false,\"gitea_changed\":false,\"minio_changed\":false,\"observations\":{\"current_lookup_sha256\":\"17f8d2a2ea219cdc02b0f8e821f8054b05c01de1253419b3d23349a2d383889c\",\"current_unit_sha256\":\"4bcc607fd457313f75373ec3d8ec20e7020f13c7cb8a9523fd988a24b0f6609d\",\"live_candidate\":{\"capsule_sha256\":\"c0d917500766b30adfbf177abd8fc0c66373f7df251635c83317781ea1003a7f\",\"command_id\":\"AUTOMATIC-FIXED-RESULT-ANCHOR-PLAN-20260728T192809Z\",\"exact_http\":200,\"fixed_alias_http\":200,\"full_output_present\":true,\"health\":{\"ignored_states\":2,\"invalid_results\":49,\"schema\":1,\"source\":\"local-adapter-state\",\"status\":\"ok\",\"terminal_candidates\":72,\"valid_results\":23},\"health_http\":200,\"result_sequence\":\"42d5d25c4a1a8784e7e49a6f4c158b750a5e757ee5874a36043f0623fef819c0\",\"source\":\"fixed-local-latest-anchor\",\"state_scan\":{\"ignored_states\":2,\"invalid_results\":49,\"valid_results\":23}},\"lookup_service\":{\"Group\":\"homelab-result-lookup\",\"MainPID\":\"1131499\",\"NRestarts\":\"0\",\"User\":\"homelab-result-lookup\"},\"newest_terminal\":{\"capsule_sha256\":\"c0d917500766b30adfbf177abd8fc0c66373f7df251635c83317781ea1003a7f\",\"command_id\":\"AUTOMATIC-FIXED-RESULT-ANCHOR-PLAN-20260728T192809Z\",\"finished_at_utc\":\"2026-07-28T19:35:57.352172+00:00\",\"state_path_sha256\":\"d7574ecf7202f08e6b69481499f1864fb564adbe5900db4917bf03187e31af05\"},\"public_route_before_apply\":{\"body_sha256\":\"d6c66c39e34849b5551282bfa922255d2576fd273a073c2fb65460849c0e936b\",\"http\":404},\"target_lookup_sha256\":\"9979838f12ce27d74bdd554b6ffa409863ffb06c7456d9e71155b87c1598eb60\",\"target_unit_sha256\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"terminal_state_count\":72},\"plan\":{\"anti_regression\":[\"malformed JSON historical state does not break health\",\"historical terminal state with missing runner does not break latest\",\"newest terminal invalid state returns 409 instead of stale fallback\",\"exact valid result works with unrelated invalid history\",\"flattened and nested contracts both work\",\"full output and PLAN_SHA256 are returned\"],\"automatic_workflow\":[\"User runs any future .hcmd\",\"Adapter writes normal terminal state and runner.json\",\"User writes only \\u0433\\u043e\\u0442\\u043e\\u0432\\u043e\",\"Assistant opens the same permanent fixed URL\",\"Assistant compares command_id/capsule_sha256 and reads full output\"],\"changes_for_apply\":{\"forbidden\":[\"modify Adapter\",\"restart Adapter\",\"modify or restart Portal\",\"modify edge Nginx\",\"modify Gitea\",\"modify MinIO\",\"create ledger\",\"create second runner\",\"modify backups\"],\"modify\":[\"/usr/local/sbin/homelab-result-lookup\",\"/etc/systemd/system/homelab-result-lookup.service\"],\"restart_only\":[\"homelab-result-lookup.service\"]},\"diagnosis\":{\"architectural_defect\":\"The old candidate aborted the entire state scan on the first historical IntegrityError. One unrelated old state or missing runner file therefore made health, latest, feed and every exact lookup unavailable.\",\"confirmed_boundary\":\"Synthetic clean state directory passed; the same candidate did not return health 200 against the real state directory.\",\"fix\":\"Index terminal metadata separately; isolate invalid historical entries; require the newest terminal entry itself to validate; validate exact requests only against the matching state.\",\"observed_failure\":\"LIVE_CANDIDATE_NOT_READY\",\"observed_mutation\":false,\"superseded_command_id\":\"AUTOMATIC-FIXED-RESULT-ANCHOR-PLAN-20260728T192809Z\",\"unavailable_fact\":\"The temporary candidate's final HTTP body and stderr were removed by the PLAN, so the exact offending historical file is not proven.\"},\"existing_public_route\":\"/.well-known/homelab-runtime/result/ prefix already routes to homelab-result-lookup on pve01:18095\",\"fixed_url\":\"https://git.gram1.ru/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/LATEST.json\",\"objective\":\"Provide one permanent public URL that always returns the newest full sanitized terminal result directly from local Adapter state. Do not modify Adapter, Portal, edge Nginx, Gitea, MinIO or backups.\",\"operation\":\"AUTOMATIC_FIXED_RESULT_ANCHOR_FIX1\",\"read_only_plan\":true,\"readback_contract\":{\"cache\":\"no-store\",\"exact_local_results_supported\":true,\"exact_lookup_ignores_unrelated_invalid_history\":true,\"feed_path_supported\":true,\"feed_version\":6,\"fixed_latest_alias\":\"/.well-known/homelab-runtime/result/0000000000000000000000000000000000000000000000000000000000000000/LATEST.json\",\"flattened_contract_supported\":true,\"full_output\":true,\"health_reports_valid_invalid_ignored_counts\":true,\"historical_invalid_entries_isolated\":true,\"integrity_failure_http\":409,\"latest_path_supported\":true,\"methods\":[\"GET\",\"HEAD\"],\"missing_http\":404,\"nested_contract_supported\":true,\"newest_terminal_must_validate\":true,\"source\":\"local-adapter-state\"},\"schema\":1,\"target_sha256\":{\"/etc/systemd/system/homelab-result-lookup.service\":\"4a2da42926ff1f8b9ce0d87ff037d2d02ecc9db0e896ef63150e96b6a2edd44a\",\"/usr/local/sbin/homelab-result-lookup\":\"9979838f12ce27d74bdd554b6ffa409863ffb06c7456d9e71155b87c1598eb60\"}},\"portal_changed\":false,\"private_addresses_included\":false,\"rollback_started\":false,\"sanitized\":true,\"schema\":1,\"secrets_included\":false,\"status\":\"PLAN_READY\"}\n"
}
