Commit Graph
78 Commits
Author SHA1 Message Date
Tianyi Cui 3f33c06f40 Merge pull request #4629 from deepseek-harness/worktree/dynamic-conversation/messages-only
Make the official DeepSeek adapter Messages-only
2026-09-20 17:10:58 +08:00
Turtle 8f0dd55c2c feat(plugins): render icons from package manifests (#4697)
* feat(plugins): render icons from package manifests

* fix(plugins): include declared icons in canonical package payloads
2026-09-20 17:00:17 +08:00
Xu Hanxiang dff5506934 Merge pull request #4499 from deepseek-harness/fix/windows-plugin-list-type-size
fix(client): raise the package identity contrast in the plugin views
2026-09-20 16:27:26 +08:00
mektpoy 230d975a04 docs(client): explain the identity tiers and the detailName scope
The shared rule now states why the collapsed identity and the expanded value keep two label tiers, and the detailName comment names the row identity it also renders.
2026-09-20 16:18:56 +08:00
Tianyi Cui 5a53758b03 test: preserve plugin-manager integration after stack rebase 2026-09-20 14:45:26 +08:00
mektpoy 63190fc870 fix(client): unify the plugin identity colour on label-tertiary
Review feedback on this PR: keep one identity colour rather than raising the
card subtitle to label-secondary. The detail-page package name moves from
label-caption to label-tertiary; the settings card subtitle keeps its own
colour and shares only the 12px size with the row it expands into.
2026-09-20 12:19:13 +08:00
imccyu a05f2244cf fix(plugins): remove unknown casts from metadata loading and fixtures 2026-09-19 23:05:40 +08:00
mektpoy 88ee6039c6 Merge remote-tracking branch 'origin/master' into fix/windows-plugin-list-type-size 2026-09-19 22:33:52 +08:00
mektpoy bb2326f044 fix(client): raise the plugin package name contrast on the detail page
The package name under a plugin's title is the exact spec that installs it, yet
it was the palest alias in the palette: label-caption, 2.13:1 against white,
lighter than the free-text description below it. Use label-secondary, the same
alias the description uses, for 5.80:1.
2026-09-19 22:24:35 +08:00
imccyu a9f205c584 refactor(plugins): rename PackageMeta to PluginLocalizedMeta 2026-09-19 20:19:08 +08:00
imccyu 0d611ea151 feat(web): display plugin-owned locale metadata 2026-09-19 20:19:04 +08:00
imccyu f8240240fa docs(plugins): define localized display metadata and fallback rules 2026-09-19 20:19:03 +08:00
Yif 699d06a7eb feat(client): widen overlay top margins to the frame's top clearance
Publish --dsh-frame-top-clearance on html[data-platform='darwin'] so
body-portalled overlays inherit it; useAnchoredMaxHeight and the portalled
Menu widen their 12px viewport margin to it, Modal centralizes the vertical
padding its cards previously each computed, and the trigger menu keeps an
84px margin on every platform so it stops below the conversation header.
Reduce Transparency replaces the sidebar tint with a 90%-opaque fill.
2026-09-19 15:37:47 +08:00
Yif d94aef5214 Merge remote-tracking branch 'origin/master' into feat/macos-sidebar-ui-and-drag-refine 2026-09-18 21:42:09 +08:00
Yif 8837c532d1 Merge remote-tracking branch 'origin/master' into feat/macos-sidebar-ui-and-drag-refine 2026-09-18 20:54:38 +08:00
Yichen Jiang 61b099b77c fix(client): draw the registry popover's hairline as its elevation stroke
master's elevation contract (elevation-styles.client.spec.ts) rejects a
neutral border beside an lv/elevation shadow: the stroke belongs to the
shadow. The registry options keep their l3 hairline through
--dsw-elevation-stroke-color, as Menu does, with border: 0.
2026-09-18 20:50:04 +08:00
Yichen Jiang 5fe06ee64b Merge remote-tracking branch 'origin/master' into worktree/npm-registry-mirror-config-029a47
# Conflicts:
#	packages/client/ui-plugin-manager/src/client/PluginManagerPage.tsx
#	packages/client/ui-plugin-manager/src/client/manager-store.ts
2026-09-18 20:37:39 +08:00
Yichen Jiang 1dfd026b84 Merge remote-tracking branch 'origin/master' into worktree/npm-registry-mirror-config-029a47
# Conflicts:
#	apps/web/tests/expected/plugin-install-cancel/cancelled.expected.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/boot/plugin-manager/README.i18n.yaml
#	packages/boot/plugin-manager/README.md
#	packages/boot/plugin-manager/README.zh.md
#	packages/client/ui-plugin-manager/README.i18n.yaml
#	packages/client/ui-plugin-manager/README.md
#	packages/client/ui-plugin-manager/README.zh.md
#	packages/client/ui-plugin-manager/src/client/PluginManagerPage.tsx
2026-09-18 20:21:59 +08:00
Yichen Jiang 75b20ea98c fix(web): remove unreachable fallback and pin snapshot scroll 2026-09-18 20:17:28 +08:00
Yichen Jiang e7094c81e2 Merge origin/master into worktree/plugin-install-close 2026-09-18 20:03:08 +08:00
Yichen Jiang f938ebad64 fix(web): recover lost plugin installation responses 2026-09-18 19:58:04 +08:00
Yif e9b928d993 Merge remote-tracking branch 'origin/master' into feat/macos-sidebar-ui-and-drag-refine
# Conflicts:
#	.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml
#	.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md
#	.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md
#	docs/subsystems/slots.i18n.yaml
#	docs/subsystems/slots.md
#	docs/subsystems/slots.zh.md
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-conversation/src/client/skeleton/ConversationRoot.module.css
#	packages/client/ui-conversation/tests/skeleton.client.spec.tsx
#	packages/client/ui-sidebar/README.i18n.yaml
#	packages/client/ui-sidebar/README.md
#	packages/client/ui-sidebar/README.zh.md
#	packages/client/ui-sidebar/src/client/HeaderLeadingControls.tsx
#	packages/client/ui-sidebar/src/client/index.ts
#	packages/client/ui-sidebar/tests/apply.client.spec.tsx
#	packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
2026-09-18 18:34:12 +08:00
Yichen Jiang 998d2ce8c9 fix(client): narrow the registry options to their content 2026-09-18 18:33:17 +08:00
Yichen Jiang 78522443f7 fix(client): keep the registry's host to its option
The control beside the guide, the attempt line, the run badges, and
the failure lists name a registry by its name alone; only the option
in the list carries the host it names.
2026-09-18 18:30:37 +08:00
Yichen Jiang c34e33cbd9 fix(client): title the registries by their hosts and drop the fallback note
The default registry reads as such with the host pnpm names, the
mirror carries its host too, and no line under them repeats it or
describes the order the Host would ask; the order shows only as the
Host asks it.
2026-09-18 18:25:57 +08:00
Yif 978e39e94e fix(plugin-manager): align plugin-config e2e and README quotes with revised copy
The plugin-config e2e pinned the old terminal one-liner and its golden still
carried the three pre-revision summaries; the ui-plugin-manager READMEs still
quoted the renamed install-guide button. Refresh the golden, update the
assertion and both READMEs, and re-record the translation pairing.
2026-09-18 17:30:31 +08:00
Yichen Jiang 2b168ce1ae fix(client): float the registry options over the install dialog and let its content scroll
With the guide open, unfolding the registry options pushed the dialog
past the viewport, and the card did not scroll. The options now float
from their toggle in a portal, right-aligned to it, folded by Escape
(claimed before the dialog's own Escape) or a pointer outside them,
and by the store when a run starts; useAnchoredPosition gains end
alignment for this. The dialog's content region scrolls under its
footer. The mirror reads as the mainland China mirror without a tag.
2026-09-18 17:20:10 +08:00
Yichen Jiang cb2750019a fix(plugin-manager): read pnpm's own registry, its stdout refusals, and lay failures where they belong
Review of #4539. A refusal pnpm view prints as JSON on stdout was read
as unknown, so no registry was ever asked after a dead one; stderr and
stdout are now read alike, and a lookup killed at its bound is a
network refusal. pnpm's own registry joins the fallback plan only once
pnpm config get registry names npm's own or a configured fallback, so
a company registry in .npmrc is never followed by a public one, and a
registry pnpm already names is asked once. The Host lays each failure
at the registry or the spec's own host, reading the host off error
lines only, and reports it as ChangeResult.failedAt; a stop that lands
between attempts is cancelled, not failed. The package publishes its
registry rule through ./registry so the dialog plans with the Host's
own function, starts from the registry the Host asks first until one
is remembered, tags that one as the default, labels pnpm's own by the
host it names, and words and offers a change of registry from the
Host's attribution. ERR_PNPM_NO_OFFLINE_META is no longer a network
failure.
2026-09-18 17:03:04 +08:00
Yif a6267c8d90 fix(plugin-manager): per-instance artwork ids, detail error feedback, coverage
Give every plugin artwork per-instance SVG def ids via useId so repeats on
one page keep their gradients and clips; drop the dead agent-team-web-profile
artwork row; keep the read-failure alert and retry visible on detail pages;
cover the new artwork components and the default-artwork branch; document the
artwork exports in the ui-primitives READMEs; refresh the plugin-manager and
plugin-install-cancel web expected outputs for the revised copy.
2026-09-18 16:30:25 +08:00
Yichen Jiang 736730c3fd fix(web): allow closing pending plugin installations 2026-09-18 16:00:47 +08:00
Yichen Jiang 66c1c5fadd fix(client): drop the sync-lag clause from the npmmirror registry line 2026-09-18 15:39:23 +08:00
Yichen Jiang e303efe017 fix(client): align an offered registry's line under its title
The indent meant for the typed address's field and line also reached
the line under each offered registry, pushing it past the title.
2026-09-18 15:36:41 +08:00
Yichen Jiang e06c7852ff Merge remote-tracking branch 'origin/master' into worktree/npm-registry-mirror-config-029a47 2026-09-18 15:24:42 +08:00
Yichen Jiang 398a4247ae feat(client): pick and remember the registry a plugin install asks first
The install dialog folds a registry control beside the guide: the
official registry, the mirrors the Host configured, and a typed
address, remembered in this browser and passed to the check and the
run. The installing screen names the registry the Host moved on to,
each pnpm run carries its registry, and a failed run names every
registry asked, or the host a git or tarball spec could not reach,
with a shortcut back to the registry options. The Host answers the
spec's own host and the registries it asked so the dialog can say so.

Also documents the registry plan in the package READMEs, the boot
subsystem page, the catalogs, and an Agent Note; pins the flow through
a real Host/browser e2e and refreshes the tool-schema snapshots.
2026-09-18 15:21:44 +08:00
Yif 76fa3860c6 fix(plugin-manager): drop guide item background that surfaced in dark mode 2026-09-18 14:54:12 +08:00
Yif 3065e75d08 Merge remote-tracking branch 'origin/master' into feat/plugin-refine
# Conflicts:
#	packages/client/ui-plugin-manager/src/client/locales.ts
#	packages/client/ui-primitives/src/icons/index.tsx
2026-09-18 14:45:13 +08:00
Yif bd6447479d refine(plugin-manager): polish install dialog guide, input, and wizard states 2026-09-18 14:00:50 +08:00
Yichen Jiang 19e6e7b81b test(agent-team): verify browser activation and document bundle composition 2026-09-18 12:53:31 +08:00
Yif c8b17dd4d0 refine(plugin-manager): per-plugin artwork, trailing load-failure notice, friendlier copy 2026-09-18 11:38:45 +08:00
Yichen Jiang dd8d39c843 Merge remote-tracking branch 'origin/master' into worktree/unify-agent-team-bundle
# Conflicts:
#	packages/experimental/agent-team-profile/package.json
#	packages/experimental/agent-team-web-profile/package.json
2026-09-18 11:34:21 +08:00
Yif e9def243e2 Merge origin/master into feat/macos-sidebar-ui-and-drag-refine
Keeps both window-chrome features: this branch's macOS shell.leading seat,
single drag owner, and fullscreen sync alongside upstream's Windows desktop
titlebar (#4407). ipc.ts and preload-app.ts merge both platforms' channels
and preload wiring; Tooltip merges upstream's suppression context with this
branch's pointer-focus suppression; slot-catalog regenerated.
2026-09-18 11:27:06 +08:00
Yif 8019d37d3f feat(client): frame-owned macOS window chrome with single drag owner
One 52px leadingBand in the AppFrame (frame's first child) plus the sidebar
logoRow are the only -webkit-app-region drag surfaces; everything interactive
subtracts itself through two global base.css rules (interactive elements and
body > :not(#root) overlay portals), so header controls, breadcrumb chips, and
strip tabs stay clickable under the band. A ui-theme stylesheet gate pins the
two-file drag allowlist. The frame publishes --dsh-frame-top-clearance (48px)
for entry pages (plugin manager list and detail) beside the existing
--dsh-frame-leading-clearance, replacing per-page hardcoded insets. The
shell.leading window-chrome seat moves the collapsed-sidebar reopen controls
from the conversation header to the frame. Sidebar vibrancy tint drops the
blue cast in dark mode and halves its fill opacity, light mode softens the
blue mix, and the logo row tightens 4px above New Session.
2026-09-18 11:08:13 +08:00
winewill 831ea36f2c Merge pull request #4461 from deepseek-harness/ihsiang/unify-web-ui-visual-language
Unify the Web UI visual language
2026-09-18 11:00:11 +08:00
creatixchu 6b1808f432 release(dsh): 0.1.6-alpha.2 2026-09-17 21:11:19 +08:00
Yichen Jiang 9f21d7842a fix(agent-team): enable tools and Web UI with one bundle 2026-09-17 20:41:39 +08:00
yixiangihsiang 4937343a5e feat(web): unify the client visual language 2026-09-17 19:14:41 +08:00
Yichen Jiang 05e675863b fix(web): hide built-in profile bundles from plugin cards 2026-09-17 14:40:29 +08:00
imccyu 6d3b5d4526 test(client): migrate Session reference coverage 2026-09-17 05:28:19 +08:00
Yichen Jiang 57a705fa7e feat(web): let the install dialog's close control stop a running install
While the Host runs an install, the dialog's close control was disabled. It now asks the Host to stop the run, the same request as Cancel install, and closes the dialog once the Host confirms the stop; when the Host answers too late or cannot confirm, the dialog stays with that word. Escape and the mask keep waiting while the Host owns the operation. The control is labelled 取消安装并关闭 / Cancel install and close while it does this.
2026-09-16 22:05:20 +08:00
Yichen Jiang a63dd809a2 refactor(web): share the card head and page top on the Plugins page
The cards and the pages of the Plugins page repeated their head (icon, opening title, tags, one-liner) and their top (crumb, icon, actions); CardHead and DetailTop carry them once, which is what the duplication gate asked for. DOM and behavior are unchanged.
2026-09-16 22:01:40 +08:00