39 lines
14 KiB
JSON
39 lines
14 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"channel": "homelab-runtime",
|
|
"command_id": "SIGNALBOT-260921-SEMANTIC-MTS-DRIFT-PROOF-052SEM3",
|
|
"status": "OK",
|
|
"rc": 0,
|
|
"host": "pve01",
|
|
"mode": "read-only",
|
|
"component": "signalbot-semantic-mts-drift-proof",
|
|
"started_at_utc": "2026-09-21T06:46:22Z",
|
|
"finished_at_utc": "2026-09-21T06:46:25Z",
|
|
"reference_register_checked": true,
|
|
"reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66",
|
|
"error_register_checked": true,
|
|
"error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0",
|
|
"command_sha256": "123a65733d43a0f32ee7cacb63fea8216566f5d8f19b5c6eb54eb92bff2f1b30",
|
|
"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": "2a512c5943578464126ba8ed724cb6c1654e5455a0532c1127eea0abcaa6d94c",
|
|
"sanitized_output_sha256": "2a512c5943578464126ba8ed724cb6c1654e5455a0532c1127eea0abcaa6d94c",
|
|
"output_truncated_in_json": false,
|
|
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
|
|
"output": "SIGNALBOT052SEM3_RESULT={\"outer_rc\":0,\"guest_exitcode\":0,\"proof\":{\"ok\":true,\"conflict_count\":4,\"all_exact_minus_1ms\":true,\"results\":[{\"seq\":251009,\"raw_row_count\":4,\"conflicts\":[{\"trade_identity\":\"ac5ee89769b01055080a1ef6b66a3bf2a0ee49841730f551293552af57e61809\",\"local\":{\"semantic_hash\":\"a68332effcadf8a928ead478507829fe5b1a3eb2bf9a09f4200a5cdf814c0e12\",\"trade_id\":1978047385,\"mts\":\"2026-09-19T08:56:34.170000+00:00\",\"amount\":\"0.00211007\",\"price\":\"81294\",\"source_payload_hash\":\"dda5100ed2618f87b31bfa1306bed3d25de0c358d8a5cb059547f58c60804603\",\"trade_json\":\"{\\\"amount\\\":\\\"0.00211007\\\",\\\"mts\\\":\\\"2026-09-19T08:56:34.170000+00:00\\\",\\\"price\\\":\\\"81294\\\",\\\"semantic_hash\\\":\\\"a68332effcadf8a928ead478507829fe5b1a3eb2bf9a09f4200a5cdf814c0e12\\\",\\\"source_payload_hash\\\":\\\"dda5100ed2618f87b31bfa1306bed3d25de0c358d8a5cb059547f58c60804603\\\",\\\"trade_id\\\":1978047385,\\\"trade_identity\\\":\\\"ac5ee89769b01055080a1ef6b66a3bf2a0ee49841730f551293552af57e61809\\\"}\"},\"rest\":{\"semantic_hash\":\"1fec66432d52f6803021ac880cc44ce7ddc66e3a573398c9d97e267addee1d32\",\"trade_id\":1978047385,\"mts\":\"2026-09-19T08:56:34.171000+00:00\",\"amount\":\"0.00211007\",\"price\":\"81294\",\"source_payload_hash\":\"7ce688662cd8629a8a14ecf30c644aa46aabfa9613d665aa1c7b8ef40208e9ae\"},\"variant_matches\":[-1],\"variants\":[{\"offset_ms\":-2,\"semantic_hash\":\"cc3b8b5ae149d7426897a661e4b3d886c6e6aa44b9b677d1c39307379e150f71\",\"matches_local\":false,\"source_payload_hash\":\"f52e8acece7d9813486208df98aa70e9fec05ecf8eb276ff813e48b0d07ccb78\"},{\"offset_ms\":-1,\"semantic_hash\":\"a68332effcadf8a928ead478507829fe5b1a3eb2bf9a09f4200a5cdf814c0e12\",\"matches_local\":true,\"source_payload_hash\":\"dda5100ed2618f87b31bfa1306bed3d25de0c358d8a5cb059547f58c60804603\"},{\"offset_ms\":0,\"semantic_hash\":\"1fec66432d52f6803021ac880cc44ce7ddc66e3a573398c9d97e267addee1d32\",\"matches_local\":false,\"source_payload_hash\":\"7ce688662cd8629a8a14ecf30c644aa46aabfa9613d665aa1c7b8ef40208e9ae\"},{\"offset_ms\":1,\"semantic_hash\":\"4ac9cd00066a5a7474838ae9ed15947bf7106d6a085571c8a16ffd0dfbf56b47\",\"matches_local\":false,\"source_payload_hash\":\"686b1588d3a8970f303f02c2fd3f39d457cc4336c8186e44d585f0a59f88b5de\"},{\"offset_ms\":2,\"semantic_hash\":\"8b2aa0f9415151622205283da249d2c9f488a30d9ecffe071143647bbe8048ab\",\"matches_local\":false,\"source_payload_hash\":\"2375d4f54f60a5524a6e0c379b7852712e8716d7c0ca5717abc653584990445a\"}]}]},{\"seq\":318578,\"raw_row_count\":4,\"conflicts\":[{\"trade_identity\":\"4864b1515a46c5a7027df34865751263f136132b186a22a85bedf56d5b3c8580\",\"local\":{\"semantic_hash\":\"0bd2f70ee53f0e68ce3250a9db186bb78289ef3335e6843b3298708d26a90946\",\"trade_id\":1978425230,\"mts\":\"2026-09-20T01:19:16.430000+00:00\",\"amount\":\"0.0002\",\"price\":\"81144\",\"source_payload_hash\":\"01c9ec301dba6ddbf3cb15ee66a1b5d2258ba173dd88c51c7ae5e5d621740e1c\",\"trade_json\":\"{\\\"amount\\\":\\\"0.0002\\\",\\\"mts\\\":\\\"2026-09-20T01:19:16.430000+00:00\\\",\\\"price\\\":\\\"81144\\\",\\\"semantic_hash\\\":\\\"0bd2f70ee53f0e68ce3250a9db186bb78289ef3335e6843b3298708d26a90946\\\",\\\"source_payload_hash\\\":\\\"01c9ec301dba6ddbf3cb15ee66a1b5d2258ba173dd88c51c7ae5e5d621740e1c\\\",\\\"trade_id\\\":1978425230,\\\"trade_identity\\\":\\\"4864b1515a46c5a7027df34865751263f136132b186a22a85bedf56d5b3c8580\\\"}\"},\"rest\":{\"semantic_hash\":\"449f362d057b4c1d5872e5c592a81540d2dab554dc5424845896247f00761400\",\"trade_id\":1978425230,\"mts\":\"2026-09-20T01:19:16.431000+00:00\",\"amount\":\"0.0002\",\"price\":\"81144\",\"source_payload_hash\":\"53e0f9604d7422f6bb0cf507ef71da60a62f27df87e2d93e330fa5991c48e8a2\"},\"variant_matches\":[-1],\"variants\":[{\"offset_ms\":-2,\"semantic_hash\":\"1cdb42a9bc93120d4cdf18de070ff499c7c200eee2000a4717b07a314f5fe21e\",\"matches_local\":false,\"source_payload_hash\":\"66c555e9e65de2c6d6312560a42eca03d4a58cde9f5afd35506524b9063c7dba\"},{\"offset_ms\":-1,\"semantic_hash\":\"0bd2f70ee53f0e68ce3250a9db186bb78289ef3335e6843b3298708d26a90946\",\"matches_local\":true,\"source_payload_hash\":\"01c9ec301dba6ddbf3cb15ee66a1b5d2258ba173dd88c51c7ae5e5d621740e1c\"},{\"offset_ms\":0,\"semantic_hash\":\"449f362d057b4c1d5872e5c592a81540d2dab554dc5424845896247f00761400\",\"matches_local\":false,\"source_payload_hash\":\"53e0f9604d7422f6bb0cf507ef71da60a62f27df87e2d93e330fa5991c48e8a2\"},{\"offset_ms\":1,\"semantic_hash\":\"d696ff4e798a29e2b86f6a36864ceef338f8230722e9ae533ffc4f33ecc993e4\",\"matches_local\":false,\"source_payload_hash\":\"ec5ed3a90b2166cf92827e3df9250eb1415e12d30119edec4d556092a9e1bc02\"},{\"offset_ms\":2,\"semantic_hash\":\"ee52f6916b8361dd021617f3178c89a8cc4e983163305700d0f2a0bfa6f05f5d\",\"matches_local\":false,\"source_payload_hash\":\"ec2ed9ad9774b2b53d8aa97eabfa24779dd6f60aef4542fe6521699858a00bff\"}]}]},{\"seq\":350488,\"raw_row_count\":4,\"conflicts\":[{\"trade_identity\":\"ff901a1b6bc9a49c961c34d90731fd1550fd89e00ded60ca892b2e2d5fb33363\",\"local\":{\"semantic_hash\":\"ef5d24518812bce987bd8dc7f8401d18e85fac4403bde28798e09df7bb76110f\",\"trade_id\":1978544807,\"mts\":\"2026-09-20T07:26:42.303000+00:00\",\"amount\":\"0.00007465\",\"price\":\"80374\",\"source_payload_hash\":\"3408edf5ee86d62afb50c5d01ea09cd734eae97dabc39aa9229a158aab0e4f2f\",\"trade_json\":\"{\\\"amount\\\":\\\"0.00007465\\\",\\\"mts\\\":\\\"2026-09-20T07:26:42.303000+00:00\\\",\\\"price\\\":\\\"80374\\\",\\\"semantic_hash\\\":\\\"ef5d24518812bce987bd8dc7f8401d18e85fac4403bde28798e09df7bb76110f\\\",\\\"source_payload_hash\\\":\\\"3408edf5ee86d62afb50c5d01ea09cd734eae97dabc39aa9229a158aab0e4f2f\\\",\\\"trade_id\\\":1978544807,\\\"trade_identity\\\":\\\"ff901a1b6bc9a49c961c34d90731fd1550fd89e00ded60ca892b2e2d5fb33363\\\"}\"},\"rest\":{\"semantic_hash\":\"b52ddcf353996786e3b60a3594cf28602d884074d94b995f88b7d573707000b9\",\"trade_id\":1978544807,\"mts\":\"2026-09-20T07:26:42.304000+00:00\",\"amount\":\"0.00007465\",\"price\":\"80374\",\"source_payload_hash\":\"8763bfa6192a0bf44d9bfaa4cde01abe95bc39c53954247d2970dfcceb0d979f\"},\"variant_matches\":[-1],\"variants\":[{\"offset_ms\":-2,\"semantic_hash\":\"1d10a16a04eed2f97e0f8c55bafefe8a21a425d3ae2ba8a546aeba078ee91031\",\"matches_local\":false,\"source_payload_hash\":\"0783fc3f4b5f31ff51e7ac7288c196e53b984c73241b278f05230544da8d785a\"},{\"offset_ms\":-1,\"semantic_hash\":\"ef5d24518812bce987bd8dc7f8401d18e85fac4403bde28798e09df7bb76110f\",\"matches_local\":true,\"source_payload_hash\":\"3408edf5ee86d62afb50c5d01ea09cd734eae97dabc39aa9229a158aab0e4f2f\"},{\"offset_ms\":0,\"semantic_hash\":\"b52ddcf353996786e3b60a3594cf28602d884074d94b995f88b7d573707000b9\",\"matches_local\":false,\"source_payload_hash\":\"8763bfa6192a0bf44d9bfaa4cde01abe95bc39c53954247d2970dfcceb0d979f\"},{\"offset_ms\":1,\"semantic_hash\":\"25baa8f899aa93475f64dea1282a9b83edef91b577b008e19e25581f02903d82\",\"matches_local\":false,\"source_payload_hash\":\"95bbe8d5870fa9629a1c008c79d3f6f32d241c945c59a386cd6f4dd2f5421634\"},{\"offset_ms\":2,\"semantic_hash\":\"41c31b5e76c6eec2c319364d66e0bfefb76a4b630d72e76cff6295b043b29932\",\"matches_local\":false,\"source_payload_hash\":\"24edd67d593b114d7f4f64124d81d8c90a90adad4751886e7b021c3b3d614521\"}]}]},{\"seq\":377008,\"raw_row_count\":16,\"conflicts\":[{\"trade_identity\":\"102515c73c5748a56ca153cab57cdb832b5aae503a5485a23265c6313699d80f\",\"local\":{\"semantic_hash\":\"3882f08ebf2ef5777383f6ce57ccf3a56c5064e47eae32096c699b6fadaf14aa\",\"trade_id\":1978663377,\"mts\":\"2026-09-20T13:52:37.772000+00:00\",\"amount\":\"-0.00040192\",\"price\":\"80573\",\"source_payload_hash\":\"6799fb8d397f192d51de2148e6583013ff8ad845aa1c734cc41be3170dc05bd0\",\"trade_json\":\"{\\\"amount\\\":\\\"-0.00040192\\\",\\\"mts\\\":\\\"2026-09-20T13:52:37.772000+00:00\\\",\\\"price\\\":\\\"80573\\\",\\\"semantic_hash\\\":\\\"3882f08ebf2ef5777383f6ce57ccf3a56c5064e47eae32096c699b6fadaf14aa\\\",\\\"source_payload_hash\\\":\\\"6799fb8d397f192d51de2148e6583013ff8ad845aa1c734cc41be3170dc05bd0\\\",\\\"trade_id\\\":1978663377,\\\"trade_identity\\\":\\\"102515c73c5748a56ca153cab57cdb832b5aae503a5485a23265c6313699d80f\\\"}\"},\"rest\":{\"semantic_hash\":\"0db8672a6d0b8425a4e3cd9a3ddb6ec48c179613be302f27b9237d17f251693b\",\"trade_id\":1978663377,\"mts\":\"2026-09-20T13:52:37.773000+00:00\",\"amount\":\"-0.00040192\",\"price\":\"80573\",\"source_payload_hash\":\"4ee54a973defc37cefd51a348baaad298f4da43f6de89313e16478df82ae44a3\"},\"variant_matches\":[-1],\"variants\":[{\"offset_ms\":-2,\"semantic_hash\":\"2cbc4315dd91ab870e414ab3016c11196a622384552710f3382df18285a3de61\",\"matches_local\":false,\"source_payload_hash\":\"f1529b193f6c423fbe8178ff8fec799786907d26cca62f005f79bd5e267f44e9\"},{\"offset_ms\":-1,\"semantic_hash\":\"3882f08ebf2ef5777383f6ce57ccf3a56c5064e47eae32096c699b6fadaf14aa\",\"matches_local\":true,\"source_payload_hash\":\"6799fb8d397f192d51de2148e6583013ff8ad845aa1c734cc41be3170dc05bd0\"},{\"offset_ms\":0,\"semantic_hash\":\"0db8672a6d0b8425a4e3cd9a3ddb6ec48c179613be302f27b9237d17f251693b\",\"matches_local\":false,\"source_payload_hash\":\"4ee54a973defc37cefd51a348baaad298f4da43f6de89313e16478df82ae44a3\"},{\"offset_ms\":1,\"semantic_hash\":\"c9bf932c08d754613ce1ee41d8a7540238191793e2d40b437c50690d09d8eb14\",\"matches_local\":false,\"source_payload_hash\":\"cd6cc7d781fb57f96ad6fb5f29c6fd9f6ff85edf8115ae8d022545973b078e6f\"},{\"offset_ms\":2,\"semantic_hash\":\"0be51abb280bb4a3c116fcc375e9e0e4fa249e62959f5a17310dfca196b9f8e8\",\"matches_local\":false,\"source_payload_hash\":\"4b7dc937ad0fa7b9aeaba0950278c11ed5356da759f0c83f7650e63b9174c702\"}]}]}],\"source_methods\":{\"canonical_build\":\" @classmethod\\n def build(\\n cls,\\n *,\\n trade_id: int,\\n mts: datetime,\\n amount: Decimal,\\n price: Decimal,\\n source_payload_hash: str,\\n ) -> \\\"BitfinexCanonicalTradeV1\\\":\\n trade_identity = canonical_hash({\\n \\\"schema\\\": \\\"CR0116_BITFINEX_TRADE_ID_V1\\\",\\n \\\"venue_id\\\": \\\"BITFINEX\\\",\\n \\\"trade_id\\\": trade_id,\\n })\\n semantic_hash = canonical_hash({\\n \\\"schema\\\": \\\"CR0116_BITFINEX_TRADE_SEMANTICS_V1\\\",\\n \\\"trade_identity\\\": trade_identity,\\n \\\"mts\\\": mts,\\n \\\"amount\\\": amount,\\n \\\"price\\\": price,\\n \\\"source_payload_hash\\\": source_payload_hash,\\n })\\n return cls(\\n trade_identity=trade_identity,\\n semantic_hash=semantic_hash,\\n trade_id=trade_id,\\n mts=mts,\\n amount=amount,\\n price=price,\\n source_payload_hash=source_payload_hash,\\n )\\n\",\"source_payload_hash\":\"def _source_payload_hash(*, trade_id: int, mts_ms: int, amount: Decimal, price: Decimal) -> str:\\n raw = json.dumps(\\n {\\n \\\"trade_id\\\": trade_id,\\n \\\"mts_ms\\\": mts_ms,\\n \\\"amount\\\": format(amount, \\\"f\\\"),\\n \\\"price\\\": format(price, \\\"f\\\"),\\n },\\n ensure_ascii=True,\\n sort_keys=True,\\n separators=(\\\",\\\", \\\":\\\"),\\n ).encode(\\\"utf-8\\\")\\n return hashlib.sha256(raw).hexdigest()\\n\",\"normalize_rest\":\"def normalize_bitfinex_rest_trade(row: object) -> BitfinexCanonicalTradeV1:\\n if not isinstance(row, list) or len(row) < 4:\\n raise DemonovError(\\\"Bitfinex REST trade row malformed\\\")\\n trade_id, mts_ms, amount_raw, price_raw = row[:4]\\n if not isinstance(trade_id, int) or isinstance(trade_id, bool) or trade_id <= 0:\\n raise DemonovError(\\\"Bitfinex REST trade id invalid\\\")\\n if not isinstance(mts_ms, int) or isinstance(mts_ms, bool) or mts_ms < 0:\\n raise DemonovError(\\\"Bitfinex REST trade timestamp invalid\\\")\\n try:\\n amount = Decimal(str(amount_raw))\\n price = Decimal(str(price_raw))\\n except Exception as exc:\\n raise DemonovError(\\\"Bitfinex REST trade numeric value invalid\\\") from exc\\n source_payload_hash = _source_payload_hash(\\n trade_id=trade_id,\\n mts_ms=mts_ms,\\n amount=amount,\\n price=price,\\n )\\n return BitfinexCanonicalTradeV1.build(\\n trade_id=trade_id,\\n mts=datetime.fromtimestamp(mts_ms / 1000, tz=timezone.utc),\\n amount=amount,\\n price=price,\\n source_payload_hash=source_payload_hash,\\n )\\n\"}}}\nTASK_RESULT=PASS_SIGNALBOT_052SEM3_ALL_FOUR_EXACT_MINUS_1MS_EQUIVALENCE_PROVEN\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SIGNALBOT-260921-SEMANTIC-MTS-DRIFT-PROOF-052SEM3\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n"
|
|
}
|