diff options
| author | Adam <[email protected]> | 2026-02-20 06:46:03 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-02-20 10:05:09 -0600 |
| commit | 2a904ec56f202641d3172fc87842e2b73d6fb149 (patch) | |
| tree | d72e4aec4c3b621d0b69213681b6cc285cf7cfa9 /packages/app/src | |
| parent | 0ce61c817b74e31e08bd140611e2f7ae6ba1684c (diff) | |
| download | opencode-2a904ec56f202641d3172fc87842e2b73d6fb149.tar.gz opencode-2a904ec56f202641d3172fc87842e2b73d6fb149.zip | |
feat(app): show/hide reasoning summaries
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/components/settings-general.tsx | 12 | ||||
| -rw-r--r-- | packages/app/src/context/settings.tsx | 9 | ||||
| -rw-r--r-- | packages/app/src/i18n/en.ts | 2 | ||||
| -rw-r--r-- | packages/app/src/pages/session/message-timeline.tsx | 3 |
4 files changed, 26 insertions, 0 deletions
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 = () => { )} </Select> </SettingsRow> + + <SettingsRow + title={language.t("settings.general.row.reasoningSummaries.title")} + description={language.t("settings.general.row.reasoningSummaries.description")} + > + <div data-action="settings-reasoning-summaries"> + <Switch + checked={settings.general.showReasoningSummaries()} + onChange={(checked) => settings.general.setShowReasoningSummaries(checked)} + /> + </div> + </SettingsRow> </div> </div> ) 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", |
