@sandersyao/dsh-workspace-bootstrap
v0.1.0
Published
Boot-time default-workspace Cordis plugin (Stage A) for the DeepSeek Harness: idempotently registers a declared directory as the default workspace on web-host startup.
Readme
@sandersyao/dsh-workspace-bootstrap
DeepSeek Harness(dsh)工作区的启动自举插件(阶段 A):以 Cordis 插件形式加载,在 web 宿主启动后幂等地把一个声明式配置的稳定目录注册为默认工作区,从而让「分布式/容器 dsh 空库启动、且目录选择交互被禁用」时也能直接开始首个会话。
阶段定位:解决
dsh-workspace在空库下的「无会话历史 → 无自举工作区 → 无法开首会话」死锁。本插件只消费ctx.workspaceRegistry.create,不改动 dsh 本体,对模型零可见性(host-plane)。 演进方向:阶段 B(逻辑工作区、绑定 OSS/知识库)不在本仓库,见.agents/notes/2026-09-05-workspace-bootstrap-phase-a.md。
重要设计说明
默认工作区是临时折中方案。 当前阶段 A 把一个真实本地目录(默认
/opt/workspaces/default)注册为默认工作区,以在「空库 + 目录选择交互被禁用」的分布式/容器 部署里先解开「首会话」死锁。把会话写入落在一个本地目录的做法是临时的;后续(阶段 B)会考虑 替换为不依赖本地目录的工作区插件(逻辑工作区:身份 ≠ 路径,可绑定 OSS / 知识库等远端落地), 届时本插件将被替换或退役。阶段划分见.agents/notes/2026-09-05-workspace-bootstrap-phase-a.md。
配套插件(分布式 dsh 部署)
本插件是为与以下三个插件协同、在共享 MySQL 之上搭建一套基于分布式系统的 dsh 部署而建立的:
dsh-storage-mysql / dsh-credentials-mysql / dsh-session-persistence-mysql 把默认存储、
凭据、会话持久化后端切到共享 MySQL;本插件则在空库启动时声明式自举一个默认工作区,让首会话可开始。
| 插件 | GitHub 仓库 | npm 包页面 |
| --- | --- | --- |
| @sandersyao/dsh-storage-mysql | https://github.com/sandersyao/dsh-storage-mysql | https://www.npmjs.com/package/@sandersyao/dsh-storage-mysql |
| @sandersyao/dsh-credentials-mysql | https://github.com/sandersyao/dsh-credentials-mysql | https://www.npmjs.com/package/@sandersyao/dsh-credentials-mysql |
| @sandersyao/dsh-session-persistence-mysql | https://github.com/sandersyao/dsh-session-persistence-mysql | https://www.npmjs.com/package/@sandersyao/dsh-session-persistence-mysql |
文档入口
AGENTS.md—— 本仓库开发约定(Agent/人工必读).agents/—— 决策笔记(为什么)docs/DESIGN.md—— 实现设计(做什么/怎么做)docs/INTEGRATION.md—— 接入 dsh-distributed-integrationdocs/MANUAL_TEST_PLAN.md—— 手动验收docs/TASKS.json—— 任务队列
当前状态
阶段 A 任务 T1–T4 已完成:工程骨架与插件源码(T1)、单元测试(T2)通过
pnpm typecheck / build / lint / test(coverage lines ≥ 90);集成到
dsh-distributed-integration(T3)与文档收尾(T4,含 README 头图)完成。
运行时手动验收 TC-1..7 需 Docker 栈,见 docs/MANUAL_TEST_PLAN.md。
