packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
给 DeepSeek Harness Web 加一个自由分屏——开一个分屏视图放在旁边,同时盯住两个、三个甚至四个会话;每个窗格渲染的是那个会话真正的对话,连输入框都能直接用。

conversation.content 槽位,流式输出、工具调用、附件、输入框的行为与正常视图完全一致。cron-jobs;client.js 里的 SCHEDULED_WORKSPACE 可改)。localStorage,刷新后恢复。
插件是一个带 loader patch(cordis.patch.yml)的 bundle,和普通 DSH 插件一样安装:
# 预构建包(推荐,免 allowBuilds 构建授权)
dsh plugin --profile web add https://github.com/yuloop/dsh-web-split/releases/latest/download/dsh-web-split.tgz
# 直接从 GitHub 源码装
dsh plugin --profile web add github:yuloop/dsh-web-split
# 或者从本地目录装
dsh plugin --profile web add /path/to/dsh-web-split
装完重启 DSH,然后刷新页面,侧栏就会出现「分屏」入口。
cordis.patch.yml用包名dsh-web-split指向index.js。如果你是手工把文件拷进本地插件目录(而不是用安装器),把 patch 里的name改成index.js的绝对路径——开发机上就是这么跑的。
在窗格里点击文件链接或图片会弹错误框:
无法打开文件 / sidebarRight: no session surface is mounted
原因:文件链接是通过右侧栏的 sidebarRight.require() 打开的,而它只认「当前显示在会话列上的那个会话」。全局的 main 面板不带会话上下文,所以这个调用会抛错。窗格本身照常渲染、滚动、输入;只有文件/图片预览受影响——想看文件就点侧栏那个会话回到普通视图,再点链接。
这条限制也正是本版本采用「面板式」的原因:还有一个「浮层式」变体(把网格浮在会话列上,让右侧栏继续工作),它换掉了网格所在的位置,发布时还不稳定,因此不包含在 1.0.0 里。
dsh-client-ui-layout、-session、-conversation、dsh-client-locale、dsh-api-session-controller)。0.1.1-rc.2。client.js Web 端全部实现(面板、窗格树、拖放、i18n、CSS)
index.js 宿主侧:只声明 bundle,不注册别的
cordis.patch.yml loader patch 片段(insert id: web-split)
package.json manifest,含 dsh.client 声明
docs/DEVLOG.md 开发日志,逐日记录(中文)
screenshots/ README 用的截图
MIT,见 LICENSE。