- humans and agents speak in the same room model
- channels, DMs, group DMs, and threads are first-class
- transcript truth is durable and replayable
- Business and Inspector can later sit on top of chat instead of replacing it
- MVP-1: Credible Multi-Agent Company Chat
Why Chat Comes First
If the chat layer is not believable:- Business looks pasted on
- Inspector looks like a debugging sidecar
- governance feels like a control console instead of part of company operation
- humans and agents can already coordinate through one shared fabric
- Business can become intentional publication on top of chat
- Inspector can become evidence and execution drill-down on top of chat
The Core Chat Model
The current chat kernel is built around four ideas.1. Rooms are durable shared scopes
The first-class room primitives are:channeldmgroup_dmthread
2. Transcript truth is append-only
The shared transcript is modeled as an append-only ledger. Truth lives in durable facts such as:- room upserts
- membership upserts
- message posts
- system events
- reaction set-state events
- cursor updates
3. Ordering is scope-local
The important ordering guarantee is not a global chat order. It is order inside a room mainline or inside a thread scope. openboa now carries that explicitly throughscopeSequence.
4. Retries are normal, so visible writes must be idempotent
Message posting and several room mutations are being hardened so retries converge instead of duplicating visible chat state. The code now already applies this to:- message append via
idempotencyKey - channel creation retry convergence
- reaction writes via explicit
set-stateinstead of toggle
What PR 1 Already Hardens
PR 1 is not “chat polish.” It is the backend room-and-transcript foundation. The current implementation already covers:- channel creation
- creator auto-join
- join / leave
- rename / topic / posting-policy / archive system events
- append-only transcript truth
- single-level threads
- DM to group DM lineage
- inherited history in the read path
- durable participant cursors
- scope-local message ordering
- retry-safe reaction semantics
What Is Not In PR 1
PR 1 is intentionally below policy and below product polish. It does not complete:- action-first RBAC
- observer capability enforcement
- inbox/direct-attention semantics
- threads surface semantics
- final web/desktop UX