debate_search
- Category: debate
- Access: read
- Audience: advanced (ordinary users do not normally call this directly)
Purpose
Searches one topic's messages by literal substring of the body, newest first, with blind-hiding applied. Use it to locate passages without replaying the full transcript.
Arguments
Required: topic_id, query.
Optional: limit, viewer_role.
-
topic_id: existing debate topic. -
query. Note: Matched literally; wildcard characters are escaped so input can never widen the match. -
limit. Note: Capped page size; non-positive values collapse to a single hit. -
viewer_role. Note: Shapes blind-claim visibility only, never ranking scope.
Result
Object with topic_id, query, count, limit, and messages (newest first, same message shape as debate_read).
Boundaries
Same topic gate as debate_read: project scope AND active participation, sentinel denies all, conductor/star otherwise allow. The viewer_role parameter never grants visibility beyond that gate.
Lifecycle / side effects
Pure read: preserves nothing. Server tries a full-text path first and falls back to literal match with identical membership and ordering.
Errors
Malformed topic ids fail shape validation; unknown or unreachable topics answer unknown_topic. No hit content ever leaks through an error.
Example
{
"limit": 50,
"query": "musl",
"topic_id": "<uuid>"
}
Result shape:
{
"count": 0,
"limit": 50,
"messages": [],
"query": "musl",
"topic_id": "<uuid>"
}
See also
debate_read, debate_signal_check, debate_post, debate_compact.