Commit Graph
305 Commits
Author SHA1 Message Date
zhc a5f1d4a16a refactor(client): bind context menus at their Slot consumers
Merge master and preserve pinned-row visibility. Remove redundant Chat and tool-tree menu forwarding, unify trigger names, and bind file targets at the consuming Slot. Address CI static and coverage gaps without changing upstream scroll assertions.
2026-10-28 19:15:45 +08:00
Saafo f1ac884b3f 🐛 Reconcile mobile UI polish with current master and review 2026-10-28 17:08:26 +08:00
zhc 49e9d42a00 refactor(context-menu): inject shared trigger bindings through slots 2026-10-28 17:08:06 +08:00
Saafo a10b6e1270 💄 Polish narrow-screen navigation and page alignment 2026-10-28 16:12:14 +08:00
zhc c89be0a88a refactor: extract context menu utilities and merge master 2026-10-28 14:51:01 +08:00
Saafo 3bcafbbb64 ✅ Align drawer snapshots and shortcut expectations 2026-10-28 12:16:46 +08:00
Saafo f130e8b37a 🐛 Preserve drawer search and keyboard focus 2026-10-28 11:59:05 +08:00
imccyu 79231619e4 🔀 Sync master and resolve sidebar column comment 2026-10-28 11:31:29 +08:00
imccyu 00d541438b release(dsh): 0.2.2-alpha.2 2026-10-28 02:03:15 +08:00
imccyu 69c389ae11 release(dsh): 0.2.2-alpha.1 2026-10-28 00:00:58 +08:00
Yifffan d4470e59dc Merge pull request #7089 from deepseek-harness/sidebar-spacing-pr1
fix(client): 统一侧边栏对齐原则,扩大操作热区,沉淀对齐方式 skills
2026-10-27 12:16:17 +08:00
Yif 8668cf310a fix(client): address sidebar alignment review feedback 2026-10-26 12:57:11 +08:00
Saafo ab664440f8 🔀 Sync master and regenerate Dockkit translation record 2026-10-26 12:07:23 +08:00
imccyu 3014b0af0f Merge master into DSH 0.2.1-rc.4 synchronization branch 2026-10-26 01:29:12 +08:00
imccyu 341beb33c0 release(dsh): 0.2.1-rc.4 2026-10-26 00:57:37 +08:00
Yif 86fb01a613 fix(client): align sidebar spacing and enlarge row action targets 2026-10-23 19:10:36 +08:00
Saafo 241468ce09 🔀 Sync master and resolve mobile sidebar integration 2026-10-23 12:52:35 +08:00
imccyu 14f0b2aafe Merge master into DSH 0.2.1-rc.3 synchronization branch 2026-10-23 11:56:34 +08:00
imccyu b049cd257c Merge pull request #6980 from deepseek-harness/07akioni/more-locales
feat(i18n): add Spanish, French, German, Russian and Portuguese
2026-10-23 11:22:55 +08:00
imccyu d02ea370ee release(dsh): 0.2.1-rc.3 2026-10-23 01:11:35 +08:00
imccyu 261f2db185 Merge master into DSH 0.2.1 navigation and model listing sync 2026-10-22 23:22:35 +08:00
imccyu 0d521bdd0d refactor(client): drop owner-era leftovers and gate sidebar New Session on session/create
- The Conversation binding tracking returns to master: the retainInfo subscription and the
  plugin-owned binding effects are a separate fix, not a served-page seam.
- The deliverables opener drops the ownerHostRoutes parameter no caller passes any more.
- Assertions on existing connection and HMR behavior, the menu-open-state spec, and the
  settings-general roster splice return to master.
- Workspace shortcuts no longer re-read Session access through source(); the Host refuses a
  denied rename, fork, or archive.
- The sidebar New Session button, the window-chrome New Session control, and the expanded
  brand shortcut render only while useRemoteAccess('session/create') allows it.
2026-10-22 21:44:25 +08:00
07akioni b86f0cfd11 fix(i18n): align navigation and collapse terminology 2026-10-22 20:13:47 +08:00
imccyu 39d2903841 fix(ui): separate navigation pins from selection and show menu icons (#6883)
* fix(ui): separate navigation pins from selection and show menu icons

* fix(ui): simplify More menus and fold conversation views on resize

* test(ui): fix navigation CI regressions and refresh catalogs

* refactor(ui): render sidebar panel icons directly

* fix(ui): keep Chat visible and stop persisting navigation pins

* refactor(ui): drop unreachable pin validation from in-memory stores
2026-10-22 20:05:33 +08:00
07akioni 84edeadc2b feat(i18n): add Spanish French German Russian and Portuguese 2026-10-22 19:53:52 +08:00
Saafo fdd520f901 ♻️ Keep sidebar focus handling out of ui-layout 2026-10-22 16:53:48 +08:00
Saafo 2faf547465 🔀 Sync master after separating tree navigation 2026-10-22 13:54:39 +08:00
Saafo d269bf8ddb 🔀 Merge master and preserve sidebar keyboard navigation 2026-10-22 12:55:55 +08:00
Turtle c3eead771d feat(client): let themes replace product icons through an SVG sprite
Product icons drew fixed inline paths, so a theme could only recolor them.
Each glyph weight is now a dsw-icon-<glyph>-<weight> symbol: ui-primitives
keeps the default SVG documents and icons render one <use> of their symbol,
while ui-theme keeps a document sprite filled from the active theme's
ThemeDefinition.icons replacements or the defaults. Replacements may be
multi-color and paint with currentColor or --dsw-* tokens.

Refs #6894
2026-10-22 00:21:07 +08:00
07akioni ed783066e6 fix(i18n): complete Japanese plugin metadata and guard locale coverage 2026-10-21 16:14:12 +08:00
07akioni 358c142716 Merge master for current locale keys 2026-10-21 13:47:53 +08:00
07akioni 6238020202 fix(locale): type additional dictionaries and complete Japanese registration 2026-10-21 13:42:49 +08:00
imccyu 480562cdb9 Merge remote-tracking branch 'origin/master' into worktree/sync-dsh-0.2.1-analytics-to-master
# Conflicts:
#	packages/client/ui-agent-preset/README.i18n.yaml
#	packages/client/ui-sidebar/src/client/SidebarRoot.tsx
2026-10-21 11:56:51 +08:00
07akioni 3f9f36e92d feat(locale): add Japanese client and desktop translations 2026-10-21 11:42:12 +08:00
675164957a feat(analytics): track navigation entries and preset selections (#6600)
* feat(analytics): track navigation entry clicks, preset switches, and new-session sends

Rebuilds the click events of #6600 on the region-owned More menus in
release/dsh-0.2.1. Exposure events, creator_mode_enter, and the
ui-workspace onOpened observer are not included.

- sidebar_menu_click gains position plus the new_session and more entries:
  New Session (sidebar button, brand, titlebar), Plugins and Automation
  rows, the left sidebar More button, and entries opened from its menu.
- more_menu_item_click records Browse other plugins and Create your plugin
  per region.
- agent_preset_switch reports applied or unbound staged picks; the seat
  controller now returns an explicit apply outcome.
- code_work_view_toggle reports a successful change of the setting.
- send_button_click adds is_new_session and the Session's preset category.

Co-authored-by: imccyu <[email protected]>

* test(analytics): cover navigation, preset switch, toggle, and send analytics

Co-authored-by: imccyu <[email protected]>

* docs(analytics): document click events and regenerate catalogs

Co-authored-by: imccyu <[email protected]>

* test(ui): reuse the developer tools row accessor without a new unknown cast

Co-authored-by: imccyu <[email protected]>

* fix(analytics): classify preset switches by preset id only

agent_preset_switch now maps the preset id the same way send_button_click does: cordis is creator, ptc, minimal and standard keep their ids, and any other id is other; a published preset name no longer changes the category.

Co-authored-by: imccyu <[email protected]>

---------

Co-authored-by: dingyifan <[email protected]>
Co-authored-by: imccyu <[email protected]>
2026-10-21 11:17:55 +08:00
Saafo f5deff657c 🔀 merge master into mobile sidebar 2026-10-20 19:40:42 +08:00
Saafo 9a559f1f6e ♻️ centralize retained dialog focus restoration 2026-10-20 19:34:14 +08:00
Saafo a9fd4de282 🐛 fix macOS drawer background and native close hit area 2026-10-20 19:23:11 +08:00
Saafo 5e5346497c 🐛 fix mobile drawer review regressions 2026-10-20 18:09:35 +08:00
Stevring 62f78d82f2 fix(client): preserve keyboard focus hints without hover 2026-10-20 18:07:55 +08:00
Stevring b7d8943cfa Merge origin/master into fix/touch-tooltip-interactions 2026-10-20 17:12:10 +08:00
Stevring 8fe2db10a0 fix(client): address touch interaction review findings 2026-10-20 17:07:57 +08:00
Saafo c6fa12c447 🐛 fix(client): align mobile sidebar regressions with current layout 2026-10-20 17:00:43 +08:00
imccyu 14e5add505 Merge master into DSH 0.2.1 entry customization synchronization branch
Bring master 45d1196d3fe into the release/dsh-0.2.1 squash commit of #6247
so the release commit stays an ancestor of master.

Conflict resolutions:
- apps/web/tsconfig.json, tsconfig.host.json: keep the entry-customization
  e2e and master's Computer Use e2e entries.
- docs/subsystems/slots.{md,zh.md}: keep both added paragraphs; re-record the
  slots, ui-primitives, and ui-workspace README translation pairs.
- ui-sidebar SidebarRoot.tsx and locales.ts: keep the More menu imports and
  copy next to master's version-copy toast.
- apps/web/tests/agent-preset-selection.e2e.ts: keep the New Session
  blank-reuse assertions, read presets through master's
  sessionProjections.checkpoint() instead of the deprecated stateOf().

Follow-ups on master's side:
- ui-sidebar sidebar-root spec: give master's version-copy render the entry
  pin props that SidebarRootInjected now requires.
- snapshots/web/steering/trajectory.expected.md: add the More conversation
  views trigger to master's new Trajectory golden.
2026-10-20 15:47:29 +08:00
5ff29190ed feat(ui): add navigation entry customization (#6247)
* fix(ui): avoid tooltip trigger overlap when a side fits

* feat(ui): add navigation entry customization

* fix(test): keep tooltip geometry independent of JSX types

* fix(ui): align customization catalogs and integration fixtures

* test(ui): complete customization lifecycle and release integration coverage

* fix(ui): return entry discovery to the installed plugin list

* docs: refresh module graph for entry customization

* build: refresh workspace links for the moved entry customization package

* docs: regenerate catalogs and pairing hashes for the moved entry customization package

* test(web): cover default-loaded entry customization in the Web e2e

* test(ui): describe entry customization as a browser plugin in the host entry spec

* build: order entry customization publication files as workspace constraints require

* test(release): drop the moved entry customization package from the experimental family list

* style(ui): use the shared focus ring color on entry customization triggers

* test(web): re-record goldens for the default-loaded More navigation menus

* test(web): add the More conversation views trigger to the remaining CI-reported goldens

* docs: record region-owned pins for plugin entry customization

* refactor(ui): rebuild entry customization on region-owned pins and More menus

- Each navigation region (left sidebar, Conversation header, right sidebar
  guide) persists its own unpinned list under
  dsh.slot.manual-order.<list slot key>.v1, filters its own launchers, and
  draws its own More button and Menu around its actions slot.
- ui-entry-customization only registers the shared menu rows (entries with
  pin buttons, Browse other plugins, Create your plugin) into the three
  actions slots and keeps no state.
- Remove ctx.layout.entryVisibility, the plugin store, left-sidebar drag
  reordering, and agentPresetNavigation; ui-layout and ui-agent-preset match
  release/dsh-0.2.1 again.
- Keep the release <nav> and Conversation tab-bar visibility conditions.
- Move the More glyph into ui-primitives as IconAppsAddOutline{Regular,Medium}.

* docs: compile the entry customization owner props example

* docs(ui): describe the wrapping Conversation tab row in the header comment

* fix(ui): return New Session to the Workspace blank and its unsent draft

- New Session (startSession without options) takes the blank-reuse path
  again instead of creating a fresh Session on every call, which hid the
  previous blank and its unsent draft since a5c9c2aaeef (#5775).
- A request that names an Agent preset skips blanks listing a different
  preset, so Creator entries no longer take over an ordinary draft.
- Record the change in a v0.2.1-rc.2 upgrade guide; the Host refresh of a
  stale loaded blank stays deferred (see the Agent Note).

* docs: regenerate the Cordis inspect catalog for New Session blank reuse

* fix(ui): keep the selected entry visible while unpinned

- Left-sidebar rows and View tabs keep the selected entry, with aria-current or aria-selected, until another entry is selected.
- Entry menu Creator action takes no region argument; the registration's region selects the prompt.
- Document the 2px panel-row and 32px View-tab gaps; drop commit hashes from the New Session Agent Note.

* fix(ui): leave a blank of another preset unstaged when starting Creator

startCreatorDraft stages cordis only when the main blank lists no preset or already lists cordis; navigation opens a separate Creator blank otherwise, so a Standard draft blank keeps its preset.

* feat(ui): choose whether a draft prompt replaces, appends to, or keeps an existing draft

- DraftInitializationOptions gains whenDraftExists ('replace' | 'append' | 'keep', default 'keep'); clearPreviousDraft stays and maps to 'replace' only when whenDraftExists is omitted.
- Append adds the prompt as new paragraphs after the existing text and references; attachments stay in every mode.
- The three Create your plugin entries append their regional prompt.

* test(web): align e2e with New Session blank reuse and the visible selected entry

* refactor(ui): share the draft paragraph writer between setDraft and appendDraft

---------

Co-authored-by: Yif <[email protected]>
Co-authored-by: imccyu <[email protected]>
2026-10-20 15:17:13 +08:00
Saafo 4f0ab9d1ac 🐛 fix(client): restore sidebar keyboard navigation and drawer focus
Merge master and close menus anchored in hidden sidebars. Restore focus on responsive transitions and provide tree keyboard navigation with visible row actions.
2026-10-20 15:05:37 +08:00
Stevring dbb0d2bd83 Merge origin/master into fix/touch-tooltip-interactions 2026-10-20 14:34:15 +08:00
Stevring 94ffdd2377 fix(client): align touch tooltips and hover affordances 2026-10-20 12:50:31 +08:00
Turtle 915792545f Name the version in the copied toast 2026-10-20 12:49:17 +08:00
Saafo 788bae3674 feat(client): adapt sidebar navigation to mobile drawers 2026-10-20 12:41:40 +08:00