summaryrefslogtreecommitdiffhomepage
path: root/packages/frontend/src/lib/components/ChatMessage.svelte
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-21 20:26:07 +0900
committerAdam Malczewski <[email protected]>2026-05-21 20:26:07 +0900
commit13b670e5e93dc0243f970832673385e9855a1df6 (patch)
tree0d252be4410b04e28867efa569064bf9608840d3 /packages/frontend/src/lib/components/ChatMessage.svelte
parent4ba2673557c7cfd0bc31b03e2c35ab5e1efe60e7 (diff)
downloaddispatch-13b670e5e93dc0243f970832673385e9855a1df6.tar.gz
dispatch-13b670e5e93dc0243f970832673385e9855a1df6.zip
feat: tool permission toggles, settings improvements, UI polish
- Tool permissions (read, edit, bash) stored in DB and control Agent tool registration - Agent invalidated when permissions change; cache warning in Permissions panel - Default: read=allow, edit=ask, bash=ask (matches UI checkboxes) - Settings: auto-save title model on selection (removed save button) - Settings: auto-expand thinking checkbox with shared reactive store - Permissions panel: renamed from Permission Log, shows tool toggles + collapsible log - Sidebar: renamed Current Model to Model Choice - Chat input: allow typing while agent runs (just disable send) - Chat cursor: fix doubled rectangle (removed unicode char) - Generic GET/PUT /tabs/settings/:key endpoints for key-value settings
Diffstat (limited to 'packages/frontend/src/lib/components/ChatMessage.svelte')
-rw-r--r--packages/frontend/src/lib/components/ChatMessage.svelte5
1 files changed, 3 insertions, 2 deletions
diff --git a/packages/frontend/src/lib/components/ChatMessage.svelte b/packages/frontend/src/lib/components/ChatMessage.svelte
index c8b3f6e..4db57c3 100644
--- a/packages/frontend/src/lib/components/ChatMessage.svelte
+++ b/packages/frontend/src/lib/components/ChatMessage.svelte
@@ -1,5 +1,6 @@
<script lang="ts">
import type { ChatMessage } from "../types.js";
+import { appSettings } from "../settings.svelte.js";
import MarkdownRenderer from "./MarkdownRenderer.svelte";
import ToolCallDisplay from "./ToolCallDisplay.svelte";
@@ -24,7 +25,7 @@ const isSystem = $derived(message.role === "system");
<div class="chat-bubble max-w-[80%] break-words {isUser ? 'chat-bubble-primary' : 'bg-transparent'}">
{#if message.thinking}
<div class="collapse collapse-arrow mb-2 p-1">
- <input type="checkbox" />
+ <input type="checkbox" checked={appSettings.autoExpandThinking} />
<div class="collapse-title text-sm opacity-60 italic py-0 pl-0 pr-8 min-h-0">Thinking...</div>
<div class="collapse-content text-sm opacity-60 italic p-0">
<p class="whitespace-pre-wrap mt-1">{message.thinking}</p>
@@ -39,7 +40,7 @@ const isSystem = $derived(message.role === "system");
{/if}
{/each}
{#if message.isStreaming}
- <span class="inline-block w-2 h-4 bg-current animate-pulse ml-0.5 align-middle">▌</span>
+ <span class="inline-block w-1.5 h-4 bg-current animate-pulse ml-0.5 align-middle rounded-sm"></span>
{/if}
</div>
</div>