packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
侧栏工作区面板,在运行中任务与全部对话之间切换,统一为一张可自由排序的卡片列表,每张卡片可置顶、重命名、复制 ID、分叉、停止与归档。
Workspace overview for DeepSeek Harness — one panel that shows what is running right now, and falls back to all conversations when nothing is.
中文说明 · English
侧边栏多一个入口,主面板按工作区分组展示会话:
状态 · 侧栏按钮 · 面板内容 有会话在运行 · 进行中 · 只列正在运行的会话,卡片带脉冲状态点 没有会话在运行 · 对话总览 · 列出全部可见会话,按更新时间倒序
两种模式都会自动排除:已归档会话、空白草稿、子代理会话。行内不显示目录路径。
鼠标移到卡片上,右上角浮出操作条:
操作 · 说明 置顶 · 提到最前(只影响本面板,记在 cookie + localStorage)。置顶后卡片左侧出现品牌色竖条、边框同色、图钉变实心且按钮保持高亮 —— 自动排序下只作标记,切到「固定」才会排到最前 重命名 · 卡片内就地编辑,Enter 保存 / Esc 取消 复制 ID · 复制会话 ID 到剪贴板 分叉 · 从当前点创建分支并跳过去 停止运行 · 中断当前轮次(仅运行中的卡片出现,需二次确认) 归档 · 从列表移除(需二次确认)
点击卡片空白处仍然是打开该会话。
设置 → 进行中/对话总览 里的「卡片按钮」可以逐项开关操作条上的按钮:置顶 / 重命名 / 复制 ID / 分叉 / 归档。默认全开,改完立即生效。
配置决定。
dsh_wso_card_actions + localStoragedsh.workspace-ranswork.cardActions(逗号分隔的动作名,如 pin,rename,copy)。
按钮不会让老配置失效。
面板是一整张扁平列表,没有工作区分组标题,所以卡片可以拖到任意位置 —— 不限于 原来那张卡所在的组,也不会改变会话的归属工作区:
dsh_wso_order + localStoragedsh.workspace-ranswork.order),刷新后保留。
取消置顶。拖动置顶和「置顶」按钮写的是同一份置顶集合(cookie dsh_wso_pinned + localStorage dsh.workspace-ranswork.pinned),不会出现两套状态。
让位到目标那一格,其余卡片平滑滑过去(虚线空位跟着落点走)。
不会让旁边的卡先乱跳。
位置 —— 所以不会出现「位置错一下又回来」的来回闪动。
发(不会在原地闪)。让位动画只在顺序真的变了时触发,与渲染无关。
点击还是拖动?规则是 5 像素:
松手也不会打开会话;
click事件(200ms),避免一拖就误开。
键盘行为不变:卡片获得焦点后按 Enter / 空格仍然是打开会话。
prefers-reduced-motion: reduce 的用户不播放让位动画(位置直接到位)。
默认是「自动」:置顶的卡片排在最前,其余卡片按活跃度(最近更新时间)从新到旧铺成一条列表:
updatedAt 倒序 —— 跨工作区一起比,不再按工作区聚块;选「固定」则忽略活跃度:置顶在前,其余按你自己拖出来的顺序排列。
在哪设置:设置 → 进行中/对话总览,单选「自动 / 固定」,改完立即生效(写入 cookie + localStorage,双保险)。切换模式会清掉拖出来的顺序(否则「固定」不生效),但不会清掉置顶。
老用户升级:如果你以前手动拖过顺序(存在侧栏面板顺序记录),首次升级会自动落成 「固定」,顺序原样不动;面板底部会出现一次提示条,点「去设置」可直接跳到设置页。 不想再看到它,点掉即可 —— 提示不常驻、不占位。
关于「实时」:会话流式输出时 updatedAt 会毫秒级抖动。如果拿它当排序依据,卡片会 一行一行地跳。所以自动模式只在挂载、运行态翻转、手动刷新这三个时机重算列表顺序, 期间活跃度的毫秒级变动不会触发重排。
卡片底色与模糊直接消费 dsh-glass-ranswork(自定义主题)写在 body 上的 --dsh-glass-panel-light/dark、--dsh-glass-blur、--dsh-glass-saturate。 没装主题时自动回退到 DSH 原生主题令牌,观感与内置面板一致。
全部读取 Harness 已有的客户端快照(useWorkspaces / useSessions 标准 props)与客户端服务 (uiWorkspace、sessions)。宿主半侧是空实现:不新增路由、不轮询、不写任何文件。
# 推荐:从 npm 安装
pnpm add dsh-workspace-ranswork请走 npm。 npm 安装的插件会被插件市场识别为可更新来源,新版本会出现在 插件市场的「可更新」列表里;从 URL / Release 附件安装的包在 registry 里没有身份, 市场只会如实报告“无更新”,等于每升一版都要你手动重装。
# 指定版本
pnpm add dsh-workspace-ranswork@0.4.3
# 不想用 npm 时(能装,但没有更新提醒)
pnpm add https://github.com/rans725/dsh-workspace-ranswork/archive/refs/tags/v0.4.3.tar.gz
# 本地开发时
pnpm add link:/path/to/dsh-workspace-ranswork然后在 Harness 插件管理器里启用该 bundle,刷新 Web UI。
A sidebar entry that opens a workspace-grouped panel:
Archived sessions, blank drafts and subagent sessions are always excluded.
Hover a card to reveal an action strip: pin (this panel only), rename, copy session id, fork, stop (running cards only) and archive. Pinning marks the card visibly — brand accent bar on the left, matching border, a filled pin badge, and a highlighted pin button. Under Auto order pinning only marks the card; switch to Fixed to actually move it to the top. Destructive actions ask for confirmation. Clicking the card body still opens the session.
The Card buttons section of Settings → Running / Conversations toggles each button of the action strip on or off: pin / rename / copy id / fork / archive. All are on by default and changes apply immediately.
empty (an empty strip looks like a broken plugin).
dsh_wso_card_actions + localStoragedsh.workspace-ranswork.cardActions as a comma-separated list of action names (e.g. pin,rename,copy).
adding or removing buttons later never invalidates an old config.
Besides the pin button, you can drag a card to the position you want inside its group:
session's workspace.
card to a non-first position unpins it. Drag-to-pin and the pin button share the same pinned set (cookie dsh_wso_pinned + localStorage dsh.workspace-ranswork.pinned) — there is only ever one source of truth.