🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

drscrewdriver/dsh-arrowkey-nav

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
✓ 可直接安装

DSH Web GUI 的方向键导航。无需离开键盘即可切换会话:

自动检查通过:npm 包已发布且 engines 声明满足基线;该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/21 · 已提供中文文档
综合分
29.8
GitHub 分
29.8
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-arrowkey-nav
npm 包 dsh-arrowkey-nav 已校验归属本仓库,走 npm 安装最省事
信任档位:已验证本站已于 1 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · other
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 5 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/24
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/22(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-arrowkey-nav @ 0.1.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/22 15:34:09

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-arrowkey-nav

DSH Web GUI 的方向键导航。无需离开键盘即可切换会话:

| 按键 | 操作 | 范围 |
| --- | --- | --- |
| ↑ | 上一个会话 | 当前工作区内 |
| ↓ | 下一个会话 | 当前工作区内 |
| ← | 上一个工作区 | 所有工作区 |
| → | 下一个工作区 | 所有工作区 |

↑/↓ 在工作区两端循环,绝不会跨越到相邻工作区;跨越是 ←/→ 的职责。切换后,目标行会滚动到可见区域,并且如果按键开始时焦点在输入框,焦点会返回输入框,因此可以立即继续输入。

安装

dsh plugin --profile web add E:\test\rewrite-agently\dsh-arrowkey-nav

之后重启该 profile —— 正在运行的实例不会热加载新的 bundle 层。然后重新加载 http://127.0.0.1:3080。

确认该行已出现在组合后的配置树中:

dsh web --dump-config | Select-String dsh-arrowkey-nav

移除

dsh plugin --profile web remove dsh-arrowkey-nav

重启后,按键行为与安装前完全一致:监听器由插件的 Cordis effect 持有,并随之移除。

工作原理

身份来自两个客户端控制器,绝不来自 DOM:行不携带任何 data-*,也没有 id,因此无法询问某一行是哪个会话。

- ctx.sessions.open(id) 执行每一次切换。详情面板无需处理:当前会话变化时,已发布的框架会自动关闭它。
- ctx.workspaces.list.getSnapshot() 提供工作区顺序 —— 即 ←/→ 遍历的顺序,也是每个工作区成员列表的来源。

哪个会话是“下一个”遵循侧边栏绘制的顺序,而不是控制器的成员顺序。两者恰好在你会注意到的情况下不一致:侧边栏会将自己持久化的顺序与成员关系进行协调,并将最近活跃的会话提升到顶部,因此一个旧会话在你打开它的那一刻就会跳到第一行。因此,插件从侧边栏读取渲染后的行顺序,并在侧边栏未挂载(折叠的侧栏)时回退到控制器顺序。只有当某个分区的行涵盖了控制器为该工作区报告的所有会话时,该分区才会被接受;有歧义或不匹配的分区会回退,而不是猜测。

当事件已经属于其他人时,按键不会被处理:任何修饰键、IME 组合输入、已在上游处理的事件,或焦点位于对话框、菜单或其他可编辑字段(侧边栏的会话搜索、重命名框)内。监听器在捕获阶段注册,但仅在实际导航时调用 preventDefault()。

输入框是唯一有条件的情况。空输入框会让出它的方向键 —— 没有光标需要移动,因此该按键是空闲的 —— 这正是你在发送消息后、输入框仍保持焦点时能够立即导航的原因。一旦输入框持有草稿,它的方向键就重新属于光标,
因此编辑提示词永远不会被劫持。

浏览器端没有 React 组件、没有 CSS,也没有平台模块请求,并且该包没有运行时依赖——lib/client.js 由 scripts/build-client.mjs 生成,符合页面所期望的模块加载器契约。

开发

npm run typecheck   # 两个编译器面
npm test            # 解析器单元测试 + 构建产物冒烟测试
npm run build       # 编辑 src/client 后重新生成 lib/client.js

npm run build 需要 typescript;如果该包中未安装它,请将 DSH_TYPESCRIPT 指向一个现有的 typescript 模块目录。

已知限制

- 折叠的工作区分组不会滚动。 其行未挂载,且 dsh 没有公开的展开分组方式,因此切换会发生,但目标行仍不可见。当前会话所在的工作区由 dsh 自身保持展开,因此 ↑/↓ 不受影响。
- 侧边栏折叠为窄栏时不会滚动,原因相同:树未挂载。切换仍会发生。
- “单一列表”模式没有工作区分区,但 ←/→ 仍会按控制器的工作区顺序移动,因此列表看起来可能在分区之间跳跃。
- 滚动是尽力而为。 任何查找失败都会被吞掉:选择已经移动,缺失的行绝不能变成错误的行。
- 固定于 dsh 0.1.2-rc.1。 sessions 和 workspaces 快照字段尚未稳定。如果 dsh 升级改变了它们,src/client/navigate.ts 和 src/client/apply.ts 是仅需重新审视的文件;某个服务消失会让插件保持挂起,而不是让页面失败。

版本兼容性

此分支(compat/0.1.1)面向 DSH ≤ 0.1.1-rc.2(dsh-client-runtime 代际)。

- package.json → dsh.client.inject 为空:0.1.1 早于 dsh-api-session-controller,声明此代际上不存在的 bundle 可能会破坏客户端组合。服务仅通过 Cordis 注入(sessions、workspaces)解析。
- uiWorkspace 未被注入且是可选的:在没有它的构建上,空工作区回退会被跳过(blank-first / newest-first 仍然有效)。
- 如果任一快照服务在运行时缺失,插件会保持挂载但不起作用,并且每次按下方向键都会记录 services missing——它从不抛出异常。
- 在 0.1.1-rc.2 上的实机验证尚待进行;首次使用前,请在 Web 控制台中运行 diagnose-console.js 并检查 __dshArrowkeyNav.snapshot()。

对于 DSH 0.1.5-rc.x,请参见 compat/0.1.5-rc 分支。

布局

src/index.ts                node 端:加载器入口,不安装任何内容
src/client/constants.ts     拥有的按键、读取的 DOM 锚点
src/client/navigate.ts      窄腰:快照类型 + 方向键解析器
src/client/apply.ts         执行:open / blank-first / connectWorkspace
src/client/dom.ts           只读 DOM:滚动容器、分区绑定、滚动、聚焦
src/client/session-nav.ts   按键守卫 + 一次方向键按下端到端
src/client/index.ts         Cordis 入口:注入 + 一个捕获监听器
scripts/build-client.mjs    生成 lib/client.js
tests/                      解析器单元测试 + 打包冒烟测试

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群