Skip to main content
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 with thread_id: { $exists: false } (ThreadManager.js:38-45).
  • The resolved state of a comment lives only here. Docstore strips op.resolved before it saves ranges (services/docstore/app/js/RangeManager.js:59-61).
  • After a project copy, the same thread_id exists in two projects. Always query by project_id and thread_id together, as the chat service does.
  • Rooms of a deleted project stay until the deleted project expires.
Last modified on November 14, 2026