packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
把侧边栏「设置」从底部账号菜单移成顶部独立一行,隐藏「新会话」按钮,并隐藏侧边栏底部:账号菜单、底部设置单元与插件运行时条。Cmd/Ctrl+N 仍可新建会话,设置仍可打开。
把 DeepSeek Harness 侧边栏的「设置」移到顶部,并清空侧边栏底部。
dsh 0.2.1 把 Settings 折进了底部账号入口:未登录时显示「⋯ 更多」,点开是二级菜单 (设置 / 意见反馈 / 登录)。本插件按个人偏好改回单层入口,并把底部清干净。
改造前后的侧边栏顶部:
之前 之后
───────────── ─────────────
品牌行 品牌行
+ 新会话 ⚙ 设置
Cordis Plugin · N running 全局面板
对话列表 对话列表
…
⋯ 更多 ← 底部 (底部完全空白)
session.new 动作,
Cmd/Ctrl+N 与命令面板照常可用。侧边栏收起成图标条时,设置行自动退化为 36×36 的方形图标按钮,与其它轨道按钮一致。
settings.launcher 是 single 插槽,优先级最低的渲染。官方账号 launcher 在
优先级 0,本插件注册 priority: -1 顶掉它,于是底部单元里渲染的是我们的行。_newSession 节点之后(该节点虽然
被 CSS 隐藏,但仍在 DOM 中,因此可以作为插入锚点)。被搬动的节点始终由 React 持有
——它是本插件 span 的子节点,而 React 会保持这个 span 挂载——所以卸载时能干净归位。MutationObserver 在宿主重渲染(会把行搬回 span)和布局切换(宽栏 ⇄ 图标条
会重建列的子节点)之后重新贴位。所有资源都通过 ctx.effect 释放。禁用插件即恢复原状,无需任何修复步骤。
dsh plugin --profile web add github:SOVLOOKUP/dsh-settings-footer
或本地开发时直接 link:
cd ~/.dsh/profiles/web
dsh plugin --profile web add /path/to/dsh-settings-footer
装完刷新页面即可。
源码是 TypeScript,产物在 lib/(已提交,宿主直接加载它)。
pnpm install
pnpm build # tsc → lib/client.js + lib/index.js
pnpm typecheck # 仅检查,不产出
客户端产物必须是经典脚本:宿主通过 window.__ModuleLoader__.load({ id, factory })
加载它,所以 src/client.ts 不含 import / export,宿主提供的模块(React、primitives、
插件上下文)都经 factory(require) 注入,类型声明在 src/types/dsh.d.ts。
src/
client.ts 浏览器半区:样式注入、槽位注册、DOM 搬移
index.ts 宿主半区:空实现
types/dsh.d.ts 宿主侧接口的环境类型声明
locale/ zh / en 的 meta 文案(插件市场面板展示用)
lib/ 构建产物(提交进仓库)
cordis.patch.yml bundle patch:把宿主半区插进 profile 的插件 roster
在插件市场面板禁用,或从 profile 移除。账号菜单(头像 / 登录 / 用量 / 充值)会重新 出现在底部——它一直没有消失,只是被 CSS 隐藏;被搬走的设置行会归位到原来的 React span 里。