dsh-workspace-sort:工作区排序、会话折叠与按 Provider 代理路由

前言

DeepSeek Harness(DSH)侧边栏在「按工作区」视图里,工作区顺序和每个工作区下可见对话条数,往往跟不上「最近在用哪个项目」的实际节奏;同时挂多家模型时,全局 HTTPS_PROXY 要么让国内 Provider 也绕代理,要么海外 Provider 完全出不去。社区插件 dsh-workspace-sort(维护者 LostAbaddon,GitHub:LostAbaddon/dsh-workspace-sort)在一个包里提供两组能力:侧边栏按最新对话排序、可配置折叠条数、按工作区记忆模型,以及 Host 侧按 Provider 决定是否走代理。下面按安装、设置与典型用法说明。

这是什么

dsh-workspace-sort 是 DSH 的 bundle 插件(dsh.bundle.patch),同时改客户端 UI 与 Host 网络路径。当前 package 版本为 1.1.0,许可证 MIT,Node >=20。分类上属于客户端注入(并含 Host 代理补丁);尚未发布到 npm,安装需用 GitHub 地址或(Web 端)本机目录路径。

核心功能

侧边栏

在「按工作区」和「按工作区树」两种分组下:

  • 工作区按其中最新一条普通对话的更新时间降序排列;无此类对话时用工作区创建时间。时间戳相同则保持原相对顺序。「单列表」模式不干预,仍用 DSH 自带排序。
  • 每个工作区收拢时显示的空闲对话条数可在设置里改,默认 5(1~100)。正在运行、新会话占位、等待回答的对话始终显示,不计入配额。
  • 收拢时若还有未列出的对话,列表下方会出现「还有 N 条对话」;展开后变为「收拢」。工作区标题本身折叠时,一行对话都不显示,该提示也不显示。
  • 可选:每个工作区独立记住模型与思考深度,点该工作区「新会话」时套用该工作区上次选择(从未记录则不干预,仍用全局默认)。
  • 每条用户自己发的消息,时间与复制按钮之间增加「修改」:编辑 Markdown 原文后确认,会停掉当前回复、分岔新会话、发送改写内容、切到新会话并归档原会话(非删除;归档可逆,数据仍在 ~/.dsh/sessions/...)。

三个侧边栏相关开关在 设置 → 通用 → 工作区对话排序(在「繁忙时的发送行为」与「性能与用量」之间),存于浏览器 localStorage(dsh.workspace-sort.v1);工作区顺序写入 Host,同一 profile 内各客户端共享。

代理路由

在进程 globalThis.fetch 上按目标主机名决定走代理还是直连:例如 Gemini、OpenRouter、Agnes 等可勾选走代理,DeepSeek、Kimi、MiniMax、GLM 等保持直连;deepseek、deepseek-official、ollama、lmstudio 永不走代理。代理地址与规则在 设置 → 代理路由 配置,保存即生效、无需重启;配置落盘 $DSH_HOME/workspace-sort/proxy-config.json。

安装与启用

DSH 插件安装支持 npm 包名、GitHub 仓库地址、本机目录路径。本仓库尚未发布 npm,以 GitHub 或路径为准。插件以当前 DSH 进程权限运行,安装前建议自行查看仓库源码与 MIT 许可证。

桌面端(Electron)

侧边栏「插件」→「添加插件」,在「包名或地址」填写:

github:LostAbaddon/dsh-workspace-sort

安装完成后按提示重启应用。dsh plugin --profile desktop ... 会被拒绝,desktop profile 由 Electron 独占管理。

Web 端(dsh web)

dsh plugin --profile web add github:LostAbaddon/dsh-workspace-sort

生效需重启 dsh web。卸载时使用与安装相同的来源:

dsh plugin --profile web remove github:LostAbaddon/dsh-workspace-sort

从 GitHub 安装若出现 ERR_PNPM_GIT_RESOLVE_FAILED,多为 HTTPS 访问 GitHub 失败;可按 pnpm 提示配置 git 传输改写,或改用本机绝对路径作为安装来源(与 README 说明一致)。

典型用法

调整排序与折叠

  1. 安装并重启后打开 设置 → 通用 → 工作区对话排序。
  2. 按需改「每个工作区显示 N 条对话」、开关「工作区按最新对话排序」、开关「独立记住模型与思考深度」。
  3. 若需固定手动拖动的工作区顺序,关闭「工作区按最新对话排序」(否则下次重排会按时间戳还原)。

修改历史输入

  1. 在已加载的消息上点铅笔「修改」,在编辑框改内容,Cmd/Ctrl+Enter 提交。
  2. 确认框会说明该输入之后将移除几条对话;确认后自动分岔、发送并归档原会话。
  3. 若消息未加载到当前窗口、是会话首条、或 15 秒内无法停掉当前回复等,操作会被拒绝并在编辑框显示原因。

配置代理

  1. 打开 设置 → 代理路由,填写代理地址(如 http://127.0.0.1:7890),勾选需要走代理的 Provider,必要时追加额外主机规则。
  2. 可用「测试代理」做一次本地 CONNECT 握手检查。
  3. 关闭总开关则全部直连,配置仍保留。

适用场景与注意

  • 适合:多工作区并行、希望「最近聊过的项目」排在侧边栏上方;需要国内模型直连、海外模型走本地代理并存;希望按工作区固定默认模型而非全局一条。
  • 注意:开启「独立记住模型与思考深度」时,DSH 的 selectModel 可能顺带更新全局默认模型,插件不会写回全局设置(README 已说明副作用)。手动排好的工作区顺序在开启按时间排序时会被覆盖。修改输入依赖分岔与归档,失败时会清理半成品会话。
  • 社区目录页与 GitHub 由维护者与社区托管,与 DeepSeek / 幻方无官方从属关系;星标与目录元数据以各站点当时显示为准。

结尾

dsh-workspace-sort 把侧边栏的排序、折叠、分工作区模型偏好和历史输入修正,与 Host 侧按 Provider 的代理路由收在一个插件里,配置多在设置页完成。进一步了解与 issue:

  • 目录页:https://www.skillhub.cn/plugins/LostAbaddon/dsh-workspace-sort
  • 仓库:https://github.com/LostAbaddon/dsh-workspace-sort
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜