From 9bc77dd3b9f0221e4a29ba2715d156a5a14acb38 Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 15 Apr 2026 01:07:10 +0200 Subject: [PATCH] docs(mana-ai): contract test + RLS scoping shipped; narrow remaining work Co-Authored-By: Claude Opus 4.6 (1M context) --- services/mana-ai/CLAUDE.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/mana-ai/CLAUDE.md b/services/mana-ai/CLAUDE.md index ed5de3ec8..5c69478d0 100644 --- a/services/mana-ai/CLAUDE.md +++ b/services/mana-ai/CLAUDE.md @@ -20,9 +20,8 @@ What works end-to-end: - [x] **Server-side input resolvers** for plaintext tables — `db/resolvers/` with a pluggable registry + single-record LWW replay (`record-replay.ts`). `goals` resolver ships by default. Encrypted tables (notes, kontext, tasks, events, journal, …) are intentionally **not** resolved server-side; those missions depend on the foreground runner which decrypts client-side. See `resolvers/types.ts` for the privacy rationale. Intentionally **not yet** implemented (future work): -- [ ] Per-user Postgres RLS scoping on the mission *read* path — current cross-user scan relies on downstream code honouring `userId`. Write path is already RLS-scoped via `withUser`. -- [ ] Contract test between this service's `AI_AVAILABLE_TOOLS` and the webapp's `DEFAULT_AI_POLICY` — drift today means silent degradation (server won't propose newly-added webapp tools). - [ ] Materialized mission snapshot — full LWW replay per tick is O(N changes). Fine pre-launch; revisit when user count grows. +- [ ] Revert-per-iteration in the Workbench timeline — would undo the AI's approved writes. Needs per-event-type inverse logic (delete reverts create, uncomplete reverts TaskCompleted, …). ## Port: 3066