Releases: zoahdev/dsh-plugin-doctor
Release list
dsh-plugin-doctor v1.14.0 — profile-deps + native-modules (#2081)
dsh-plugin-doctor v1.14.0
Two new --profile tripwires for the installation-reliability class reported in
discussion #2081:
profile-deps— detects a pruned runtime@deepseek-aiscope (a bare
npm installinside$DSH_HOME/profiles/node_modulesprunes the whole tree
anddsh webthen fails withERR_MODULE_NOT_FOUND).native-modules— flags missingkoffi/node-pty(npm 11 defaults
allow-scripts=false, so native builds are silently skipped).
Verified: 45/45 tests, pnpm typecheck clean, and both checks run against a
real ~/.dsh/profiles/web profile (195-entry runtime scope, koffi + node-pty
present → PASS).
安装 / Install:
dsh plugin --profile web add ./dsh-plugin-doctor-1.14.0.tgzFull troubleshooting guidance (npm 11 allow-scripts, Node >= 22.19, never
npm-install inside a profile dir): https://github.com/zoahdev/dsh-docs/blob/main/docs/troubleshooting.md
dsh-plugin-doctor v1.13.0 - dsh env explain
dsh-plugin-doctor v1.13.0
New command: dsh env explain (secret-safe environment provenance, discussion #1953)
- Explains which layer won for one env key: launch environment > project .env > user .env.
- Empty values never mask lower layers (#981 semantics) - the skip is recorded.
- The raw value never appears anywhere: �alue is the constant [redacted]; tests assert the real value string is absent from the serialized report.
- JSON envelope per the #1953 contract: key / resolved / source / layers / value.
- States: absent / empty / selected / lower-precedence / non-regular-path / unreadable (rejected-protected reserved for harness-internal rules).
Usage:
npx dsh-plugin-doctor env explain DEEPSEEK_API_KEY
npx dsh-plugin-doctor env explain MY_KEY --json
Tests: 40/40 + dsh-doctor/v1 contract check green.
dsh-plugin-doctor v1.12.0 - entry-points check
dsh-plugin-doctor v1.12.0
New profile check: entry-points
- Scans every installed plugin's main/exports targets and FAILs when a build artifact is missing (source-copy marketplace install without build crashes dsh web at boot - discussion #1965).
- Covers unscoped/scoped packages, string exports, and exports["."] maps.
- Usage:
px dsh-plugin-doctor --profile ~/.dsh/profiles/web
Tests: 35/35 + dsh-doctor/v1 contract check green.
dsh-plugin-doctor v1.11.0 — shell-launcher risk check
New shell-launcher preflight check (heuristic): warns when child_process usage invokes explorer/start/open/powershell/cmd surfaces that can bypass approval and workspace limits (discussions #1923/#1863). 31/31 tests; doctor self-check exit 0.
dsh-plugin-doctor v1.10.2 — fix SQL exec false positive
pre-execute-side-effects lint no longer flags bare exec( calls (node:sqlite DatabaseSync.exec and DSL methods are SQL, not shell) — the dsh-mneme false-positive class (#1928). New regression test; 28/28 tests; doctor self-check exit 0.
dsh-plugin-doctor v1.10.1
Fixes pre-execute-side-effects self-false-positives: only real listener registrations count (quoted event names / method calls), tests dirs are skipped, and the regex no longer matches its own source. 27/27 tests; doctor now passes its own check (exit 0).
dsh-plugin-doctor v1.10.0
New large-files profile check: warns when profile files exceed 100 MB (session logs can hit the ~512 MB JSON.stringify cap, discussion #1859). Skips dependency trees; 25/25 tests pass.
dsh-plugin-doctor v1.9.0
New pre-execute-side-effects lint (heuristic): flags pre-execute listeners that call host-level side-effect APIs (child_process/fs writes/network) before returning ask — the #1863 class. Runs in the default pipeline; 22/22 tests pass (serialized to avoid pnpm contention).
dsh-plugin-doctor v1.8.0
New win-bash environment check: verifies the default /bin/bash used by the minimal preset can resolve on Windows (PATH/Git for Windows/WSL), with an actionable message pointing at discussion #1856. 19/19 tests pass.
dsh-plugin-doctor v1.7.0
Adds the check subcommand — an alias of the pre-publish pipeline matching the proposed \dsh plugin check\ surface from RFC #1846. 16/16 tests pass.