像官方「工作区」一样融入左侧栏的「最近会话」分区:收藏、运行中、等待你的回应、完成未读、最近活跃一屏直达;每个会话行 ☆ 一键收藏,可收起到一行、支持就地搜索。它会接管侧栏外壳(禁用官方侧栏包)并在其中原样渲染官方工作区/会话浏览区;其 recent-sessions 面板 id 与 huangxp12/whybebabo 冲突,不要同装。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:tianxiaz/dsh-recent-sessions
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
中文 · English
像官方「工作区」一样长在左侧栏里的「最近会话」—— 收藏、运行中、等待你的回应、完成未读、最近活跃,一屏直达; 不用时一键收起到一行,标题右侧 🔍 还能就地搜索,每个会话行都有 ☆ 一点即收藏。
示意图:演示数据,非真实会话
收起态:整段只剩一行(36px),点标题随时展开,选择会被记住;工作区立即拿回全部高度
🌐 落地页 / 在线说明:https://tianxiaz.github.io/dsh-recent-sessions/
给 DeepSeek Harness 的左侧栏加一个「最近会话」分区。它和官方「工作区」共用同一套网格与交互(36px 分区标题 / 34px 分组行 / 32px 会话行 / 28px 溢出行),看起来就是官方侧边栏的一部分:不另开页面、不是悬浮面板,也不改变官方会话浏览区的任何行为。
顺手的地方:
- 每个会话行都带 ☆——包括官方的会话列表,悬停即可一键收藏 / 取消,不用打开会话、也不用拖拽;
- 整段可以收起到一行(不占工作区列表的高度,选择会被记住);
- 标题右侧的 🔍 直接把标题行变成输入框,命中文字高亮、
Enter打开第一条;↑/↓可在分区内键盘浏览; - 收藏里可以拖拽排序,悬停收藏行还会出现 ↑「移到最前」;
- 对某个分类手动展开或收起后,硬刷新也会保持你的选择;分区内的滚动位置也会记住;
- 黄点行直接写「待授权 / 待回答」,不用点进去才知道在等什么。
它解决什么问题:任务一多,「哪个在跑、哪个跑完了还没看、哪个在等我授权或回答、我常回访的是哪几个」就得在会话列表里翻半天。这个分区把 收藏 / 运行中 / 等待你的回应 / 完成未读 / 最近活跃 五类固定在最上面,配黄 / 蓝 / 绿状态点,一眼就知道下一步该点哪里;收藏可以点 ☆,也可以把会话行直接拖进「收藏」分组。
它以插件形式接管左侧栏外壳,因此这个分组就在工作区分组上方,而不是另开一个页面;官方会话浏览区(搜索、会话 … 菜单、拖拽排序、归档筛选、工作区增删改)原样保留、原样工作。
视觉与交互细节
- 分区标题与「工作区」同规格:高 36px、14px/20、
label-tertiary、左侧 4px 内边距,标题完整显示不截断;标题可点击,右侧三个 28×28 图标动作:搜索会话、收起/展开、在面板中打开。- 一键收起到一行:点标题(或「收起」)整段折叠成一行 36px,工作区列表立刻拿回全部高度;状态记在浏览器里,下次打开保持。
- 面板页不再占用左侧面板列表的一行(它与分区重复),需要时点标题右侧的 ⤢ 打开。
- 分区内搜索:点标题右侧的 🔍 直接把标题行变成输入框,按会话标题 / 工作区名筛选本分区里的会话;
Esc或 × 退出,Enter打开第一条,命中文字高亮。 - 分类与工作区分组行同规格:高 34px、16×20 图标槽、标题 14px/20;悬停时图标换成实心三角,点击折叠/展开;右侧显示 10px 数量。
- 默认展开规则:收藏永远默认收起(为空时右侧显示「拖入或点 ☆ 收藏」,非空时显示数量);有「等待你的回应 / 运行中 / 完成未读」时,这些分类默认展开、最近活跃默认收起;三类都没有时,最近活跃默认展开。
- 你的折叠选择会被记住:一旦手动展开/收起了某个分类,该选择写入
localStorage,硬刷新或重开页面后都会恢复(包括"收藏是展开的"这个状态)。
- 会话行与官方会话行同规格:高 32px、状态点占 16×20 槽、标题 14px/20、右侧 10px 相对时间;悬停时隐藏时间、浮出 ☆;当前打开的会话常驻选中底色。
- 溢出行沿用官方
展开其余 N 个会话 / 收起(28px、12px、label-tertiary)。 - 行间距 2px、分组间距 4px,与官方列表同一套节奏;分类之间与工作区之间用 1px 分隔线区隔。
收藏
三种方式:
- 会话行悬停时点
☆(官方会话行上的新增按钮); - 把会话行拖进「最近会话」分组(从下面官方列表直接拖上来即可);
- 点分区标题右侧的 ⤢ 打开面板页,在里面拖到「收藏」区,或拖到某条收藏上调整顺序。
收藏顺序即展示顺序,保存在本机浏览器(见「数据」)。
安装
插件市场(推荐):Plugins → Discover → Add index source,粘贴下面的索引地址,然后在卡片上点安装:
https://tianxiaz.github.io/dsh-recent-sessions/market/index.json
GitHub Pages 缓存约 10 分钟,发版后很快生效。若该地址在你所在网络不通,可换用 jsDelivr 镜像(分支缓存约 12 小时):
https://fastly.jsdelivr.net/gh/tianxiaz/dsh-recent-sessions@main/market/index.json
命令行:
dsh plugin --profile <你的 profile> add "git+https://github.com/tianxiaz/dsh-recent-sessions.git"
本地目录(开发/自用):
plugin_manager install_bundle <绝对路径>/dsh-recent-sessions
安装后硬刷新页面即可。
⚠️ 侧栏接管说明(重要)
DSH 左侧栏的两个关键位都是单占位槽,插件无法"在官方分组旁边插入一节":
| 槽 | 官方占用者 | 性质 |
|---|---|---|
sidebar |
@deepseek-ai/dsh-client-ui-sidebar 的 SidebarRoot |
整个左列外壳(品牌行、新会话、面板列表、页脚) |
sidebar.workspaces |
@deepseek-ai/dsh-client-ui-workspace 的 WorkspaceBrowser |
会话浏览区 |
所以本插件的做法是:接管外壳、复用会话区。
- bundle patch 里
- id: ui-sidebar+disabled: true,禁用官方外壳; - 本插件注册
sidebar占位,声明与官方同名的 8 个子槽(brand.mark/brand.name/toggle.badge/panellist/panellist.actions/workspaces/settings/footer.action),并把sidebar.workspaces原样渲染官方 WorkspaceBrowser; - 同时提供
shell.leading(macOS 侧栏完全收起时的"打开侧栏 / 新会话"两个窗口按钮),否则收起后无处点开。
这意味着:
- 品牌行、新会话按钮、面板图标列表、页脚由本插件渲染(几何与配色对齐官方,但不是逐像素一致);
- DSH 官方侧栏以后若改动,本插件需要同步更新(见下);
- 不想要了,禁用/卸载本 bundle 即可恢复官方侧栏(会同时失去面板页与
☆按钮)。
崩溃隔离:接管意味着"插件挂了 = 左栏没有占位者",所以侧栏整体套了一层 error boundary。任何子组件抛错时不会留下空白列,而是退化为:顶部一句提示 + 「重新加载」按钮 + 原样渲染的官方会话列表(仍可正常选会话、切工作区)。
空间分配:始终优先保证工作区列表 —— 工作区至少拿到可用高度的 55%(且不少于 160px),「最近会话」最多占 45%、上限 420px 并在内部滚动;窗口被压得很矮时,最近会话会只保留标题一行,把高度全部让给工作区。拖动工作区里的会话时,「最近会话」还会临时折叠成一行,把高度让出来,标题同时变成投放区。
兼容性与维护
- 目标版本:DSH
^0.2.1-rc.5(engines.dsh)。 - 已知失败模式:若某版 DSH 里
ui-sidebar这个行 id 改名或消失,patch 会 warn + skip,本插件注册sidebar时与官方外壳冲突 → 本插件整体不生效(官方 UI 保持不变)。修复:更新cordis.patch.yml里的行 id、必要时重新对齐外壳。 - 升级 DSH 后的核对清单(都在
client.js的sidebar shell区):sidebar槽的 owner props 是否仍是{ collapsed, width };- 需要声明/渲染的子槽集合是否仍是那 8 个;
- 官方
SidebarRoot的几何(logo 行 60/36px、新会话按钮 38/36px、面板行 36px、折叠内边距 18/10/6)是否变化 → 同步SHELL_CSS; sidebar.panellist的 owner props(size/active)与sidebar.workspaces的 owner props(wide/expandSidebar);shell.leading的挂载条件(macOS 且侧栏收起);- 官方 WorkspaceBrowser 是否仍以
sidebar.workspaces单占位方式注册。
数据与隐私
- 纯前端插件,不发起任何网络请求(除 DSH 自身)。
- 收藏与折叠状态存在当前浏览器
localStorage:dsh.recent-sessions.favorites.v1(收藏的会话 id,按展示顺序)、dsh.recent-sessions.inline.open.v1(整段是否收起到一行)、dsh.recent-sessions.cats.v1(每个分类手动折叠/展开的选择)。 - 已归档会话不出现在快捷列表里(收藏仍保留,取消归档后自动回来);收藏按站点区分,换浏览器/换域名不共享。
许可
MIT,见 LICENSE。
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 9925
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 9925
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 6712
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
ccch1mneyyy/dsh-TUI★ 6538
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 4808
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1672
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。