Bundle
@nathan110628/dsh-session-management
Manage DeepSeek Harness sessions: delete legacy sessions and import sessions from Claude Code/Codex
- Source
- AndyWipe13
- stars
- 2 stars
- License
- BSD-3-Clause
- Updated
- Updated 14 hours ago
Readme
# dsh-session-management
**中文** | [English](README.en.md)
---
DeepSeek Harness(DSH)插件:管理 Harness 生成的会话,允许用户删除遗留会话,并支持从其他第三方 Agent(目前已支持 Claude Code、Codex)导入会话。
### 功能
- **统一会话管理**:在 DSH 设置页提供跨来源(DSH / Claude Code / Codex)的会话列表、搜索、预览、打开续聊、归档/取消归档、删除与批量清理、统计。
- **第三方会话导入**:把 Claude Code、Codex 的本地历史会话全保真转换为可续聊的 DSH 原生会话(文本、thinking、工具调用与结果全部保留,不伪造可执行工具)。
- **安全底线**:第三方源文件永远只读;运行中的会话一律拒删;删除显式不可逆(批量必须键入 `DELETE`);清理永远先预览后执行。
### 安装方式
从 npm 一键安装(推荐):
```bash
dsh plugin --profile web add @nathan110628/dsh-session-management
dsh --profile web --dump-config # 应看到 "# == @nathan110628/dsh-session-management" 层
dsh web
```
或从 GitHub 安装(等价,仓库内附带已构建的 `lib/`):
```bash
dsh plugin --profile web add github:AndyWipe13/dsh-session-management
```
卸载:
```bash
dsh plugin --profile web remove @nathan110628/dsh-session-management
```
### 开发构建与本地装配
- `src/index.ts` — 插件入口(导出 `apply(ctx)`)
- `cordis.patch.yml` — bundle 贡献的配置层(`dsh.bundle.patch`)
- `package.json` — 声明 `dsh.bundle` 与 peer 依赖
- `scripts/build.js` — 跨平台 Node 构建脚本
构建(无需 DSH 源码 checkout;自动回退到 `~/.dsh/profiles/node_modules` 官方依赖镜像):
```bash
npm install
npm run build
```
产物输出到 `lib/`(入口 `lib/index.js`,类型 `lib/types/index.d.ts`)。
**装配:**
```bash
dsh plugin --profile web add .
dsh --profile web --dump-config
dsh web
```
### 工程基线验证
无 DSH 源码 checkout 的 Windows 环境(依赖 `~/.dsh/profiles/node_modules` 官方依赖镜像)可直接跑:
```bash
npm run build # 编译 src -> lib
npm run typecheck # TypeScript 类型检查(自动先 build 链接依赖)
npm test # 运行测试(自动先 build)
```
测试使用 Node 内置 test runner(`--test-isolation=none`),覆盖:
- 插件基线导出与 bundle 装配自检(hello 占位工具已移除);
- fake 官方服务装配能力(`sessions` / `sessionQuery` / `sessionPersistence` / `workspaceRegistry` / `storageDomain`);
- 只读夹具银行(Claude Code、Codex 含 archived_sessions、DSH 各 ≥2 个,含空会话/坏行/中文 Unicode/subagent 边界样本)。
夹具位于 `test/fixtures/`,任何测试前后不得修改其字节与 mtime;生成脚本见 `scripts/generate-fixtures.js`。
导入按源会话的 `cwd` 创建或复用官方工作区,日志持久化后再登记会话成员,并将扫描页标题保存为 `session/title` 事件。工作目录不存在时会报告导入失败。rc.7 侧栏需要刷新页面同步。
宿主接口回归位于 `test/host-contract.test.js`,覆盖官方标题的 `value.title.title` 嵌套、持久化后的工作区登记,以及旧导入修复的准备对象释放。`scripts/check-session-ui.cjs` 接收 Playwright `page` 和临时会话的 `{ sessionId, title }`,验证勾选、归档、取消归档、取消删除和实际删除;仅对可丢弃测试会话运行。
### 参考
官方插件开发指南:<https://deepseek-harness.github.io/deepseek-harness/develop/basic/>
Install
dsh plugin --profile web add github:AndyWipe13/dsh-session-management
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install nathan110628-dsh-session-management from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.