From 492020b54786f6298b690d8df789684ed4d6af23 Mon Sep 17 00:00:00 2001 From: jon Date: Thu, 23 Jul 2026 14:29:40 -0500 Subject: [PATCH] feat: per-conversation project binding + action-tool consent gate - Conversations bind to a project on creation; RAG scopes to the conversation's project, not the global setting. - Action tools (web_search/fetch_url/remember) are withheld unless allow_action_tools is enabled (off by default). Settings toggle. Co-Authored-By: Claude Opus 4.8 --- interface/web/src/Settings.jsx | 17 +++++++++++++++++ synapse/main.py | 19 +++++++++++++++---- synapse/memory/store.py | 24 +++++++++++++++++++++--- synapse/tools.py | 21 ++++++++++++++++++--- tests/test_documents.py | 11 +++++++++++ tests/test_tools.py | 9 +++++++++ 6 files changed, 91 insertions(+), 10 deletions(-) diff --git a/interface/web/src/Settings.jsx b/interface/web/src/Settings.jsx index 03c21c7..0e84a9d 100644 --- a/interface/web/src/Settings.jsx +++ b/interface/web/src/Settings.jsx @@ -8,6 +8,7 @@ const DEFAULTS = { num_ctx: 0, // context window in tokens; 0 = model default rag_top_k: 3, // document chunks injected into chat rag_min_score: 0.6, // min cosine similarity for a chunk to count + allow_action_tools: false, // consent gate for web/fetch/memory-write tools system_prompt: "", timeout: 120, gpu_offload: -1, // -1 = Auto; 0–100 = percent of layers forced onto the GPU @@ -241,6 +242,22 @@ export function Settings() { similarity each must clear. Higher relevance = fewer, tighter matches. +
+ +
+ Lets playbooks run tools that act: web search, fetching a URL, and writing + to memory. Off by default — a playbook can list them, but they only fire + when this is on. +
+
+