DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

dsh-workspace-tree

l

dsh-workspace-tree

Manifest valid★ 6

Rework the "Workspace" in the DSH Web left sidebar into a dual-mode file system tree. Core principle: Workspace = strong directory binding — the session's cwd is exactly the directory it resides in, ensuring true environment isolation.

UI (client)hasBundlePatch

dsh-workspace-tree · 工作区树(v4)

把 DSH Web 左侧栏的「工作区」重做为文件系统树双模式。核心原则: 工作区 = 目录强绑定——会话的 cwd 就是它所在的目录,环境真正隔离。

工作区树总览

工作区模式:工作区按目录层级嵌套(子文件夹直接显示在父工作区下), 会话挂各自工作区,行尾为最近活动时间。

双模式(标题栏切换,选择自动记忆)

模式显示用途
文件夹模式完整文件系统目录树(含非工作区的中间目录),工作区节点带会话计数标记浏览目录结构;hover 任意目录可「新建会话」(会话 cwd = 该目录,自动注册工作区)或「添加为工作区」;点击工作区节点 = 纯导航到工作区模式并定位
工作区模式只显示工作区节点(隐藏中间目录),按目录相对层级嵌套,会话挂各自工作区下管理会话:打开 / 重命名 / 分叉 / 归档;工作区重命名 / 删除

v4 新增:搜索过滤

模式切换按钮与「新建会话」之间新增简约搜索框(🔍 图标,输入即过滤, Esc / ✕ 清空):

  • 匹配范围:会话标题 或 文件夹/工作区名,不区分大小写子串
  • 工作区模式:隐藏不匹配的会话与整组;命中组强制展开(临时),清空后 还原手动折叠状态
  • 文件夹模式:目录按「名字或后代会话是否有匹配」剪枝并强制展开命中 分支;命中的工作区节点下内联列出要展示的会话(名字命中 → 该工作区 全部可见会话,否则仅标题命中的会话),可直接点击打开
  • 无任何命中时显示「无匹配会话」空态

为什么重写(v2 → v3)

v2 的自定义逻辑文件夹(不改变会话 cwd)造成了环境不隔离:文件夹只是 UI 归类, 会话里的文件操作仍落在工作区根目录。v3 彻底移除逻辑文件夹模型,树完全由 workspaces[].path 的文件系统层级推导,在目录下新建的会话其 cwd 就是该目录。

架构

半区文件职责
Hostlib/index.js仅保留只读调试路由 /api/dsh-workspace-tree/debug(工作区注册表投影),零持久化
Clientlib/client.js树浏览器:双模式渲染、目录树推导(buildDirTree / buildWorkspaceForest)、导航联动、隔离会话创建(sessions.create({cwd}))

数据源全部来自标准 props(useWorkspaces / useSessions),无额外状态。

交互细节

  • 文件夹模式:目录节点点击 = 展开/折叠(chevron 单独点击也可);工作区节点点击 = 切到工作区模式 + 展开该组 + 滚动定位(纯导航,不打断当前会话);hover 操作:工作区节点「+新建会话 / ✎重命名 / 🗑删除」,普通目录「+新建会话(自动注册)/ +添加为工作区」
  • 工作区模式:组头「+新建会话 / ✎重命名 / 🗑删除」;会话行保留官方「完成未读」绿色提醒点、运行矩阵动画、等待交互琥珀点
  • 展开状态、模式选择均 localStorage 记忆

安装

cd dsh-workspace-tree
dsh plugin add .          # 或按部署方式装配 bundle

或通过 dsh-super-injector 运行时注入(免重启):

dev_inject_plugin {"dir": "D:/developing/DSH-plugin/dsh-workspace-tree"}

兼容性

  • 路由前缀、patch 行 id(dsh-workspace-tree)唯一;不声明 children slot(避免与官方 sidebar.workspaces.directoryFlow 冲突)
  • 以 priority: -1 替换官方浏览器(shadowing 升序、最低渲染)
  • 卸载插件后官方浏览器自动恢复,无残留数据(v3 零持久化)

Comments

Loading…

Similar plugins

dsh-workspace-categories

by Knight-Zjy

DeepSeek Harness 侧边栏的工作区分类树:分类 > 工作区 > 会话(VS Code 风格)。Collapsible category tree for DSH workspaces.

UI & ExperienceManifest valid

★ 3

↓ 427/wk

MIT

JavaScript

Oct 23, 2026

dsh plugin --profile web add dsh-workspace-categories

by d0ublecl1ck

DSH Web 插件:最后一个未归档会话被归档的瞬间自动隐藏该工作区行,另在工作区行「…」菜单里追加「隐藏工作区」并配官方 Modal 恢复入口;只切 display,不归档、不删除、不改写任何工作区注册与会话数据。

UI & ExperienceDevelopment & InfrastructureTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Oct 7, 2026

dsh plugin --profile web add dsh-hide-empty-workspace

by yishengjun8

允许显示工作区的文件树、浏览文件内容、并且允许对话中嵌入引用的文件内容、自由切换思维分支视图,目标是和VSCode相类似的开发体验

UI & ExperienceTerminal & ClientsManifest valid

★ 4

MIT

JavaScript

Oct 19, 2026

dsh plugin --profile web add @yishengjun8/dsh-workspace-studio

by Nothree-code

Workspace file-tree panel for the DSH web UI: explore, preview (DOCX / Markdown / PDF / code / CSV), and manage files with a real context menu.

Tools & CapabilitiesUI & ExperienceManifest valid

★ 4

MIT

JavaScript

Sep 13, 2026

dsh plugin --profile web add folder-tree-sh

by tsingshitao-nuke

Right-click a folder in Windows File Explorer to open it as a DeepSeek Harness (DSH) workspace: register, launch DSH, and switch the page to it. 资源管理器右键「在此处打开 DSH 工作区」。

Sessions & MessagesManifest valid

★ 3

MIT

JavaScript

Aug 31, 2026

dsh plugin --profile web add dsh-set-workspace

Multi-workspace manager: bind a docs anchor plus ordered code-project repositories into one session, injecting their absolute paths, a recursive file index, a server/client endpoint index and optional

UI & ExperienceManifest valid

★ 1

NOASSERTION

TypeScript

dsh plugin --profile web add dsh-workspace-combiner