deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
AIFireForAll/dsh-enter-lock
DeepSeek Harness plugin that locks the web chat composer Enter-send. Toggle with a lock button or Ctrl+Shift+K to prevent accidental sends while typing or editing long prompts; unlock to send. IME-safe and per-session.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:AIFireForAll/dsh-enter-lock
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
中文 | English
A DeepSeek Harness plugin that adds an Enter-send lock to the web chat composer.
DeepSeek Harness Web 插件:给聊天输入框增加一个 Enter 发送锁。
DeepSeek Harness Web 的输入框默认在按下 Enter 时立即发送消息。以下场景很容易误触:
该插件补上了“发送前先解锁”这一层保护。
conversation.input.right 槽位,显示在输入框右下角、发送按钮附近;锁定状态为醒目的红色填充。Ctrl+Shift+K(Windows / Linux)/ Cmd+Shift+K(macOS)锁定/解锁,焦点需位于输入框卡片内。@ 文件/Session 候选菜单时,按 Enter 仍可正常确认选中的文件/会话——锁只拦截真正会发送的 Enter,不干扰候选选择。| 状态 | 锁图标样式 | 含义 |
|---|---|---|
| 解锁(普通状态) | 灰色描边图标 | 当前 Enter 可正常发送消息 |
| 锁定(关锁状态) | 红色填充 + 白色锁图标 | 当前 Enter 无法发送消息 |
鼠标悬浮到锁图标上时,tooltip 会显示当前状态的提示:
已解锁,当前 Enter 可正常发送消息已锁定,当前 Enter 无法发送消息锁定状态下,以下键盘发送行为都会被阻止:
Enter 发送;Ctrl+Enter / Cmd+Enter 发送;同时保留这些正常行为:
Shift+Enter 仍然插入换行;@ 文件/Session 候选菜单(at file)、/ 命令菜单打开时,Enter 确认候选不受影响;Ctrl+Shift+KCmd+Shift+K仅在焦点位于聊天输入框卡片内时生效:处理器需要从当前焦点元素所在的输入框卡片解析会话 id,焦点在聊天区或侧边栏时不会切换。IME 组合期间不触发,长按的自动重复(key repeat)被忽略。
0.1.0-rc.6 或更新版本;web profile;dsh plugin --profile web add github:AIFireForAll/dsh-enter-lock
也可以显式使用 Git URL:
dsh plugin --profile web add https://github.com/AIFireForAll/dsh-enter-lock.git
建议锁定到某个 commit 以保证可重复安装:
dsh plugin --profile web add 'github:AIFireForAll/dsh-enter-lock#<commit-sha>'
git clone https://github.com/AIFireForAll/dsh-enter-lock.git
dsh plugin --profile web add ./dsh-enter-lock
dsh --profile web --dump-config | grep dsh-enter-lock
应能看到类似输出:
# == dsh-enter-lock
- id: dsh-enter-lock
name: dsh-enter-lock
安装完成后重启 dsh web 并刷新页面。
启动 DeepSeek Harness Web:
dsh web
在聊天输入框右下角、模型选择器和发送按钮附近找到锁形按钮。
锁定 / 解锁方式:
Ctrl+Shift+K(Windows / Linux)或 Cmd+Shift+K(macOS),焦点需位于输入框卡片内。锁定状态下:
Enter:不发送。Ctrl+Enter / Cmd+Enter:不发送。Shift+Enter:仍然插入换行。@ 文件/Session 候选菜单(at file)、/ 命令菜单打开时:Enter 确认候选,不受影响。锁状态按会话独立保存,刷新页面或重启后自动清除。
插件默认零配置,不需要填写 API Key、设置项或 settings.yaml。锁状态仅保存在浏览器内存中。
settings.yaml,不发起网络请求。conversation.input.right 槽位,不替换官方 composer。确认插件已挂载:
dsh --profile web --dump-config | grep dsh-enter-lock
重启 dsh web 并强制刷新页面(Ctrl+F5)。
确认当前使用的是 web profile。
Ctrl+Shift+K(macOS 为 Cmd+Shift+K):旧版本的 Ctrl+Alt+L 组合在 Windows 输入法环境下会被系统消费,已不再使用。0.4.0 及以上(0.3.x 中快捷键被刻意禁用)。Shift+Enter 是换行,不是发送。dsh plugin --profile web remove dsh-enter-lock
安装本仓库不需要构建:lib/ 已提交预构建产物,且没有 prepare / postinstall 脚本。
如需修改源码后重新生成构建产物:
npm run build # 生成 lib/index.js 与 lib/client.js
npm run check # 结构检查
dsh-enter-lock/
├── package.json # dsh.bundle + dsh.client 插件声明
├── cordis.patch.yml # profile bundle patch
├── src/
│ ├── index.js # Host 半部(无依赖 no-op)
│ └── client.js # Web 半部:按钮与 Enter 拦截
├── lib/ # 构建产物
├── scripts/
│ ├── build.mjs
│ └── check.mjs
├── README.md
├── README.en.md
└── LICENSE
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。