rooms holds one document per chat room of a project: the project chat, or one review comment thread. Only the chat service writes it, in services/chat/app/js/Features/Threads/ThreadManager.js. There is no Mongoose schema. The messages of a room are in the messages collection.
Fields
Who Writes It
Who Reads It
Indexes
The older
project_id index (20190912145026_create_rooms_indexes.mjs) was dropped by 20250205145327_drop_rooms_projectId_index.mjs.
Notes
- A project has at most one room without
thread_id, the project chat. The chat service finds it withthread_id: { $exists: false }(ThreadManager.js:38-45). - The resolved state of a comment lives only here. Docstore strips
op.resolvedbefore it saves ranges (services/docstore/app/js/RangeManager.js:59-61). - After a project copy, the same
thread_idexists in two projects. Always query byproject_idandthread_idtogether, as the chat service does. - Rooms of a deleted project stay until the deleted project expires.

