Repository navigation
Document DSH compatibility gate and version exemptions - #1
Merged
Merged
Conversation
DSH refuses to mount a bundle whose @deepseek-ai/dsh* peers do not match the running runtime, and prints the skip on stderr. That failure looks like a broken install, so state the gate, the exact message, and the `dsh plugin allow-version` escape hatch, plus the two other things that read as install bugs but are not: DSH never reads plugin.json, and the @deepseek-ai/* peers come from the installation rather than the profile. Also say what `dsh plugin add` actually does: the plugin manager's reconcile step appends a dependency that declares dsh.bundle to the profile's bundle list, so the install does register the layer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only. No behavior change.
Why
DSH gates a bundle before mounting it: it reads the plugin's
@deepseek-ai/dsh*peer requirements (orengines.dshwhen present) against the running runtime and, on a mismatch, skips the whole layer and printsdsh: skipping profile bundle "dsh-pstack": .... To a user that reads as a broken install. This package peers on@deepseek-ai/dsh-skill@^0.2.1-rc.2, so any DSH 0.3.x will hit the gate and pstack will silently vanish from the/menu until the peer range moves.What
## compatibilitysection. The gate, the exact skip message, and the two remedies: upgrade pstack, ordsh plugin allow-version <pkg@ver> --dsh-version <exact> --accept-risk(stored per pair in$DSH_HOME/profiles/<profile>/compatibility.json, inspectable withversion-exemptions, also offered in the plugin manager UI).package.json(dsh.bundle.patch,icon, optionalengines.dsh) and never readsplugin.json; the@deepseek-ai/*peers are supplied by the installation, so a standalonenpm installcannot resolve them.dsh plugin addalso appends the bundle row: the plugin manager'sreconcile()adds any new dependency that declaresdsh.bundle. The old wording ("edits the profile and installs the package") was right in effect but did not say which half does what.Verified against
Packaged DSH 0.2.1-rc.3 (macOS desktop app),
dsh-pstack0.15.33 @fbc1aae:unmetRequirements()/evaluatePluginCompatibility()in@deepseek-ai/dsh-app-boot— peer-name prefix rule,includePrereleasesemantics.reportSkippedBundles()— the stderr line quoted above.pluginCompatibilityWarning()andrunPluginin@deepseek-ai/dsh—allow-version/revoke-version/version-exemptionsinterception,compatibility.jsonstorage.plugin.jsonreference anywhere in the shipped@deepseek-ai/*packages.reconcile()in@deepseek-ai/dsh-plugin-manager/lib/types/operations.js— bundle auto-registration.node scripts/validate.mjs→ Validated 58 skills, 23 playbooks, 24 principles, and the DSH bundle manifest.