DeepSeek Harness 插件

DSH-Session-Move-kirkchin

Move cold DSH sessions between DSH workspaces without changing SessionId(英文原文)

跳到安装方式

来源信息

GitHub 仓库
kirkchinese/DSH-Session-Move
最近更新
2026年8月16日
分类
记忆
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/kirkchinese/DSH-Session-Move
插件名:DSH-Session-Move-kirkchin
作者:kirkchinese

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-session-move

A DeepSeek Harness feature bundle for moving an existing cold DSH session between two DSH workspaces while preserving its SessionId and event history. The interactive target is the existing session-title row in the DSH Web sidebar; this package does not import Claude Code or other external transcripts.

Current iteration

The service exposes a read-only ctx.sessionMove.inspect({ sessionId, targetWorkspaceId }) dry-run that reports:

  • source and target workspace identity;
  • source and target JSONL locations;
  • immutable source/target headers;
  • persistence revision;
  • physical row and logical event counts;
  • contiguous seq bounds;
  • raw-artifact and logical-event SHA-256 values;
  • stable blockers such as live, archived, missing, same-workspace, unsupported backend/core capability, or target collision.

It uses SessionPersistence.readRaw() rather than inspect(), so the dry-run does not populate a prepared-session cache. The inspection itself performs no mutation.

With all revision-fenced core patches applied, the service registers itself as the one WorkspaceRegistry cold-session mover. The official Web sidebar then executes workspace.moveSession({ targetWorkspaceId, sessionId, beforeSessionId? }) through the typed Host RPC gateway, the registry validates the commit and emits the authoritative workspace/session-moved frame, and clients replace the session cwd plus both Workspace snapshots without optimistic membership edits. A private durable journal under configured root recovers or restores persistence cwd, lifecycle-bound message feedback, workspace accounting, and manual target/source order after interruption. It verifies the final header, unique effective workspace owner, event count, and logical-event SHA-256 before deleting the journal. The ./invariant companion rejects publication if any startup move journal remains unresolved.

Move semantics

A final move changes only the session header cwd and its workspace account. It preserves ID, creation time, lineage, preset, every logical event, and external dsh-session: references. Future tools and sandbox policy use the destination workspace. The first release is JSONL-only and cold-session-only.

See docs/phase-2-design.md for the core relocation seam, crash journal, rollback protocol, and UI integration plan, and docs/distribution.md for installation, support matrix, and rollback. Reproducible first-party changes are stored as a revision-fenced patch series under patches/deepseek-harness/; validate the current series with node scripts/apply-core-patches.mjs <checkout> --check.

Installation

Full capability requires a DSH built from the exact public base with the bundled first-party patch series applied. The npm package is the runtime plugin; the patch bundle builds the runtime.

Runtimectx.sessionMove.inspect()Sidebar drag move
Exact public base 47f943859bef60e4160492346772ded9b24f765a + the bundled patches, built from sourceYesYes
Official installed rc.6, unpatchedYes (read-only)No — every move is refused with the unsupported blocker

Quick install after the patched DSH build:

dsh plugin --profile <profile> add dsh-session-move
# or, from a packed tarball (also works with `pnpm dsh` in a source checkout):
DSH_HOME=<dsh-home> pnpm dsh plugin --profile <profile> add ./dsh-session-move-0.1.0.tgz
dsh --profile <profile> --dump-config

For the complete build-from-exact-base, installation, verification, provenance, and rollback steps, see docs/distribution.md. Use an isolated profile for first-time checks; a profile containing only @deepseek-ai/dsh-base fails activation with "did not activate (waiting for workspaceRegistry, messageFeedback)" until a host bundle is present.

Model Experience

Inspection and journal orchestration add no prompt, message, tool schema, tool result, or model selection. A completed explicit move preserves historical events but changes future working-directory-derived instructions, skills, tools, and sandbox context to the destination.

#### KV Cache effect

Inspection consumes no model tokens and does not affect cache. A completed move retains the event stream but a resumed request may not reuse provider cache entries whose system context includes the old cwd.

Known Limitations and Deferred Work

  • Official installed DSH rc.6 has no relocation or mover capability, so an unpatched runtime only gets the read-only inspect() service. Drag-to-move requires the user-built patched DSH: exact public base 47f943859bef60e4160492346772ded9b24f765a plus the bundled 8-patch series, which adds the cold lifecycle lease, coordinator seam, recoverable POSIX JSONL transaction, mover registration, typed workspace.moveSession RPC, authoritative host/session-moved frame, and official sidebar cross-group drag. This package never patches an installed DSH on its own.
  • The service injects the workspace/feedback host layer: a dsh-base-only profile fails activation with an explicit "did not activate" error until a host bundle (dsh-headless/dsh-web-app) is present.
  • SQLite and Windows relocation are deferred; the first Provider implementation is POSIX JSONL only.
  • Cross-group drag is verified in official UI tests and the assembled Host integration; a real GUI profile drag has not yet been exercised.
  • Filesystem locks stay defense-in-depth under DSH's one-live-writer-per-session/process model; they do not make concurrent live writers cross-process transactional.
  • No active profile or real session is modified during development.
  • Public source commit 47f943859bef60e4160492346772ded9b24f765a labels itself rc.5, while the installed runtime is rc.6; exact build provenance is unavailable.