* feat(experimental): ship the two card experiments as one Personalized recommendations bundle @deepseek-ai/dsh-personalized-recommendations inserts the action card service, its browser half, Personalized pages and Plugin recommendations with their card bodies under the existing row ids. As the only layer that declares those ids, the Plugins page addresses and switches each row, including the two shared card rows that were read-only while two bundles inserted them. The two experiment packages stop being bundles; the new bundle takes their place in the official lists and the dsh installation, with the personalized pages icon, localized title and description, and a feature preview of both cards. The two feature rows describe what they do on the bundle page. * fix(experimental): drop the model reason line from plugin recommendation cards The reason follows the language of the user's question while the catalog description below it follows the interface language, so the two lines could differ in language and largely repeat each other; the answer already gives the reason. The card keeps the catalog title and description, both in the interface language, as its details target. * test(web): refresh the card fixtures for the Personalized recommendations bundle Both card replays enable the new bundle, so each Session lists both card skills, and each skill's catalog lists Personalized recommendations in place of the two former bundles. The plugin card goldens lose the reason line. --------- Co-authored-by: ZiyaZhang <[email protected]>
description, kind
| description | kind |
|---|---|
| Package map for the web GUI browser half: shell boot, browser-host communication, shared client services, localization, development reload, and the UI feature plugins. | package-group |
client/ — web-GUI browser half
English | 中文
Summary
The client/ group provides the browser experience for the dsh web GUI, including conversation, navigation, settings, approvals, file access, and other interactive features. Choose packages from this family when adding browser-visible behavior; use host/ for server-side page delivery and host integration. Packages cover both the shared browser foundation and focused UI features, while each child README owns its configuration and behavior. Authoring rules live in AGENTS.md, and the related documentation below explains cross-package composition.
Table of Contents
Packages
The kernel packages boot and serve the page; the UI feature packages present it. Each package README owns its contract and configuration.
| Package | Role | ctx key |
|---|---|---|
web/ |
Boots the browser shell | — |
modules/ |
Loads browser-side client modules | ctx.clientModules / ctx.modules |
connection/ |
Maintains browser-host RPC communication and event delivery | ctx.connection |
file-upload/ |
Sends raw Blob and byte-stream request bodies outside the page thread | ctx.fileUpload |
shortcuts/ |
Registers application keyboard commands | ctx.shortcuts |
ui-shortcuts/ |
Presents the keyboard shortcut reference | — |
store/ |
Provides React-free observable and snapshot-store primitives | — |
hmr/ |
Refreshes client plugins during development | — |
locale/ |
Provides localization preferences and message dictionaries | ctx.locale |
test-runtime/ |
Shared repository test support for client feature packages | — |
ui-renderer/ |
Binds slot data to React and mounts the assembled application | ctx.uiRenderer |
ui-slots/ |
Defines typed extension Slots and reusable Component Factories | — |
ui-session/ |
Adapts Session Controller state into standard Slot sources and hooks | — |
ui-theme/ |
Applies the selected color theme | — |
ui-primitives/ |
Provides shared React controls, icons, and content renderers | — |
ui-attachment/ |
Registers composer and message-image attachment presentation | — |
ui-layout/ |
Arranges the main application regions | — |
ui-dockkit/ |
Provides docking layout operations and React components | — |
ui-sidebar/ |
Presents workspace and session navigation | — |
ui-sidebar-right/ |
Owns the right Sidebar and its tab types | ctx.sidebarRight, ctx.sidebarRightTabs |
ui-sidebar-documentpreview/ |
Displays documents in right Sidebar tabs | ctx.documentPreviews |
ui-sidebar-browser/ |
Browses sandboxed HTTP(S) pages, including loopback services, in right-Sidebar tabs | — |
resources/ |
Unified resource model: protocol providers behind the useResource session standard hook |
ctx.resources |
ui-sidebar-files/ |
Right-Sidebar workspace file tree tab type | — |
ui-brand-official/ |
Fills the generic browser-brand slots with the official name and marks | — |
ui-workspace/ |
Provides workspace selection and creation surfaces | — |
ui-conversation/ |
Presents the active conversation and its input surface | — |
ui-chat/ |
Projects and renders the Chat conversation target | — |
ui-approval/ |
Presents approval requests and returns user decisions | — |
ui-tool/ |
Composes Tool call trees and keyed per-Tool views | — |
ui-workflow-run/ |
Replays durable workflow runs as nested chat disclosures | — |
ui-goal/ |
Presents and manages the current goal | — |
ui-trajectory/ |
Presents alternate views of agent activity | — |
ui-commands/ |
Provides session-aware command discovery and dispatch | — |
ui-input-trigger/ |
Coordinates inline command and reference suggestions | — |
ui-skill/ |
Adds skill references to inline suggestions | — |
ui-reference/ |
Unified Web @file / @session reference source |
— |
ui-secret-mask/ |
Masks recognized credentials in sent user text | — |
ui-subagent/ |
Provides subagent navigation, child transcript states, and inline references | — |
ui-jobs/ |
Lists this session's background jobs with on-demand streaming record panels | — |
ui-schedule/ |
Lists the current Session's active reminders in a read-only header catalog | — |
ui-model-selection/ |
Provides model selection in conversation surfaces | — |
ui-deepseek-model-label-1017/ |
Adds the temporary 1017 badge to official DeepSeek Flash model labels | — |
ui-permission-presets/ |
Configures default permissions and switches the current session's access | — |
ui-plan/ |
Presents active plan-mode status and its exit control | — |
ui-settings-plugins/ |
Owns the Built-in plugins settings section shell and its tab extension point | — |
ui-user-questions/ |
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-settings-models/ |
Provides model-provider configuration and DeepSeek onboarding | — |
ui-settings-shell/ |
Provides the shell settings page on the Plugins page | — |
ui-settings-agent-loop/ |
Provides the agent-loop settings page on the Plugins page | — |
ui-settings-session-log/ |
Controls API Session-log upload in General settings | — |
ui-settings-subagent/ |
Provides the Subagent settings page on the Plugins page | — |
ui-settings-web-search/ |
Provides the web-search settings page on the Plugins page | — |
ui-plugin-manager/ |
Contributes the sidebar Plugins panel: install, enable, disable, retry, and compose installed packages | — |
ui-entry-customization/ |
Adds region-local More menus that pin or unpin plugin launchers and start a plugin draft | — |
ui-plugin-market/ |
Contributes the Discover tab to the Plugins page: browse market indexes and install their bundles | — |
ui-settings-plugin-inventory/ |
Contributes the read-only Host Loader inventory tab to Plugins settings | — |
ui-deliverables/ |
Produces the changed-files card with its comparison tabs, delivery cards, and clickable final-response file references | — |
ui-message-feedback/ |
Provides message ratings and feedback dialogs opened from ratings, /feedback, or the Session Header menu |
ctx.feedbackUi |
ui-directory-picker-browse/ |
In-app directory browsing surface for the workspace directory flow | — |
ui-directory-picker-native/ |
Native directory-picker surface driving the local Desktop or Host OS chooser | — |
ui-open-in-app/ |
Session-header split button opening the workspace directory in an installed application, and the document preview's default-application controls for one file | — |
Related documentation
Start with the subsystem reference and the two notes that own the cross-package composition decisions, then the host half that serves this page.
- Client modules subsystem — the web plugin table:
dsh.clientdeclarations, the boot graph wire, and the bundle route. - Slot system standard — the definitive slot model: registration, props shares, and stores.
- Web client architecture reference — the loading chain, object layer, and client services.
- Host group map — the host half that serves this browser half.
Dev Note
Working context for maintainers — click to expand
None.