The precise riskSharing a root is not instant corruption. Two independent live processes reaching the same Session artifact is the dangerous condition.
Process-local safety stops at the process boundary.
Choose concurrency or shared history.
Give Web, headless, ACP, SDK, and tests distinct homes or persistence roots.
DSH_HOME="$HOME/.dsh-web"Stop, flush, verify exit, then let the next owner cold-load the Session.
owner A stops → owner B startsinstall -d -m 700 "$HOME/.dsh-web" "$HOME/.dsh-headless"
DSH_HOME="$HOME/.dsh-web" npx @deepseek-ai/dsh web
DSH_HOME="$HOME/.dsh-headless" npx @deepseek-ai/dsh --profile headless "inspect the repository"
Ports do not separate storage.
Different portmay still resolve the same
~/.dshDifferent profilemay still share one home and Session root
Closed tabdoes not prove the Web Host exited
SQLite rejectionis not successful multi-writer coordination
Handoff one owner cleanly.
- Stop admissionNo new turns or automation jobs.
- Drain workWait for tools, background jobs, and child Agents.
- Terminate onceAllow graceful disposal and Session flush.
- Verify exitConfirm no PID still owns the root.
- Cold-loadStart the next owner only after quiescence.
Primary evidence.
- Official persistence contract and cross-process limitation
- Live Session sequence assignment
- JSONL durable append path
- SQLite Session sequence primary key
- Real incident, reproduction, and rc.7 A/B
Keep the operator checklist.
The full runbook covers process inventory, service-manager overlap, offline evidence, and custom persistence roots.
Read the full runbook