Implement toggle thinking blocks with localStorage persistence

- Add preferences store to manage user preferences in localStorage
- Toggle thinking blocks visibility via command palette (default: hidden)
- Dynamic command label shows current state (Show/Hide Thinking Blocks)
- Filter reasoning parts based on preference in message-stream
- Conditionally render reasoning parts in message-part component
- Support function labels in Command interface for dynamic text
This commit is contained in:
Shantur Rathore
2025-10-24 18:24:35 +01:00
parent e58462b926
commit be3acd6724
6 changed files with 72 additions and 20 deletions

View File

@@ -13,6 +13,7 @@ import { initMarkdown } from "./lib/markdown"
import { createCommandRegistry } from "./lib/commands"
import type { Command } from "./lib/commands"
import { hasInstances, isSelectingFolder, setIsSelectingFolder, setHasInstances } from "./stores/ui"
import { toggleShowThinkingBlocks, preferences } from "./stores/preferences"
import {
createInstance,
instances,
@@ -588,13 +589,11 @@ const App: Component = () => {
commandRegistry.register({
id: "thinking",
label: "Toggle Thinking Blocks",
label: () => `${preferences().showThinkingBlocks ? "Hide" : "Show"} Thinking Blocks`,
description: "Show/hide AI thinking process",
category: "System",
keywords: ["/thinking", "toggle", "show", "hide"],
action: () => {
console.log("Toggle thinking blocks (not implemented)")
},
action: toggleShowThinkingBlocks,
})
commandRegistry.register({