返回目录
界面增强 插件

dsh-esc-stop

142475/dsh-esc-stop

DeepSeek Harness web GUI plugin: press Esc to stop conversation generation (same as the stop button).

Stars
1
Forks
0
Issues
0
更新
今天

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:142475/dsh-esc-stop

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

dsh-esc-stop

DeepSeek Harness Web GUI 插件:连续按两次 Esc 停止当前对话的生成——效果与点击 GUI 停止按钮完全一致。

无额外 UI、无需配置、无 host 逻辑。浏览器端捕获 Escape 键,通过 GUI 停止按钮同一条 RPC(session.cancel,经共享的 connection 服务)取消当前回合。两次按键间隔需在 400ms 内,可避免误触。

功能

  • 在会话内任意位置连按两次 Esc(400ms 内)→ 停止正在运行的回合。
  • 与内置停止按钮等价:待处理的 inbox 消息保留,之后按 FIFO 恢复。
  • 按键重复安全(忽略 e.repeat),单次按住不会触发,必须按两次
  • 长按或单击 Esc 不会触发;两次按键间隔超过 400ms 则重新计时。

安装

将包加入 web profile 并注册 bundle:

# 在 profile 目录(如 ~/.dsh/profiles/web)下执行
dsh plugin --profile web add git+https://github.com/142475/dsh-esc-stop.git

然后在 profile 的 package.jsondsh.profile.bundles 数组中加入 "dsh-esc-stop"

{
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-esc-stop"
      ]
    }
  }
}

重启 dsh web 即可生效,无需进一步配置。

工作原理

职责
lib/client.js 浏览器端:在会话头部操作区注册隐藏项,安装 window keydown 监听,400ms 内连按两次 Escape 时调用 connection.api.sessions.cancel({ sessionId })
lib/index.js Node 端:最小 cordis 行,保证 bundle patch 挂载;全部行为在客户端实现。

session.cancel RPC 与 GUI 停止按钮调用的是同一条,因此行为(包括 inbox 保留、子代理 agent-busy 语义)完全一致。

注意

  • 仅 web profile(dsh web);tui/headless profile 有自己的停止键。
  • 会话打开时监听生效;无会话的首屏(hero)无可停止内容。
  • 两次 Esc 间隔超过 400ms 则重新计时,单击不会触发。

License

MIT

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类界面增强
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: web-ui。