deepseek-harness/packages/client
Yichen Jiang d38ff54150 feat(web): navigate loaded Chat Turns from a compact rail
ChatView derives one navigation mark per currently loaded Turn, keyed by
Turn number and anchored on that Turn's first loaded user node. The rail
sits against the scrollport's right edge, centered in the band the sticky
composer leaves visible; hover and keyboard focus preview the Turn's
prompt and response, and activating a mark moves the shared scrollport
and records the resulting restoration anchor.

ConversationRoot publishes --dsh-conversation-viewport-height beside the
composer height it already measures on the scrollport, so floating View
chrome can center in that band without assuming a Session header height.
2026-08-25 14:02:57 +08:00
..
connection feat(session): persist model selection and share its catalog 2026-08-25 06:07:42 +08:00
hmr feat(client): use bounded plugin combo URLs 2026-08-25 06:43:24 +08:00
locale style(client): stack local build metadata 2026-08-24 15:08:14 +08:00
modules fix(client): preserve combo source identities 2026-08-25 06:43:25 +08:00
store fix(client): align domain split with repository gates 2026-08-23 16:28:19 +08:00
ui-agent-preset fix(agent-presets): project selection and refresh client catalogs 2026-08-25 06:07:58 +08:00
ui-approval chore(client): remove feature module externals 2026-08-23 23:06:38 +08:00
ui-attachment feat(web): 在 Trajectory 中展示图片附件 2026-08-24 17:59:02 +08:00
ui-brand-official chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-chat feat(web): navigate loaded Chat Turns from a compact rail 2026-08-25 14:02:57 +08:00
ui-commands fix(agent-presets): project selection and refresh client catalogs 2026-08-25 06:07:58 +08:00
ui-conversation feat(web): navigate loaded Chat Turns from a compact rail 2026-08-25 14:02:57 +08:00
ui-deliverables refactor(client): derive deliverables from mutation calls 2026-08-24 10:24:17 +08:00
ui-directory-picker-browse docs(client): restore boundary rationale 2026-08-23 23:54:06 +08:00
ui-directory-picker-native chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-goal Merge pull request #2777 from deepseek-harness/fix/minimal-disable-goal-plugin 2026-08-24 09:18:48 +08:00
ui-input-trigger fix(agent-presets): project selection and refresh client catalogs 2026-08-25 06:07:58 +08:00
ui-jobs fix(client): align domain split with repository gates 2026-08-23 16:28:19 +08:00
ui-layout Merge remote-tracking branch 'origin/master' into worktree/localize-ui-strings-gate 2026-08-23 18:34:42 +08:00
ui-message-feedback fix(ci): preserve cross-platform lint suppressions 2026-08-23 21:48:32 +08:00
ui-model-selection feat(session): persist model selection and share its catalog 2026-08-25 06:07:42 +08:00
ui-permission-presets chore(client): remove feature module externals 2026-08-23 23:06:38 +08:00
ui-plan Merge remote-tracking branch 'origin/master' into worktree/localize-ui-strings-gate 2026-08-23 18:34:42 +08:00
ui-primitives refactor(client): move shared primitives to static packages 2026-08-23 23:02:33 +08:00
ui-reference chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-renderer Merge remote-tracking branch 'origin/master' into worktree/localize-ui-strings-gate 2026-08-23 18:34:42 +08:00
ui-session fix(client): settle interactions during plugin teardown 2026-08-23 16:28:20 +08:00
ui-settings chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-settings-general chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-settings-models Merge pull request #2663 from deepseek-harness/feat/subagent-provider 2026-08-24 18:23:42 +08:00
ui-settings-plugin-inventory chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-settings-plugins chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-sidebar style(client): stack local build metadata 2026-08-24 15:08:14 +08:00
ui-skill refactor(client): derive tool cards from raw events 2026-08-24 10:24:17 +08:00
ui-slots refactor(client): remove compatibility imports 2026-08-23 23:06:38 +08:00
ui-subagent refactor(subagent): consume shared session observations 2026-08-25 06:09:25 +08:00
ui-theme chore(client): align split package graph 2026-08-23 16:28:18 +08:00
ui-tool fix(client): localize terminal send presentation 2026-08-24 10:24:18 +08:00
ui-trajectory fix(web): 处理评审发现的图片记录边界情况 2026-08-24 18:58:25 +08:00
ui-user-questions chore(client): remove feature module externals 2026-08-23 23:06:38 +08:00
ui-workflow-run fix(client): align domain split with repository gates 2026-08-23 16:28:19 +08:00
ui-workspace refactor(client): remove directory error re-export 2026-08-24 00:54:17 +08:00
web fix(client-modules,webserver,webworker-runtime): preserve batched boot across transports 2026-08-24 20:49:12 +08:00
AGENTS.md docs: define client-derived tool presentation 2026-08-24 10:24:16 +08:00
README.i18n.yaml fix(client): align domain split with repository gates 2026-08-23 16:28:19 +08:00
README.md fix(client): align domain split with repository gates 2026-08-23 16:28:19 +08:00
README.zh.md fix(client): align domain split with repository gates 2026-08-23 16:28:19 +08:00
tsdown.client.ts perf(client-modules): defer per-plugin revision hashing 2026-08-24 20:49:13 +08:00

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.
ui-renderer/ Binds slot data to React and mounts the assembled application after client boot settles.
modules/ Loads browser-side client modules.
connection/ Maintains browser-host RPC communication and event delivery.
hmr/ Refreshes client plugins during development.
locale/ Provides localization preferences and message dictionaries.
store/ Provides React-free observable and snapshot-store primitives.
test-runtime/ Provides shared repository test support for client feature packages.
ui-slots/ Defines how UI features register and compose extension slots.
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-sidebar/ Presents workspace and session navigation.
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 with live-only child navigation.
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-subagent/ Provides subagent navigation, child transcript states, and inline references.
ui-jobs/ Lists this session's background jobs in the conversation header.
ui-model-selection/ 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-settings-plugins/ Owns the Plugins settings section, its tab extension point, and configurable host-plane plugin cards.
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-plugin-inventory/ Contributes the read-only Host Loader inventory tab to Plugins settings.

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.