DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Maestro Sync — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
M

@ddtcorex/dsh-maestro-sync

Maestro Sync

Maestro harness sync — 在多台机器间合并记忆和会话(可发布)

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:ddtcorex/dsh-maestro-sync#006d51cf85b2e3d05416b230cc75f44242ba6735
README兼容性版本

兼容性与来源证明

Maestro Sync 以 @ddtcorex/dsh-maestro-sync 发布,当前版本为 0.3.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/13

版本

0.3.2stable
2026/9/13
0.3.1stable
2026/9/13
0.2.0stable
2026/9/2
查看其余 1 个版本收起版本
0.1.0stable
2026/9/1

相关插件

正在加载相关插件…

最新版
0.3.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
未声明
发布源
github
GitHub
★ 2
周下载
0
最近提交
2026/9/18
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Mnemondsh-mnemon面向 DeepSeek Harness 的可组合三层记忆控制平面:持久化运行时上下文、可搜索的项目文档、可插拔的长期记忆、受保护的策略、WebUI 和无头工具。Memory@furongjun1999/dsh-memory灵枢(Lingshu·líng shū)DeepSeek Harness 插件:完整大脑——长期记忆/知识飞轮/自我认知/递归反思接入 DSH,对话自动沉淀进 md_cg 认知图(md 文档)Rewind Plugindsh-rewind-plugin同窗口内对话回退并恢复工作区文件Meow Memorymeow-memoryDeepSeek Harness 的跨会话项目记忆:七层 SQLite 记忆、首轮快照注入、每条消息的关键词命中、memory_remember/search/project 工具、带 reflection-fold UI 的自动反思,以及由空闲触发的梦境整合

README

dsh-maestro-sync

Maestro harness sync — merge memory and sessions across machines (publishable)

DSH Maestro plugin — part of the dsh-maestro-* ecosystem (@ddtcorex/dsh-maestro-sync).

Install

dsh plugin add @ddtcorex/dsh-maestro-sync

Safe Sync — Preview then Apply

Sync is exact, read-only preview first, then confirmed apply:

# 1. Preview (read-only, no writes, 60s TTL) — the only way to see a plan
node lib/cli.js --pull --dry-run      # or --push --dry-run
# stdout: one final JSON SyncPreview { ok, previewId, revision, expiresAt, summary, actions }
# human progress goes to stderr

# 2. Apply the EXACT preview you just reviewed (requires all three)
node lib/cli.js --pull --apply --preview-id <id> --confirm
  • No omitted boolean can apply a sync. --apply without --preview-id and --confirm exits non-zero; the legacy pull/push routes and tools are preview-only compatibility aliases and never write.
  • Stale-guard: apply re-inventories both machines, recomputes the plan and rejects it as STALE_PREVIEW if anything changed since the preview — no write happens against a stale plan. Apply is single-use per preview id.
  • Eligible only: dsh-maestro-memory/**/*.md (no *.bak.*), dsh-maestro-memory/SUGGESTIONS.jsonl, sessions/<hash>/<id>/session.jsonl.zstd
  • Transport: argv-only spawn/rsync --files-from, no shell interpolation; the remote root is a validated absolute path. A ~/.dsh default is resolved to the absolute remote home by the SSH preflight (printf %s '$HOME'), never by shell ~ expansion.
  • Sessions: Buffer/path only via validated Zstd artifact API; the standalone checksummed header frame is preserved and merged line-union.
  • Atomic publish: pull = backup + fsync(tmp) + rename + fsync(dir) per local file; push = materialize to a private operation dir, upload to <root>/.maestro-sync/stage/<op>/, then a fixed POSIX CAS helper validates each target SHA-256 (expectedTargetSha256), backs up and renames atomically. A concurrent remote change is reported as CONCURRENT_MODIFICATION and never overwrites the target.
  • Fail closed: a transport/stage/publish failure is a structured non-zero result with committed/uncommitted journals — ok:true only when every reported file was actually published. No merge-mode fallback to destructive rsync; --strategy=override exists only with a separate --ack-override.
  • Recovery: every overwritten file keeps a timestamped backup beside it (.bak.<ts>.<rand>; remote backups under the same rule). Restore with cp <path>.bak.* <path>.
  • Consent: live Apply is an operator action — the CLI requires --preview-id + --confirm; the Settings UI only offers Apply inside a confirmation dialog bound to a live preview.
  • Host preflight: ssh -o ConnectTimeout=5 must succeed before preview/apply.
  • UI: Settings -> Maestro Sync -> Preview Pull/Push -> review copy/merge/skip/conflict -> confirmation dialog (direction, host, plan age, action counts) -> Apply.

Excluded (never read, hashed or copied): settings, tunnel profiles, secret material, profiles, supervisor state, storages, tools, skills, logs, caches and *.bak.*.

R2 Sync — offsite backup (Cloudflare R2; AWS S3 via the same client, UI hidden)

Backup and restore of the eligible data (memory + session logs) to an S3-compatible bucket through a dependency-free SigV4 client.

  • Config (~/.dsh/maestro/settings.json → domains.sync.r2): accountId, bucket (default maestro-backup), prefix, region; optional provider: "aws" with a real region works through the same client (UI hidden in phase 1).
  • Secret material: environment (R2_ACCESS_KEY_ID/R2_SECRET_ACCESS_KEY, AWS AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY) or a private 0600 sidecar file in the plugin's own runtime dir — never in settings, never logged, never returned by RPC/tools (status shows only Env | Private file | Not configured and the bucket/prefix).
  • Preview Backup is read-only: it compares current eligible hashes against the last manifest in the bucket (no object transfer). Apply is the only upload route: it PUTs missing blobs (content-addressed, idempotent), writes an immutable manifest and CAS-advances the HEAD pointer; ok is reported only after HEAD advances (CONCURRENT_MODIFICATION on a race).
  • Restore: to a new directory (never touches the live home) or in place (each overwritten target keeps a .bak.<ts>.<rand>, fsync+rename), both confirmation-first. GC: retains the newest 30 daily + 12 monthly manifests and deletes only unreachable blobs, confirmation-first.
  • Live R2 conditional-write behavior is pinned by an operator-consent probe after the phase-3 hermetic fake-S3 gate — no R2 account is needed to build or test this feature.

Develop

pnpm --filter @ddtcorex/dsh-maestro-sync verify
pnpm --filter @ddtcorex/dsh-maestro-sync build
pnpm --filter @ddtcorex/dsh-maestro-sync test