# DSH Session Rerun [English](README.md) | 中文 `dsh-session-rerun` 是一个可安装的 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Web 插件,用于查看并重演已经完成的 Session Step。 ## 功能 - 按 Turn 和 Step 组织持久化 Session 时间线。 - 展示模型回复、工具调用、Skill、失败状态和耗时。 - 在每个 Step 右侧用紧凑标签显示调用涉及的脚本名和 Markdown 文件名。 - 在新 Session 中重演主 Agent Step,不修改来源 Session。 - 重演指定 Subagent Step 时,在原工作区创建新的主 Session。新主 Agent 只保留重新发起委派、等待新子 Agent、接收新结果并继续执行的流程。 ## 安装 ### 从 npm 安装(推荐) ```sh npx @deepseek-ai/dsh plugin --profile web add \ dsh-client-ui-session-rerun \ --registry=https://registry.npmjs.org/ ``` 安装到 DSH Desktop 时使用同一个包,并把 profile 改为 `desktop`: ```sh npx @deepseek-ai/dsh plugin --profile desktop add \ dsh-client-ui-session-rerun \ --registry=https://registry.npmjs.org/ ``` ### 从 GitHub 安装 ```sh npx @deepseek-ai/dsh plugin --profile web add \ github:liuyangdongdong/dsh-session-rerun ``` 从 GitHub 安装到 DSH Desktop 时,把 `--profile web` 替换为 `--profile desktop`。 ### 启动 Web ```sh npx @deepseek-ai/dsh web ``` 如果 Web 服务已经运行,安装或替换插件后需要重启进程。 ## 重演语义 插件不会修改来源 Session。重演成功后,它会在来源工作区创建新的主 Session,并在 Web UI 中打开。 普通 Step 重演会把所选 Step 之前的持久化历史,以及该 Step 已记录的用户输入交给新 Agent。Subagent Step 重演会创建新的主 Session 和新的子 Session:子 Agent 重跑所选 Step;新主 Agent 只重建委派调用,等待子 Agent 完成,接收新的子任务结果,然后继续执行。 目前不支持嵌套 Subagent 重演。只有存在且具有匹配 `step/end` 事件的 Step 才能重演。 包的职责划分和生命周期见[架构说明](docs/architecture.md)。 ## 包结构 | 包 | 职责 | |---|---| | `dsh-client-ui-session-rerun` | 可安装 Web bundle、时间线投影、重演按钮和文件名标签 | | `dsh-session-rerun` | 读取持久化 Session 并创建重演 Session 的 Host Remote | 根包在 `package.json` 中声明 `dsh.bundle.patch`,由 `cordis.patch.yml` 挂载两部分功能。实现遵循 Harness 的 profile 与 bundle 模型,不修改 `agent-loop`。 ## 开发 需要 Node.js `^22.19.0 || >=24.0.0` 和 pnpm `11.7.0`。 ```sh pnpm install pnpm typecheck pnpm test pnpm pack:check ``` 仓库提交 `lib/` 产物,使 npm 和 GitHub 安装都不需要在安装阶段执行构建脚本。Web Client 使用 DeepSeek Harness 的模块加载器 bundle 格式;修改浏览器端源码后,需要在兼容的 Harness checkout 中重新生成该产物。 Client 同时兼容当前 Web Profile 使用的拆分会话注册表,以及 DSH Desktop 2.0.4 使用的组合式 `uiConversation` 服务。 独立仓库 CI 会检查可分发 bundle、包导出、Cordis patch 和纯时间线投影。完整的 Host、浏览器注册、事件组装器和 React 集成测试仍保留在 `packages/host/tests` 与 `tests` 中,并在能够提供源码层模块表的兼容 DeepSeek Harness checkout 中运行。 DeepSeek Harness 仍处于开发者预览阶段,上游发布新版本时可能需要同步更新 peer dependency。 ## 许可证 [MIT](LICENSE)