diff --git a/runtime/history/SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2.json b/runtime/history/SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2.json new file mode 100644 index 00000000..2ed1cd4d --- /dev/null +++ b/runtime/history/SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "change", + "component": "signalbot-cr0116-ws-keepalive-fix-git", + "started_at_utc": "2026-09-08T06:14:57Z", + "finished_at_utc": "2026-09-08T06:15:00Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "583d4c0aaa8042311c638e02530fa826eba703b682b3eba7c1c3c52f09033616", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": true, + "result_contract_valid": true, + "result_contract_status": "OK", + "result_contract_error": null, + "command_rc": 0, + "changes_made": true, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "MUTATED", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358", + "sanitized_output_sha256": "ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "ERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nSB040F2_PRESTATE={\"remote_fix_branch_absent\":true,\"remote_main\":\"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce\",\"repo_branch\":\"cr-2026-0105-demonov-shadow-orchestrator\",\"repo_clean\":true,\"repo_head\":\"559948bcb6baead49a47d9953b0cc0090e332fd7\",\"runtime_mutation\":false}\nSB040F2_SOURCE_DISCOVERY={\"exact_sha_matches\":[\"demonov_forward_map/bitfinex_trade_collector.py\"],\"tracked_candidates\":[[\"demonov_forward_map/bitfinex_trade_collector.py\",\"d21cf0c3a0d4fcaf9210a57da04fd560dba4952ac1dd5a085abcc4e76ccf2eb0\"]]}\nSB040F2_CHANGE_SCOPE={\"expected_paths\":[\"demonov_forward_map/bitfinex_trade_collector.py\",\"tests/test_bitfinex_collector_websocket_keepalive_policy.py\"],\"paths\":[\"demonov_forward_map/bitfinex_trade_collector.py\",\"tests/test_bitfinex_collector_websocket_keepalive_policy.py\"],\"tracked_changed\":[\"demonov_forward_map/bitfinex_trade_collector.py\"],\"untracked\":[\"tests/test_bitfinex_collector_websocket_keepalive_policy.py\"]}\nSB040F2_TARGETED_TEST={\"rc\":0,\"tail\":\". [100%] | 1 passed in 0.03s | \"}\nSB040F2_FULL_TEST={\"passed\":522,\"rc\":0,\"tail\":\"........................................................................ [ 55%] | ........................................................................ [ 68%] | ........................................................................ [ 82%] | ........................................................................ [ 96%] | .................. [100%] | 522 passed in 1.02s | \"}\nSB040F2_RESULT={\"base_main\":\"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce\",\"fix_branch\":\"signalbot-260908-ws-keepalive-fix-040fix2\",\"fix_commit\":\"76e1f58baa544a0e208bba317f0150e5b6d74dbd\",\"policy\":{\"close_timeout\":5,\"open_timeout\":10,\"ping_interval\":20,\"ping_timeout\":60},\"remote_main_unchanged\":true,\"source_path\":\"demonov_forward_map/bitfinex_trade_collector.py\",\"tests_passed\":522}\nSB040F2_RUNTIME=UNCHANGED\nSB040F2_EXCHANGE_EXECUTION=PROHIBITED\nHOMELAB_RESULT_CONTRACT={\"changes_made\":true,\"command_id\":\"SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" +} diff --git a/runtime/history/SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2.txt b/runtime/history/SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2.txt new file mode 100644 index 00000000..7a9d128f --- /dev/null +++ b/runtime/history/SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2.txt @@ -0,0 +1,44 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2 +STATUS=OK +RC=0 +HOST=pve01 +MODE=change +COMPONENT=signalbot-cr0116-ws-keepalive-fix-git +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=583d4c0aaa8042311c638e02530fa826eba703b682b3eba7c1c3c52f09033616 +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=true +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=OK +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=true +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=MUTATED +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358 +SANITIZED_OUTPUT_SHA256=ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358 +OUTPUT_BEGIN +ERROR_REGISTER_CHECK=OK +REFERENCE_CHECK=OK +AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED +SB040F2_PRESTATE={"remote_fix_branch_absent":true,"remote_main":"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce","repo_branch":"cr-2026-0105-demonov-shadow-orchestrator","repo_clean":true,"repo_head":"559948bcb6baead49a47d9953b0cc0090e332fd7","runtime_mutation":false} +SB040F2_SOURCE_DISCOVERY={"exact_sha_matches":["demonov_forward_map/bitfinex_trade_collector.py"],"tracked_candidates":[["demonov_forward_map/bitfinex_trade_collector.py","d21cf0c3a0d4fcaf9210a57da04fd560dba4952ac1dd5a085abcc4e76ccf2eb0"]]} +SB040F2_CHANGE_SCOPE={"expected_paths":["demonov_forward_map/bitfinex_trade_collector.py","tests/test_bitfinex_collector_websocket_keepalive_policy.py"],"paths":["demonov_forward_map/bitfinex_trade_collector.py","tests/test_bitfinex_collector_websocket_keepalive_policy.py"],"tracked_changed":["demonov_forward_map/bitfinex_trade_collector.py"],"untracked":["tests/test_bitfinex_collector_websocket_keepalive_policy.py"]} +SB040F2_TARGETED_TEST={"rc":0,"tail":". [100%] | 1 passed in 0.03s | "} +SB040F2_FULL_TEST={"passed":522,"rc":0,"tail":"........................................................................ [ 55%] | ........................................................................ [ 68%] | ........................................................................ [ 82%] | ........................................................................ [ 96%] | .................. [100%] | 522 passed in 1.02s | "} +SB040F2_RESULT={"base_main":"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce","fix_branch":"signalbot-260908-ws-keepalive-fix-040fix2","fix_commit":"76e1f58baa544a0e208bba317f0150e5b6d74dbd","policy":{"close_timeout":5,"open_timeout":10,"ping_interval":20,"ping_timeout":60},"remote_main_unchanged":true,"source_path":"demonov_forward_map/bitfinex_trade_collector.py","tests_passed":522} +SB040F2_RUNTIME=UNCHANGED +SB040F2_EXCHANGE_EXECUTION=PROHIBITED +HOMELAB_RESULT_CONTRACT={"changes_made":true,"command_id":"SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 2dc4fc9f..2ed1cd4d 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,38 +1,38 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX1", - "status": "FAIL", - "rc": 1, + "command_id": "SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2", + "status": "OK", + "rc": 0, "host": "pve01", "mode": "change", "component": "signalbot-cr0116-ws-keepalive-fix-git", - "started_at_utc": "2026-09-08T06:07:42Z", - "finished_at_utc": "2026-09-08T06:07:43Z", + "started_at_utc": "2026-09-08T06:14:57Z", + "finished_at_utc": "2026-09-08T06:15:00Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "89e384bd512fffe507f97dfde101e81f0531bb9ccf8649f923ae61f2acb28870", + "command_sha256": "583d4c0aaa8042311c638e02530fa826eba703b682b3eba7c1c3c52f09033616", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, "change_declared": true, "result_contract_valid": true, - "result_contract_status": "FAIL", + "result_contract_status": "OK", "result_contract_error": null, - "command_rc": 1, + "command_rc": 0, "changes_made": true, - "rollback_started": true, - "rollback_restored": true, - "mutation_outcome": "ROLLED_BACK", + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "MUTATED", "sanitized": true, "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "55b03bb23fe603acdeea22d1cc1223a0bc3f7a2f4af8af786afe0855ffc7d422", - "sanitized_output_sha256": "55b03bb23fe603acdeea22d1cc1223a0bc3f7a2f4af8af786afe0855ffc7d422", + "raw_evidence_sha256": "ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358", + "sanitized_output_sha256": "ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "ERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nSB040F1_PRESTATE={\"remote_fix_branch_absent\":true,\"remote_main\":\"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce\",\"repo_branch\":\"cr-2026-0105-demonov-shadow-orchestrator\",\"repo_clean\":true,\"repo_head\":\"559948bcb6baead49a47d9953b0cc0090e332fd7\",\"runtime_mutation\":false}\nSB040F1_SOURCE_DISCOVERY={\"exact_sha_matches\":[\"demonov_forward_map/bitfinex_trade_collector.py\"],\"tracked_candidates\":[[\"demonov_forward_map/bitfinex_trade_collector.py\",\"d21cf0c3a0d4fcaf9210a57da04fd560dba4952ac1dd5a085abcc4e76ccf2eb0\"]]}\nSB040F1_FAILURE={\"detail\":\"CHANGE_SCOPE_UNEXPECTED:emonov_forward_map/bitfinex_trade_collector.py,tests/test_bitfinex_collector_websocket_keepalive_policy.py\",\"type\":\"Fail\"}\nSB040F1_ROLLBACK_STARTED=true\nSB040F1_ROLLBACK_RESTORED=true\nHOMELAB_RESULT_CONTRACT={\"changes_made\":true,\"command_id\":\"SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX1\",\"rollback_restored\":true,\"rollback_started\":true,\"status\":\"FAIL\",\"version\":1}\n" + "output": "ERROR_REGISTER_CHECK=OK\nREFERENCE_CHECK=OK\nAUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED\nSB040F2_PRESTATE={\"remote_fix_branch_absent\":true,\"remote_main\":\"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce\",\"repo_branch\":\"cr-2026-0105-demonov-shadow-orchestrator\",\"repo_clean\":true,\"repo_head\":\"559948bcb6baead49a47d9953b0cc0090e332fd7\",\"runtime_mutation\":false}\nSB040F2_SOURCE_DISCOVERY={\"exact_sha_matches\":[\"demonov_forward_map/bitfinex_trade_collector.py\"],\"tracked_candidates\":[[\"demonov_forward_map/bitfinex_trade_collector.py\",\"d21cf0c3a0d4fcaf9210a57da04fd560dba4952ac1dd5a085abcc4e76ccf2eb0\"]]}\nSB040F2_CHANGE_SCOPE={\"expected_paths\":[\"demonov_forward_map/bitfinex_trade_collector.py\",\"tests/test_bitfinex_collector_websocket_keepalive_policy.py\"],\"paths\":[\"demonov_forward_map/bitfinex_trade_collector.py\",\"tests/test_bitfinex_collector_websocket_keepalive_policy.py\"],\"tracked_changed\":[\"demonov_forward_map/bitfinex_trade_collector.py\"],\"untracked\":[\"tests/test_bitfinex_collector_websocket_keepalive_policy.py\"]}\nSB040F2_TARGETED_TEST={\"rc\":0,\"tail\":\". [100%] | 1 passed in 0.03s | \"}\nSB040F2_FULL_TEST={\"passed\":522,\"rc\":0,\"tail\":\"........................................................................ [ 55%] | ........................................................................ [ 68%] | ........................................................................ [ 82%] | ........................................................................ [ 96%] | .................. [100%] | 522 passed in 1.02s | \"}\nSB040F2_RESULT={\"base_main\":\"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce\",\"fix_branch\":\"signalbot-260908-ws-keepalive-fix-040fix2\",\"fix_commit\":\"76e1f58baa544a0e208bba317f0150e5b6d74dbd\",\"policy\":{\"close_timeout\":5,\"open_timeout\":10,\"ping_interval\":20,\"ping_timeout\":60},\"remote_main_unchanged\":true,\"source_path\":\"demonov_forward_map/bitfinex_trade_collector.py\",\"tests_passed\":522}\nSB040F2_RUNTIME=UNCHANGED\nSB040F2_EXCHANGE_EXECUTION=PROHIBITED\nHOMELAB_RESULT_CONTRACT={\"changes_made\":true,\"command_id\":\"SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"OK\",\"version\":1}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 87388647..7a9d128f 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,7 +1,7 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX1 -STATUS=FAIL -RC=1 +COMMAND_ID=SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2 +STATUS=OK +RC=0 HOST=pve01 MODE=change COMPONENT=signalbot-cr0116-ws-keepalive-fix-git @@ -9,33 +9,36 @@ REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=89e384bd512fffe507f97dfde101e81f0531bb9ccf8649f923ae61f2acb28870 +COMMAND_SHA256=583d4c0aaa8042311c638e02530fa826eba703b682b3eba7c1c3c52f09033616 DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=true RESULT_CONTRACT_VALID=true -RESULT_CONTRACT_STATUS=FAIL +RESULT_CONTRACT_STATUS=OK RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=1 +COMMAND_RC=0 CHANGES_MADE=true -ROLLBACK_STARTED=true -ROLLBACK_RESTORED=true -MUTATION_OUTCOME=ROLLED_BACK +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=MUTATED SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=55b03bb23fe603acdeea22d1cc1223a0bc3f7a2f4af8af786afe0855ffc7d422 -SANITIZED_OUTPUT_SHA256=55b03bb23fe603acdeea22d1cc1223a0bc3f7a2f4af8af786afe0855ffc7d422 +RAW_EVIDENCE_SHA256=ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358 +SANITIZED_OUTPUT_SHA256=ba88e7949e15d0d6e44f2c62bea60b6e99d62fc6e69d176b2a10ac75e42ce358 OUTPUT_BEGIN ERROR_REGISTER_CHECK=OK REFERENCE_CHECK=OK AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED -SB040F1_PRESTATE={"remote_fix_branch_absent":true,"remote_main":"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce","repo_branch":"cr-2026-0105-demonov-shadow-orchestrator","repo_clean":true,"repo_head":"559948bcb6baead49a47d9953b0cc0090e332fd7","runtime_mutation":false} -SB040F1_SOURCE_DISCOVERY={"exact_sha_matches":["demonov_forward_map/bitfinex_trade_collector.py"],"tracked_candidates":[["demonov_forward_map/bitfinex_trade_collector.py","d21cf0c3a0d4fcaf9210a57da04fd560dba4952ac1dd5a085abcc4e76ccf2eb0"]]} -SB040F1_FAILURE={"detail":"CHANGE_SCOPE_UNEXPECTED:emonov_forward_map/bitfinex_trade_collector.py,tests/test_bitfinex_collector_websocket_keepalive_policy.py","type":"Fail"} -SB040F1_ROLLBACK_STARTED=true -SB040F1_ROLLBACK_RESTORED=true -HOMELAB_RESULT_CONTRACT={"changes_made":true,"command_id":"SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX1","rollback_restored":true,"rollback_started":true,"status":"FAIL","version":1} +SB040F2_PRESTATE={"remote_fix_branch_absent":true,"remote_main":"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce","repo_branch":"cr-2026-0105-demonov-shadow-orchestrator","repo_clean":true,"repo_head":"559948bcb6baead49a47d9953b0cc0090e332fd7","runtime_mutation":false} +SB040F2_SOURCE_DISCOVERY={"exact_sha_matches":["demonov_forward_map/bitfinex_trade_collector.py"],"tracked_candidates":[["demonov_forward_map/bitfinex_trade_collector.py","d21cf0c3a0d4fcaf9210a57da04fd560dba4952ac1dd5a085abcc4e76ccf2eb0"]]} +SB040F2_CHANGE_SCOPE={"expected_paths":["demonov_forward_map/bitfinex_trade_collector.py","tests/test_bitfinex_collector_websocket_keepalive_policy.py"],"paths":["demonov_forward_map/bitfinex_trade_collector.py","tests/test_bitfinex_collector_websocket_keepalive_policy.py"],"tracked_changed":["demonov_forward_map/bitfinex_trade_collector.py"],"untracked":["tests/test_bitfinex_collector_websocket_keepalive_policy.py"]} +SB040F2_TARGETED_TEST={"rc":0,"tail":". [100%] | 1 passed in 0.03s | "} +SB040F2_FULL_TEST={"passed":522,"rc":0,"tail":"........................................................................ [ 55%] | ........................................................................ [ 68%] | ........................................................................ [ 82%] | ........................................................................ [ 96%] | .................. [100%] | 522 passed in 1.02s | "} +SB040F2_RESULT={"base_main":"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce","fix_branch":"signalbot-260908-ws-keepalive-fix-040fix2","fix_commit":"76e1f58baa544a0e208bba317f0150e5b6d74dbd","policy":{"close_timeout":5,"open_timeout":10,"ping_interval":20,"ping_timeout":60},"remote_main_unchanged":true,"source_path":"demonov_forward_map/bitfinex_trade_collector.py","tests_passed":522} +SB040F2_RUNTIME=UNCHANGED +SB040F2_EXCHANGE_EXECUTION=PROHIBITED +HOMELAB_RESULT_CONTRACT={"changes_made":true,"command_id":"SIGNALBOT-260908-WS-KEEPALIVE-FIX-040FIX2","rollback_restored":null,"rollback_started":false,"status":"OK","version":1} OUTPUT_END CHAT_OUTPUT_END