Spaces
Scoped containers that give a project, team or agent its own slice of memory.
A space is a named container inside a department with its own members, conversation history, integration endpoints and credentials.
Spaces exist because "give the coding assistant access to our memory" is almost never what anyone actually wants. What they want is access to this project's memory.
What a space gives you
| Capability | Detail |
|---|---|
| Scoped retrieval | POST /space/{id}/search and /ask see only this space |
| Its own MCP endpoint | Point an IDE or assistant at one space |
| Conversation capture | Store what was asked and answered, from any tool |
| Scoped credentials | A key that cannot read outside the space |
| Membership | Owner, admin, member, viewer |
Scope is not a request parameter
A space-scoped credential has its scope injected server-side. A caller cannot
widen it — passing a different space_id in the body does not change what the
credential can reach.
That is the difference between a scoping convention and a scoping guarantee. If scope were a request parameter, every client would be one bug away from reading the whole memory.
Conversation capture
Spaces can record conversations from tools Chordian does not host — Claude Code, Cursor, ChatGPT and others — so the organisation keeps what was asked and answered instead of losing it in individual chat histories.
Captured content is perimeter-scanned on the way in, then vectorised and entity-extracted asynchronously. The write returns immediately: capture never sits in the path of the model's response, so a capture failure cannot slow or break the assistant.
A cross-space view lists conversations from every space, filterable by originating tool.
Capture today happens through the MCP endpoint or an explicit API call. A transparent LLM proxy — point an OpenAI-compatible client at Chordian and have capture happen invisibly — is specified but not built.