前言¶
DeepSeek Harness(以下简称 DSH)的理念是「一切皆插件」,左侧「工作区 / 会话」列表也不例外。原生列表按传统树状或固定顺序展示会话,横向会话一多,当前真正在跑的那个往往不在视野内,你得靠相对时间和记忆去翻。dsh-activity-view 就是社区作者 bloodtmai-cmyk 针对这个痛点做的客户端插件:它把侧栏会话列表的列表主体换成按活跃度排序的活动视图,每行带所属项目名和运行标记,置顶和今天的会话都排在显眼位置,并且只在你显式设置时让位给原生列表。
这是什么¶
dsh-activity-view 是一个 DSH 客户端 UI 插件,维护者为 bloodtmai-cmyk,在社区插件目录 SkillHub 上归类为「客户端」,星标目前为 0,版本 1.0.1,许可证 MIT。它解决的问题很窄:原生会话列表对「最近活跃」「正在运行」两个维度表达不足,该插件不改逻辑,只换列表的呈现方式。它注册为宿主插槽 sidebar.workspaces.sessions 的占用者,只替换列表体,工具栏、搜索、视图选项、workspace 控件、行内按钮和右键菜单都保持原生。
核心功能¶
1、置顶块在最上方。你在原生界面手动置顶的会话(官方 pinnedSessionIds,归档的不进这块)被提到顶部,不带分组标题、只出现一次,且不占普通行的 25 行上限。
2、其余按日期分组。剩下的会话按官方活动时间 updatedAt 分成今天 / 昨天 / 更早,越新越靠前。组内运行中的会话排在前面,并带圆形运行标记;运行中的行不显示相对时间。因此普通运行会话始终排在「今天」组内靠前,即使它的 updatedAt 较早。插件只改变呈现,不去改写存储的时间戳。
3、只认官方 id。去重按官方行 id 精确匹配,session-<uuid> 与 <uuid> 不互相归一,标题或工作区相同但 id 不同的会话不会被合并,子代理行也不列出。
4、数据来源与原生一致。列表渲染宿主通过 props 传入的快照(无 props 时退回官方 ctx.sessions.list),宿主重新发布就重渲染。分钟级本地时钟只推进相对时间和「今天 / 昨天」边界,不是数据轮询。
5、尊重原生选择。你在原生菜单改过「分组方式 / 排序」后,插件退出活动模式,由原生列表按你的选择渲染,插件不回写该设置。
安装与启用¶
该插件通过 DSH 插件管理器安装,命令直接来自仓库 README:
plugin_manager install_bundle github:bloodtmai-cmyk/dsh-activity-view
仓库带 dsh-plugin topic,市场索引也会收录它。安装前确认宿主运行时与 package.json 的 engines.dsh = 0.2.2-rc.1 精确匹配。不匹配时整个 bundle 会被 loadProfileDirectory() 跳过(skippedBundles),补丁一行都不生效,原生 UI 原样保留。
装好后无需额外配置。插件清单显示 client 端会注入 locale、timer、sessions、layout、uiWorkspace,平台为 web,immediately: true,随宿主一起加载。
典型用法¶
1、确认插件生效。安装命令执行后打开侧栏:若列表变成顶部置顶块 + 今天 / 昨天 / 更早分组,说明 patches/0001-sidebar-workspaces-sessions-slot.patch 和 patches/0002-sidebar-navigation-action-slot.patch 都已打上;若仍是原生顺序,说明运行时版本不匹配导致 bundle 被跳过,或补丁步骤在某一步失败,此时查宿主侧的可观察状态(如 skippedBundles)再判断。
2、手工置顶。在原生界面里对某个会话执行置顶,它会立刻出现在活动视图顶部的置顶块,且只有一份。
3、跑一个会话。启动新会话后回到侧栏,该行会在它所属的日期分组内跳到前面,并带圆形运行标记。此时它不一定在列表最顶端——顶部永远是你手动置顶的块;但只要它在运行,就不会被推到分组后面。
4、切回原生。在原生菜单里改变分组或排序,插件自动让位,由原生列表渲染你的选择。
5、让列表重新恢复原生。卸载该 bundle 即可,cordis.patch.yml 原本禁用的原生 ui-sidebar / ui-workspace 行会恢复。
适用场景与注意¶
适合会话数量多、需要频繁回到「当前在跑的那个」的 DSH 用户,以及想保留原生工具栏又想要活动排序的人。不适合期望插件去改写时间戳、合并同名会话或列出子代理行的场景——这些行为是刻意不做的。
需要注意三点:
1、插件以当前 DSH 进程的权限运行,安装前应先打开仓库读一遍源码和 LICENSE(MIT),确认 patches/ 与 compat/ 两个包的改动符合你的预期。
2、版本匹配只决定 bundle 能否加载,不保证打补丁、模块导入、插槽声明在你机器上都成功。文件读写失败、导入报错、插槽未声明、同 priority 已被占用,都可能让该区域没内容或退回原生列表。判断 UI 之前先看宿主侧的可观察状态。
3、compat/ 下两个包是按宿主内部模块结构打补丁的 vendored 副本,宿主升级后可能失配;升级后请重新校验,不要假定仍可用。
结语¶
dsh-activity-view 的价值在于把「当前活跃、正在运行」这件事前置到侧栏的视觉排序里,同时不破坏原生列表的其他结构,改动面控制在两个补丁加两个 compat 包。它目前星标为 0,属于早期社区作品,安装前按上面的注意事项核对宿主版本和源码即可。
- 社区目录:https://www.skillhub.cn/plugins/bloodtmai-cmyk/dsh-activity-view
- 仓库:https://github.com/bloodtmai-cmyk/dsh-activity-view
(SkillHub 是独立社区站点,与 DeepSeek / 幻方无官方从属关系。)