dsh-workspace-settings:按工作区保存 DSH 会话默认值

前言

在 DeepSeek Harness(DSH)里,模式、权限预设、模型、推理强度,以及 Chat 里 work details 的展示级别,往往是一套全局偏好。你换到另一个项目目录(工作区)时,仍要手动改一遍,或者每次新建会话都从同一套全局值起步。对经常在多个仓库之间切换的智能体开发者来说,这会把「这个项目用只读、那个项目要 workspace write」这类约定变成重复操作。

下面介绍社区插件 dsh-workspace-settings(GitHub:Thunderunruly/workspace-settings)。它在每个工作区上单独保存会话默认值,新建或复用空白会话时由 Host 按该工作区的配置应用;会话内已经做出的选择仍然优先,插件不会强行覆盖已开始对话的会话。

这是什么

dsh-workspace-settings 是面向 DSH Web UI 的插件,维护者为 Thunderunruly,在 npm 上发布为 dsh-workspace-settings(当前 package 版本 1.0.1),许可证 MIT。README 写明在 DSH 0.2.1-rc.3(desktop profile)上开发与验证;package.json 中 engines.dsh 为 >=0.2.1-rc.3 <0.3.0-0。

插件不提供 profile 级配置字段,所有工作区默认值写入 DSH 本地存储;无遥测、无网络请求。界面基于 DSH 官方 UI 原语(Modal / Menu / Button / Input 等),与内置 General Settings 行布局一致,改选项即保存,没有 Save/Cancel 步骤。

核心功能

入口与设置页

  1. 侧边栏每个工作区行的 ... 菜单中,在 Rename / Delete 之上增加 Workspace settings;右键工作区行打开同一官方菜单也可进入。
  2. Settings → Workspace settings 列出所有工作区,每行显示覆盖项摘要和 Edit。

六项 per-workspace 默认值

设置项 可选范围(资料原文)
Mode 任意已安装的 Agent preset,或跟随全局默认
Permissions 任意已配置的 permission preset,或跟随全局默认
Model 任意可路由模型,或跟随全局默认
Effort 所选模型的 reasoning effort
Work details Compact / Standard / Detailed / Verbose,或跟随全局
Collapse timing On completion / On next message,或跟随全局

内置 preset 与权限在 UI 中显示为官方文案(如 Standard mode、Read Only 等),而不是 standard、workspace-write 这类机器键。

应用规则(摘要)

  • 在工作区内新建或复用空白会话时,Host 按存储值设置 Mode(仅空白会话)、Permissions、Model + effort(首次模型请求覆盖;从第二次模型请求起以会话内选择为准),以及该工作区 active 时的 work details / collapse timing。
  • 已开始 turn 的会话不会被重写;子 agent 与 fork 会话跳过。
  • 空白会话里若用户已显式改值,插件通过对比全局默认与上次工作区应用值来决定是否仍用工作区默认。
  • 某工作区全部改回 Follow global default 会移除该工作区的记录;工作区以规范路径为键,重命名工作区可保留配置。

安装与启用

要求:带 Web UI 与插件支持的 DSH;需 Chromium 系 DSH Web UI(CLI-only 组合不渲染该插件)。插件为 ESM,从运行中的 DSH 客户端加载 react 与 host UI,不打包运行时依赖。

从 npm 安装(推荐)

将 <profile> 换成你的 DSH profile 名:

dsh plugin --profile <profile> add dsh-workspace-settings

固定版本或升级:

dsh plugin --profile <profile> add dsh-workspace-settings@1.0.1
dsh plugin --profile <profile> add dsh-workspace-settings@latest

安装后重载一次 DSH 窗口,使 client bundle 进入启动图;之后仅 client 侧变更可热更新。

验证是否生效

  1. 工作区行 ... 菜单出现 Workspace settings。
  2. Settings 侧栏出现 Workspace settings 页。
  3. 打开后每个工作区一行,含 Edit 与全局默认摘要。

卸载通过插件管理器移除 bundle;$DSH_HOME/storages/workspace-settings/settings.json 中的值会保留,直到你手动删除该文件。

典型用法

打开设置

  1. 悬停工作区行,点 ...,选 Workspace settings;或右键该行从同一菜单进入。
  2. 或 Settings → Workspace settings,对任意工作区点 Edit。

修改即持久化

没有 Save 按钮:每次选择变更立即写入。用 ×、Escape 或点击遮罩关闭对话框时,保留已成功写入的选项;仅失败时会提示。

存储位置

内容 位置
工作区默认值 $DSH_HOME/storages/workspace-settings/settings.json
work details / collapse 的 Chat 基线 浏览器 localStorage 键 dsh-workspace-settings:chat-baseline:v1
每会话上次应用缓存 同上 settings.json 的 sessions 段(衍生缓存,可丢)

DSH 0.2.1 将 work details 与 collapse timing 存为全局 Chat 偏好(ui-chat)。插件在有工作区存储值且当前会话属于该工作区时,临时切到官方 Chat 偏好;离开该工作区相关会话后恢复全局值。细节见 README 的 Work-details preferences 一节。

适用场景与注意

适合谁:在同一 DSH 实例里维护多个工作区,且希望「A 仓库默认只读 + 某模型」「B 仓库默认 PTC + Full access」等约定随工作区自动带到新空白会话的用户。

环境与权限:插件在当前 DSH 进程的权限下运行,并注入 workspace 与 settings 相关 client 模块。安装前应阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全与合规要求。DSH 社区插件目录(如 SkillHub 条目)为独立站点,与 DeepSeek / 幻方无官方从属关系;生态理念是「一切皆插件」,本插件同样属于社区贡献。

限制(资料原文):依赖 Web UI;work details 机制受 DSH 全局 Chat 偏好设计约束;子 agent / fork / 已开聊会话不在覆盖范围内。本地开发安装路径见 README 的 From a local checkout,本文不展开 git clone 流程。

结尾

dsh-workspace-settings 把会话级默认值从「全局一套」拆成「每个工作区一套」,并与 DSH 官方 preset、权限与 Chat 展示偏好对接,改选即存、界面与内置设置一致。若你需要按目录固定 agent 模式与权限习惯,可从 npm 安装并重载窗口后,从工作区菜单或 Settings 页开始配置。

  • 目录页:https://www.skillhub.cn/plugins/Thunderunruly/workspace-settings
  • GitHub:https://github.com/Thunderunruly/workspace-settings
羽毛球分组比赛记分
小程序二维码

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

小夜