# 终端：未正式连上 SSH 前显示「连接中」

**日期**: 2026-06-09

## 摘要

此前 WebSocket `onopen` 即标为「已连接」，但后端仍在建立 SSH/PTY；用户看到已连接却无法输入。

## 修复

- 仅收到 `TERMINAL_INIT` 后标为 `connected` 并启动计时/Ping
- WebSocket 已开但 SSH 未就绪时保持「连接中」
- 45s 无 `TERMINAL_INIT` 提示超时
- 输入/快捷命令/清屏仅在 `connected` 后生效

## 涉及文件

- `frontend/src/composables/terminal/useTerminalSessions.ts`
- `frontend/src/composables/terminal/types.ts`
- `frontend/src/composables/terminal/useTerminalCmdBar.ts`
- `frontend/src/components/terminal/TerminalTabBar.vue`

## 连接变慢说明与优化（同次迭代）

**体感变慢**：此前 WebSocket 一开即显示「已连接」，SSH 握手在后台进行；现改为真实状态，等待时间全部计入「连接中」。

**实际优化**：
- 前端：创建 xterm 与 `POST /auth/webssh-token` 并行
- 后端：校验通过后立即 `accept` WebSocket；审计/会话落库与 `ssh_pool.acquire` 并行

## 验证

- `npm run type-check`
- 打开终端：应先显示「连接中」，SSH 就绪后变「已连接」
