{ "schema_version": 1, "channel": "homelab-runtime", "command_id": "SIGNALBOT-260921-BITFINEX-SYMBOL-READONLY-052SYM14", "status": "OK", "rc": 0, "host": "pve01", "mode": "read-only", "component": "signalbot-bitfinex-symbol-readonly", "started_at_utc": "2026-09-21T02:11:42Z", "finished_at_utc": "2026-09-21T02:11:43Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", "command_sha256": "afa34ca4718d43f71906c81de4015d0174ec39a818b6989e3a2f0f6eb58cfc5f", "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": "67ad32869098b8de307a98cb5d65e3926f2bb1c5d6e6f49cb684fd7d25e71351", "sanitized_output_sha256": "67ad32869098b8de307a98cb5d65e3926f2bb1c5d6e6f49cb684fd7d25e71351", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", "output": "SIGNALBOT052SYM14_RESULT={\"guest_exitcode\":0,\"stderr_present\":false,\"evidence\":\"IMAGE_ID=sha256:bc7fe43a1627532cf2ffbea2489352bb97c9a9e445e097cd5837b80a9e90cc60 CONFIG_IMAGE=8020-demonov-shadow:signalbot-050r6-749073ae0f89 CMD=[\\\"python\\\",\\\"-m\\\",\\\"demonov_forward_map.bitfinex_trade_collector\\\"]\\n/app/demonov_forward_map/bitfinex_trade_collector.py:35:BITFINEX_TRADE_SYMBOL = \\\"tBTCUSD\\\"\\n/app/demonov_forward_map/bitfinex_trade_collector.py:230: market_key TEXT NOT NULL,\\n/app/demonov_forward_map/bitfinex_trade_collector.py:1142: logical_d1_id,market_key,timeframe_id,\\n/app/demonov_forward_map/bitfinex_trade_collector.py:1149: logical_d1.market_key,\\n/app/demonov_forward_map/bitfinex_trade_collector.py:1319: \\\"market_key\\\": logical.market_key,\\n/app/demonov_forward_map/bitfinex_trade_collector.py:1381: market_key=logical_data[\\\"market_key\\\"],\\n/app/demonov_forward_map/bitfinex_trade_collector.py:1495: market_key=\\\"BTC|BITFINEX|SPOT\\\",\\n/app/demonov_forward_map/bitfinex_trade_collector.py:1595: symbol=BITFINEX_TRADE_SYMBOL,\\n/app/demonov_forward_map/bitfinex_trade_collector.py:1672: {\\\"event\\\": \\\"subscribe\\\", \\\"channel\\\": \\\"trades\\\", \\\"symbol\\\": BITFINEX_TRADE_SYMBOL}\\n/app/demonov_forward_map/bitfinex_reconciliation.py:80: symbol: str\\n/app/demonov_forward_map/bitfinex_reconciliation.py:149: symbol: str,\\n/app/demonov_forward_map/bitfinex_reconciliation.py:154: if not isinstance(symbol, str) or not symbol.startswith(\\\"t\\\") or len(symbol) < 2:\\n/app/demonov_forward_map/bitfinex_reconciliation.py:155: raise DemonovError(\\\"Bitfinex trade history symbol invalid\\\")\\n/app/demonov_forward_map/bitfinex_reconciliation.py:163: url = f\\\"{BITFINEX_PUBLIC_TRADES_BASE}/{quote(symbol, safe='')}/hist?{query}\\\"\\n/app/demonov_forward_map/bitfinex_reconciliation.py:202: \\\"symbol\\\": symbol,\\n/app/demonov_forward_map/bitfinex_reconciliation.py:210: symbol=symbol,\\n/app/demonov_forward_map/bitfinex_reconciliation.py:223: symbol: str,\\n/app/demonov_forward_map/bitfinex_reconciliation.py:232: symbol,\\n\"}\nTASK_RESULT=PASS_SIGNALBOT_052SYM14_EVIDENCE_CAPTURED\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SIGNALBOT-260921-BITFINEX-SYMBOL-READONLY-052SYM14\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" }