Skip to content

Commit 69b0ccf

Browse files
FoundupFoundups Agent
andauthored
feat(reddog): thread supervisor claim receipt telemetry (#1281)
Co-authored-by: Foundups Agent <dev@foundups.com>
1 parent 99e65a9 commit 69b0ccf

3 files changed

Lines changed: 33 additions & 0 deletions

File tree

modules/communication/moltbot_bridge/ModLog.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# ModLog - moltbot_bridge
22

3+
## 2026-07-17: REDDOG_OPENCLAW_SUPERVISOR_CLAIM_RECEIPT_THREADING_PHASE1
4+
5+
**Author**: 0102 (Codex) | Commander: 012 | WSP: 00, 15, 22, 97
6+
7+
- Threaded OpenClaw signed-worker claim-loop `receipt_ids` and
8+
`requeued_task_ids` into the supervisor top-level action result and verify
9+
summary.
10+
- Added regression coverage so `OpenClawSupervisor.run_cycle()` exposes claim
11+
receipt IDs without requiring callers to inspect nested `claim_loop` payloads.
12+
- No authority, queue, runner, shell, PR, PatternMemory, reward, or HoloIndex
13+
behavior changed.
14+
- HoloIndex query-only check did not surface the new supervisor receipt-threading
15+
surface; recorded as
16+
HOLOINDEX_REDDOG_OPENCLAW_SUPERVISOR_CLAIM_RECEIPT_THREADING_INDEX_GAP. No
17+
runtime reindex performed.
18+
319
## 2026-07-17: REDDOG_RESIDENT_CONTROL_LOOP_RECEIPT_PERSISTENCE_PHASE1
420

521
**Author**: 0102 (Codex) | Commander: 012 | WSP: 00, 15, 22, 97

modules/communication/moltbot_bridge/src/openclaw_supervisor.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2068,7 +2068,9 @@ def _execute(self, plan: Dict[str, Any]) -> Dict[str, Any]:
20682068
"status": result.get("status", "unknown"),
20692069
"claimed_count": result.get("claimed_count", 0),
20702070
"completed_task_ids": result.get("completed_task_ids", ()),
2071+
"requeued_task_ids": result.get("requeued_task_ids", ()),
20712072
"failed_task_ids": result.get("failed_task_ids", ()),
2073+
"receipt_ids": result.get("receipt_ids", ()),
20722074
"rejection_reasons": result.get("rejection_reasons", ()),
20732075
"claim_loop": result,
20742076
}
@@ -2266,7 +2268,9 @@ def _verify(self, plan: Dict[str, Any], action_result: Dict[str, Any]) -> Dict[s
22662268
"status": action_result,
22672269
"claimed_count": action_result.get("claimed_count", 0),
22682270
"completed_task_ids": action_result.get("completed_task_ids", ()),
2271+
"requeued_task_ids": action_result.get("requeued_task_ids", ()),
22692272
"failed_task_ids": action_result.get("failed_task_ids", ()),
2273+
"receipt_ids": action_result.get("receipt_ids", ()),
22702274
"error": "" if ok else ",".join(str(reason) for reason in reasons),
22712275
"fidelity": 0.85,
22722276
}

modules/communication/moltbot_bridge/tests/test_openclaw_supervisor.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,12 @@ def test_run_cycle_claims_signed_worker_tasks_when_enabled(tmp_path):
233233
"status": "SIGNED_WORKER_OPENCLAW_CLAIM_LOOP_ACCEPT",
234234
"claimed_count": 2,
235235
"completed_task_ids": ("task-1", "task-2"),
236+
"requeued_task_ids": (),
236237
"failed_task_ids": (),
238+
"receipt_ids": (
239+
"signed_worker_task_execution_alpha",
240+
"signed_worker_task_execution_beta",
241+
),
237242
"rejection_reasons": (),
238243
}
239244
)
@@ -265,8 +270,16 @@ def test_run_cycle_claims_signed_worker_tasks_when_enabled(tmp_path):
265270
)
266271
assert result["action_result"]["ok"] is True
267272
assert result["action_result"]["claimed_count"] == 2
273+
assert result["action_result"]["receipt_ids"] == (
274+
"signed_worker_task_execution_alpha",
275+
"signed_worker_task_execution_beta",
276+
)
268277
assert result["verify"]["ok"] is True
269278
assert result["verify"]["completed_task_ids"] == ("task-1", "task-2")
279+
assert result["verify"]["receipt_ids"] == (
280+
"signed_worker_task_execution_alpha",
281+
"signed_worker_task_execution_beta",
282+
)
270283
assert any(event[0] == "supervisor_execute" for event in events)
271284

272285

0 commit comments

Comments
 (0)