diff --git a/.context/system-prompt.txt b/.context/system-prompt.txt index 7b4ba2f..32aecf4 100644 --- a/.context/system-prompt.txt +++ b/.context/system-prompt.txt @@ -307,7 +307,13 @@ entries that age well are about *why*, *how to avoid*, and *what to do when*. | **Anything HTTP-only (curl, scripts)** | `POST https://brain-mcp.d-ma.be/query` with `{"query":"..."}` (auth via `BRAIN_MCP_TOKEN`) | `POST .../write` with `{"content":"...","filename":"..."}` | | **Browser / human inspection** | `https://git.d-ma.be/mathias/hyperguild` → `knowledge/` and `wiki/` markdown files | -- **Scoping**: defaults to `public` collection; client projects filter to `{client}` + `public`. +- **Scoping — the brain holds no confidential client content.** Nothing on the read path + filters by client: every token holder can read every wing, and `wing` on `brain_query` + is an optional argument, not an access control. Client confidentiality is enforced only + at write time (`capture`'s I1 gate refuses internal/confidential). So never `brain_write` + client material; generalise it first or keep it in the client's own repo. (hyperguild#144, + decided 2026-10-01. This line previously claimed client projects were filtered; they + were not.) - **Routing**: brain_answer's LLM uses berget.ai as primary, iguana ollama as fallback. Both are configurable in the `supervisor/ingestion-deployment.yaml` on the koala k3s cluster; don't hardcode local-only model names into the diff --git a/AGENTS.md b/AGENTS.md index 2a77f8e..2365b47 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -302,7 +302,13 @@ entries that age well are about *why*, *how to avoid*, and *what to do when*. | **Anything HTTP-only (curl, scripts)** | `POST https://brain-mcp.d-ma.be/query` with `{"query":"..."}` (auth via `BRAIN_MCP_TOKEN`) | `POST .../write` with `{"content":"...","filename":"..."}` | | **Browser / human inspection** | `https://git.d-ma.be/mathias/hyperguild` → `knowledge/` and `wiki/` markdown files | -- **Scoping**: defaults to `public` collection; client projects filter to `{client}` + `public`. +- **Scoping — the brain holds no confidential client content.** Nothing on the read path + filters by client: every token holder can read every wing, and `wing` on `brain_query` + is an optional argument, not an access control. Client confidentiality is enforced only + at write time (`capture`'s I1 gate refuses internal/confidential). So never `brain_write` + client material; generalise it first or keep it in the client's own repo. (hyperguild#144, + decided 2026-10-01. This line previously claimed client projects were filtered; they + were not.) - **Routing**: brain_answer's LLM uses berget.ai as primary, iguana ollama as fallback. Both are configurable in the `supervisor/ingestion-deployment.yaml` on the koala k3s cluster; don't hardcode local-only model names into the