debate_worker_no_action
- Category: debate
- Access: write
- Audience: internal (ordinary users do not normally call this directly)
Purpose
Completes a worker claim without posting when no work remains. Advances only the worker cursor so idle workers never leak active claims.
Arguments
Required: topic_id, role, worker_session_id, trigger_msg_id.
Optional: reason.
-
topic_id: existing debate topic. -
role. -
worker_session_id. Note: The derived worker owning the claim. -
trigger_msg_id. Note: The trigger being stood down from. -
reason. Note: Optional note preserved with the completion.
Result
Claim object with no_action true, duplicate and cursor_unchanged markers, and the worker's last processed cursor triple.
Boundaries
Only the owning worker's claim completes; foreign claims are never addressable through this path. The parent trigger stays visible for reconciliation.
Lifecycle / side effects
Completion persists atomically with an audit/history event. Without this call, no-op workers would pin triggers as busy until requeue or reap luck.
Errors
Unknown claims, mismatched worker/trigger pairs, and inactive parents are rejected without moving any cursor.
Example
{
"reason": "Trigger already answered",
"role": "EXECUTOR_1",
"topic_id": "<uuid>",
"trigger_msg_id": "<uuid>",
"worker_session_id": "<uuid>"
}
Result shape:
{
"duplicate": false,
"no_action": true,
"role": "EXECUTOR_1",
"state": "completed",
"topic_id": "<uuid>",
"trigger_msg_id": "<uuid>",
"worker_session_id": "<uuid>"
}
See also
debate_worker_claim, debate_worker_reap, debate_worker_recover_stale, debate_signal_advance.