
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-autoupdate
Advanced tools
Built-in auto-update plugin for dsh (DeepSeek Harness): manual update check from the Settings page, guarded update pipeline with health check, automatic rollback, circuit breaker and degrade ladders.
A built-in auto-update plugin for dsh (DeepSeek Harness). It adds a 检查更新 (Check for Updates) section to the dsh Settings page: one click checks npm for a new @deepseek-ai/dsh release, a confirm dialog schedules it, and a guarded update transaction — exit-time install, health verification, automatic rollback — does the rest.
autoCheck: true restores the v1.0.0 periodic mode)latest, rc, …)process.argv[1]) and installs into it with --prefix — immune to multi-Node PATH confusionauto → notify → off; any success restores full automationdsh plugin --profile <p> update (with manifest backup/restore)For the local v1.1.3 fix, run dsh plugin --profile web add ./dsh-autoupdate-1.1.3.tgz from this project and restart dsh. Check and confirm in Settings → Updates, then exit the dsh process (closing the browser is insufficient). Wait for helper-result.json to report phase: "done" before restarting. Automatic application requires a discoverable npm global installation; an unknown prefix is rejected.
Install into any dsh profile through the official plugin channel:
# from npm
dsh plugin --profile web add dsh-autoupdate
# from GitHub
dsh plugin --profile web add github:lc23313/dsh-autoupdate
# from a local tarball (offline sharing)
dsh plugin --profile web add /path/to/dsh-autoupdate-1.1.3.tgz
Verify it was registered as a profile layer, then restart dsh:
dsh --dump-config --profile web # should list the auto-update row (name: dsh-autoupdate)
By default, open Settings → Updates and click Check for updates. With autoCheck: true, checks run 30 seconds after boot and every 6 hours. State and logs live in $DSH_HOME/plugins-data/dsh-autoupdate/ (default ~/.dsh/).
Defaults live in the package's own cordis.patch.yml; override them per profile in ~/.dsh/profiles/<name>/cordis.patch.yml (a user-layer row replaces the row's whole config; omitted keys fall back to schema defaults):
- id: auto-update
config:
channel: rc # track the rc dist-tag
checkIntervalMs: 3600000 # check hourly
| Option | Default | Description |
|---|---|---|
enabled | true | Master switch; false = no-op |
channel | "latest" | npm dist-tag to track; falls back to latest |
autoApply | true | false = detect + notify only (prints a manual command) |
autoCheck | false | v1.1.0: false = manual mode (Settings button only); true = v1.0.0 periodic checks |
checkIntervalMs | 21600000 | Check interval when autoCheck: true (6 h; floor 5 min) |
startupDelayMs | 30000 | Delay before the first check after boot |
maxConsecutiveFailures | 3 | N failures → notify, 2N → off |
cooldownMs | 86400000 | Pause auto-apply after an apply failure |
npmTimeoutMs | 30000 | Timeout for npm queries |
installTimeoutMs | 300000 | Timeout for npm install / pnpm update |
npmCommand / dshCommand | npm / dsh | Command overrides (absolute paths allowed) |
registry | "" | npm registry override (mirrors) |
updateProfilePlugins | true | Refresh user plugins in profiles after a CLI update |
profiles | [] | Which profiles to refresh; empty = auto-detect profiles depending on this plugin |
logToConsole | true | Mirror log lines to the dsh console |
detect new version X
└─ arm: spawn detached helper (polls this dsh process by pid)
└─ dsh exits (gracefully or killed)
└─ helper re-confirms the arm in state.json (stale arms abort)
└─ npm install -g @deepseek-ai/dsh@X --prefix <running dsh's prefix>
└─ on failure: retry ×3 → verify old version intact → stop
└─ verify: manifest version == X AND `node <bin> --version` prints X
└─ mismatch → reinstall previous version → re-verify → record rollback
└─ (optional) per-profile: backup manifests → dsh plugin --profile <p> update
└─ write helper-result.json + update state.json
next dsh boot → consume the result → feed the circuit breaker → log the outcome
Before installing any plugin that can run package installs, you should know exactly what this one does:
npm (version queries, npm install -g @deepseek-ai/dsh@<exact version> into the prefix dsh itself runs from) and, optionally, dsh plugin --profile <p> update|install for profiles that depend on this plugin.settings.yaml, cordis.patch.yml, profile manifests). All state/logs are confined to $DSH_HOME/plugins-data/dsh-autoupdate/.autoupdate.log — audit it any time.| Task | How |
|---|---|
| Inspect state | cat $DSH_HOME/plugins-data/dsh-autoupdate/state.json |
| Read the log | cat $DSH_HOME/plugins-data/dsh-autoupdate/autoupdate.log |
| Reset the breaker | delete state.json |
| Roll back manually | npm install -g @deepseek-ai/dsh@<old-version> |
| Disable auto-apply | set autoApply: false (detection + notification remain) |
| Diagnostics | boot dsh with DSH_AUTOUPDATE_DOCTOR=1 |
| Uninstall | dsh plugin --profile <name> remove dsh-autoupdate |
off); periodic recovery probes resume checks after reconnect; successful checks clear check-failure degradation.startupDelayMs for those workflows.npm test # offline regression and UI tests
node scripts/dev-smoke.mjs # end-to-end smoke test (real detection, autoApply forced off, zero side effects)
Design notes on surviving dsh breaking updates: docs/COMPATIBILITY.zh.md (Chinese).
FAQs
Built-in auto-update plugin for dsh (DeepSeek Harness): manual update check from the Settings page, guarded update pipeline with health check, automatic rollback, circuit breaker and degrade ladders.
The npm package dsh-autoupdate receives a total of 28 weekly downloads. As such, dsh-autoupdate popularity was classified as not popular.
We found that dsh-autoupdate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.