8312a6cf81
PTY 环境变量注入 TERM=xterm-256color,DATA 帧 base64 保 ESC;前端解码写入 xterm;命令栏 Shell 高亮 CSS 与黑屏分离。 Co-authored-by: Cursor <cursoragent@cursor.com>
1.1 KiB
1.1 KiB
设计 — WebSSH xterm SSH 交互区 ANSI 彩色输出修正
日期: 2026-06-08
状态: 已实施
关联: 835ef2c WebSSH 经典主题(误把命令栏语法高亮当作 ANSI 修复)
背景与目标
用户要求:上方 xterm 黑屏(SSH 远程输出)黑底白字且带 ANSI 字符颜色;不是底部命令栏 Shell 语法高亮,也不是选择服务器对话框。
方案
| 层 | 变更 |
|---|---|
后端 webssh.py |
create_process(env=...) 注入 TERM=xterm-256color 等;DATA 用 data_b64 二进制安全传输 |
前端 useTerminalSessions.ts |
优先解码 data_b64 写入 xterm |
| 前端样式 | .sh-* 从 TerminalPage 移至 TerminalCmdBar scoped |
验收
在 xterm 黑屏内:
printf '\033[31mred \033[32mgreen \033[0m\n'→ 红/绿字ls --color=auto→ 目录/文件分色- 底部命令栏 Enter 发送后,彩色输出仍出现在黑屏区
安全与性能
- base64 仅用于 WebSocket 帧内转义,不改变鉴权
- 仍 4096 字节分块 read,延迟特性不变