dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DSH self-recovery: zero-dependency CLI (scan/snapshot/rollback/safemode/boot-probe/doctor) + in-process watchdog plugin. Process-external boot gate, tiered recovery ladder, safe/repair profiles.
中文版本请见 README-ZH.md
DeepSeek Harness recovery system: a pure Node, zero-runtime-dependency CLI plus an in-process watchdog bundle that helps DSH recover from broken configuration, plugins, presets, sessions, or upgrade regressions using a staged flow of diagnose → snapshot → rollback → safe mode → boot verification.
| Command | Purpose |
|---|---|
scan | Scan profile, settings, storages, user presets, and sessions for common corruption |
snapshot | Create recovery snapshots; supports composition, user assets, and optional data tier |
rollback | Roll back to --latest, --good, or --id <id> |
safemode enter/exit | Enter or exit the safemode profile |
boot-probe | Run static and real boot verification in a temporary DSH_HOME |
doctor | Aggregate scan results, state, snapshot inventory, and recovery hints |
list | List snapshots |
launch | Launch wrapper with transparent argv forwarding, boot markers, and the recovery ladder |
quarantine | Manage quarantined rows |
unquarantine | Restore a quarantined row |
guard | Safemode profile guard |
Common flags:
--home <dir>: defaults to $DSH_HOME / ~/.dsh--profile web: default profile--dsh <dir>: defaults to $DSH_RECOVERY_DSH_DIR--json: machine-readable outputExit codes:
0: success1: error / probe failure2: usage errornode bin/dsh-recovery.mjs scan --json
node bin/dsh-recovery.mjs snapshot --reason before-upgrade
node bin/dsh-recovery.mjs boot-probe --live --mark-good
node bin/dsh-recovery.mjs rollback --good
DSH_HOME=~/.dsh node bin/dsh-recovery.mjs safemode enter
node bin/dsh-recovery.mjs launch --profile web -- --port 3080
If pnpm is unavailable, --install will emit a clear warning. You can point to a binary with --pnpm <bin> or DSH_RECOVERY_PNPM.
settings.yaml is stored as a redacted structure by default (secret keys → ***) plus the original SHA-256.credentials.yaml is fingerprinted only; its contents are never copied--include-settings is required to store the raw settings.yamlboot-probe writes only to a temporary home under $TMPDIR; the real home is never modifiedboot-probe passes --no-open, so it will not open a browser# Replace direct dsh startup: transparent forwarding + boot marker + automatic recovery
node bin/dsh-recovery.mjs launch --profile web -- --port 3080
# Quarantine management and one-step restore
node bin/dsh-recovery.mjs quarantine list
node bin/dsh-recovery.mjs unquarantine --id <row-id>
# Safemode profile guard
node bin/dsh-recovery.mjs guard --once
node bin/dsh-recovery.mjs guard --poll-ms 30000
The launcher records recovery state in recovery/journal.log and recovery/incidents/:
disabled row is written and the process is restartedsafemodeThresholds live in recovery/config.json under boot.* and guard.*, and can be overridden. launch also accepts:
--retries--ready-ms--threshold--window-ms--no-ladder--no-auto-safe-bootpackages/dsh-recovery-watchdog is an installable dsh bundle:
dsh plugin --profile web add link:/abs/path/dsh-recovery/packages/dsh-recovery-watchdog
It is responsible for:
standardnpm test # node --test; runs in isolated DSH_HOME copies and never touches real ~/.dsh
Current test coverage includes:
@deepseek-ai/dsh@0.1.1-rc.2 and Node 24boot-probe and launch depend on a usable DSH installationdocs/ACCEPTANCE.mddocs/dsh-recovery-design.mddocs/dsh-recovery-research.mddocs/ACCEPTANCE.md