b3fcefb5ec677f1709275bd46b436ca46c60a311
- channel_turn_state.bypass_user_ids: order and bypass form a disjoint
partition of the channel members; bypass excluded from rotation.
- initForChannel(channelId, members, bypass=[]) computes order = members
− bypass; create() passes bypassUserIds (∩ members) for discuss/work.
- pushFrame() enforces mention nesting cap: max 4 sub-frames (5 levels
incl. root); overflow evicts the bottom-most (root->A..D + E => root->B..E).
- mention sites use pushFrame so bypass members are only transiently
pulled in via @-mention, then return to bypass on pop.
- moveToBypass(): move an order member to bypass mid-rotation; if current
speaker, successor takes over. onMemberRemoved also strips bypass.
- POST /channels/:id/bypass; GET :id/members now returns {userId,bypass}.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fabric.Backend.Guild
Guild Node service for Fabric.
Scope (MVP)
- Workspace/Guild/Channel/DM
- Message create/edit/delete/reply/@mention
- Per-channel/DM seq ordering + gap backfill API
- Webhook/Bot integration surface
- Guild-level audit logs
Next
- API skeleton (NestJS)
- Chat domain models
- Seq allocator and range query endpoints
Required env (startup hard checks)
FABRIC_BACKEND_GUILD_CENTER_BASE_URLFABRIC_BACKEND_GUILD_CENTER_API_KEYFABRIC_BACKEND_GUILD_NODE_ID
If any of the above is missing, service startup fails immediately.
Description
Languages
TypeScript
99.3%
JavaScript
0.4%
Dockerfile
0.3%