Files
Nexus/docs/changelog/2026-06-08-webssh-xterm-ansi-output-fix.md
T
Nexus Agent 8312a6cf81 fix(terminal): WebSSH xterm SSH 交互区 ANSI 彩色输出
PTY 环境变量注入 TERM=xterm-256color,DATA 帧 base64 保 ESC;前端解码写入 xterm;命令栏 Shell 高亮 CSS 与黑屏分离。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 12:35:27 +08:00

1.2 KiB
Raw Blame History

2026-06-08 — WebSSH xterm SSH 交互区 ANSI 彩色输出修正

摘要

修正 835ef2c 偏差:ANSI 彩色应出现在上方 xterm SSH 输出区,而非底部命令栏语法高亮。后端 PTY 环境变量 + base64 DATA;前端解码写入 xtermShell 高亮 CSS 移至命令栏组件。

动机

用户反馈:WebSSH 对话框/命令栏有颜色,但 SSH 交互黑屏区仍无远程 ANSI 彩色(ls --color 等)。

涉及文件

  • server/api/webssh.pycreate_process(env=...)data_b64
  • frontend/src/composables/terminal/useTerminalSessions.ts — 解码 data_b64
  • frontend/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

迁移 / 重启

  • 后端需重启 APIWebSocket 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