# 2026-06-08 — 终端深链与命令输入框修复

## 摘要

修复 `#/terminal?server_id=1` 等深链打开后底部命令输入框不可用：消除终端容器挂载竞态、连接中不再禁用整栏输入，并统一 `server_id` 查询参数。

## 动机

`newSession` 在 pane ref 未就绪时提前 return，导致 WebSocket 永不连接、输入框长期 `disabled`；看板页误用 `server` 参数。

## 变更

- `waitForTermContainer` 轮询等待 pane 挂载后再 `connectSession`
- 命令栏：有会话即可输入，仅「发送」在未连接时禁用
- `applyRouteQuery` 同时识别 `server_id` / `server`
- `ScriptRunsPage` 跳转终端改为 `server_id`

## 涉及文件

- `frontend/src/composables/terminal/useTerminalSessions.ts`
- `frontend/src/composables/terminal/useTerminalCmdBar.ts`
- `frontend/src/components/terminal/TerminalCmdBar.vue`
- `frontend/src/pages/TerminalPage.vue`
- `frontend/src/pages/ScriptRunsPage.vue`

## 验证

`#/terminal?server_id=1` → 连接建立前可编辑命令框；连接后可发送。
