summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-02 19:24:51 +0900
committerAdam Malczewski <[email protected]>2026-06-02 19:24:51 +0900
commitd01f17330f817cad995385df5b00d9ff8f201cdc (patch)
tree0d3d9215e6813e3ce70b0f5df4b4ebc0e22a9a91
parent94ce3401cd65ff3f58c134c73cb3f816b7142093 (diff)
downloaddispatch-d01f17330f817cad995385df5b00d9ff8f201cdc.tar.gz
dispatch-d01f17330f817cad995385df5b00d9ff8f201cdc.zip
feat(frontend): add perm_lsp toggle to the permissions panel
Add 'LSP queries' to the ToolPermissions UI (disabled by default, matching the backend's perm_lsp gating). The existing generic settings route (/tabs/settings/perm_lsp) and agent-manager invalidation handle persistence and agent rebuild automatically — only the frontend store default and the permission entry needed wiring.
-rw-r--r--packages/frontend/src/lib/components/ToolPermissions.svelte6
-rw-r--r--packages/frontend/src/lib/settings.svelte.ts2
2 files changed, 8 insertions, 0 deletions
diff --git a/packages/frontend/src/lib/components/ToolPermissions.svelte b/packages/frontend/src/lib/components/ToolPermissions.svelte
index 0caf0fa..77452bf 100644
--- a/packages/frontend/src/lib/components/ToolPermissions.svelte
+++ b/packages/frontend/src/lib/components/ToolPermissions.svelte
@@ -47,6 +47,12 @@ const toolPermissions: ToolPermission[] = [
label: "YouTube transcripts",
description: "Allow the AI to fetch YouTube video transcripts",
},
+ {
+ id: "lsp",
+ label: "LSP queries",
+ description:
+ "Allow the AI to query a language server for hover, go-to-definition, references, and more",
+ },
];
const {
diff --git a/packages/frontend/src/lib/settings.svelte.ts b/packages/frontend/src/lib/settings.svelte.ts
index 123008d..ff12d69 100644
--- a/packages/frontend/src/lib/settings.svelte.ts
+++ b/packages/frontend/src/lib/settings.svelte.ts
@@ -14,6 +14,7 @@ let toolPerms = $state<Record<string, boolean>>({
external_directory: false,
web_search: false,
youtube_transcribe: false,
+ lsp: false,
});
let savedToolPerms = $state<Record<string, boolean>>({
read: true,
@@ -26,6 +27,7 @@ let savedToolPerms = $state<Record<string, boolean>>({
external_directory: false,
web_search: false,
youtube_transcribe: false,
+ lsp: false,
});
let skillChecks = $state<Record<string, boolean>>({});
let chunkLimit = $state(100);