Files
deepseek-harness/packages/host
Pine e18cfbfb93 feat(plugin-inventory): live plugin activation, mirror install, and toggle lists
Installing a plugin now activates it without a restart: the CLI boot provides a
dshReloadProfile handle that re-runs the profile composition and applies it to
the running root Include, and the install/uninstall Remotes recompose live when
the handle is present (restartRequired: false). Registry installs try the
ordered INSTALL_REGISTRIES mirrors with the official npm registry as the final
fallback, erroring only when every source is unreachable. The enable/disable
guard splits into a REQUIRED_PLUGINS blacklist and a USER_TOGGLEABLE_PLUGINS
whitelist (default toggleable) generated from the running plugin list, and the
offline optional-bundle catalog is emptied (default bundles are not
installable/uninstallable). The plugin-list tab becomes a registry install form
and shows immediate-activation instead of a restart notice.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 20:45:00 +08:00
..
2026-08-13 18:49:33 +08:00
2026-08-13 18:49:33 +08:00
2026-08-13 18:49:33 +08:00

host/ — web-GUI host half

English | 中文

The host side of the dsh web GUI: the API gateway every client shape shares, and the plain HTTP server it rides on. The browser side lives in client/; the composed application is apps/cli booting the dsh-base bundle serving apps/web. All product packages.

Package Role ctx key
apiproxy/ Shared host API gateway and wire contract ctx.apiProxy
webserver/ HTTP route carrier ctx.webServer
frontend-static/ SPA dist server on the webserver fallback seat consumes ctx.webServer
directory-picker/ Workspace-directory picking seam ctx.directoryPicker
directory-picker-native/ Native directory-picker backend and browser interaction registers ctx.directoryPicker
directory-picker-browse/ In-app directory-browser backend and interaction registers ctx.directoryPicker
directory-picker-auto/ Host-adaptive picker composition mounts a backend
plugin-inventory/ Read-only projection of current Loader entries Remote pluginInventory/list

apiproxy remains transport-independent; client/connection supplies the browser/HTTP carrier. Picker implementations replace one another behind the shared seam.

The subsystem references: web-server.md and workspace.md (the picker seam).