{
  "before_service": {
    "ActiveState": "active",
    "ExecMainStartTimestamp": "Mon 2026-07-13 19:50:24 UTC",
    "MainPID": "2826463",
    "NRestarts": "0",
    "SubState": "running"
  },
  "changed_live_profile": false,
  "database_context_all_ok": true,
  "database_context_injection_count": 16,
  "database_context_trace": [
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "demo_capability_readback"
      ],
      "contract_sha256": "28fb670425862f512082618eea335bec6d3a1bba5e96c6f2ec27096dfac2158a",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:25:27.197525+00:00",
      "injected": true,
      "query_sha256": "541d4fd4051dd99a69de7e01b7da921d495f4d7f3bf74a76abab47654a28b1f2",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "demo_capability_readback",
        "reply_budget"
      ],
      "delivered_response_sha256": "aa5c738d45787efcc505e4f81bf916bb1bb38387bc5a9af18678a7230c5f6b5f",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:25:44.662055+00:00",
      "issues": [
        "missing_demo_claim_ceiling",
        "missing_demo_state:applied",
        "missing_demo_state:approved",
        "missing_demo_state:pending_review",
        "missing_demo_term:artifact",
        "missing_demo_term:authorization",
        "missing_demo_term:postflight",
        "missing_live_count_readback:demo_capability_readback",
        "missing_proof_changing_followup"
      ],
      "query_sha256": "541d4fd4051dd99a69de7e01b7da921d495f4d7f3bf74a76abab47654a28b1f2",
      "response_sha256": "c235cb7a89526694981b3f388145d0d313da193aa5f889db1bd394374a0815dc",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "source_intake"
      ],
      "contract_sha256": "eb5769dffc910bd50ff9e9ed9c7de43b0b86eddd5c45275ca943cb7c7e15a3bb",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:25:44.863437+00:00",
      "injected": true,
      "query_sha256": "6cc38b795088d0ef2cbc989b910293291542d865ef52bcc783bf31a510885724",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget",
        "source_intake"
      ],
      "delivered_response_sha256": "677a58bc969f7fddf5ffada4fed992a365ff7f70d4d1fb6fbb89546d6322952a",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:25:56.958399+00:00",
      "issues": [
        "missing_real_source_identity",
        "reply_budget_exceeded"
      ],
      "query_sha256": "6cc38b795088d0ef2cbc989b910293291542d865ef52bcc783bf31a510885724",
      "response_sha256": "8c634aa00b7f277af680557a642b28def4c6953e1cba2b208400af6f0d879ff4",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "identity_canonicality_readback",
        "runtime_persistence"
      ],
      "contract_sha256": "9984a54603131c9e7c1d8ff5a395585694ce7b8dee6a2becb8b86d885201a0ff",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:25:57.128655+00:00",
      "injected": true,
      "query_sha256": "066f3fa52d5a2cb2fdb3b507086da3f423fc4a4a3aecef3198a629e835684c13",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "identity_canonicality_readback",
        "reply_budget",
        "runtime_persistence"
      ],
      "delivered_response_sha256": "89e3ebc4e6b99c0f63006f0dd8cd5dcc7e859acbac7e356c80661104f95cb059",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:26:07.687710+00:00",
      "issues": [
        "missing_identity_canonicality_boundary",
        "missing_identity_renderer_ceiling",
        "missing_identity_term:canonical postgres rows",
        "missing_identity_term:render/sync",
        "missing_live_count_readback:identity_canonicality_readback",
        "missing_proof_changing_followup"
      ],
      "query_sha256": "066f3fa52d5a2cb2fdb3b507086da3f423fc4a4a3aecef3198a629e835684c13",
      "response_sha256": "0ccad0807802655ba1c07c9239be99707e6f942bc3ffce67d6e95e17fd82de55",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "proposal_state_readback",
        "proposal_apply_readiness"
      ],
      "contract_sha256": "bac94305e31846b462d1e88f2d38f8a5dabdac969ad552655327caa7e24a4946",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:26:07.998667+00:00",
      "injected": true,
      "query_sha256": "e77c4943900cf44790d3e04b3042d15bd59af90b7c4ac8f77960a88a67e1a393",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "proposal_apply_readiness",
        "proposal_state_readback",
        "reply_budget"
      ],
      "delivered_response_sha256": "1bf46c88cb320a76c98cf6f5ac58eb5de4c9067b340f08ad718cf8d230969958",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:26:19.111434+00:00",
      "issues": [
        "missing_live_count_readback:proposal_state_readback",
        "missing_live_proposal_state:applied",
        "missing_live_proposal_state:approved",
        "missing_live_proposal_state:canceled",
        "missing_live_proposal_state:pending_review",
        "missing_proof_changing_followup",
        "missing_proposal_apply_boundary"
      ],
      "query_sha256": "e77c4943900cf44790d3e04b3042d15bd59af90b7c4ac8f77960a88a67e1a393",
      "response_sha256": "a0a8e090e4139be266799e40d5ca7d4faf6b7b984300be26318a7acfe5979259",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "source_link_audit"
      ],
      "contract_sha256": "69a06bd10a27e7cb3267fd78bcaa6a5e2d367aba01585f1201d2d234ac0a2c60",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:26:19.284029+00:00",
      "injected": true,
      "query_sha256": "fb6760b0c24c59549d1e05dc5aae6b86de68417a0a9ba8a123317e39b2b75542",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget",
        "source_link_audit"
      ],
      "delivered_response_sha256": "384324a281dd9ee8ece2e770332bcda93256e0b85acc5d87e05bf429425dbad9",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:26:31.559398+00:00",
      "issues": [
        "missing_live_count_readback:source_link_audit",
        "missing_live_source_link_audit",
        "missing_proof_changing_followup",
        "missing_source_link_causality_boundary",
        "reply_budget_exceeded"
      ],
      "query_sha256": "fb6760b0c24c59549d1e05dc5aae6b86de68417a0a9ba8a123317e39b2b75542",
      "response_sha256": "581de943ce900a50422580b0d17dec8a7021afae9fc9a991f0944bc193c14c3b",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "mixed_packet_composition"
      ],
      "contract_sha256": "e93a0c035e7d4084a197d71f11bf293c695024b05944cae01d58a57eb0d595bf",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:26:31.725089+00:00",
      "injected": true,
      "query_sha256": "13c255fda3a35cd913ba92960bcda1b4dbcf55a38f3301bdc2a74a8eb040df23",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "mixed_packet_composition",
        "reply_budget"
      ],
      "delivered_response_sha256": "a5ce84cd29cfb460e51e0aa0f279838b887f192b6e53b6359fd56050031290cc",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:26:41.005105+00:00",
      "issues": [
        "missing_approve_claim_boundary"
      ],
      "query_sha256": "13c255fda3a35cd913ba92960bcda1b4dbcf55a38f3301bdc2a74a8eb040df23",
      "response_sha256": "72af0639bb5b0bce6d2dde707f77a33365e96668e00865fce72e7652725ba1b2",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": false,
      "contract_ids": [
        "reply_budget"
      ],
      "contract_sha256": "6e1f1ca2cc9e2e1bd7b0e47613b528138dbb8f49481fc8f66d28d0c5a570c6ff",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:26:41.881107+00:00",
      "injected": true,
      "query_sha256": "1023e68558de7a9b1f8c18aab2d6d27b6343f1015f59e62e1ba20d413df9b029",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": false,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget"
      ],
      "delivered_response_sha256": "8ad825b7452be4e45f65b9ba4160264c82c801ea366ae971aa4b398c30ef44e8",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:26:48.202194+00:00",
      "issues": [],
      "query_sha256": "1023e68558de7a9b1f8c18aab2d6d27b6343f1015f59e62e1ba20d413df9b029",
      "response_sha256": "8ad825b7452be4e45f65b9ba4160264c82c801ea366ae971aa4b398c30ef44e8",
      "status": "ok",
      "transformed": false,
      "validated": true
    },
    {
      "compiled_response_available": false,
      "contract_ids": [
        "reply_budget"
      ],
      "contract_sha256": "6e1f1ca2cc9e2e1bd7b0e47613b528138dbb8f49481fc8f66d28d0c5a570c6ff",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:26:52.024606+00:00",
      "injected": true,
      "query_sha256": "f82177233e13e13653edbcc962802b8f3431ac6e5304c2acc87aaf49a85aa877",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": false,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget"
      ],
      "delivered_response_sha256": "6fe482d58f144c3521c73d298cee5856b112962b9ecb2bb99e68768c3cdc9c9e",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:26:58.092766+00:00",
      "issues": [],
      "query_sha256": "f82177233e13e13653edbcc962802b8f3431ac6e5304c2acc87aaf49a85aa877",
      "response_sha256": "6fe482d58f144c3521c73d298cee5856b112962b9ecb2bb99e68768c3cdc9c9e",
      "status": "ok",
      "transformed": false,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "telegram_participant_identity"
      ],
      "contract_sha256": "5e1f8d07f99442d63190f815c7e21fe272945399a802d812a5b770489ba87e21",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:27:02.195858+00:00",
      "injected": true,
      "query_sha256": "fb4d59cf637d1cbc16fe86e32c2b29121cd797bc6f2315d910f3f6be5eb01baa",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget",
        "telegram_participant_identity"
      ],
      "delivered_response_sha256": "0dd5eb52bbb341322bf3bc219a7042b0b1ba22b4d671d3eb5ab581bd9f6b6ed0",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:27:08.843034+00:00",
      "issues": [],
      "query_sha256": "fb4d59cf637d1cbc16fe86e32c2b29121cd797bc6f2315d910f3f6be5eb01baa",
      "response_sha256": "93ca109617e2851a37ebc393c0f17b87636b3faf9c815a59662f2c857ab6c3b6",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "runtime_persistence"
      ],
      "contract_sha256": "7a45eee16b75b8ba7b784442255c6be46c5f8cb130f1a3e7d896586afabbedd5",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:27:12.342019+00:00",
      "injected": true,
      "query_sha256": "8c415f38c4817520142cea8f71cbc7070dd0bd38d038a3262b9d5ec342538b08",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget",
        "runtime_persistence"
      ],
      "delivered_response_sha256": "51ffcd1edaa855dff9142254a766a8afab96d53becf365ca37d9ce5256428111",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:27:26.256308+00:00",
      "issues": [],
      "query_sha256": "8c415f38c4817520142cea8f71cbc7070dd0bd38d038a3262b9d5ec342538b08",
      "response_sha256": "f0708f46a30ff243d86199a64ef730d66be11ef0257313728bbcfa06d228592c",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "shared_claims_agent_positions"
      ],
      "contract_sha256": "d26c3c84ae833a789a166b5992fd46baf3d09912ef63f9c44e47f6f0ca422418",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:27:26.545088+00:00",
      "injected": true,
      "query_sha256": "eb10809662bb0cfdd194b9fdad8f84a0a93e116757b15910d454cbe9f3ffca1c",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_available": false,
      "contract_ids": [
        "reply_budget"
      ],
      "contract_sha256": "6e1f1ca2cc9e2e1bd7b0e47613b528138dbb8f49481fc8f66d28d0c5a570c6ff",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:27:26.561869+00:00",
      "injected": true,
      "query_sha256": "bc56893688699c692181e4f5744061380fdf28b8132de50f67b3a9548efccdc7",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget",
        "shared_claims_agent_positions"
      ],
      "delivered_response_sha256": "d9014065c29746c501d390c7dc39687fd6d13d64910660871b33ef3c827c2152",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:27:34.005993+00:00",
      "issues": [],
      "query_sha256": "eb10809662bb0cfdd194b9fdad8f84a0a93e116757b15910d454cbe9f3ffca1c",
      "response_sha256": "3b44da79224c523c7b79d45643f030dbb0f4693f5228bec256d0aadd77625eea",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "forecast_resolution_schema"
      ],
      "contract_sha256": "06560b820cb3f7a20d74ff8cd99507423b5d9c476fb707e7405b335f41d4106f",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:27:36.653434+00:00",
      "injected": true,
      "query_sha256": "4bd553c55c0532cc0b2e606bc77e737055aa048d24b2b97f3271ab8dc301d912",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": false,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget"
      ],
      "delivered_response_sha256": "bb1db4a8cdb051c267036db7a811748dff001825383f223ef222c61aa9ddc377",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:27:38.994798+00:00",
      "issues": [],
      "query_sha256": "bc56893688699c692181e4f5744061380fdf28b8132de50f67b3a9548efccdc7",
      "response_sha256": "bb1db4a8cdb051c267036db7a811748dff001825383f223ef222c61aa9ddc377",
      "status": "ok",
      "transformed": false,
      "validated": true
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "forecast_resolution_schema",
        "reply_budget"
      ],
      "delivered_response_sha256": "1ca0adb52dde593664e4a8fab5dfa825eaadab30cd75e1696785269f592642eb",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:27:47.469019+00:00",
      "issues": [],
      "query_sha256": "4bd553c55c0532cc0b2e606bc77e737055aa048d24b2b97f3271ab8dc301d912",
      "response_sha256": "1bbe32c1df768cfb953ac8a2c5f94ba4e14cf5d457b1fab9efa0233664ff2887",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "telegram_delivery_proof"
      ],
      "contract_sha256": "452a547040417d2082f28a49b760775935143baeec1cf56b193033edf14ea682",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:27:47.644720+00:00",
      "injected": true,
      "query_sha256": "8e01f80a6eaf3e86337f8b91846ac4e40b97010c635b6e82b2ae067f8aea9406",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget",
        "telegram_delivery_proof"
      ],
      "delivered_response_sha256": "7f47a618bcc33d0bf37ea35795e8b6a0fed6377dbfe7a4ea85144636a3df69bd",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:27:53.776725+00:00",
      "issues": [],
      "query_sha256": "8e01f80a6eaf3e86337f8b91846ac4e40b97010c635b6e82b2ae067f8aea9406",
      "response_sha256": "4f1f01343a069f0372fb4abc17bcd84190d59da9dc190e12fa4286c12b211323",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "source_intake"
      ],
      "contract_sha256": "eb5769dffc910bd50ff9e9ed9c7de43b0b86eddd5c45275ca943cb7c7e15a3bb",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:27:57.791354+00:00",
      "injected": true,
      "query_sha256": "45141620c3405af992012e2bd5000cabd8a6bffbc784082e856ea1a18b6aec06",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "reply_budget",
        "source_intake"
      ],
      "delivered_response_sha256": "677a58bc969f7fddf5ffada4fed992a365ff7f70d4d1fb6fbb89546d6322952a",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:28:04.244511+00:00",
      "issues": [],
      "query_sha256": "45141620c3405af992012e2bd5000cabd8a6bffbc784082e856ea1a18b6aec06",
      "response_sha256": "d55bbac5d9e94689f3cf10e4e333b7e3d08fd02fe28dcf1abdaf445347811f3d",
      "status": "ok",
      "transformed": true,
      "validated": true
    },
    {
      "compiled_response_available": true,
      "contract_ids": [
        "reply_budget",
        "claim_supersession_schema"
      ],
      "contract_sha256": "b919eb1012e4ea17feb215010ace5ba0ffd4d8a2b36bc221eec85ecaa1e961ea",
      "event": "pre_llm_call",
      "generated_at_utc": "2026-07-13T20:28:07.946249+00:00",
      "injected": true,
      "query_sha256": "fa31de2bb07e50436ab09cf3c81660a1ab28ecfeb2427f4cd50522c0a1b9eaff",
      "source": "kb_tool.py --local context",
      "status": "ok"
    },
    {
      "compiled_response_enforced": true,
      "compiled_response_issues": [],
      "contract_ids": [
        "claim_supersession_schema",
        "reply_budget"
      ],
      "delivered_response_sha256": "88ca8fd199c5dc1e7feb3b0beb95dcb0236b9f8c6783fb06c824321ea6616896",
      "event": "post_llm_call",
      "fail_closed": false,
      "generated_at_utc": "2026-07-13T20:28:15.674969+00:00",
      "issues": [],
      "query_sha256": "fa31de2bb07e50436ab09cf3c81660a1ab28ecfeb2427f4cd50522c0a1b9eaff",
      "response_sha256": "3548db49666f729b5073f9a874ce52cdd4cd020715594daef18605ffe9c23c44",
      "status": "ok",
      "transformed": true,
      "validated": true
    }
  ],
  "database_response_transform_count": 13,
  "database_response_validation_all_ok": true,
  "database_response_validation_count": 16,
  "db_counts_after": {
    "kb_stage.kb_proposals": 29,
    "public.claim_edges": 4916,
    "public.claim_evidence": 4670,
    "public.claims": 1837,
    "public.sources": 4145
  },
  "db_counts_before": {
    "kb_stage.kb_proposals": 29,
    "public.claim_edges": 4916,
    "public.claim_evidence": 4670,
    "public.claims": 1837,
    "public.sources": 4145
  },
  "db_counts_changed": false,
  "generated_at_utc": "2026-07-13T20:25:23.252596+00:00",
  "handler": {
    "authorized": true,
    "session_key": "agent:main:telegram:group:-5146042086:9070919",
    "temp_profile": "/tmp/leo-direct-claim-handler-y547pi6u/profile"
  },
  "harness_notes": [
    "Broad out-of-sample m3taversal prompts plus randomized memory and participant-identity checks.",
    "The harness uses a temporary copy of the leoclean profile and does not post to Telegram.",
    "This proves handler-level live VPS GatewayRunner behavior, not human-visible Telegram delivery."
  ],
  "mode": "live_vps_gatewayrunner_temp_profile_m3taversal_out_of_sample_suite",
  "mutates_kb_by_harness": false,
  "pass_runtime": true,
  "posted_to_telegram": false,
  "remote_report_path": "/tmp/leo-m3taversal-oos-handler-report-fdb197a80862.json",
  "remote_returncode": 0,
  "remote_run_id": "fdb197a80862",
  "results": [
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "demo_capability_readback"
          ],
          "contract_sha256": "28fb670425862f512082618eea335bec6d3a1bba5e96c6f2ec27096dfac2158a",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:25:27.197525+00:00",
          "injected": true,
          "query_sha256": "541d4fd4051dd99a69de7e01b7da921d495f4d7f3bf74a76abab47654a28b1f2",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "demo_capability_readback",
            "reply_budget"
          ],
          "delivered_response_sha256": "aa5c738d45787efcc505e4f81bf916bb1bb38387bc5a9af18678a7230c5f6b5f",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:25:44.662055+00:00",
          "issues": [
            "missing_demo_claim_ceiling",
            "missing_demo_state:applied",
            "missing_demo_state:approved",
            "missing_demo_state:pending_review",
            "missing_demo_term:artifact",
            "missing_demo_term:authorization",
            "missing_demo_term:postflight",
            "missing_live_count_readback:demo_capability_readback",
            "missing_proof_changing_followup"
          ],
          "query_sha256": "541d4fd4051dd99a69de7e01b7da921d495f4d7f3bf74a76abab47654a28b1f2",
          "response_sha256": "c235cb7a89526694981b3f388145d0d313da193aa5f889db1bd394374a0815dc",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "demo_pressure_without_ids",
      "ended_at_utc": "2026-07-13T20:25:44.751691+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "m3taversal walks in now and says, 'Leo's database has not learned anything useful since yesterday and I cannot demo this.' Do not ask me for row IDs. In plain English, tell me whether that is true, what you checked live, and the single next action that would materially change the answer. Keep this read-only: do not stage, approve, apply, or edit anything.",
      "prompt_id": "OOS-01",
      "reply": "Not proven.\nFresh live readback.\nDB readback: claims: 1837; sources: 4145; claim_edges: 4916; claim_evidence: 4670; kb_proposals: 29.\nProposal states are applied: 2, approved: 3, pending_review: 16. This current snapshot does not prove what changed since yesterday, so the demo claim is limited to current readback. Existing receipt artifacts identify applied types add_edge and attach_evidence, but not a time-window delta. Approved is not applied; 3/3 approved rows are approved_needs_apply_payload and not directly applyable.\n\nNext proof-changing follow-up: build and review a strict apply_payload for the highest-impact approved proposal, then seek explicit apply authorization. Until its applied_at, public.* before/after row IDs or hashes, and postflight readback exist, do not claim the canonical database changed.",
      "started_at_utc": "2026-07-13T20:25:23.990361+00:00",
      "turn": 1
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "source_intake"
          ],
          "contract_sha256": "eb5769dffc910bd50ff9e9ed9c7de43b0b86eddd5c45275ca943cb7c7e15a3bb",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:25:44.863437+00:00",
          "injected": true,
          "query_sha256": "6cc38b795088d0ef2cbc989b910293291542d865ef52bcc783bf31a510885724",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget",
            "source_intake"
          ],
          "delivered_response_sha256": "677a58bc969f7fddf5ffada4fed992a365ff7f70d4d1fb6fbb89546d6322952a",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:25:56.958399+00:00",
          "issues": [
            "missing_real_source_identity",
            "reply_budget_exceeded"
          ],
          "query_sha256": "6cc38b795088d0ef2cbc989b910293291542d865ef52bcc783bf31a510885724",
          "response_sha256": "8c634aa00b7f277af680557a642b28def4c6953e1cba2b208400af6f0d879ff4",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "multi_surface_knowledge_ingestion",
      "ended_at_utc": "2026-07-13T20:25:56.989029+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "I give you a PDF, a Telegram discussion, and five tweets that all make overlapping claims about a market shift. Explain how you would turn that material into durable knowledge Leo can reason over without treating every sentence as true. Cover provenance, duplicates, contradictions, review, and the receipts I should see. Explain only; do not stage or mutate the KB.",
      "prompt_id": "OOS-02",
      "reply": "- VPS filesystem document preparation and source-to-proposal staging are shipped; automatic Telegram attachment capture is not shipped. Sending a report in chat does not by itself create a proposal or persistent knowledge. The Telegram attachment downloader is not connected to the filesystem preparation command.\n\n- The live bounded path is to place a text-like artifact or supplied UTF-8 extraction under the private kb-source-inbox root, then run teleo-kb prepare-source; it retrieves canonical candidates and emits an exact-quote manifest with no DB write, then run teleo-kb propose-source to validate and stage a pending_review proposal. It writes only kb_stage.kb_proposals. A chat label, filename, attachment reference, or source_ref is not provenance. Before review, deduplicate overlaps and retain exact excerpts, source caveats, uncertainty, and contradictory interpretations. Candidates are not canonical until reviewed and applied, and no public.sources or other public.* rows are created during staging.\n\n- Explicit approval begins before guarded canonical public.* apply, not before mechanical capture/staging. Receipt: locator and content hash, proposal ID/status, reviewed payload, applied_at, created row IDs, and postflight readback. Next proof-changing follow-up: run teleo-kb prepare-source, inspect its exact-quote and duplicate judgments, then run teleo-kb propose-source and review the staged candidates.",
      "started_at_utc": "2026-07-13T20:25:44.766849+00:00",
      "turn": 2
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "identity_canonicality_readback",
            "runtime_persistence"
          ],
          "contract_sha256": "9984a54603131c9e7c1d8ff5a395585694ce7b8dee6a2becb8b86d885201a0ff",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:25:57.128655+00:00",
          "injected": true,
          "query_sha256": "066f3fa52d5a2cb2fdb3b507086da3f423fc4a4a3aecef3198a629e835684c13",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "identity_canonicality_readback",
            "reply_budget",
            "runtime_persistence"
          ],
          "delivered_response_sha256": "89e3ebc4e6b99c0f63006f0dd8cd5dcc7e859acbac7e356c80661104f95cb059",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:26:07.687710+00:00",
          "issues": [
            "missing_identity_canonicality_boundary",
            "missing_identity_renderer_ceiling",
            "missing_identity_term:canonical postgres rows",
            "missing_identity_term:render/sync",
            "missing_live_count_readback:identity_canonicality_readback",
            "missing_proof_changing_followup"
          ],
          "query_sha256": "066f3fa52d5a2cb2fdb3b507086da3f423fc4a4a3aecef3198a629e835684c13",
          "response_sha256": "0ccad0807802655ba1c07c9239be99707e6f942bc3ffce67d6e95e17fd82de55",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "identity_restart_truth",
      "ended_at_utc": "2026-07-13T20:26:07.718433+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "I corrected Leo's worldview in chat and someone also edited SOUL.md. Will that correction be part of Leo's canonical identity tomorrow after a restart? Give me the exact truth test from database row to runtime artifact. Do not change either surface.",
      "prompt_id": "OOS-03",
      "reply": "No.\nDB readback: claims: 1837; sources: 4145; claim_edges: 4916; claim_evidence: 4670; kb_proposals: 29.\nA direct SOUL.md edit is a runtime/profile change; it does not change canonical Postgres rows in personas, strategies, beliefs, strategy_nodes, or strategy_node_anchors. A chat correction is also not canonical until it is staged, reviewed, and applied as exact identity rows. No active general DB-to-SOUL.md renderer automation is currently proven, so neither surface should be assumed to survive as identity after restart.\n\nNext proof-changing follow-up: audit the intended canonical identity rows and proposal UUID/status/applied_at, stage the exact change, review it, apply it with authorization, run or verify render/sync, then compare SOUL.md hash/content and restart readback.",
      "started_at_utc": "2026-07-13T20:25:56.989524+00:00",
      "turn": 3
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "proposal_state_readback",
            "proposal_apply_readiness"
          ],
          "contract_sha256": "bac94305e31846b462d1e88f2d38f8a5dabdac969ad552655327caa7e24a4946",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:26:07.998667+00:00",
          "injected": true,
          "query_sha256": "e77c4943900cf44790d3e04b3042d15bd59af90b7c4ac8f77960a88a67e1a393",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "proposal_apply_readiness",
            "proposal_state_readback",
            "reply_budget"
          ],
          "delivered_response_sha256": "1bf46c88cb320a76c98cf6f5ac58eb5de4c9067b340f08ad718cf8d230969958",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:26:19.111434+00:00",
          "issues": [
            "missing_live_count_readback:proposal_state_readback",
            "missing_live_proposal_state:applied",
            "missing_live_proposal_state:approved",
            "missing_live_proposal_state:canceled",
            "missing_live_proposal_state:pending_review",
            "missing_proof_changing_followup",
            "missing_proposal_apply_boundary"
          ],
          "query_sha256": "e77c4943900cf44790d3e04b3042d15bd59af90b7c4ac8f77960a88a67e1a393",
          "response_sha256": "a0a8e090e4139be266799e40d5ca7d4faf6b7b984300be26318a7acfe5979259",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "partner_demo_claim_ceiling",
      "ended_at_utc": "2026-07-13T20:26:19.145284+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "Three changes have reviewer approval and the partner demo starts in an hour. Can I honestly say the knowledge database is updated? Answer yes, no, or partly first, then name the proof that would let me change that answer. Do not apply anything.",
      "prompt_id": "OOS-04",
      "reply": "No.\nFresh live readback.\nDB readback: claims: 1837; sources: 4145; claim_edges: 4916; claim_evidence: 4670; kb_proposals: 29.\nProposal states are applied: 2, approved: 3, pending_review: 16, canceled: 8. Approved is not applied, and 3/3 approved rows are approved_needs_apply_payload and not directly applyable. An applied proposal receipt alone does not identify the exact public.* rows changed.\n\nNext proof-changing follow-up: choose the proposal or time window, return its UUID/status/applied_at, compare the affected public.* row IDs or before/after hashes, and for approved rows normalize and review the strict payload before requesting explicit guarded-apply authorization.",
      "started_at_utc": "2026-07-13T20:26:07.719276+00:00",
      "turn": 4
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "source_link_audit"
          ],
          "contract_sha256": "69a06bd10a27e7cb3267fd78bcaa6a5e2d367aba01585f1201d2d234ac0a2c60",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:26:19.284029+00:00",
          "injected": true,
          "query_sha256": "fb6760b0c24c59549d1e05dc5aae6b86de68417a0a9ba8a123317e39b2b75542",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget",
            "source_link_audit"
          ],
          "delivered_response_sha256": "384324a281dd9ee8ece2e770332bcda93256e0b85acc5d87e05bf429425dbad9",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:26:31.559398+00:00",
          "issues": [
            "missing_live_count_readback:source_link_audit",
            "missing_live_source_link_audit",
            "missing_proof_changing_followup",
            "missing_source_link_causality_boundary",
            "reply_budget_exceeded"
          ],
          "query_sha256": "fb6760b0c24c59549d1e05dc5aae6b86de68417a0a9ba8a123317e39b2b75542",
          "response_sha256": "581de943ce900a50422580b0d17dec8a7021afae9fc9a991f0944bc193c14c3b",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "source_pointer_needs_canonical_link_audit",
      "ended_at_utc": "2026-07-13T20:26:31.591776+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "A proposal points to a Telegram attachment and its extracted text exists on disk. Does that mean the claim already has canonical evidence? Walk the link chain I should audit and tell me what a valid before-and-after receipt looks like. Read-only only.",
      "prompt_id": "OOS-05",
      "reply": "No. The attachment does not itself create canonical evidence; neither does extracted text on disk.\nDB readback: claims: 1837; sources: 4145; claim_edges: 4916; claim_evidence: 4670; kb_proposals: 29.\nThe live row-link audit found 19 pending/approved proposals: 19 have source_ref and 0 exactly match a public.sources ID, URL, or storage_path. Pending status therefore is not by itself proof of a bad document pointer.\n\nAudit telegram_file_refs/raw files -> document_evaluations -> kb_proposals.source_ref -> public.sources -> claim_evidence. Canonical linkage and provenance quality are separate: a canonical link can still point to a weak, untraceable source with no URL/storage_path or raw artifact. Before/after receipt: proposal UUID/status/source_ref, source and claim_evidence row IDs, locator/hash, applied_at, and postflight. Next proof-changing follow-up: list each broken layer, then stage only the missing guarded source/evidence contract.",
      "started_at_utc": "2026-07-13T20:26:19.145938+00:00",
      "turn": 5
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "mixed_packet_composition"
          ],
          "contract_sha256": "e93a0c035e7d4084a197d71f11bf293c695024b05944cae01d58a57eb0d595bf",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:26:31.725089+00:00",
          "injected": true,
          "query_sha256": "13c255fda3a35cd913ba92960bcda1b4dbcf55a38f3301bdc2a74a8eb040df23",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "mixed_packet_composition",
            "reply_budget"
          ],
          "delivered_response_sha256": "a5ce84cd29cfb460e51e0aa0f279838b887f192b6e53b6359fd56050031290cc",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:26:41.005105+00:00",
          "issues": [
            "missing_approve_claim_boundary"
          ],
          "query_sha256": "13c255fda3a35cd913ba92960bcda1b4dbcf55a38f3301bdc2a74a8eb040df23",
          "response_sha256": "72af0639bb5b0bce6d2dde707f77a33365e96668e00865fce72e7652725ba1b2",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "database_composition_judgment",
      "ended_at_utc": "2026-07-13T20:26:41.745714+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "Suppose a new research packet contains factual observations, a strategic framework, a disputed interpretation, a governance rule, and a correction to an old belief. How should Leo compose the database so it can reason over the packet later without flattening it all into claims? Give the review and apply sequence too, but do not write anything now.",
      "prompt_id": "OOS-06",
      "reply": "- Map factual observations and disputed interpretations to claims plus sources and evidence; keep competing claims queryable through claim-to-claim edges. Store the strategic framework in reasoning_tools. Put the governance rule in behavioral_rules using rule, rationale, category, rank, and agent_id unless it defines criteria, an evidence_bar, and a pass_condition, in which case use governance_gates. Stage the correction to the old belief as a beliefs update; claim_edges never point to reasoning_tools or beliefs.\n\n- Stage one typed pending_review proposal with exact rows and no canonical writes. Review mappings, evidence, claim-only edge endpoints, and unsupported changes. After explicit authorization, approve_claim applies only claims, sources, evidence, edges, and reasoning_tools. approve_claim supports neither behavioral_rules nor governance_gates; those tables, belief updates, and existing-row updates remain staged until a separate reviewed apply capability exists. The contract keeps behavioral_rules, governance_gates, belief updates, and existing-row updates outside this apply.\n\n- Receipt: proposal-level applied_at, created or updated row IDs, and a postflight readback. Until those exist, staged or approved content is not live canonical knowledge.",
      "started_at_utc": "2026-07-13T20:26:31.593167+00:00",
      "turn": 6
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": false,
          "contract_ids": [
            "reply_budget"
          ],
          "contract_sha256": "6e1f1ca2cc9e2e1bd7b0e47613b528138dbb8f49481fc8f66d28d0c5a570c6ff",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:26:41.881107+00:00",
          "injected": true,
          "query_sha256": "1023e68558de7a9b1f8c18aab2d6d27b6343f1015f59e62e1ba20d413df9b029",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": false,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget"
          ],
          "delivered_response_sha256": "8ad825b7452be4e45f65b9ba4160264c82c801ea366ae971aa4b398c30ef44e8",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:26:48.202194+00:00",
          "issues": [],
          "query_sha256": "1023e68558de7a9b1f8c18aab2d6d27b6343f1015f59e62e1ba20d413df9b029",
          "response_sha256": "8ad825b7452be4e45f65b9ba4160264c82c801ea366ae971aa4b398c30ef44e8",
          "status": "ok",
          "transformed": false,
          "validated": true
        }
      ],
      "dimension": "same_session_memory_set",
      "ended_at_utc": "2026-07-13T20:26:51.889010+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "From everything you checked in this conversation, pick the single highest-impact demo blocker. For the next question, remember it under the temporary label demo-ledger-08ceb27e. State the label and blocker now. This is chat memory only; do not write it to the KB.",
      "prompt_id": "OOS-07",
      "reply": "Label: demo-ledger-08ceb27e\n\nBlocker: All 3 approved proposals are in approved_needs_apply_payload state. No apply has run. public.* row counts are unchanged from session open. You cannot honestly tell a partner the knowledge database is updated until at least one approved proposal completes a guarded apply with a confirmed applied_at, affected row IDs, and postflight readback.",
      "started_at_utc": "2026-07-13T20:26:41.747107+00:00",
      "turn": 7
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": false,
          "contract_ids": [
            "reply_budget"
          ],
          "contract_sha256": "6e1f1ca2cc9e2e1bd7b0e47613b528138dbb8f49481fc8f66d28d0c5a570c6ff",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:26:52.024606+00:00",
          "injected": true,
          "query_sha256": "f82177233e13e13653edbcc962802b8f3431ac6e5304c2acc87aaf49a85aa877",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": false,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget"
          ],
          "delivered_response_sha256": "6fe482d58f144c3521c73d298cee5856b112962b9ecb2bb99e68768c3cdc9c9e",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:26:58.092766+00:00",
          "issues": [],
          "query_sha256": "f82177233e13e13653edbcc962802b8f3431ac6e5304c2acc87aaf49a85aa877",
          "response_sha256": "6fe482d58f144c3521c73d298cee5856b112962b9ecb2bb99e68768c3cdc9c9e",
          "status": "ok",
          "transformed": false,
          "validated": true
        }
      ],
      "dimension": "same_session_memory_recall",
      "ended_at_utc": "2026-07-13T20:27:02.047890+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "Without re-reading my previous wording, what temporary label did I give the demo blocker, what blocker did you associate with it, and what exact proof would close it? Do not mutate anything.",
      "prompt_id": "OOS-08",
      "reply": "Label: demo-ledger-08ceb27e\n\nBlocker: All 3 approved proposals are stuck in approved_needs_apply_payload. No guarded apply has run. public.* row counts are unchanged from session open \u2014 claims 1837, sources 4145, claim_evidence 4670.\n\nProof that closes it: one approved proposal completes a guarded apply and returns a confirmed applied_at timestamp, the specific created or updated public.* row IDs, and a postflight readback showing at least one of those counts has moved. Until those three receipts exist together, the demo claim \"the knowledge database is updated\" remains false.",
      "started_at_utc": "2026-07-13T20:26:51.890215+00:00",
      "turn": 8
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "telegram_participant_identity"
          ],
          "contract_sha256": "5e1f8d07f99442d63190f815c7e21fe272945399a802d812a5b770489ba87e21",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:27:02.195858+00:00",
          "injected": true,
          "query_sha256": "fb4d59cf637d1cbc16fe86e32c2b29121cd797bc6f2315d910f3f6be5eb01baa",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget",
            "telegram_participant_identity"
          ],
          "delivered_response_sha256": "0dd5eb52bbb341322bf3bc219a7042b0b1ba22b4d671d3eb5ab581bd9f6b6ed0",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:27:08.843034+00:00",
          "issues": [],
          "query_sha256": "fb4d59cf637d1cbc16fe86e32c2b29121cd797bc6f2315d910f3f6be5eb01baa",
          "response_sha256": "93ca109617e2851a37ebc393c0f17b87636b3faf9c815a59662f2c857ab6c3b6",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "telegram_participant_identity",
      "ended_at_utc": "2026-07-13T20:27:12.200634+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "The current visible Telegram sender is @m3taversal. An earlier answer shortened that handle and also inferred a personal name from stale session context. What should Leo call this participant, which identity sources are allowed, and how should Leo avoid mixing identities when another user replies? Answer in four lines. Do not write to memory or the KB.",
      "prompt_id": "OOS-09",
      "reply": "Call the current Telegram sender m3taversal, exactly as their visible handle identifies them.\nAllowed identity sources: the current message sender handle and that participant's explicit in-chat correction.\nDo not use stale session context, environment labels, inferred personal names, or another participant's profile.\nWhen another user replies, never transfer or mix identities; re-anchor to that message's visible sender handle.",
      "started_at_utc": "2026-07-13T20:27:02.048932+00:00",
      "turn": 9
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "runtime_persistence"
          ],
          "contract_sha256": "7a45eee16b75b8ba7b784442255c6be46c5f8cb130f1a3e7d896586afabbedd5",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:27:12.342019+00:00",
          "injected": true,
          "query_sha256": "8c415f38c4817520142cea8f71cbc7070dd0bd38d038a3262b9d5ec342538b08",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget",
            "runtime_persistence"
          ],
          "delivered_response_sha256": "51ffcd1edaa855dff9142254a766a8afab96d53becf365ca37d9ce5256428111",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:27:26.256308+00:00",
          "issues": [],
          "query_sha256": "8c415f38c4817520142cea8f71cbc7070dd0bd38d038a3262b9d5ec342538b08",
          "response_sha256": "f0708f46a30ff243d86199a64ef730d66be11ef0257313728bbcfa06d228592c",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "runtime_vs_canonical_causality",
      "ended_at_utc": "2026-07-13T20:27:26.304658+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "The five database totals are unchanged after a restart. Does that prove Leo's answer behavior is unchanged and that every fact from the prior session was erased? Explain which persisted and deployed surfaces can affect the answer, and separate the proof tiers. Read-only; keep it under 180 words.",
      "prompt_id": "OOS-10",
      "reply": "No. Unchanged database totals do not prove unchanged rows or unchanged answer behavior, and a restart does not necessarily erase prior-session facts. Compare row IDs, timestamps, and hashes, not counts alone; balanced inserts, updates, or deletes can leave totals unchanged.\n\nPersisted or deployed answer inputs include Postgres rows, skills, runtime config, SOUL.md, state.db, and session JSONL. state.db/session JSONL can preserve durable session continuity across a restart, while a changed skill or runtime artifact can change the answer with identical database totals.\n\nProof tiers: 1) canonical: public.* row/hash readback; 2) handler: the deployed runtime answers the same prompt with retained trace; 3) Telegram: a visible reply with message ID, timestamp, and chat/sender readback. Only a reviewed apply plus row-level postflight proves a database mutation.",
      "started_at_utc": "2026-07-13T20:27:12.201683+00:00",
      "turn": 10
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "shared_claims_agent_positions"
          ],
          "contract_sha256": "d26c3c84ae833a789a166b5992fd46baf3d09912ef63f9c44e47f6f0ca422418",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:27:26.545088+00:00",
          "injected": true,
          "query_sha256": "eb10809662bb0cfdd194b9fdad8f84a0a93e116757b15910d454cbe9f3ffca1c",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_available": false,
          "contract_ids": [
            "reply_budget"
          ],
          "contract_sha256": "6e1f1ca2cc9e2e1bd7b0e47613b528138dbb8f49481fc8f66d28d0c5a570c6ff",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:27:26.561869+00:00",
          "injected": true,
          "query_sha256": "bc56893688699c692181e4f5744061380fdf28b8132de50f67b3a9548efccdc7",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget",
            "shared_claims_agent_positions"
          ],
          "delivered_response_sha256": "d9014065c29746c501d390c7dc39687fd6d13d64910660871b33ef3c827c2152",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:27:34.005993+00:00",
          "issues": [],
          "query_sha256": "eb10809662bb0cfdd194b9fdad8f84a0a93e116757b15910d454cbe9f3ffca1c",
          "response_sha256": "3b44da79224c523c7b79d45643f030dbb0f4693f5228bec256d0aadd77625eea",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "shared_claims_agent_positions",
      "ended_at_utc": "2026-07-13T20:27:36.515033+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "Two agents read the same evidence and reach different conclusions. Should Leo duplicate the factual claim once per agent, or keep shared knowledge and represent agent-specific positions elsewhere? Give the current-schema answer and how disagreement remains queryable. Do not write anything.",
      "prompt_id": "OOS-11",
      "reply": "Store one factual claim once as shared knowledge with shared sources/evidence; do not duplicate the claim per agent. Record each agent-specific position in public.beliefs with agent_id, statement, confidence, falsifier, and status.\n\nThe current-schema gap matters: public.beliefs has no claim-ID foreign key and there is no belief-edge table. claim_edges connects claims only, so do not invent belief-to-claim or belief-to-belief edges. Disagreement remains queryable by retrieving the shared factual claim/evidence and semantically matching each agent's belief rows; a future reviewed schema proposal can add an explicit link if needed.",
      "started_at_utc": "2026-07-13T20:27:26.306784+00:00",
      "turn": 11
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "forecast_resolution_schema"
          ],
          "contract_sha256": "06560b820cb3f7a20d74ff8cd99507423b5d9c476fb707e7405b335f41d4106f",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:27:36.653434+00:00",
          "injected": true,
          "query_sha256": "4bd553c55c0532cc0b2e606bc77e737055aa048d24b2b97f3271ab8dc301d912",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": false,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget"
          ],
          "delivered_response_sha256": "bb1db4a8cdb051c267036db7a811748dff001825383f223ef222c61aa9ddc377",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:27:38.994798+00:00",
          "issues": [],
          "query_sha256": "bc56893688699c692181e4f5744061380fdf28b8132de50f67b3a9548efccdc7",
          "response_sha256": "bb1db4a8cdb051c267036db7a811748dff001825383f223ef222c61aa9ddc377",
          "status": "ok",
          "transformed": false,
          "validated": true
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "forecast_resolution_schema",
            "reply_budget"
          ],
          "delivered_response_sha256": "1ca0adb52dde593664e4a8fab5dfa825eaadab30cd75e1696785269f592642eb",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:27:47.469019+00:00",
          "issues": [],
          "query_sha256": "4bd553c55c0532cc0b2e606bc77e737055aa048d24b2b97f3271ab8dc301d912",
          "response_sha256": "1bbe32c1df768cfb953ac8a2c5f94ba4e14cf5d457b1fab9efa0233664ff2887",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "forecast_resolution_without_rewriting_history",
      "ended_at_utc": "2026-07-13T20:27:47.504390+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "An old claim recorded a 60% forecast but never defined resolution criteria. The event is now over. What may Leo record in the current database without rewriting history, and what needs a schema proposal? Do not apply anything.",
      "prompt_id": "OOS-12",
      "reply": "Preserve the original 60% forecast; do not overwrite it. Because it defined no resolution criteria, its outcome remains ambiguous. Leo may add a sourced explanatory claim about the observed event, but must not retroactively label the forecast resolved.\n\nCurrent public.claims columns are id, type, text, status, confidence, tags, created_by, superseded_by, created_at, and updated_at; there is no forecast-resolution or resolved_at field. Current public.claim_edges columns are id, from_claim, to_claim, edge_type, weight, created_by, and created_at; there is no `resolves` edge type. Stage a reviewed schema proposal for explicit criteria, outcome, resolved_at, resolver/provenance, and a valid link contract. Do not apply or invent those fields in v1.",
      "started_at_utc": "2026-07-13T20:27:36.516895+00:00",
      "turn": 12
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "telegram_delivery_proof"
          ],
          "contract_sha256": "452a547040417d2082f28a49b760775935143baeec1cf56b193033edf14ea682",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:27:47.644720+00:00",
          "injected": true,
          "query_sha256": "8e01f80a6eaf3e86337f8b91846ac4e40b97010c635b6e82b2ae067f8aea9406",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget",
            "telegram_delivery_proof"
          ],
          "delivered_response_sha256": "7f47a618bcc33d0bf37ea35795e8b6a0fed6377dbfe7a4ea85144636a3df69bd",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:27:53.776725+00:00",
          "issues": [],
          "query_sha256": "8e01f80a6eaf3e86337f8b91846ac4e40b97010c635b6e82b2ae067f8aea9406",
          "response_sha256": "4f1f01343a069f0372fb4abc17bcd84190d59da9dc190e12fa4286c12b211323",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "handler_is_not_telegram_delivery",
      "ended_at_utc": "2026-07-13T20:27:57.654096+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "A temporary-profile GatewayRunner answered every test prompt, but the run explicitly posted nothing to Telegram. Can I tell a partner the Telegram path is proven live? Answer first, then state exactly what this run proves and the smallest test that closes the gap.",
      "prompt_id": "OOS-13",
      "reply": "No. A temporary-profile GatewayRunner response proves handler execution, model/plugin integration, and reply construction only. Because it posted nothing, it does not prove Telegram delivery or a Telegram-visible reply.\n\nThe smallest closing test is one explicitly authorized test message in the intended chat, followed by Leo's visible reply. Retain a delivery receipt with the outgoing and reply message IDs, timestamps, chat ID/title, sender handle, reply linkage, and a post-send readback. Then remove the temporary profile and verify no orphan process remains.",
      "started_at_utc": "2026-07-13T20:27:47.505628+00:00",
      "turn": 13
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "source_intake"
          ],
          "contract_sha256": "eb5769dffc910bd50ff9e9ed9c7de43b0b86eddd5c45275ca943cb7c7e15a3bb",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:27:57.791354+00:00",
          "injected": true,
          "query_sha256": "45141620c3405af992012e2bd5000cabd8a6bffbc784082e856ea1a18b6aec06",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "reply_budget",
            "source_intake"
          ],
          "delivered_response_sha256": "677a58bc969f7fddf5ffada4fed992a365ff7f70d4d1fb6fbb89546d6322952a",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:28:04.244511+00:00",
          "issues": [],
          "query_sha256": "45141620c3405af992012e2bd5000cabd8a6bffbc784082e856ea1a18b6aec06",
          "response_sha256": "d55bbac5d9e94689f3cf10e4e333b7e3d08fd02fe28dcf1abdaf445347811f3d",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "autonomous_source_intake_boundary",
      "ended_at_utc": "2026-07-13T20:28:07.796628+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "I hand Leo a document and say: absorb this as far as safely possible without making me approve every mechanical step. What can Leo capture and stage immediately, what real source identity must be retained, and where does explicit approval begin? Explain only; do not ingest this prompt.",
      "prompt_id": "OOS-14",
      "reply": "- VPS filesystem document preparation and source-to-proposal staging are shipped; automatic Telegram attachment capture is not shipped. Sending a report in chat does not by itself create a proposal or persistent knowledge. The Telegram attachment downloader is not connected to the filesystem preparation command.\n\n- The live bounded path is to place a text-like artifact or supplied UTF-8 extraction under the private kb-source-inbox root, then run teleo-kb prepare-source; it retrieves canonical candidates and emits an exact-quote manifest with no DB write, then run teleo-kb propose-source to validate and stage a pending_review proposal. It writes only kb_stage.kb_proposals. A chat label, filename, attachment reference, or source_ref is not provenance. Before review, deduplicate overlaps and retain exact excerpts, source caveats, uncertainty, and contradictory interpretations. Candidates are not canonical until reviewed and applied, and no public.sources or other public.* rows are created during staging.\n\n- Explicit approval begins before guarded canonical public.* apply, not before mechanical capture/staging. Receipt: locator and content hash, proposal ID/status, reviewed payload, applied_at, created row IDs, and postflight readback. Next proof-changing follow-up: run teleo-kb prepare-source, inspect its exact-quote and duplicate judgments, then run teleo-kb propose-source and review the staged candidates.",
      "started_at_utc": "2026-07-13T20:27:57.656468+00:00",
      "turn": 14
    },
    {
      "claim_ceiling": "Live VPS GatewayRunner reply from temp leoclean profile; no Telegram post; no production DB apply authorized.",
      "database_context_trace": [
        {
          "compiled_response_available": true,
          "contract_ids": [
            "reply_budget",
            "claim_supersession_schema"
          ],
          "contract_sha256": "b919eb1012e4ea17feb215010ace5ba0ffd4d8a2b36bc221eec85ecaa1e961ea",
          "event": "pre_llm_call",
          "generated_at_utc": "2026-07-13T20:28:07.946249+00:00",
          "injected": true,
          "query_sha256": "fa31de2bb07e50436ab09cf3c81660a1ab28ecfeb2427f4cd50522c0a1b9eaff",
          "source": "kb_tool.py --local context",
          "status": "ok"
        },
        {
          "compiled_response_enforced": true,
          "compiled_response_issues": [],
          "contract_ids": [
            "claim_supersession_schema",
            "reply_budget"
          ],
          "delivered_response_sha256": "88ca8fd199c5dc1e7feb3b0beb95dcb0236b9f8c6783fb06c824321ea6616896",
          "event": "post_llm_call",
          "fail_closed": false,
          "generated_at_utc": "2026-07-13T20:28:15.674969+00:00",
          "issues": [],
          "query_sha256": "fa31de2bb07e50436ab09cf3c81660a1ab28ecfeb2427f4cd50522c0a1b9eaff",
          "response_sha256": "3548db49666f729b5073f9a874ce52cdd4cd020715594daef18605ffe9c23c44",
          "status": "ok",
          "transformed": true,
          "validated": true
        }
      ],
      "dimension": "schema_valid_supersession",
      "ended_at_utc": "2026-07-13T20:28:17.947449+00:00",
      "evidence_tier": "live_vps_gatewayrunner_temp_profile",
      "mutates_kb": false,
      "ok": true,
      "prompt": "A canonical claim is wrong. I want the replacement, an explanation, and the old claim visibly retired. In current v1, which exact claim and edge fields exist, which requested writes fit approve_claim, and which require a separate reviewed apply capability? Do not mutate anything.",
      "prompt_id": "OOS-15",
      "reply": "Current public.claims fields: id, type, text, status, confidence, tags, created_by, superseded_by, created_at, and updated_at. Current claim_edges fields: id, from_claim, to_claim, edge_type, weight, created_by, and created_at; the edge has no rationale field, and `supersedes` is valid in the live edge_type enum.\n\napprove_claim can insert the replacement claim and a claim-to-claim supersedes edge using from_claim, to_claim, edge_type, weight, and created_by. Put the explanation in sourced evidence or an explanatory claim. Updating the existing old claim's status or superseded_by to visibly retire it requires a separate reviewed apply capability; approve_claim does not update those fields. Receipt: proposal applied_at, new claim/edge IDs, old-claim before/after, and postflight readback.",
      "started_at_utc": "2026-07-13T20:28:07.798119+00:00",
      "turn": 15
    }
  ],
  "service_before_after": {
    "after": {
      "ActiveState": "active",
      "ExecMainStartTimestamp": "Mon 2026-07-13 19:50:24 UTC",
      "MainPID": "2826463",
      "NRestarts": "0",
      "SubState": "running"
    },
    "before": {
      "ActiveState": "active",
      "ExecMainStartTimestamp": "Mon 2026-07-13 19:50:24 UTC",
      "MainPID": "2826463",
      "NRestarts": "0",
      "SubState": "running"
    },
    "unchanged_from_preexisting_live_readback": true
  },
  "source": {
    "chat_id": "-5146042086",
    "chat_name": "Leo",
    "chat_type": "group",
    "platform": "telegram",
    "user_id": "9070919",
    "user_name": "codex handler direct claim"
  },
  "source_report_path": "/private/tmp/teleo-source-reference-repair-20260713/docs/reports/leo-working-state-20260709/telegram-handler-m3taversal-oos-suite-current.json",
  "temp_profile_removed": true
}
