summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components/session-turn.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-12 19:07:19 -0500
committerAdam <[email protected]>2026-03-12 19:07:23 -0500
commitc173988aaa2f84ecdfe7d3c7cdfd7d3a525aee02 (patch)
tree9d88817716a8344901ce19cb7e8ed0437dcb3de6 /packages/ui/src/components/session-turn.tsx
parent268855dc5a770e9cd6718ea62b935afdea2dda7f (diff)
downloadopencode-c173988aaa2f84ecdfe7d3c7cdfd7d3a525aee02.tar.gz
opencode-c173988aaa2f84ecdfe7d3c7cdfd7d3a525aee02.zip
feat(app): interruption state
Diffstat (limited to 'packages/ui/src/components/session-turn.tsx')
-rw-r--r--packages/ui/src/components/session-turn.tsx13
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/ui/src/components/session-turn.tsx b/packages/ui/src/components/session-turn.tsx
index 8783e8957..41e160d16 100644
--- a/packages/ui/src/components/session-turn.tsx
+++ b/packages/ui/src/components/session-turn.tsx
@@ -7,7 +7,7 @@ import { Binary } from "@opencode-ai/util/binary"
import { getDirectory, getFilename } from "@opencode-ai/util/path"
import { createEffect, createMemo, createSignal, For, on, ParentProps, Show } from "solid-js"
import { Dynamic } from "solid-js/web"
-import { AssistantParts, Message, Part, PART_MAPPING, type UserActions } from "./message-part"
+import { AssistantParts, Message, MessageDivider, PART_MAPPING, type UserActions } from "./message-part"
import { Card } from "./card"
import { Accordion } from "./accordion"
import { StickyAccordionHeader } from "./sticky-accordion-header"
@@ -276,6 +276,11 @@ export function SessionTurn(
)
const interrupted = createMemo(() => assistantMessages().some((m) => m.error?.name === "MessageAbortedError"))
+ const divider = createMemo(() => {
+ if (compaction()) return i18n.t("ui.messagePart.compaction")
+ if (interrupted()) return i18n.t("ui.message.interrupted")
+ return ""
+ })
const error = createMemo(
() => assistantMessages().find((m) => m.error && m.error.name !== "MessageAbortedError")?.error,
)
@@ -384,11 +389,11 @@ export function SessionTurn(
class={props.classes?.container}
>
<div data-slot="session-turn-message-content" aria-live="off">
- <Message message={message()!} parts={parts()} actions={props.actions} interrupted={interrupted()} />
+ <Message message={message()!} parts={parts()} actions={props.actions} />
</div>
- <Show when={compaction()}>
+ <Show when={divider()}>
<div data-slot="session-turn-compaction">
- <Part part={compaction()!} message={message()!} hideDetails />
+ <MessageDivider label={divider()} />
</div>
</Show>
<Show when={assistantMessages().length > 0}>