debate_reconcile_project
- Category: debate
- Access: write
- Audience: administrative (ordinary users do not normally call this directly)
Purpose
Sets a legacy topic's project exactly once, one way. The sole escape hatch for sentinel topics that deny everyone, and it never exposes topic contents.
Arguments
Required: topic_id, project.
-
topic_id. Note: Must name a topic whose project is still unset or sentinel. -
project. Note: Explicit project value; sentinel and wildcard values are rejected.
Result
Object with topic_id, project, and matched (always 1 on success). Identifiers only, never transcript content.
Boundaries
Conductor callers only. All other principals, including star, are denied on sentinel topics across every other path until this call completes. Second calls on an already-set topic fail.
Lifecycle / side effects
One-way and final: the write persists atomically with an audit/history event and cannot be repeated or reversed through this surface.
Errors
Unknown topics, already-set topics, and invalid project values are rejected uniformly without exposing contents.
Example
{
"project": "shared-ops",
"topic_id": "<uuid>"
}
Result shape:
{
"matched": 1,
"project": "shared-ops",
"topic_id": "<uuid>"
}
See also
debate_set_topic_priority, debate_init, debate_work_queue, debate_read, debate_protocol_state.