PerryLink/dsh-session-sync ↗★ 4
dsh-session-sync
Cross-device sync for DeepSeek Harness sessions: a dedicated git mirror of the session store, append-only three-way merge with keep-both + fork conflict resolution, /sync command, sync_pull/sync_push/sync_status tools, and configurable auto push/pull
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-session-sync说明文档
阅读完整 README ↗Configuration
All tunables are Schemastery Config fields (changeable from cordis.yml). An id-targeted override replaces the whole row — restate every key you need. cordis.patch.yml documents each key inline.
| Key | Default | Meaning |
|---|---|---|
enabled | true | Master switch; false unregisters the command, tools, listeners, and auto modes |
backend | git | Sync backend: git (plaintext mirror) or encrypted (age-encrypted mirror content) |
sessionRoot | '' | Session store root; empty = $DSH_HOME/sessions (both missing fails load) |
repoDir | '' | Sync worktree root; empty = $DSH_HOME/dsh-session-sync/repo |
remote | '' | Remote address (required before pull/push; status/diff work without one) |
branch | main | Remote branch name |
gitBin | git | git executable path |
ageBin | age | age executable path (probed for backend: encrypted; missing degrades to plaintext) |
ageRecipient | '' | age recipient (public key or identity string); empty = cannot encrypt, degrades to plaintext |
ageIdentity | '' | Path to a passphrase-less age secret key for decryption; empty = cannot decrypt, degrades to plaintext |
autoPullOnStart | false | Pull once when the plugin mounts (config is the grant; no re-confirm) |
autoPushOnTurnEnd | false | Push after every closed turn |
pullIntervalMinutes | 0 | Periodic pull every N minutes (0 = off, max 10080) |
confirmVia | auto | Confirmation channel: auto (userQuestions first, then approval), userQuestions, approval |
graceMs | 10000 | Grace period for git kills (ms) |
commandTimeoutMs | 120000 | Per-command timeout (ms) |
maxOutputBytes | 262144 | Per-stream collected-output cap (bytes) |
commitName | dsh-session-sync | Commit author name |
commitEmail | dsh-session-sync@localhost | Commit author email |
registerCommand | true | Register the /sync command |
registerTools | true | Register the sync_* tools when the tools service is present |
Example override in your profile patch:
- insert:
- id: session-sync
name: dsh-session-sync
config:
remote: git@github.com:you/your-dsh-sessions.git
branch: main
autoPushOnTurnEnd: true
pullIntervalMinutes: 30
confirmVia: userQuestions