cc4e71c127
Scrolling a console left stray characters glued to the left edge of blank lines. Copying an affected line yields clean text, so the buffer was always correct — only the painting drifted, which no CSS can correct. xterm's default DOM renderer aligns each row with a single `letter-spacing` value. That holds only while every glyph comes from one monospace font, and TerminalView passed no fontFamily, so xterm used its default `courier-new, courier, monospace`: Vietnamese diacritics and CJK fall through to a fallback face whose advance width differs, glyphs shove their neighbours along, and the row's tail spills onto the row below. The canvas renderer draws every cell at a fixed position, so a wide glyph can no longer displace its neighbours. Loaded best-effort — a browser that cannot hand back a 2D context keeps the DOM renderer rather than losing the terminal entirely. Ruled out first, each by replaying the real byte stream into xterm.js and diffing against `tmux capture-pane`: wrapped Vietnamese at the margin, mixed CJK, wheel scrolling through copy-mode, and a live 131->95->131 resize all render byte-identically at matched widths. client 448/448, tsc clean.
45 lines
1.2 KiB
JSON
45 lines
1.2 KiB
JSON
{
|
|
"name": "agent-dashboard-client",
|
|
"private": true,
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"preview": "vite preview",
|
|
"test": "NODE_OPTIONS=--no-experimental-webstorage vitest run",
|
|
"test:watch": "NODE_OPTIONS=--no-experimental-webstorage vitest"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource/inter": "^5.2.8",
|
|
"@fontsource/jetbrains-mono": "^5.2.8",
|
|
"@xterm/addon-canvas": "^0.7.0",
|
|
"@xterm/addon-fit": "^0.10.0",
|
|
"@xterm/xterm": "^5.5.0",
|
|
"d3": "^7.9.0",
|
|
"i18next": "^26.0.8",
|
|
"i18next-browser-languagedetector": "^8.2.1",
|
|
"lucide-react": "^0.474.0",
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-i18next": "^17.0.4",
|
|
"react-router-dom": "^6.28.2"
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/d3": "^7.4.3",
|
|
"@types/react": "^18.3.18",
|
|
"@types/react-dom": "^18.3.5",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"autoprefixer": "^10.4.20",
|
|
"jsdom": "^27.0.1",
|
|
"postcss": "^8.5.1",
|
|
"tailwindcss": "^3.4.17",
|
|
"typescript": "^5.7.3",
|
|
"vite": "^6.1.0",
|
|
"vitest": "^3.2.4"
|
|
}
|
|
}
|