Skip to content

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

  1. contribute — Participants share perspectives (messages)
  2. propose — Participants submit solution proposals
  3. vote — Participants vote on proposals
  4. decide — Consensus reached or human authority decides
  5. completed — Decision delivered to participants

Consensus Types

  • majority — >50% agreement
  • unanimous — all must agree
  • authority — 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.