You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Content negotiation applies to success bodies only; error response bodies are always JSON regardless of `Accept`
11
12
- Most business endpoints return an RPC envelope: `RpcResponse<T>`
12
13
- MCP clients can use the built-in Streamable HTTP endpoint: `/mcp/<space_id>`, or the local stdio server: `anda_brain mcp --space-id <space_id> [local|aws]`
13
14
@@ -602,27 +603,27 @@ When `ED25519_PUBKEYS` is set, configure the remote MCP client with an `Authoriz
602
603
### GET `/v1/{space_id}/conversations/{conversation_id}?collection=<collection>`
603
604
604
605
- Purpose: Get a single conversation detail
605
-
- Auth: SpaceToken/CWT `read` (public spaces are unauthenticated; private spaces require a valid token); tokens restricted by ACL labels are rejected with `403` — conversations persist the full agent runner history, which is not label-scoped
606
+
- Auth: SpaceToken/CWT `read` (public spaces are unauthenticated; private spaces require a valid token); tokens restricted by ACL labels are rejected with `403` — conversations persist the full agent runner history, which is not label-scoped; `collection=recall` additionally rejects anonymous access on public spaces with `403` (recall runs from a private era may embed labeled wiki content)
606
607
- Query:
607
-
-`collection?: string` // "recall" or "maintenance" for non-default conversation collections; unknown values are rejected with `400`
608
+
-`collection?: string` // "formation" (default), "recall" or "maintenance"; unknown values are rejected with `400`
608
609
- Response: `RpcResponse<Conversation>`
609
610
610
611
### GET `/v1/{space_id}/conversations/{conversation_id}/delta?collection=<collection>&messages_offset=<n>&artifacts_offset=<n>`
611
612
612
613
- Purpose: Get incremental conversation updates after client-side offsets
613
-
- Auth: SpaceToken/CWT `read` (public spaces are unauthenticated; private spaces require a valid token); tokens restricted by ACL labels are rejected with `403`
614
+
- Auth: SpaceToken/CWT `read` (public spaces are unauthenticated; private spaces require a valid token); tokens restricted by ACL labels are rejected with `403` (`collection=recall`: anonymous access on public spaces is also rejected)
614
615
- Query:
615
-
-`collection?: string` // "recall" or "maintenance" for non-default conversation collections; unknown values are rejected with `400`
616
+
-`collection?: string` // "formation" (default), "recall" or "maintenance"; unknown values are rejected with `400`
616
617
-`messages_offset?: number` // returns only messages after this offset, defaults to `0`
617
618
-`artifacts_offset?: number` // returns only artifacts after this offset, defaults to `0`
618
619
- Response: `RpcResponse<ConversationDelta>`
619
620
620
621
### GET `/v1/{space_id}/conversations?collection=<collection>&cursor=<cursor>&limit=<n>`
621
622
622
623
- Purpose: List conversations with pagination
623
-
- Auth: SpaceToken/CWT `read` (public spaces are unauthenticated; private spaces require a valid token); tokens restricted by ACL labels are rejected with `403`
624
+
- Auth: SpaceToken/CWT `read` (public spaces are unauthenticated; private spaces require a valid token); tokens restricted by ACL labels are rejected with `403` (`collection=recall`: anonymous access on public spaces is also rejected)
624
625
- Query:
625
-
-`collection?: string` // "recall" or "maintenance" for non-default conversation collections; unknown values are rejected with `400`
626
+
-`collection?: string` // "formation" (default), "recall" or "maintenance"; unknown values are rejected with `400`
626
627
-`cursor?: string`
627
628
-`limit?: number`
628
629
- Response: `RpcResponse<Conversation[]>` (next page cursor is returned via `next_cursor`)
@@ -827,3 +828,4 @@ if (recall.error) {
827
828
- Authentication failure: HTTP `401`, response body is `RpcError`
828
829
- Invalid request/parameters: HTTP `400`, response body is `RpcError`
829
830
- Success: HTTP `200`, response body is usually `RpcResponse<T>`
831
+
- Error response bodies are always JSON, even when the request asked for `application/cbor` or `text/markdown` (this includes the wiki `409` conflict body carrying `error.data.current_version`); only success bodies follow the `Accept` header
0 commit comments