# 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_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`

## 迁移 / 重启

- 后端需重启 API（WebSocket relay 变更）
- 前端需 build + 部署；已有会话需**重连**以应用新 DATA 格式

## 验证

```bash
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`。
