DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Aeroscis /

Aeroscis/dsh-workspace-manager

Verified

Sidebar workspace management for DeepSeek Harness: auto-rise the last prompted workspace, pin, drag to reorder, filter by name, one-click tidy, remove empty workspaces, and relocate a workspace folder with its conversations.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@640f925b

工作区管理

DeepSeek Harness Web 侧栏的工作区顺序、清理与路径迁移工具,npm 包名 @aeroscis/dsh-workspace-manager。它在侧栏「工作区」标题右侧加一个图标按钮,点开后可以调整工作区顺序、置顶、清理空工作区,并把工作区连文件夹、连对话一起迁到新路径。

在 DSH 0.2.1-rc.3 上开发并验证。

功能

  • 活动自动上浮:你刚发送过消息的工作区自动升到「第一个非运行工作区」之上。只认你发出的新消息:打开或浏览会话、助手回复都不会触发上浮;正在运行的工作区仍会留在它上面。
  • 置顶:手动把工作区固定在列表最前,置顶顺序按勾选顺序排列。置顶的工作区在官方侧栏行上会显示一枚图钉;点这枚图钉即可取消置顶,不必打开面板(悬停时它会和侧栏官方按钮并排、不遮住它们)。
  • 拖拽排序:每行左侧有汉堡把手,按住上下拖动即可把工作区放到任意位置。拖动时该行跟手抬起,其余行实时让位,松手后滑入新位置;滚轮或贴边会自动滚动,Esc 取消。把手获得焦点后也可以用 ↑ / ↓ 键微调一行。
  • 一键整理:按「置顶 → 运行中 → 最近发送消息 → 其余(按最近会话时间)」重排一次。只在你点击时执行,不会随状态变化反复跳动。
  • 移除工作区:带确认,显示该工作区的会话数;有会话在运行时额外提示。
  • 清理空工作区:一次性列出没有会话的工作区,确认后移除。
  • 打开工作区目录:行悬停时的文件夹按钮在系统文件管理器里打开该工作区目录。宿主没有桌面环境时这个按钮不出现。
  • 路径迁移:把工作区指到新路径:
    • 对话框里填完整新路径,勾选「把文件夹一起搬过去」时由插件执行目录搬移(rename,跨卷自动退化为复制+删除);不勾选则只改登记,目录原地不动。原目录已不存在的工作区(文件夹被手动挪走/改名)开关自动置灰,变成把工作区重绑到新位置的文件夹。
    • 旧会话的安顿:cwd 已在新路径的直接挂回(会话 id 不变,日志零复制);其余按官方 fork 种子机制复刻历史迁到新路径,对话保持连续,不再掉进「未分组」;一条都没安顿成时开一条空会话占位,剩余旧会话归档。
    • 迁移前会先中止该工作区活着的会话当前回合;Windows 上目录被终端/编辑器锁住时会报「被占用」并提示先关会话/终端再试。搬移失败会回滚目录,不留下半状态。

安装

装进某个 profile:

dsh plugin --profile <name> add @aeroscis/dsh-workspace-manager

改插件本身时,可以直接装当前目录,profile 会以链接方式引用它,改完刷新页面即可:

dsh plugin --profile <name> add ./

安装后刷新 Web 页面加载客户端部分。侧栏「工作区」标题和搜索图标之间会多出一个图标按钮:它是标题行里的普通元素,和搜索、视图选项、添加工作区三个按钮在同一条布局里,侧栏滚动、收拢、拖动改宽时一起移动;官方那三个按钮的位置不变。

使用

  1. 点击「工作区」标题右侧新增的图标按钮,面板从按钮左边缘向下展开(会盖住一段对话区);按钮保持可见并显示激活态,再点一次、点面板外或按 Esc 收起。面板默认按最长的工作区名定宽,拖右边界可继续调宽,双击边界恢复默认。
  2. 面板列出全部工作区,每行显示标题、会话数、运行中的会话数。顶部筛选框按键实时筛选,只按行上显示的名称匹配(不匹配路径——同一父目录下的工程会共享整段前缀,按路径筛等于不筛);Esc 清空筛选词。
  3. 行内控件:左侧把手按住拖动排序;右侧图钉切换置顶(空心=未置顶、实心=已置顶);「打开目录」(文件夹图标)、「修改路径」(文件夹+箭头图标)与垃圾桶常驻显示但颜色偏淡,悬停该行时变亮;移除会先展开确认条。重命名不在面板里——官方侧栏行的「⋮」菜单已经有。
  4. 「修改路径」对话框:填新路径 → 决定是否连文件夹一起搬、是否把对话带过去 → 执行迁移。成功后显示结果卡(搬移方式/会话去向/旧会话归档数/排序位是否保持)。
  5. 顶部开关控制活动自动上浮;右侧「一键整理」立即重排一次。
  6. 底部按钮清理空工作区。

数据与副作用

  • 顺序修改写入 Host 的工作区注册表($DSH_HOME/storages/workspace.json 的 global.workspaceIds),不是只改当前页面。其他窗口看到的是同一顺序。
  • 「活动」取自 DSH 会话列表的 updatedAt(持久化的最后一条人类提示时间),不是当前打开的会话;空白新会话和子代理会话不计入。因此刷新页面后,最近发送过消息的工作区仍会被认作活动工作区。
  • 活动自动上浮开关、置顶列表存在浏览器 localStorage,键为 dsh-workspace-manager:prefs:v1。换浏览器或清缓存后偏好会回到默认值(活动自动上浮开启、无置顶)。
  • 移除工作区只删除注册表中的这一项:它的会话不会被删除,会出现在「未分组」下。重新注册同一路径不会把旧会话接回新工作区,因为会话归属记录在新的工作区 id 上。
  • 移除操作没有撤销入口。
  • 路径迁移会让工作区的注册表 id 变化(记录以 realpath 为键,官方没有 setPath)。置顶偏好会在迁移成功后自动把旧 id 换成新 id;迁移后侧边栏出现的才是新节点。
  • 路径迁移依赖宿主的 workspaceRegistry / sessionQuery / agents 等可选服务;这些都按可选处理,宿主缺失时迁移面板会显式报缺失原因,其余功能不受影响。

已知限制

  • 按钮挂在侧栏标题行的空白处,靠 CSS Modules 生成的类名(sectionHeader、searchSlot)定位。DSH 改侧栏结构后按钮可能不再出现;标题行窄到放不下第三个按钮时按钮会自己隐藏,栏宽变大后再出现。engines.dsh 声明为 ^0.2.1-rc.3 就是这条限制的体现。
  • 只支持当前这版侧栏的分组方式;「按工作区树」分组下,顺序仍按同级工作区的 Host 顺序解释。
  • 官方「视图选项 → 最近更新」排的是每个工作区内部的会话,不排工作区本身;工作区顺序始终由 Host 保存的手动顺序决定,所以那个选项看起来「没生效」。

开发

npm test        # 活动判定、自动上浮的收敛、拖动几何、迁移核心(校验/搬移/种子)
npm run check   # 发布形态自检 + 测试 + 打包预览

实现说明(面板入口、顺序写入、自动上浮的两趟规则、拖动几何、测试切块方式)见 docs/DESIGN.md。内部设计文档,与使用无关。

更新日志

见 CHANGELOG.md。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 640f925b3117

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout