dshp-plugin-panel runtime architecture

dshp-plugin-panel runtime architecture An architecture diagram generated by Archify. Agent / slash commands · session_skill_* · session_mcp_* · Architecture component Agent / slash commands session_skill_* · session_mcp_* Plugin panel UI · React · Skills / Plugins tabs · Architecture component Plugin panel UI React · Skills / Plugins tabs PluginPanelService · webServer · /plugin-panel/* · DSH host process (web profile) PluginPanelService webServer · /plugin-panel/* Session capability manager · SessionSkillStore · McpManager · DSH host process (web profile) Session capability manager SessionSkillStore · McpManager cordis composition · registry fibers · hot mount · DSH host process (web profile) cordis composition registry fibers · hot mount Host plugin manager · PluginManager · write guard · DSH host process (web profile) Host plugin manager PluginManager · write guard Skill pool · ~/.dsh/.skill-pool/local/ · $DSH_HOME · disk (composition write boundary) Skill pool ~/.dsh/.skill-pool/local/ Session introduce-set · .session-skills/<sessionId>.json · $DSH_HOME · disk (composition write boundary) Session introduce-set .session-skills/<sessionId>.json Composition files · patch.yml · bundles · node_modules · $DSH_HOME · disk (composition write boundary) Composition files patch.yml · bundles · node_modules POST /plugin-panel/* register / connect (session) skill* / mcp* plugin* mcp-client register, no copy persist · replay write patch / bundles watcher hot reload DSH host process (web profile) $DSH_HOME · disk (composition write boundary) Legend Frontend Backend Database External

Three faces, one core

  • • Panel, /skill-* commands, and session_skill_* tools share one SessionSkillStore
  • • Skills and MCP are session-level; both live in the agent context
  • • Introduce is pure registration: resourceBase points back at the pool

Two kinds of mount

  • • patch: cordis.patch.yml insert row, watcher hot reload
  • • bundle: dsh.profile.bundles, read at startup, needs a restart
  • • The panel itself is mounted by the same composition layer

Write protection

  • • Every write: .bak backup → parse check → temp file + rename
  • • Failure rolls back; mcp select restores the global row
  • • promote edits node_modules in place; pnpm update reverts it

Session isolation

  • • Introduce-set lands in <poolRoot>/.session-skills/<sessionId>.json
  • • Only sessions starting with source==='resume' replay it
  • • A same-name skill shadows the global one in that session only