Skip to content

Split the chat controller into a room, its schedule and its roster - #374

Merged
Yiannis128 merged 4 commits into
masterfrom
chat-room-redesign
Oct 22, 2026
Merged

Yiannis128 merged 4 commits into
masterfrom
chat-room-redesign

Conversation

@Yiannis128

@Yiannis128 Yiannis128 commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

The 1600-line ChatController is now a plain-Dart ChatRoom under lib/domain/room, with scheduling in Schedule (ordering policy as two methods on OmadaOrdering), routing and the Omada gate in Roster, and Agent as the turn-taking participant. ChatController shrinks to the Riverpod host that implements TurnDriver and owns titling, failure notifications and auto-compact; the room's notes move with it to lib/domain/room/AGENTS.md. Behaviour is unchanged: the existing controller tests pass as they were, and ChatRoom (over a fake RoomHost), Schedule and Roster get tests of their own.

Sub-agents, per-agent permissions and a Human participant class are left out on purpose: sub-agents run under ApproveMode.never and keep the task out of their transcript, so routing them through the room or narrowing their grants would change behaviour.

@Yiannis128
Yiannis128 merged commit 8aa00e4 into master Oct 22, 2026
1 check passed
@Yiannis128
Yiannis128 deleted the chat-room-redesign branch October 22, 2026 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant