packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
侧边栏「工作区」上方多一个可折叠的「最近任务」文件夹:最近更新的会话一目了然,可置顶常用会话(不参与时间排序),运行中的任务带转圈标记,行内菜单支持重命名、在新会话里接着聊与归档。
中文 · English
A collapsible Recent tasks folder at the top of the sidebar in DeepSeek Harness: the tasks you touched last, one click away — no scrolling the workspace tree to find "that conversation from an hour ago".
⋯ button, or right-click it:Item · What it does 置顶 / 取消置顶 · Pin or unpin this task 重命名 · Inline edit, Enter to commit, Esc to cancel 复制会话 ID · Copy the session id 在新会话里接着聊 · Fork the session and switch to the fork 归档 · Archive the session (restorable from Settings → 归档会话)
The menu closes on Esc, on an outside click, and — when opened from ⋯ — as soon as the pointer leaves it.
prefers-reduced-motion.History count (1–100), the reveal-on-click switch, and 恢复默认.
--dsw-alias-* theme tokens and the app's own blue (#7aaaff, the send-button accent) are used, so it follows light/dark and custom skins. Chinese/English UI follows the app language.dsh plugin --profile desktop add github:fishcg/dsh-recent-tasksThen reload the app window (Cmd+R on macOS). The folder shows up above 工作区, and the plugin appears in Settings → 插件 with its icon, title and description.
To remove it:
dsh plugin --profile desktop remove @fishcg/dsh-recent-tasksKey · Default · Meaning limit · 5 · How many tasks the folder lists (1–100) reveal · true · Also expand + scroll to the task in the workspace tree when clicked
Stored in localStorage as dsh.recent-tasks.settings.v1; pins live in dsh.recent-tasks.pins.v1.
The sidebar's workspace area is a single-occupancy slot owned by the shipped workspace browser, and it exposes no seat for extra groups. Rather than shadow that UI (which would break every plugin that plugs into it), this plugin:
sidebar.footer.action list slot,div as the first child of the sidebar's content column ([class*="_regionArea"]) and renders the folder into it through ReactDOM.createPortal — so the folder lives inside the real flex column, above 工作区, and expands inline,useSessions snapshot and acts through the public client services (uiWorkspace.openSession / forkSession / archiveSession, sessions.retain(...).rename()).No DOM is written outside that container, no Harness client package is imported, and every registration goes through ctx.slots.inject(...) so it is torn down cleanly.
Plain JavaScript, no build step — the Client half is loaded as an ES module by DSH's module loader.
client.js the whole UI (folder, rows, menu, settings page, CSS, dictionaries)
index.js Host half, intentionally empty: there is nothing to serve
cordis.patch.yml inserts the `recent-tasks` row into the profile
icon.svg plugin icon (also rendered to assets/icon-180.png)
locale/{zh,en}.json plugin-card title / description
docs/ README screenshotsEdit client.js, then Cmd+R in the app to reload the client bundle.
MIT © 2026 fishcg
侧边栏顶部多一个可折叠的 最近任务 文件夹:最近改动过的任务排在最前,点一下就回到那个会话,不用再在工作区列表里翻。
⋯(右键同样可以),菜单项为 置顶/取消置顶、重命名(行内编辑,Enter 提交 / Esc 取消)、复制会话 ID、在新会话里接着聊(分叉并切换过去)、归档(可在 设置 → 归档会话 里恢复)。--dsw-alias-* 主题变量和应用自己的蓝色(#7aaaff),浅色/深色/第三方皮肤都会跟着变;中英文跟随应用语言。安装:
dsh plugin --profile desktop add github:fishcg/dsh-recent-tasks然后在窗口里按 Cmd+R 重新加载。卸载:dsh plugin --profile desktop remove @fishcg/dsh-recent-tasks。