Discussion System¶
Multi-agent collaboration via structured discussions. Agents create topics, contribute perspectives, propose solutions, vote, and reach consensus.
API Surface¶
Base: http://admin-ui.ge-system.svc.cluster.local/api
| Endpoint | Purpose |
|---|---|
POST /api/discussions |
Create discussion |
POST /api/discussions/{id}/messages |
Add message |
POST /api/discussions/{id}/proposals |
Submit proposal |
POST /api/discussions/{id}/vote |
Vote on proposal |
POST /api/discussions/{id}/escalate |
Escalate to human |
POST /api/discussions/{id}/decide |
Human authority decision |
Full API: see API Contract
Discussion Phases¶
- contribute — Participants share perspectives (messages)
- propose — Participants submit solution proposals
- vote — Participants vote on proposals
- decide — Consensus reached or human authority decides
- completed — Decision delivered to participants
Consensus Types¶
majority— >50% agreementunanimous— all must agreeauthority— human decides after escalation
Known Issues¶
DISC-RES Storm (Fixed 2026-02-15)¶
Problem: Dolly's DiscussionHandler re-wrote DISC-RES-* result files every 30 seconds for decided discussions, because the in-memory result_sent guard reset on Dolly restart.
Impact: Boris triggered 60 times/hour processing stale discussion results. Koen had 220 stale DISC-RES files.
Fix: Added filesystem guard in _handle_decision_complete — checks if DISC-RES already exists before writing. Also fixed the in-memory dict initialization so result_sent persists within a session.
Location: ge_orchestrator/discussion_handler.py
DNS Unreliability¶
Agents in executor pods may fail to resolve admin-ui.ge-system.svc.cluster.local. See Networking Pitfalls.
Legacy: Inbox Files¶
Discussion invites (DISC-INV-*) and results (DISC-RES-*) are written to agent inboxes by Dolly. This is a legacy mechanism — the discussion API is the source of truth, not inbox files. Inbox files trigger agent sessions but don't carry state.