read the shell prompt again and stop the reconnect loop
Build / build (push) Canceled after 0s
Playwright / e2e (push) Canceled after 0s

The terminal was the last surface in the chat tool panel still wearing
someone else's design system, and it had two defects underneath that.

The font stack named no Nerd Font, so the private-use glyphs a default
zsh prompt draws its separators and branch marks from rendered as notdef
boxes. The ~ and the path after it drew fine, which is what made it read
as a font bug rather than a missing-glyph one.

Both components also carried their own copy of the palette -- four themes
in one, fifteen in the other, drifting, defaulting to a near-black that
appears nowhere in the token set. Changing --code-bg did nothing to the
terminal because the terminal never read a token. They now share one
module built from the tokens, so an error in the terminal is the same
red as an error anywhere else.

TerminalView reconnected on a bare setTimeout with no attempt cap and no
error surface, retrying invisibly every three seconds forever against an
unreachable backend. It now shares the panel's cap of three and renders
the same retry affordance, counting down again once a session is created.

Also drops a dead ws.onopen assignment and a 21px padding that was on no
spacing scale, and records what the chat page still owes the prototype.
This commit is contained in:
2026-10-19 17:03:38 +08:00
parent a623398fe8
commit 8052bf5781
9 changed files with 465 additions and 307 deletions
@@ -9,7 +9,9 @@ export type BrightnessMode = 'dark'
const brightness = ref<BrightnessMode>('dark')
// 固定应用暗色:Arco 的 token 通过 arco-theme 属性切换,项目的令牌写在 :root。
// <body> 也要挂:Arco 的暗色令牌声明在 body[arco-theme='dark'] 下,属性选择器不继承。
document.documentElement.setAttribute('arco-theme', 'dark')
document.body.setAttribute('arco-theme', 'dark')
export function useTheme() {
const themeName = computed(() => 'dark')