{
  "schema_version": 1,
  "channel": "homelab-runtime",
  "command_id": "GRAM1-SITE-AVAX-LINK-V21-READ-ONLY-RUNTIME-VERIFY-20260731T222536Z",
  "status": "OK",
  "rc": 0,
  "host": "pve01",
  "mode": "verify",
  "component": "gram1-site-avax-link-v21-read-only-runtime-verify",
  "started_at_utc": "2026-07-31T22:26:23Z",
  "finished_at_utc": "2026-07-31T22:26:27Z",
  "reference_register_checked": true,
  "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
  "error_register_checked": true,
  "error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
  "command_sha256": "3f6fbcfda03a0be45037546d31710a55f06f3990bc75d632783c6ec8cf698fd4",
  "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": "f3d82cba2fff4b3a5d8a4d0875c4131c83f92f3fcc3f9f71b0fe15616fd6a7c5",
  "sanitized_output_sha256": "f3d82cba2fff4b3a5d8a4d0875c4131c83f92f3fcc3f9f71b0fe15616fd6a7c5",
  "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\":\"GRAM1-SITE-AVAX-LINK-V21-READ-ONLY-RUNTIME-VERIFY-20260731T222536Z\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n{\"changes_made\":false,\"command_id\":\"GRAM1-SITE-AVAX-LINK-V21-READ-ONLY-RUNTIME-VERIFY-20260731T222536Z\",\"control_plane_error\":null,\"gitea_changed\":false,\"mutation_outcome\":\"NO_MUTATION\",\"previous_capsule_sha256\":\"2a6651a428c422d0af6646763b05125f6b89921cc59c90912fa716bdda884500\",\"previous_command_id\":\"GRAM1-SITE-AVAX-LINK-V20-ATOMIC-PRODUCTION-MUTATION-20260731T220900Z\",\"previous_output_sha256\":\"97f9ed6bf5fd41340f0ac1660c8149cb500e569abda070ad88da07da6d3983a2\",\"previous_runner_json_sha256\":\"eea993b7102f174741533a32146fb8355e017f75d18d44fc28db45c4fdeae5ae\",\"previous_runner_text_sha256\":\"1d92145f59c1bb542bf85c0339cb3493728fe8cbdd079d66d4abb92201aaf892\",\"production_site_changed\":false,\"rc\":0,\"remote_result\":{\"changes_made\":false,\"checks\":{\"compose_sha256\":\"6d344e46b3de94ad86131a914df2ff3ff25e9d82f7ce0557cbffa468b8cdc1b8\",\"container_hashes\":{\"app.py\":{\"ok\":true,\"path\":\"app.py\",\"sha256\":\"ec226952cdb7fb58edbfc0173af47f4d901f3206e15169df12294983731fbc20\"},\"templates/index.html\":{\"ok\":true,\"path\":\"templates/index.html\",\"sha256\":\"4bff850e158898f09cbcaea38d39126c4de702f701a4f9c034d9e3a72002ff8b\"},\"worker.py\":{\"ok\":true,\"path\":\"worker.py\",\"sha256\":\"4a7b16ece826fe2d938f392db6b0b5ca028dcb6ff02fdff4ab431f114edf0e5c\"}},\"exact_file_hashes\":{\"app.py\":\"ec226952cdb7fb58edbfc0173af47f4d901f3206e15169df12294983731fbc20\",\"templates/index.html\":\"4bff850e158898f09cbcaea38d39126c4de702f701a4f9c034d9e3a72002ff8b\",\"worker.py\":\"4a7b16ece826fe2d938f392db6b0b5ca028dcb6ff02fdff4ab431f114edf0e5c\"},\"market\":{\"coin_ids\":[\"avalanche-2\",\"chainlink\",\"hedera-hashgraph\",\"polygon-ecosystem-token\"],\"market_age_seconds\":156,\"updated_at\":1785536628,\"worker_status\":{\"alerts_triggered\":0,\"coin_count\":4,\"history_rows\":13482,\"status\":\"OK\",\"updated_at\":1785536628}},\"recent_logs\":{\"critical_count\":0,\"rc\":0,\"traceback_count\":0,\"worker_cycle_error_count\":0,\"worker_cycle_ok_count\":2},\"runtime_http\":{\"binance_provider\":{\"AVAXUSDT\":{\"error\":null,\"ok\":true,\"rows\":2},\"LINKUSDT\":{\"error\":null,\"ok\":true,\"rows\":2}},\"chart_health\":{\"errors\":null,\"json\":{\"bad\":0,\"disk_cache_present\":true,\"library_ok\":true,\"status\":\"OK\",\"symbols\":{\"AVAX\":{\"cache_age_seconds\":407,\"candles\":71,\"source\":\"binance\",\"stale\":true,\"status\":\"OK\"},\"HBAR\":{\"cache_age_seconds\":407,\"candles\":83,\"source\":\"binance\",\"stale\":true,\"status\":\"OK\"},\"LINK\":{\"cache_age_seconds\":407,\"candles\":91,\"source\":\"binance\",\"stale\":true,\"status\":\"OK\"},\"POL\":{\"cache_age_seconds\":407,\"candles\":23,\"source\":\"binance\",\"stale\":true,\"status\":\"OK\"}}},\"port\":8000,\"status\":200},\"health\":{\"errors\":null,\"json\":{\"market_age_seconds\":155,\"status\":\"OK\",\"type\":\"crypto-portfolio\"},\"port\":8000,\"status\":200},\"ports_considered\":[8000,5000,8080,3000,80,39065]},\"semantic\":{\"chart_health_path\":\"/api/chart-health\",\"coins\":{\"avalanche-2\":\"AVAX\",\"chainlink\":\"LINK\",\"hedera-hashgraph\":\"HBAR\",\"polygon-ecosystem-token\":\"POL\"},\"frontend_symbols\":[\"HBAR\",\"POL\",\"AVAX\",\"LINK\"],\"health_path\":\"/health\",\"klines\":{\"AVAX\":\"AVAXUSDT\",\"HBAR\":\"HBARUSDT\",\"LINK\":\"LINKUSDT\",\"POL\":\"POLUSDT\"}},\"services\":{\"web\":{\"health\":\"none\",\"restart_count\":0,\"started_at\":\"2026-07-31T22:18:48.429749633Z\",\"status\":\"running\"},\"worker\":{\"health\":\"none\",\"restart_count\":0,\"started_at\":\"2026-07-31T22:18:48.426160843Z\",\"status\":\"running\"}}},\"command_id\":\"GRAM1-SITE-AVAX-LINK-V21-READ-ONLY-RUNTIME-VERIFY-20260731T222536Z\",\"control_plane_error\":null,\"gitea_changed\":false,\"mutation_outcome\":\"NO_MUTATION\",\"production_site_changed\":false,\"rc\":0,\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"OK\"},\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"selected_method\":\"ALIAS_PINNED_AS_DEBIAN\",\"ssh_method_probes\":[{\"duration_seconds\":0.131,\"identity_count\":null,\"identity_sudo_read_ok\":true,\"name\":\"ALIAS_PINNED_AS_DEBIAN\",\"rc\":0,\"stderr\":\"\"},{\"duration_seconds\":0.123,\"identity_count\":2,\"identity_sudo_read_ok\":true,\"name\":\"DIRECT_PINNED_AS_DEBIAN_NO_PROXY\",\"rc\":0,\"stderr\":\"\"}],\"status\":\"OK\"}\n"
}
