Files
deepseek-harness/packages/host
EricMoin 5a31bcc3e0 feat(web): ship launcher-ready install icons
A launcher masks the icon it puts on the home screen, and the install manifest
advertised the bare whale favicon: an SVG mark drawn edge to edge on a
transparent canvas, with no tile and no background of its own. Handed to a
mask it loses its fins, and iOS reads no manifest icon at all, so an installed
Web App showed a generic tile.

Ship four rasters rendered from the desktop application tile: 192px and 512px
`any`, a 512px `maskable` whose artwork is scaled into the circle a platform
mask is guaranteed to show, and a 180px `apple-touch-icon`. Request
`display: standalone` so the phone keeps its status bar, and declare `png` in
the static MIME table so a launcher receives an image.

Agent Note: .agents/notes/implemented/feature/2026-10-13-web-install-icons-and-launch-display.md
2026-10-20 11:58:08 +08:00
..
2026-10-17 15:10:31 +08:00
2026-10-17 15:10:31 +08:00
2026-10-17 15:10:31 +08:00
2026-10-17 15:10:31 +08:00
2026-10-08 19:49:01 +08:00

description, kind
description kind
Package map for the web GUI host half: the HTTP and SPA servers, workspace-directory picking implementations, the open-in-app launch routes, the plugin inventory projection, and explicit product event reporting. package-group

host/ — web-GUI host half

English | 中文

Summary

The host/ group provides the web GUI's HTTP(S) server, the SPA dist server that serves the built Web shell, the workspace-directory picking seam with its native, browse, and adaptive composition packages, the open-in-app application probe and launch routes, the read-only plugin inventory projection, and explicit product event reporting. These 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

The 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
open-in-app/ Application probe, icon, and launch routes opening the workspace directory in an installed application consumes ctx.webServer
plugin-inventory/ Read-only projection of current Loader entries Remote pluginInventory/list
product-telemetry-otel/ Explicit product usage events over OTLP/HTTP ctx.productTelemetry

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.