diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx index bfdbfa51b5e..a744a49d613 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx @@ -54,7 +54,10 @@ export function Header() { const model = sync.data.provider.find((x) => x.id === last.providerID)?.models[last.modelID] let result = total.toLocaleString() if (model?.limit.context) { - result += " " + Math.round((total / model.limit.context) * 100) + "%" + const pct = Math.round((total / model.limit.context) * 100) + if (!isNaN(pct) && isFinite(pct)) { + result += " " + pct + "%%" + } } return result }) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx index 6c74e04fac7..93a1cf1ffc6 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx @@ -43,9 +43,10 @@ export function Sidebar(props: { sessionID: string }) { const total = last.tokens.input + last.tokens.output + last.tokens.reasoning + last.tokens.cache.read + last.tokens.cache.write const model = sync.data.provider.find((x) => x.id === last.providerID)?.models[last.modelID] + const pct = model?.limit.context ? Math.round((total / model.limit.context) * 100) : null return { tokens: total.toLocaleString(), - percentage: model?.limit.context ? Math.round((total / model.limit.context) * 100) : null, + percentage: pct !== null && !isNaN(pct) && isFinite(pct) ? pct : 0, } }) @@ -82,7 +83,7 @@ export function Sidebar(props: { sessionID: string }) { Context {context()?.tokens ?? 0} tokens - {context()?.percentage ?? 0}% used + {context()?.percentage ?? 0}%% used {cost()} spent 0}>