From 2a904ec56f202641d3172fc87842e2b73d6fb149 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 20 Feb 2026 06:46:03 -0600 Subject: feat(app): show/hide reasoning summaries --- packages/app/src/components/settings-general.tsx | 12 ++++++++++++ packages/app/src/context/settings.tsx | 9 +++++++++ packages/app/src/i18n/en.ts | 2 ++ packages/app/src/pages/session/message-timeline.tsx | 3 +++ 4 files changed, 26 insertions(+) (limited to 'packages/app/src') diff --git a/packages/app/src/components/settings-general.tsx b/packages/app/src/components/settings-general.tsx index df71fd77e..beb39b355 100644 --- a/packages/app/src/components/settings-general.tsx +++ b/packages/app/src/components/settings-general.tsx @@ -250,6 +250,18 @@ export const SettingsGeneral: Component = () => { )} + + +
+ settings.general.setShowReasoningSummaries(checked)} + /> +
+
) diff --git a/packages/app/src/context/settings.tsx b/packages/app/src/context/settings.tsx index fbcd0a851..d279a7f32 100644 --- a/packages/app/src/context/settings.tsx +++ b/packages/app/src/context/settings.tsx @@ -22,6 +22,7 @@ export interface Settings { general: { autoSave: boolean releaseNotes: boolean + showReasoningSummaries: boolean } updates: { startup: boolean @@ -42,6 +43,7 @@ const defaultSettings: Settings = { general: { autoSave: true, releaseNotes: true, + showReasoningSummaries: false, }, updates: { startup: true, @@ -120,6 +122,13 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont setReleaseNotes(value: boolean) { setStore("general", "releaseNotes", value) }, + showReasoningSummaries: withFallback( + () => store.general?.showReasoningSummaries, + defaultSettings.general.showReasoningSummaries, + ), + setShowReasoningSummaries(value: boolean) { + setStore("general", "showReasoningSummaries", value) + }, }, updates: { startup: withFallback(() => store.updates?.startup, defaultSettings.updates.startup), diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts index 8837dcbad..a8c27cc63 100644 --- a/packages/app/src/i18n/en.ts +++ b/packages/app/src/i18n/en.ts @@ -610,6 +610,8 @@ export const dict = { "settings.general.row.theme.description": "Customise how OpenCode is themed.", "settings.general.row.font.title": "Font", "settings.general.row.font.description": "Customise the mono font used in code blocks", + "settings.general.row.reasoningSummaries.title": "Show reasoning summaries", + "settings.general.row.reasoningSummaries.description": "Display model reasoning summaries in the timeline", "settings.general.row.wayland.title": "Use native Wayland", "settings.general.row.wayland.description": "Disable X11 fallback on Wayland. Requires restart.", diff --git a/packages/app/src/pages/session/message-timeline.tsx b/packages/app/src/pages/session/message-timeline.tsx index 567ef5fc8..6ac89a3a7 100644 --- a/packages/app/src/pages/session/message-timeline.tsx +++ b/packages/app/src/pages/session/message-timeline.tsx @@ -14,6 +14,7 @@ import { shouldMarkBoundaryGesture, normalizeWheelDelta } from "@/pages/session/ import { SessionContextUsage } from "@/components/session-context-usage" import { useDialog } from "@opencode-ai/ui/context/dialog" import { useLanguage } from "@/context/language" +import { useSettings } from "@/context/settings" import { useSDK } from "@/context/sdk" import { useSync } from "@/context/sync" @@ -80,6 +81,7 @@ export function MessageTimeline(props: { const navigate = useNavigate() const sdk = useSDK() const sync = useSync() + const settings = useSettings() const dialog = useDialog() const language = useLanguage() @@ -535,6 +537,7 @@ export function MessageTimeline(props: { sessionID={sessionID() ?? ""} messageID={message.id} lastUserMessageID={props.lastUserMessageID} + showReasoningSummaries={settings.general.showReasoningSummaries()} classes={{ root: "min-w-0 w-full relative", content: "flex flex-col justify-between !overflow-visible", -- cgit v1.2.3