8312a6cf81
PTY 环境变量注入 TERM=xterm-256color,DATA 帧 base64 保 ESC;前端解码写入 xterm;命令栏 Shell 高亮 CSS 与黑屏分离。 Co-authored-by: Cursor <cursoragent@cursor.com>
1.2 KiB
1.2 KiB
2026-06-08 — WebSSH xterm SSH 交互区 ANSI 彩色输出修正
摘要
修正 835ef2c 偏差:ANSI 彩色应出现在上方 xterm SSH 输出区,而非底部命令栏语法高亮。后端 PTY 环境变量 + base64 DATA;前端解码写入 xterm;Shell 高亮 CSS 移至命令栏组件。
动机
用户反馈:WebSSH 对话框/命令栏有颜色,但 SSH 交互黑屏区仍无远程 ANSI 彩色(ls --color 等)。
涉及文件
server/api/webssh.py—create_process(env=...)、data_b64frontend/src/composables/terminal/useTerminalSessions.ts— 解码data_b64frontend/src/pages/TerminalPage.vue— 移除.sh-*样式frontend/src/components/terminal/TerminalCmdBar.vue— 承接.sh-*样式docs/design/specs/2026-06-08-webssh-xterm-ansi-output-fix-design.md
迁移 / 重启
- 后端需重启 API(WebSocket relay 变更)
- 前端需 build + 部署;已有会话需重连以应用新 DATA 格式
验证
pytest tests/test_webssh_terminal_payload.py -q
cd frontend && npm run build
浏览器(xterm 黑屏内):printf '\033[31mred\033[0m\n'、ls --color=auto。
回滚
恢复 stdin export TERM=...;前端仅用 msg.data;去掉 data_b64。