summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/pages
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-21 13:23:45 -0600
committerAdam <[email protected]>2026-01-21 13:23:50 -0600
commit3ba1111ed047ca4cc42bc964ae23c32959c0e8fd (patch)
tree552c5bdfa4a83f667b8bc80a8ccec7e5f9cb2476 /packages/app/src/pages
parent6f7a1c69a517b6f46e7b7c18b69fc38fa7aaa10f (diff)
downloadopencode-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.tsx29
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>