From 7ec4bdb22d1a669883ef7508bf47e582977f9918 Mon Sep 17 00:00:00 2001 From: archipelago Date: Sun, 9 Aug 2026 07:11:24 -0400 Subject: [PATCH] fix(settings): say plainly which AI categories are context-only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All ten AI data-access categories offer a context toggle, but only five (Apps, System, Network, Media, Bitcoin) have any tool behind them — Wallet, Files, Search, Local AI and Notes grant the assistant visibility with nothing to act on. The Settings copy implied actions that do not exist. Operator decision (2026-08-09): ship honest copy now, build the tools as ordinary backlog. Each of the five carries a contextOnly flag, a "context only" badge, and an appended description line saying the assistant can see this but can't take actions with it yet. Drop the flag per category as real tools land. Verified: vue-tsc clean. Co-Authored-By: Claude Fable 5 --- neode-ui/src/stores/aiPermissions.ts | 11 +++++++++++ neode-ui/src/views/settings/AIDataAccessSection.vue | 10 ++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/neode-ui/src/stores/aiPermissions.ts b/neode-ui/src/stores/aiPermissions.ts index 85c35109..f94cb577 100644 --- a/neode-ui/src/stores/aiPermissions.ts +++ b/neode-ui/src/stores/aiPermissions.ts @@ -10,6 +10,12 @@ export interface AIPermissionCategory { description: string icon: string group: string + /** True when the assistant can SEE this data but has no tools to act on it. + * Five categories (wallet, files, search, ai-local, notes) currently have a + * context arm and zero tools — the toggle copy must say so, or Settings + * implies actions that do not exist (operator decision, 2026-08-09). Remove + * per-category as real tools land. */ + contextOnly?: boolean } export const AI_PERMISSION_CATEGORIES: AIPermissionCategory[] = [ @@ -50,6 +56,7 @@ export const AI_PERMISSION_CATEGORIES: AIPermissionCategory[] = [ }, { id: 'files', + contextOnly: true, label: 'File Names', description: 'Folder and file names in Cloud — no file contents', icon: 'M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z', @@ -57,6 +64,7 @@ export const AI_PERMISSION_CATEGORIES: AIPermissionCategory[] = [ }, { id: 'notes', + contextOnly: true, label: 'Documents & Notes', description: 'Document and note titles — no contents', icon: 'M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z', @@ -64,6 +72,7 @@ export const AI_PERMISSION_CATEGORIES: AIPermissionCategory[] = [ }, { id: 'search', + contextOnly: true, label: 'Web Search', description: 'Web search via your private SearXNG instance', icon: 'M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z', @@ -71,6 +80,7 @@ export const AI_PERMISSION_CATEGORIES: AIPermissionCategory[] = [ }, { id: 'ai-local', + contextOnly: true, label: 'Local AI Models', description: 'Local AI models via Ollama — model names and availability', icon: 'M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z', @@ -78,6 +88,7 @@ export const AI_PERMISSION_CATEGORIES: AIPermissionCategory[] = [ }, { id: 'wallet', + contextOnly: true, label: 'Wallet Overview', description: 'Balance, channel count — no private keys, seeds, or addresses', icon: 'M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z', diff --git a/neode-ui/src/views/settings/AIDataAccessSection.vue b/neode-ui/src/views/settings/AIDataAccessSection.vue index 90b7fffb..c0fb254d 100644 --- a/neode-ui/src/views/settings/AIDataAccessSection.vue +++ b/neode-ui/src/views/settings/AIDataAccessSection.vue @@ -61,8 +61,14 @@ const aiCategoryGroups = computed(() => {
-

{{ cat.label }}

-

{{ cat.description }}

+
+

{{ cat.label }}

+ + context only +
+

{{ cat.description }}