The display name read only the user layer while its placeholder claimed a cleared field falls back to the route id. A `cordis.yml` can pin a name for a route the catalog does not ship, and clearing then restores that name, not the id. The placeholder now reads the composition layer — the same layer `inheritedModels` reads — and names the route id only when nothing pins one. The saved notice echoed the target captured when the card opened, which never lied while the name could not change. It now names the provider as the refreshed directory reports it, and is announced only once that refresh is in the snapshot it reads from. The protocol select's blank option is named, because a screen reader announces it either way and an unnamed one is a choice with no identity. `protocolChoices` no longer rehydrates the section schema for the two layouts that have no per-route protocol to find. Documentation caught up with the same broom: the module JSDoc and the e2e header both still described one field where the fold now carries two, the English user guide carried a Chinese UI label among English ones, and the README's DeepSeek row inventory omitted `maxTokens`.
client/ — web-GUI browser half
English | 中文
The browser side of the dsh web GUI: shell boot, browser-host communication, shared UI services, and feature plugins. Authoring rules live in AGENTS.md; the host half is host/. All except test-runtime are product packages named @deepseek-ai/dsh-client-<name>.
| Package | Purpose |
|---|---|
web/ |
Boots the browser shell from the client entry graph. |
modules/ |
Loads browser-side client modules. |
web-react/ |
Connects the shell runtime to React rendering. |
connection/ |
Maintains browser-host RPC communication and event delivery. |
runtime/ |
Provides shared client services for sessions, workspaces, and UI composition. |
hmr/ |
Refreshes client plugins during development. |
locale/ |
Provides localization preferences and message dictionaries. |
schema-form/ |
Provides schema-backed draft handling for settings editors. |
test-runtime/ |
Provides shared repository test support for client feature packages. |
ui-slots/ |
Defines how UI features register and compose extension slots. |
ui-theme/ |
Applies the selected color theme. |
ui-primitives/ |
Provides shared React controls, icons, and content renderers. |
ui-layout/ |
Arranges the main application regions. |
ui-sidebar/ |
Presents workspace and session navigation. |
ui-workspace/ |
Provides workspace selection and creation surfaces. |
ui-conversation/ |
Presents the active conversation and its input surface. |
ui-tool/ |
Composes Tool call trees and keyed per-Tool views. |
ui-goal/ |
Presents and manages the current goal. |
ui-trajectory/ |
Presents alternate views of agent activity. |
ui-command/ |
Provides session-aware command discovery and dispatch. |
ui-slash/ |
Coordinates inline command and reference suggestions. |
ui-skill/ |
Adds skill references to inline suggestions. |
ui-subagent/ |
Provides subagent navigation, child transcript states, and inline references. |
ui-model/ |
Provides model selection in conversation surfaces. |
ui-permission/ |
Configures default permissions and switches the current session's access. |
ui-plan/ |
Presents active plan-mode status and its exit control. |
ui-question/ |
Presents interactive questions requested by the agent. |
ui-agent-preset/ |
Selects a session's agent preset and authors preset compositions. |
ui-settings/ |
Hosts the settings interface and its extension areas. |
ui-settings-general/ |
Provides the general settings section. |
ui-models/ |
Provides model-provider configuration and DeepSeek onboarding. |
Each child reference owns its contract and detailed behavior. The slot system standard and web client architecture note own the cross-package composition and loading decisions.
The subsystem reference is client-modules.md; the slot system standard is the definitive slot model, and the web client architecture note owns the loading chain and object layer.