diff --git a/src/features/agents/Composer.tsx b/src/features/agents/Composer.tsx index aff05d6d4..c090e83c8 100644 --- a/src/features/agents/Composer.tsx +++ b/src/features/agents/Composer.tsx @@ -28,6 +28,7 @@ import { } from "./composerModel"; import { composerDraft, updateComposer, useAgents } from "./store"; import styles from "./Composer.module.css"; +import { isImeKey } from "@/platform/ime"; const MAX_PROMPT_HEIGHT = 280; const MAX_ITEMS = 12; @@ -213,7 +214,7 @@ export function Composer(props: ComposerProps) { }, [id, root]); const onKeyDown = (e: KeyboardEvent) => { - if (e.nativeEvent.isComposing) return; + if (isImeKey(e.nativeEvent)) return; if (open) { if (e.key === "ArrowDown" || e.key === "ArrowUp") { e.preventDefault(); @@ -320,6 +321,9 @@ export function Composer(props: ComposerProps) { ref={ref} className={styles.textarea} rows={2} + spellCheck={false} + autoCorrect="off" + autoCapitalize="off" value={text} aria-label={tx("Message")} placeholder={tx(props.placeholder)} diff --git a/src/features/agents/Session.module.css b/src/features/agents/Session.module.css index e9c555cbe..ef518cfb6 100644 --- a/src/features/agents/Session.module.css +++ b/src/features/agents/Session.module.css @@ -38,14 +38,18 @@ .headerDetail { flex: 1 1 0; min-width: 0; + display: flex; + align-items: center; + gap: 4px; color: var(--fg-subtle); +} +.headerText { + min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .providerIcon { - vertical-align: -2px; - margin-right: 4px; color: var(--fg-muted); } .muted { diff --git a/src/features/agents/SessionEditor.tsx b/src/features/agents/SessionEditor.tsx index b8ac8e06e..4c7b78b5e 100644 --- a/src/features/agents/SessionEditor.tsx +++ b/src/features/agents/SessionEditor.tsx @@ -68,12 +68,14 @@ function Header({ task }: { task: AgentTask }) { - {providerName(task.provider)} - {task.model ? ` · ${task.model}` : ""} - {" · "} - {where ?? Local checkout} - {" · "} - {statusLabel(task.status)} + + {providerName(task.provider)} + {task.model ? ` · ${task.model}` : ""} + {" · "} + {where ?? Local checkout} + {" · "} + {statusLabel(task.status)} + {task.usage && } {busy && void cancelTask(task.id)} />}