Files
deepseek-harness/packages/host
Yichen Jiang e3386d1105 feat(plugins): judge an install after pnpm, restore the manifest on failure, run one mutation at a time
A successful `pnpm add` is no longer the end of `plugins/install`: a new
package that declares neither a bundle nor a plugin module, or a bundle
whose row id a composed layer already owns, is removed again and reported
under `removed` with its reason, while a package the probe refused stays
for the view to explain. The profile manifest is snapshotted before the run
and restored when pnpm fails. The manager refuses a second mutation while
one runs (`plugins/busy`) instead of racing on the manifest and user
layers, and `install`/`uninstall` refuse while a session is running
(`plugins/agents-running`), because pnpm rewrites the directory those
sessions import from.

`resolveProfileLayer` factors one bundle's layer out of `loadProfile` so the
manager can judge a candidate against the composed layers.
2026-09-04 13:41:20 +08:00
..
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00
2026-09-03 02:27:19 +08:00

description, kind
description kind
Package map for the web GUI host half: the HTTP and SPA servers, workspace-directory picking implementations, and the plugin inventory projection. package-group

host/ — web-GUI host half

English | 中文

Summary

The host/ group provides the web GUI's plain HTTP server, the SPA dist server that serves the built Web shell, the workspace-directory picking seam with its native, browse, and adaptive composition packages, and the read-only plugin inventory projection. All seven packages are product packages; the browser transport lives in client/, and the composed application is apps/cli booting the dsh-base bundle that serves the web app under apps/web/. The picker backends replace one another behind the shared seam.

Table of Contents


Packages

Seven packages play the host roles; each package README owns its contract and configuration.

Package Role ctx key
webserver/ Browser HTTP server: named routes, upgrades, index taps, and the fallback seat ctx.webServer
frontend-static/ SPA dist server on the webserver fallback seat consumes ctx.webServer
directory-picker/ Workspace-directory picking seam: capability contract and error vocabulary ctx.directoryPicker
directory-picker-native/ Native-OS-chooser backend for operators at the host display registers ctx.directoryPicker
directory-picker-browse/ In-app directory-browser backend, including for remote clients registers ctx.directoryPicker
directory-picker-auto/ Host-adaptive chooser that mounts the matching backend at boot mounts a backend
plugin-inventory/ Read-only projection of current Loader entries Remote pluginInventory/list

Start with the subsystem references for the transport and the workspace records, then the layering decision behind the Web client.

Dev Note

Working context for maintainers — click to expand

None.