8c86b50d09
服务器页拆分未设路径列表、行内展开详情;API target_path_unset 可选过滤。 命令栏取消 Shell 语法彩色,ANSI 仅保留 xterm SSH 输出区。 Co-authored-by: Cursor <cursoragent@cursor.com>
1.6 KiB
1.6 KiB
WebSSH xterm ANSI 彩色输出 — 验证报告
日期: 2026-06-08
变更: docs/changelog/2026-06-08-webssh-xterm-ansi-output-fix.md
自动化
| 检查 | 结果 |
|---|---|
.venv/bin/python -m pytest tests/test_webssh_terminal_payload.py -q |
3/3 PASS |
bash scripts/local_verify.sh |
26/26 PASS |
cd frontend && npm run build |
PASS |
bash deploy/pre_deploy_check.sh |
7/7 PASS |
代码要点
- 后端
create_process(env=WEBSSH_PTY_ENV)— PTY 级TERM=xterm-256color,不再依赖 stdin export 竞态 - 后端 DATA 帧使用
data_b64,保留 ANSI ESC 字节 - 前端
decodeTerminalPayload()→term.write(Uint8Array) - 样式 Shell 语法高亮
.sh-*仅在TerminalCmdBar.vue,与 xterm 黑屏分离
浏览器验收步骤(生产/本地均需 重连 SSH 会话)
- 打开
#/terminal,新建或重连一台服务器 - 在上方黑屏 xterm(非底部命令栏)执行:
预期:红 / 绿 / 黄 字
printf '\033[31mred \033[32mgreen \033[33myellow \033[0m\n' - 执行
ls --color=auto或grep --color=always root /etc/passwd | head预期:目录、匹配词分色 - 在底部命令栏输入
ls+ Enter 预期:输出出现在黑屏区且带颜色
部署
- Commit:
8312a6c— fix(terminal): WebSSH xterm SSH 交互区 ANSI 彩色输出 - 生产
/health→ ok,/app/→ 200 - 后端 WebSocket relay 已随 Docker 重建生效
- 请 Ctrl+Shift+R 强刷并重连 SSH 会话后再做浏览器终验
回滚
恢复 webssh.py stdin export + data 字段;前端移除 data_b64 解码。