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.

Concurrent surfacesSeparate writable roots.

Give Web, headless, ACP, SDK, and tests distinct homes or persistence roots.

DSH_HOME="$HOME/.dsh-web"
Shared historySerialize ownership.

Stop, flush, verify exit, then let the next owner cold-load the Session.

owner A stops → owner B starts
install -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 ~/.dsh
Different 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.

  1. Stop admissionNo new turns or automation jobs.
  2. Drain workWait for tools, background jobs, and child Agents.
  3. Terminate onceAllow graceful disposal and Session flush.
  4. Verify exitConfirm no PID still owns the root.
  5. Cold-loadStart the next owner only after quiescence.

Primary evidence.

Keep the operator checklist.

The full runbook covers process inventory, service-manager overlap, offline evidence, and custom persistence roots.

Read the full runbook