dsh-session-port
其他 活跃维护

dsh-session-port

seth-hg/dsh-session-port

会话管理插件,可将单次会话的日志、子智能体、媒体、关联工作区文件全量打包为单个便携ZIP压缩包,支持在任何兼容环境里一键还原恢复,无需手动整理散落的会话资料。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
118 KB
仓库大小
19 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:seth-hg/dsh-session-port
git clone https://github.com/seth-hg/dsh-session-port.git
git clone git@github.com:seth-hg/dsh-session-port.git
README.md main

dsh-session-port

Port a session in and out of DeepSeek Harness — bundle one session into a single ZIP and restore it anywhere.

中文

What it does

Export a session with everything it references — the log (root + subagents), media, and the workspace files — into one archive, then import that archive on another DSH, fully restored and re-attached to its workspace.

Action What it does
Export Streams one ZIP: manifest → logs → subagents → media → referenced workspace files
Import Restores sessions, media, and workspace files; remaps paths; auto-attaches the session to its workspace
Repair Re-attaches an imported session and re-folds its title (fixes "ungrouped" / missing name)

Install

Requires Node.js ≥ 22.10 and pnpm (dsh plugin uses pnpm underneath).

# From GitHub (default branch, or pin a tag)
dsh plugin --profile web add "github:seth-hg/dsh-session-port"
dsh plugin --profile web add "github:seth-hg/dsh-session-port#v0.1.4"

# From a local checkout
dsh plugin --profile web add /path/to/dsh-session-port

Restart dsh web. Two Export / Import buttons appear in the session header.

Usage

From the session header

  • Export — downloads session-port-<id>.zip.
  • Import — pick a .zip; it restores into the current session's workspace (the header cwd).

Import also accepts DSH's built-in session-log export (the header /export download): it restores the root session, subagents, and media. That export carries no workspace files, so none are expected.

From the HTTP routes (loopback-trusted)

# Export (scope=referenced by default, or workspace)
curl 'http://127.0.0.1:3080/wsx/session-pack?sessionId=<id>&scope=referenced' -o out.zip

# Import into a workspace (path remap: old::new)
curl -X POST 'http://127.0.0.1:3080/wsx/session-pack/import?workspace=/path/to/workspace&remap=/old::/new' \
  --data-binary @out.zip

# Repair an imported session (re-attach + re-fold title)
curl -X POST 'http://127.0.0.1:3080/wsx/session-pack/repair?sessionId=<id>'

HTTP API

Route Method Purpose
/wsx/session-pack?sessionId=<id>&scope=referenced\|workspace&level=0-9 GET Stream the ZIP archive
/wsx/session-pack/import?workspace=<dir>&remap=<old>::<new> POST Restore an archive (JSON summary)
/wsx/session-pack/repair?sessionId=<id> POST Re-attach + re-fold title (idempotent)

License

MIT