DeepSeek Harness 插件

dsh-side-tasks

Codex-style side tasks for the DSH Web GUI: each side task is a branch of the current conversation (forked session with full inherited context) shown as a sidebar tab in dsh-better-sidebar, with(英文原文)

跳到安装方式

来源信息

GitHub 仓库
himhhh/dsh-side-tasks
最近更新
2026年8月19日
分类
记忆
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/himhhh/dsh-side-tasks
插件名:dsh-side-tasks
作者:himhhh

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-side-tasks(侧边任务)

English | 中文

为 DSH Web GUI 制作的 Codex 式「侧边任务」插件。每个侧边任务会把当前会话 fork 成一个分支——新会话 id,完整继承项目上下文(cwd、模型、截至最后完成 回合的对话历史)——并以聊天 Tab 的形式显示在 dsh-better-sidebar 的右侧 边栏里。你可以在侧边继续与分支对话,它在后台独立执行、不阻塞主会话。 侧边任务是临时的:关闭时会确认,并永久删除其在 DSH 存储中的会话。

能力

  • 当前会话的分支sessions.fork:新 sessionId + 完整继承项目上下文

(点击时刻之前)

  • 聊天 Tab — 消息历史(含继承的上下文)+ 输入发送(回车发送、Shift+回车

换行)+ 实时轮询更新

  • 右侧边栏 Tab — 通过 ctx.betterSidebar.registerTab 注册(必需

dsh-better-sidebar);+ 菜单或 tab 栏打开;badge 显示运行中分支数;tab 的 ✕ 关闭并确认

  • 单一侧边任务 — 新建自动替换旧的(账本只保留当前一个)
  • 实时状态 — 待命 / 进行中 / 已完成 / 失败 / 已取消(Host 轮询 + SSE 推送)
  • 取消 运行中的分支回合(幂等)
  • 关闭确认 — ✕ 弹出「此侧边任务将不保留,是否关闭?」;确认后取消、移除

分支,并永久删除其在 DSH SQLite 中的会话(事件级联清理)

  • 清理历史 — 一键删除历史遗留的侧边任务会话

环境要求

  • DSH 0.1.0-rc.6+,Node >= 22.5node:sqlite 用于关闭时永久删除;Node

22.0–22.4 上插件仍可运行,但删除功能降级为不删除)

  • dsh-better-sidebar >= 0.12.0(必装) — 侧边任务以右侧边栏 Tab 形式提供;

未安装时插件不加载并在控制台给出安装提示(无 DOM 兜底模式)

文件

dsh-side-tasks/
├── package.json        # 双面 bundle 声明(Host + ./client)
├── cordis.patch.yml    # 一行 insert 行(web profile 装配)
├── src/
│   ├── index.js        # Host 半边:BranchService(fork/prompt/cancel/close
│   │                   #   + history 代理 + poll + SSE + SQLite 删除)
│   └── client.js       # 浏览器半边:better-sidebar Tab + 聊天面板
├── README.md
└── README.zh.md

安装

# 在插件目录(本仓库根)执行
dsh plugin --profile web add link:/path/to/dsh-side-tasks

# 验证装配行
dsh --profile web --dump-config | grep -i side-tasks

# 重启 web GUI(Host 代码变更需要;页面会中断一次)
# 然后刷新 http://127.0.0.1:3080

卸载:

dsh plugin --profile web remove dsh-side-tasks

验证清单

  • [ ] better-sidebar 的 + 菜单出现「侧边任务」Tab
  • [ ] 打开后 fork 当前会话(历史反映继承的上下文)
  • [ ] 发送消息在后台执行;回复经轮询刷出
  • [ ] 分支运行时主会话仍可正常对话(并行)
  • [ ] Tab badge 显示运行状态
  • [ ] ✕ 弹出「此侧边任务将不保留,是否关闭?」;确认后分支与其 DSH 会话被移除

设计要点

  • Host 注入 apiProxy / webServer / systemPrompt;分支用

sessions.fork({ sessionId }) 创建(继承 cwd/模型/血缘/种子历史), sessions.prompt(mode: 'queue') 入队聊天消息。

  • 状态对账:轮询 sessions.list,并在最后一次 prompt 之后确认 turn/end

(对齐 task-board 的结算逻辑)。

  • 路由:GET /api/side-tasks/stateGET /api/side-tasks/history

POST /api/side-tasks/action(fork / prompt / cancel / close / purge)、 GET /api/side-tasks/events(SSE + 心跳),受 loopback/同源栅栏保护; action 联合不含命令/路径/shell 字段。

  • Client 为纯 DOM(无 React),仅 better-sidebar Tab 使用薄 React 壳;样式

全部走 DSH --dsw-* 主题变量。聊天消息每 2s 轮询 history 路由(按 seq 合并)。

ctx.get('betterSidebar') 可选探测(非 inject),带短重试阶梯以等待 454KB bundle;注册包在 ctx.effect 内(HMR 安全卸载);tab 关闭经 DOM 捕获层 拦截,取消确认时保持 tab 打开。

  • 永久删除:平台没有会话删除 API,因此关闭时插件直接从 DSH SQLite 存储

~/.dsh-cc/sessions.sqlite,可用 dbPath 配置)删除会话行——eventsON DELETE CASCADE 级联,搜索索引自动对账。只删除插件自己 fork 的 会话。运行中的 DSH 进程持有内存缓存,已删分支会在下次 DSH 重启后从 会话列表消失。

  • node:sqlite 惰性加载:旧版 Node 22 上插件仍能启动(删除功能降级而非崩溃)。

License

MIT