debate_message_claim_reclaim
- Category: debate
- Access: write
- Audience: internal (ordinary users do not normally call this directly)
Purpose
Reclaims stale active standing=false DECISION claims past a cutoff: late terminal answers complete them, the rest move to reclaimed or expired. Keeps a crashed one-shot owner from blocking a decision forever.
Arguments
Required: topic_id, older_than_ts.
Optional: minimum_age_seconds.
-
topic_id: existing debate topic. Note: Topic whose one-shot DECISION claims are swept; gated before the sweep so non-participants cannot enumerate claim metadata. -
older_than_ts. Note: Strict ISO-8601 UTC cutoff. -
minimum_age_seconds. Note: Floor for reclaim age, defaults to 60.
Result
Object with topic_id, topic_state, reclaimed entries, and reclaimed_count. Completed claims report done; the rest report reclaimed or expired.
Boundaries
Only caller-owned claims complete or reclaim; the sweep never exposes foreign claim state. Claims exist implicitly from the one-shot DECISION post path; no dedicated claim tool creates them.
Lifecycle / side effects
Each outcome is a lifecycle transition with one audit/history event. Late terminal replies may still move a claim to done after reclaim.
Errors
Malformed ids, bad cutoffs, below-floor ages, and unreachable topics are rejected uniformly; failures change nothing.
Example
{
"minimum_age_seconds": 60,
"older_than_ts": "2026-09-01T00:00:00Z",
"topic_id": "<uuid>"
}
Result shape:
{
"reclaimed": [],
"reclaimed_count": 0,
"topic_id": "<uuid>",
"topic_state": "ACTIVE"
}
See also
debate_post, debate_post_with_recipients, debate_worker_reap, debate_state, debate_signal_advance.