dsh-tui 验收清单(Release 前,真实 Windows Terminal 执行)

August 14, 2026 · View on GitHub

目的:你在真实终端把关键流程过一遍,确认「暂定稳定」后即可发布 (推送 → 普通合 main → bump → npm publish,见 docs/release-runbook.md)。 前置:DHS host 在本机 http://127.0.0.1:3080 运行、有可用模型 key。 每项通过后打 [x]。异常即停止并回报,不回滚已共享历史。

0. 启动

  1. 在本仓库根目录执行(任选其一,若全局安装则 dsh-tui):
    node bin/tui.js
    
  2. 预期:顶栏 logo banner + HUD(模型/上下文/token/成本)出现,输入框可输入。
  • banner 与 HUD 正常
  • 输入框闪烁光标,可输入

1. 对话与流式渲染

  1. 发送一条含 Markdown 代码块/列表/加粗的长回复请求,观察流式打字效果与回车后落定排版。
  2. 连发数条产生较长历史,确认历史长时输入框与 HUD 仍稳定(不顶飞、不闪跳)。
  • 流式逐字/按批渲染不卡死
  • 长历史下 follow-tail:默认跟随,PgUp/PgDn 翻页,End 回底
  • 长历史下输入框/HUD 行数稳定

2. 输入与补全(Claude Code / vim 心智)

  1. i / 直接输入进入 insert;ESC→normal(保留草稿)、再 ESC→清空整框。
  2. 输入 @ 后目录下钻文件名,Tab/↑↓ 轮换,Enter 插入 @"path"(含空格自动引号)。
  3. 输入 / 命中命令(如 /status)出现命令面板,Tab/Enter 选择执行。
  4. 输入 ! 开头非空字符串后 Enter,走 shell 命令路径(receive「运行 shell 命令」)。
  5. insert 模式按 / 召回最近发的消息。
  • @ 文件补全(目录下钻 + 选择 + 插入)
  • / 命令面板与执行
  • ! shell 路径
  • insert 时 ↑/↓ 历史召回
  • 双击 ESC / ESC+ESC 清空行为正确

3. 审批与问询(本轮重点改动)

  1. 触发一个非白名单工具(如 run_code 试读高开销操作),确认审批卡片弹出:
    • y = 允许一次;Y = 本会话允许;n = 拒绝。
    • 重点验证新「模态锁定」:审批挂起时打字不会进输入框ESC/Ctrl+C 可退出/中断。
    • acceptEdits 档下编辑工具自动放行;bypass 默认不可进入,只有配置 allowBypassPermissions: true 后才全放行。
  2. 让 host 发一次 question/requested(提问型交互),确认出现选择面板;↑/↓ 选择、Enter 逐题确认,Esc/n 安全拒绝,按键不漏进输入框。
  • y / Y / n 三态可用
  • 审批期打字不进输入框(模态锁定,a495a3c
  • acceptEdits 自动放行;bypass 默认隐藏、显式开启后才可用
  • 问询面板可选择/拒绝,回合不阻塞且按键不漏入输入框

4. 快捷键与稳定性

  1. Ctrl+C:运行中→中断;空闲→800ms 内双按退出。
  2. Ctrl+L 清屏(不清历史)。
  3. /status 显示会话 ID/模型/上下文/模式。
  4. ? 帮助面板开关;Esc 关。
  5. Ctrl+O 工具卡三态(collapsed/expanded/hidden)循环。
  • Ctrl+C 中断与双按退出
  • Ctrl+L 清屏
  • /status、? 帮助
  • Ctrl+O 工具卡

5. 优雅退出

  1. 正常退出后确认:无残留临时文件(仓库根不应新增 six-points.md 等烟测产物);进程干净退出无栈错。
  • 无残留文件、无异常退出

判定

  • 全部 [x] → 判定「暂定稳定」,可执行 docs/release-runbook.md 发布流程。
  • 任一失败 → 记下可复现步骤,回报后我修复(独立 commit,可单独 revert),复测通过再发布。