Repository navigation
Replies: 1 comment
|
Your root cause is right, and it is structural. The plugin declares host packages as peers
"peerDependencies": {
"@deepseek-ai/cordis": "workspace:~",
"@deepseek-ai/dsh-llm": "workspace:*",
"@deepseek-ai/dsh-session": "workspace:*",
"@deepseek-ai/dsh-subagent": "workspace:*",
"@deepseek-ai/dsh-subprocess": "workspace:*",
"@deepseek-ai/dsh-timeout": "workspace:*"
}And the profile never installs peers
nodeLinker: hoisted
autoInstallPeers: falseSo The What actually has to change Either ship this plugin from the installation anchor instead of the profile (the anchor's Until then: Read-only source inspection at |
Uh oh!
There was an error while loading. Please reload this page.
Summary
The official
@deepseek-ai/dsh-subagent-codex@0.2.1-rc.2bundle installs and reports as enabled, but its provider and delegation tool never register — even after restarting the app.subagent_codexnever appears, so the feature is completely unusable.Root cause: when loaded from a profile's
node_modules, the plugin cannot resolve its peer dependencies (host-internal packages such as@deepseek-ai/dsh-subagent,@deepseek-ai/dsh-timeout,@deepseek-ai/dsh-subprocess), so the module import fails and the provider is never registered.Environment
~/.dsh/profiles/desktopnodeLinker: hoisted,autoInstallPeers: false(from the profile'spnpm-workspace.yaml)~/.codex/auth.jsonexists)Steps to reproduce
+ @deepseek-ai/dsh-subagent-codex 0.2.1-rc.2, 10 packages).Expected behavior
The bundle's two rows (
subagent-codexprovider +tool-subagent-codextool) are registered, and thesubagent_codextool is exposed to agents.Actual behavior
list_bundlesshows the bundle asenabled: true, installed: true, and it is present inpackage.json→dsh.profile.bundles(5th entry).include:subagent-codex/include:tool-subagent-codex.Config.listConfigs(name = "@deepseek-ai/dsh-subagent-codex")returns 0 entries.Config.listConfigs(name = "@deepseek-ai/dsh-tool-subagent")returns only the 2 inactive base rows (tool-subagent,tool-subagent-fork); thetool-subagent-codexrow is absent.subagent_codex.Root cause analysis
@deepseek-ai/cordis,@deepseek-ai/dsh-llm,@deepseek-ai/dsh-session,@deepseek-ai/dsh-subagent,@deepseek-ai/dsh-subprocess,@deepseek-ai/dsh-timeout(all0.2.1-rc.2range).pnpm-workspace.yamlhasautoInstallPeers: false, so installation only installs the plugin's hard dependencies (dsh-brand,dsh-sdk-protocol,schemastery,dsh-tool-subagent,@openai/codex, …) — not the peer dependencies.app.asar'snode_modules; a profile plugin using ESMimportcannot resolve into the asar (the profilenode_modulesand the host are two separate directory trees).Note: these peer versions are published on npm (
@deepseek-ai/dsh-timeout@0.2.1-rc.2,@deepseek-ai/dsh-subagent@0.2.1-rc.2, …), so manually installing them is technically possible — but that is not a correct fix, because the provider must register into the hostctx.subagentssingleton (registerProvider). Installing separate copies in the profile would create different module instances and register into the wrong registry.Impact
subagent_codexnever appears; the official Codex delegation feature is completely unusable.@deepseek-ai/dsh-subagent-claude-codeis likely affected by the same issue.Suggested fixes (for the maintainers)
Any one of:
@deepseek-ai/*packages as ambient modules to profile plugins (ESMimportresolves to the host's real instances), preserving singleton semantics.autoInstallPeers.availability— mark bundles that need host-internal peer packages asinstallation(host-installed) instead ofprofile, to avoid the resolution break across the two directory trees.Additional (possibly orthogonal) observation
Even bypassing the plugin and running
codex execdirectly, it fails under the DSHworkspace-writesandbox:(Codex initialization needs to write PATH aliases / create its app-server, which exceeds the sandbox's writable scope.) It works after granting
danger-full-access.All reactions