Files
nexus-terminal/.helloagents/archive/2026-04/202604192106_terminal-running-indicator/tasks.md
T
yinjianm 6253b90151 feat(frontend): 添加 SSH 终端运行中标记
为 SSH 顶部服务器标签和内部终端标签补充 `%` 运行中提示,
并基于发送命令、shell prompt、断连与错误链路派生运行态。
2026-04-19 21:33:24 +08:00

56 lines
2.8 KiB
Markdown

# 任务清单: terminal-running-indicator
> **@status:** completed | 2026-04-19 21:31
```yaml
@feature: terminal-running-indicator
@created: 2026-04-19
@status: completed
@mode: R2
```
## 进度概览
| 完成 | 失败 | 跳过 | 总数 |
|------|------|------|------|
| 6 | 0 | 0 | 6 |
---
## 任务列表
### 1. 运行态链路补齐
- [√] 1.1 在 `packages/frontend/src/stores/session/types.ts``packages/frontend/src/stores/session/actions/sessionActions.ts` 中为 SSH 会话补充命令运行态与终端输入缓存字段,并完成新会话初始化 | depends_on: []
- [√] 1.2 在 `packages/frontend/src/stores/session/getters.ts``packages/frontend/src/composables/useSshTerminal.ts` 中接入“发送非空命令置位、prompt/中断/断连清除”的派生逻辑 | depends_on: [1.1]
### 2. 标签 UI 展示
- [√] 2.1 在 `packages/frontend/src/components/TerminalTabBar.vue` 中为 SSH 顶部服务器标签补充按连接聚合的 `%` 运行中提示 | depends_on: [1.2]
- [√] 2.2 在 `packages/frontend/src/components/LayoutRenderer.vue` 中为当前服务器内部终端标签补充逐终端 `%` 运行中提示 | depends_on: [1.2]
- [√] 2.3 在 `packages/frontend/src/locales/zh-CN.json``packages/frontend/src/locales/en-US.json``packages/frontend/src/locales/ja-JP.json` 中补充运行态 tooltip 文案 | depends_on: [2.1, 2.2]
### 3. 验证与同步
- [√] 3.1 运行 `npm --workspace @nexus-terminal/frontend run build` 验证编译通过,并同步知识库与方案状态 | depends_on: [2.3]
---
## 执行日志
| 时间 | 任务 | 状态 | 备注 |
|------|------|------|------|
| 2026-04-19 21:06 | 方案包创建 | 完成 | 已创建 `202604192106_terminal-running-indicator`,按 R2 流程进入开发实施 |
| 2026-04-19 21:19 | 1.1 / 1.2 | 完成 | 已为 SSH 会话补充 `isCommandRunning``terminalInputBuffer`,并在 `useSshTerminal.ts` 中接入发送置位、prompt/中断/断连清除逻辑 |
| 2026-04-19 21:23 | 2.1 / 2.2 / 2.3 | 完成 | 顶部服务器标签与服务器内终端标签已显示 `%` 运行态提示,并补齐中英日 tooltip 文案 |
| 2026-04-19 21:30 | 3.1 | 完成 | `npm --workspace @nexus-terminal/frontend run build` 通过,并同步 `frontend.md``CHANGELOG.md` |
---
## 执行备注
- 本轮范围限制在 `packages/frontend`,不改 backend WebSocket 协议与 SSH session 模型。
- 运行态以前端派生值为准,允许在无法识别 prompt 的极少数 shell 场景中退化为“中断/新输入/断连清除”。
- 顶部服务器标签只做按连接聚合展示,内部终端标签负责表达具体哪一个终端仍在运行。
- 方案设计时预估会在 `WorkspaceView.vue` 接入运行态,但最终为了覆盖文件管理器等直接调用 `terminalManager.sendData()` 的链路,将输入跟踪统一收口到了 `useSshTerminal.ts`