diff options
| author | Adam <[email protected]> | 2026-01-21 13:23:45 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-21 13:23:50 -0600 |
| commit | 3ba1111ed047ca4cc42bc964ae23c32959c0e8fd (patch) | |
| tree | 552c5bdfa4a83f667b8bc80a8ccec7e5f9cb2476 /packages/app/src/pages | |
| parent | 6f7a1c69a517b6f46e7b7c18b69fc38fa7aaa10f (diff) | |
| download | opencode-3ba1111ed047ca4cc42bc964ae23c32959c0e8fd.tar.gz opencode-3ba1111ed047ca4cc42bc964ae23c32959c0e8fd.zip | |
fix(app): terminal issues/regression
Diffstat (limited to 'packages/app/src/pages')
| -rw-r--r-- | packages/app/src/pages/session.tsx | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 7dcf60b72..560c13330 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -1231,11 +1231,15 @@ export default function Page() { language.locale() const label = (pty: LocalPTY) => { + const title = pty.title const number = pty.titleNumber - if (Number.isFinite(number) && number > 0) { - return language.t("terminal.title.numbered", { number }) - } - if (pty.title) return pty.title + const match = title.match(/^Terminal (\d+)$/) + const parsed = match ? Number(match[1]) : undefined + const isDefaultTitle = Number.isFinite(number) && number > 0 && Number.isFinite(parsed) && parsed === number + + if (title && !isDefaultTitle) return title + if (Number.isFinite(number) && number > 0) return language.t("terminal.title.numbered", { number }) + if (title) return title return language.t("terminal.title") } @@ -2002,7 +2006,12 @@ export default function Page() { <Terminal pty={pty} onCleanup={(data) => terminal.update({ ...data, id: pty.id })} + onConnect={() => { + terminal.update({ id: pty.id, error: false }) + setDismissed(false) + }} onConnectError={() => { + setDismissed(false) terminal.update({ id: pty.id, error: true }) }} /> @@ -2056,11 +2065,17 @@ export default function Page() { {(t) => ( <div class="relative p-1 h-10 flex items-center bg-background-stronger text-14-regular"> {(() => { + const title = t().title const number = t().titleNumber - if (Number.isFinite(number) && number > 0) { + const match = title.match(/^Terminal (\d+)$/) + const parsed = match ? Number(match[1]) : undefined + const isDefaultTitle = + Number.isFinite(number) && number > 0 && Number.isFinite(parsed) && parsed === number + + if (title && !isDefaultTitle) return title + if (Number.isFinite(number) && number > 0) return language.t("terminal.title.numbered", { number }) - } - if (t().title) return t().title + if (title) return title return language.t("terminal.title") })()} </div> |
