Features
Async decision quorum
Weighted role-based approvals on special decision messages with live progress.
Async decision quorum
Post a decision message that requires quorum from specific roles (e.g. 2 of 3 approvers within 48 hours). Progress updates live in the thread.
In chat
- Open message menu → Create decision (or use the
DecisionUI component). - Set question, required roles, quorum count, and expiry.
- Approvers tap Acknowledge. The progress bar updates server-side.
- When quorum is met or time expires, state transitions to
approvedorexpired.
Console UI
The Decision component (apps/dashboard/components/ui/decision.tsx) renders quorum progress inline on decision messages.
API
POST /rooms/:roomId/decisions
POST /rooms/:roomId/decisions/:messageId/ack
GET /rooms/:roomId/decisions/:messageIdSDK
await client.createDecision(roomId, {
question: "Ship v2 Friday?",
requiredRoles: ["owner", "admin"],
quorum: 2,
expiresInHours: 48,
});
await client.ackDecision(roomId, decisionMessageId);Quorum is verified only on the server. Clients cannot bypass role checks.