CHAT_OUTPUT_BEGIN
COMMAND_ID=SIGNALBOT-260908-DEPLOY-CONTRACT-RCA-039FIX1
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=signalbot-cr0116-deploy-contract-rca
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=ab870841e3fc4d8458e3a73a289797c6b526c8408e6625a9fb8193a60db0cef4
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=0
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=c47217e0ea28617571d3fe88eaa947bfd51d45450101ee382fe3f77c9e3eb598
SANITIZED_OUTPUT_SHA256=c47217e0ea28617571d3fe88eaa947bfd51d45450101ee382fe3f77c9e3eb598
OUTPUT_BEGIN
ERROR_REGISTER_CHECK=OK
REFERENCE_CHECK=OK
AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED
SB039_PVE01_REPO_CANDIDATES=[{"branch":"cr-2026-0105-demonov-shadow-orchestrator","dirty_count":0,"head":"559948bcb6baead49a47d9953b0cc0090e332fd7","ls_remote_rc":0,"path":"/root/8020-demonov-shadow-bot","remote_main":"3792dcae0fa4d1f0bdd2aac3be1037f49a1620ce","slug_match":true}]
SB039_VM170_SNAPSHOT={"exitcode":0,"report":{"decision":"DEPLOY_CONTRACT_EVIDENCE_READY","deployed_source":{"lines":1246,"path":"/app/demonov_forward_map/bitfinex_trade_collector.py","rc":0,"sha256":"d21cf0c3a0d4fcaf9210a57da04fd560dba4952ac1dd5a085abcc4e76ccf2eb0"},"docker_tools":{"compose":{"rc":0,"value":"2.26.1-4"},"docker":{"rc":0,"value":"26.1.5+dfsg1"},"python":{"rc":0,"value":"Python 3.13.5"}},"git_candidates":[],"holds":[],"hostname":"core-apps","mutation_scope":"NONE_READ_ONLY","relevant_stack_files":[{"bytes":116,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/Dockerfile","sha256":"901951def73961f76d2c2a93c5428a0fbdcc50113d42b39da92983a5ce157cb8"},{"bytes":886,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/build.log","sha256":"601fe18bcce58d509431626b9c934e170fd572089dcfbfbf310c3aa9217293eb"},{"bytes":7220,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/experimental_design.py","sha256":"6e50bdb6d60c3caa76f24b8ea6d6d6f8c393cfd6526a091e937590b130194a94"},{"bytes":5837,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/producer_runtime.py","sha256":"f402ccede19fa467284064b5eca123cfd20da9ce0c8716982f2909297b4916f9"},{"bytes":165580,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/runtime_integrity.py","sha256":"99859b63e23d10fc051672965123f49d6e79d2ff767871c019ff7bdae2e2e39e"},{"bytes":4101,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/runtime_manifest.py","sha256":"1064cfb74303fdc8e0bf50bae95b1e755556a5b1dfc28b2b062341becaba08f2"},{"bytes":8130,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/shadow_delivery_runtime.py","sha256":"e534f592f60505b1cc42f25be2043ecaeaa7b4a7773af8826b274810a8ae1da6"},{"bytes":841,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/experiment.json","sha256":"827dc4fb5ace8a25a0bd80d05450eaa758bd39d1d09485d3d428dd20ad9325aa"},{"bytes":584,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/runtime_manifest.json","sha256":"388a610997fad0071b9140a44e88edff60a3e7ee3486faeaca769c0026246c8e"},{"bytes":3243,"path":".rollback/SIGNALBOT-260906-DEPLOY-022/compose.yaml","sha256":"6461532b0a04decc60fe1d1885990020e886d40de40c0523e34e2849600af061"},{"bytes":7220,"path":".weekly/SIGNALBOT-260906-WEEKLY-LEGACY-030/src/demonov_forward_map/experimental_design.py","sha256":"6e50bdb6d60c3caa76f24b8ea6d6d6f8c393cfd6526a091e937590b130194a94"},{"bytes":5837,"path":".weekly/SIGNALBOT-260906-WEEKLY-LEGACY-030/src/demonov_forward_map/producer_runtime.py","sha256":"f402ccede19fa467284064b5eca123cfd20da9ce0c8716982f2909297b4916f9"},{"bytes":165580,"path":".weekly/SIGNALBOT-260906-WEEKLY-LEGACY-030/src/demonov_forward_map/runtime_integrity.py","sha256":"99859b63e23d10fc051672965123f49d6e79d2ff767871c019ff7bdae2e2e39e"},{"bytes":8130,"path":".weekly/SIGNALBOT-260906-WEEKLY-LEGACY-030/src/demonov_forward_map/shadow_delivery_runtime.py","sha256":"e534f592f60505b1cc42f25be2043ecaeaa7b4a7773af8826b274810a8ae1da6"},{"bytes":3243,"path":"compose.yaml","sha256":"6461532b0a04decc60fe1d1885990020e886d40de40c0523e34e2849600af061"},{"bytes":7220,"path":"src/demonov_forward_map/experimental_design.py","sha256":"6e50bdb6d60c3caa76f24b8ea6d6d6f8c393cfd6526a091e937590b130194a94"},{"bytes":5837,"path":"src/demonov_forward_map/producer_runtime.py","sha256":"f402ccede19fa467284064b5eca123cfd20da9ce0c8716982f2909297b4916f9"},{"bytes":165580,"path":"src/demonov_forward_map/runtime_integrity.py","sha256":"99859b63e23d10fc051672965123f49d6e79d2ff767871c019ff7bdae2e2e39e"},{"bytes":8130,"path":"src/demonov_forward_map/shadow_delivery_runtime.py","sha256":"e534f592f60505b1cc42f25be2043ecaeaa7b4a7773af8826b274810a8ae1da6"}],"repo_helpers":[{"bytes":116,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/Dockerfile","sha256":"901951def73961f76d2c2a93c5428a0fbdcc50113d42b39da92983a5ce157cb8"},{"bytes":886,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/build.log","sha256":"601fe18bcce58d509431626b9c934e170fd572089dcfbfbf310c3aa9217293eb"},{"bytes":7220,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/experimental_design.py","sha256":"6e50bdb6d60c3caa76f24b8ea6d6d6f8c393cfd6526a091e937590b130194a94"},{"bytes":5837,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/producer_runtime.py","sha256":"f402ccede19fa467284064b5eca123cfd20da9ce0c8716982f2909297b4916f9"},{"bytes":165580,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/runtime_integrity.py","sha256":"99859b63e23d10fc051672965123f49d6e79d2ff767871c019ff7bdae2e2e39e"},{"bytes":4101,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/runtime_manifest.py","sha256":"1064cfb74303fdc8e0bf50bae95b1e755556a5b1dfc28b2b062341becaba08f2"},{"bytes":8130,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/demonov_forward_map/shadow_delivery_runtime.py","sha256":"e534f592f60505b1cc42f25be2043ecaeaa7b4a7773af8826b274810a8ae1da6"},{"bytes":841,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/experiment.json","sha256":"827dc4fb5ace8a25a0bd80d05450eaa758bd39d1d09485d3d428dd20ad9325aa"},{"bytes":584,"path":".deploy/SIGNALBOT-260906-DEPLOY-022/runtime_manifest.json","sha256":"388a610997fad0071b9140a44e88edff60a3e7ee3486faeaca769c0026246c8e"},{"bytes":3243,"path":".rollback/SIGNALBOT-260906-DEPLOY-022/compose.yaml","sha256":"6461532b0a04decc60fe1d1885990020e886d40de40c0523e34e2849600af061"},{"bytes":7220,"path":".weekly/SIGNALBOT-260906-WEEKLY-LEGACY-030/src/demonov_forward_map/experimental_design.py","sha256":"6e50bdb6d60c3caa76f24b8ea6d6d6f8c393cfd6526a091e937590b130194a94"},{"bytes":7220,"path":"src/demonov_forward_map/experimental_design.py","sha256":"6e50bdb6d60c3caa76f24b8ea6d6d6f8c393cfd6526a091e937590b130194a94"}],"runtime":{"compose_files":["/opt/stacks/8020-demonov-shadow/compose.yaml"],"docker_ps_rc":0,"services":[{"image":"8020-demonov-shadow:e32760c69a4311728db9066ee8bf2bf66b1e5a70","restart_count":13,"running":true,"service":"collector"},{"image":"8020-demonov-shadow:e32760c69a4311728db9066ee8bf2bf66b1e5a70","restart_count":0,"running":true,"service":"relay"},{"image":"8020-demonov-shadow:e32760c69a4311728db9066ee8bf2bf66b1e5a70","restart_count":0,"running":true,"service":"shadow"},{"image":"8020-demonov-shadow:e32760c69a4311728db9066ee8bf2bf66b1e5a70","restart_count":0,"running":true,"service":"worker"}],"working_dirs":["/opt/stacks/8020-demonov-shadow"]},"runtime_manifest_source":{"/app/demonov_forward_map/live_prospective.py":{"classes":["ExperimentProvenance","LiveProspectiveStore"],"functions":[{"args":["value"],"name":"_hash"},{"args":["bar"],"name":"_bar_json"},{"args":["line"],"name":"_line_json"},{"args":["raw"],"name":"_line_from_json"},{"args":["states"],"name":"_states_json"},{"args":["raw"],"name":"_states_from_json"}],"lines":851,"sha256":"f83f48dfeb4dc1382ebf3c77b7ec27deaeac6eec4a5dc097f90600963f0e4e98"},"/app/demonov_forward_map/runtime_manifest.py":{"classes":["RuntimeDeploymentManifestV1"],"functions":[{"args":["value","name"],"name":"_required"},{"args":["value","name"],"name":"_sha256_hex"},{"args":["value","name"],"name":"_sha256_id"},{"args":["manifest"],"name":"verify_runtime_manifest"}],"lines":123,"sha256":"1064cfb74303fdc8e0bf50bae95b1e755556a5b1dfc28b2b062341becaba08f2"}},"safe_env":{"APP_IMAGE":"8020-demonov-shadow:e32760c69a4311728db9066ee8bf2bf66b1e5a70","CODE_IDENTITY":"e32760c69a4311728db9066ee8bf2bf66b1e5a70","COLLECTION_START_AT":"2026-09-07T00:00:00+00:00","EXPERIMENT_ID":"ec477ea41ecbd5cfdef5afc259595aab20674a7d933f41a389329ff05098b338","RUNTIME_MANIFEST_ID":"58d3b59200bdc0eb8d448612679d667b194263586cb3198dfc08597935053a1a"},"stack_exists":true},"state":"COMPLETE"}
SIGNALBOT039_HOLDS=[]
SIGNALBOT039_DECISION=DEPLOY_CONTRACT_EVIDENCE_READY
SIGNALBOT039_MUTATION_SCOPE=NO_RUNTIME_NO_GIT_NO_EXCHANGE_MUTATION

OUTPUT_END
CHAT_OUTPUT_END
