Replies: 2 comments
|
A mechanism note that may unblock part of this today, plus where the real gaps are. The tool registry is scope-aware: a plugin mounted inside an agent's composition registers its tools into that agent's scope, and they unwind when the agent disposes. Agent presets are exactly such compositions - a yaml list of plugin rows mounted per session.
Since presets can be copied and selected per session ( What preset-scoping does NOT give you, and where I think the feature request should aim:
So the suggested direction in your last paragraph (workspace-scoped subtree) is right for 1-3, but the visibility/conflict half of the ask is reachable now through preset placement, which might take the pressure off while the bigger design lands. |
|
The MCP half of this is available today; the skills half is not, so let me be precise about which is which.
dsh plugin --profile web add pi2dsh
dsh plugin --profile web add pi-mcp-adapter
# restart dshOur suite plugin Two honest limits:
Evidence: examples/tui-mcp · capability matrix |
Uh oh!
There was an error while loading. Please reload this page.
Environment
@deepseek-ai/dsh v0.1.0-rc.6
Using dsh web / dsh --profile tui to manage multiple project workspaces in one instance.
Problem
DSH can boot once and manage multiple workspaces, which is great.
But the plugin/MCP tree is composed once at boot (profile/cordis.patch.yml + home patch + --patch), so MCP servers are process-global and cannot switch per workspace.
Skills are already discovered per project (/.dsh/skills), but the MCP tools those skills depend on cannot be provided per project.
Result: project-specific MCPs either require one DSH instance per project (dsh web --patch .dsh/cordis.patch.yml), or must be placed globally — which exposes every workspace to every project's database tools and causes server-name conflicts.
Expected behavior
One global DSH instance, multiple workspaces.
When opening/switching a workspace, both skills and MCPs are strongly isolated per workspace:
Each workspace exposes only its own skills (project-level discovery already exists for skills; please keep tool visibility consistent with it).
Each workspace starts only its own MCP servers (e.g. auto-load /.dsh/cordis.patch.yml or /.dsh/mcp.json).
Leaving a workspace stops/disposes its MCP connections; credentials must never leak across projects.
Same serverName in different workspaces must not conflict; tool names should be namespaced or scoped per workspace.
Suggested direction
Move MCP from boot-time global tree to a workspace-scoped service, or at least filter tool visibility per active workspace.
Keep --patch as explicit override, while supporting automatic project-level patch discovery from /.dsh/, similar to how skills are discovered.
Current workaround
Run one DSH instance per project with --patch and different ports. It works, but loses the single-instance multi-workspace advantage.
All reactions