Commit Graph
75 Commits
Author SHA1 Message Date
imccyu b67cf4d381 test(web): verify plugin header wrapping by intrinsic fit 2026-10-13 01:44:18 +08:00
Yif 9e62c1c229 fix(web): restore the plugin header subtitle row to its flex layout
The responsive change had moved `.pageIntro` off flex, which put the information
icon 1.06px off the subtitle's vertical centre and failed the existing geometry
assertion in `plugin-manager.e2e.ts`. Restore the flex row and the button's
`flex: none`, which keeps the 4px gap and the centring. The header still wraps
its action group onto another line, which is what this change is for.

Pin the wrap threshold in both header scenarios. Each records whether the action
group sits beside or below the heading, the plugin scenario asserts the wide and
narrow sides explicitly, and the plugin scenario launches its own scaffold so an
install task left by an earlier test cannot move the threshold between runs.
2026-10-12 23:15:20 +08:00
Yif ee558c82d7 feat(web): reflow the Plugins page header at narrow widths
The page header wraps its action group onto another line when the title and the
actions no longer fit together, so the title keeps its width and the actions keep
their labels on one line. The information button follows the subtitle text
instead of a flex row, which keeps it beside the copy at every width.

Cover the header in the plugin-manager browser scenario: the action group stays
inline when it fits, moves below when it does not, keeps its labels on one line,
stays inside the header, and retains focus across the change.
2026-10-12 21:56:08 +08:00
Ziya 640e28cd94 feat(web): reorganize plugin settings and add experimental catalog page (#5922)
Group built-in settings before optional and installed plugins, and open the full experimental catalog on a separate page.

Preserve detail navigation and unsaved configuration when installation finishes, and use the visible More label as the accessible name.
2026-10-08 23:42:56 -07:00
Tianyi Cui 30204f967d test(plugins): refresh final official catalog expectations 2026-10-07 01:26:01 +08:00
Tianyi Cui c135bdf483 test(plugin): refresh official discovery browser and API evidence 2026-10-07 01:26:00 +08:00
Tianyi Cui 2b0dd1567d fix(plugins): preserve Creator drafts and refresh bundle validation 2026-10-06 23:48:59 +08:00
Tianyi Cui fbb95c0f16 fix(plugin): preserve final pinned composition and browser inventories 2026-10-06 23:48:59 +08:00
Tianyi Cui cfc6be809c feat(reasoning): persist opt-in machine translations 2026-10-06 15:36:14 +08:00
Tianyi Cui a1363f7f47 fix(worktree): offer GUI opt-in through official plugins 2026-10-06 01:39:47 +08:00
imccyu 732dd913cf feat(inspector): embed Chrome DevTools and bundle optional diagnostics 2026-10-01 00:14:13 +08:00
Turtle c006c6c074 Merge pull request #5535 from deepseek-harness/fix/retired-schedule-bundle
fix: drop retired bundle selections and let the Plugins page remove orphans
2026-09-30 18:11:54 +08:00
Turtle 4ac4e95460 Merge pull request #5394 from deepseek-harness/fix/bundle-only-metadata
fix(plugins): read package.json only for package-root plugins
2026-09-30 18:10:34 +08:00
turtle1999 d9d9ad3716 test(web): expect Uninstall on an unresolvable bundle selection 2026-09-30 17:54:03 +08:00
Chinesezjc 3e5231bc6f Merge origin/master into feat/preset-scoped-schedule-tools
Resolutions:
- `docs/subsystems/schedule.*` and `packages/client/ui-schedule/README.*` keep
  this branch's shipped-composition text with master's newer wording (Rules and
  Records tabs, the icon-button linked-session layout).
- `docs/event-producer-consumer.*` regenerated by `gen-doc-graphs`.
2026-09-30 13:49:30 +08:00
turtle1999 6c6b85e572 Merge remote-tracking branch 'origin/master' into turtle/bundle-only-metadata-5394 2026-09-30 11:41:32 +08:00
turtle1999 8339f16c1d fix(plugins): read package.json only for package-root plugins
Subpath plugins are not packages, so they never read a package.json and
take their icon from the exported <specifier>/icon resource, like locale.
Package roots keep manifest text fallback and icon, with ./icon as the
fallback image. Drop the bundle-only reader option.
2026-09-30 11:41:26 +08:00
Turtle 508e71b686 Merge pull request #5428 from deepseek-harness/turtle/plugin-source-section
feat(plugins): 在组合包详情页显示来源信息
2026-09-30 11:15:39 +08:00
turtle1999 6d1e12b237 fix(plugins): keep credentials and shadowed copies out of bundle sources
Address the first ds-review-bot round on the bundle Source section:

- strip the user information of http(s) and git+http(s) URLs so a private
  Git URL's token reaches neither the page nor the plugin_manager tool;
- expand `~` in file:/link: paths to the home directory as pnpm does;
- write jsr: aliases after the dependency name, like npm: aliases;
- give no source for a profile dependency the installation also supplies,
  whose installation copy is the one that loads;
- label the English row "Code source" to match the Chinese copy and hold
  for built-in bundles, and sync the subsystem page, READMEs, CSS comment,
  and tool test.
2026-09-29 12:07:56 +08:00
turtle1999 b96959ecf4 feat(plugins): show where a bundle comes from on its page
The bundle page ends with a Source section: the spec that installs the
bundle elsewhere, as `pnpm add` accepts it, or Built in for an official
bundle the installation ships, followed by its current version.

The Host's listBundles carries the new `source` field for profile
dependencies: git addresses and URLs as recorded, file:/link: paths made
absolute against the profile, and registry ranges, tags, or aliases after
the package name.
2026-09-29 10:51:33 +08:00
turtle1999 ecedbbc2e6 fix(plugins): reuse locale metadata and export bundle icons 2026-09-28 22:34:46 +08:00
ZiyaZhang 93a7d221ed test(web): align plugin menu snapshots and verify Creator flow 2026-09-28 06:55:46 -07:00
turtle1999 f30aec98b6 fix(plugins): reserve package display resources for bundles 2026-09-28 19:33:17 +08:00
Chinesezjc c6dd905972 feat(web): ship the Schedule service and task page in the Web composition
The reminder stack no longer hides behind an optional experimental bundle.
`packages/bundle/web-app/cordis.patch.yml` inserts `schedule` and
`ui-schedule`, so a shipped profile mounts the task store, the delivery
runtime, and the Automation tasks page; the
`@deepseek-ai/dsh-experimental-schedule-bundle` package and its wiring are
removed.

Preset ownership is unchanged: `standard`, `cordis`, and `ptc` declare the
clock and the four reminder tools in their own scope, and `minimal` declares
neither, so a minimal session carries no reading and no reminder tool even
though the service is mounted.

`apps/cli` depends on `@deepseek-ai/dsh-tool-schedule`, and
`packages/bundle/web-app` declares `@deepseek-ai/dsh-schedule` and
`@deepseek-ai/dsh-client-ui-schedule`: preset and profile rows resolve plugin
names from the installation anchor, so a missing declaration leaves the row
without a fiber and every session creation fails with
`agent-preset/invalid`.

Documentation, Agent Notes, and the recorded Web fixtures follow the shipped
composition.
2026-09-28 18:31:53 +08:00
ZiyaZhang adb58a76d1 fix(web): align plugin guidance with review feedback 2026-09-27 09:31:07 -07:00
ZiyaZhang 473fd15101 fix(web): clarify plugin management guidance and warnings 2026-09-27 07:18:09 -07:00
Yif 9fabb67bca test(plugins): trim redundant refresh/tooltip coverage
Drop the plugin-manager refresh e2e to a single failure round: the store's
success and retry outcomes are covered deterministically by
manager-store.client.spec.ts, while the e2e keeps its unique value — real
500ms tooltip timing, a running spinner animation, aria-busy, and the
portaled failure toast over kept cards. Regenerate refresh.expected.md.

Remove the components spec tooltip-delay case; ui-primitives'
tooltip.client.spec.tsx already covers 499/500ms hover/focus delay, early
cancellation, and portaling. PluginManagerPage.tsx stays at 100% coverage.
2026-09-27 02:28:09 +08:00
Yif f057cc37c4 fix(plugins): guard IME submission and refine automation icon 2026-09-27 01:44:00 +08:00
Yif 5d72bfbe49 fix(plugins): refine refresh feedback and plugin artwork 2026-09-27 01:00:50 +08:00
Yif d27663918d Merge master scheduling updates and preserve approved icon 2026-09-26 22:11:11 +08:00
Yif 16c30ed6ba fix(plugins): polish installation interactions and loading visuals 2026-09-26 00:50:42 +08:00
ZiyaZhang 197355bb12 fix(schedule-bundle): name the Plugins row Automation tasks with an alarm clock icon
The row now carries the name of the sidebar entry it adds and a
plain-language description, and its icon is an alarm clock drawn in the
Official group's 36px style. The README and the user guide quote the new
title; the README names the sidebar entry instead of a right-sidebar page.
2026-09-24 23:08:48 -07:00
Chinesezjc 3ce7b11425 fix(schedule-bundle): satisfy the omitted-companion README rule and refresh the plugin goldens 2026-09-24 21:32:28 +08:00
Turtle cf8fe108d5 fix(client): call Subagent 子智能体 in the Chinese settings page 2026-09-24 17:18:42 +08:00
Turtle a3480857dd feat(plugins): offer Auto review and keep Inspector explicitly installed (#4867)
* feat(experimental): ship every experimental capability as an optional bundle

dsh-base mounts the registration-only browser-use and computer-use
services; the Playwright MCP, Chrome DevTools MCP, native and MCP Cua
Driver providers, Auto review, and the Inspector become one-row bundles
listed in OPTIONAL_BUNDLES with an icon and locale display metadata.
verify-default-product-isolation requires both for every optional
bundle. Python PTC and Stagehand stay explicit compositions.

* feat(experimental): keep optional bundles inside the install closure

Drop the Playwright MCP, Chrome DevTools MCP, and native Cua Driver
bundles: each is a runtime dependency of every install and would add
about 85 MB of provider runtimes whether or not enabled. dsh-browser-use
leaves dsh-base with them. The three packages keep their locale display
metadata for component rows.

* feat(experimental): drop the Cua Driver MCP bundle and leave dsh-base untouched

* test(web): refresh Official-group goldens for the four optional bundles

* fix(plugins): use an uninstalled bundle as the install example and pin optional-bundle metadata

The install guide's example is now @deepseek-ai/dsh-subagent-codex,
a published bundle no shipped profile carries, since Auto review is an
installed optional bundle. The optional-bundle spec guards its corpus and
pins each bundle's title, description, and icon in both languages; the
Inspector's Loader test mounts its real bundle patch, its Client names
the reload a hot-enabled page needs, and its description states the
loopback DevTools endpoint's reach.

* test(web): refresh GitHub install recovery placeholder snapshot
2026-09-24 16:33:50 +08:00
ZiyaZhang 3c20f401d2 fix(web): label beta features as experimental 2026-09-23 00:07:13 -07:00
Turtle 601d6761e4 feat(settings): project volatile Config through profile-backed forms (#4587) 2026-09-21 18:26:03 +08:00
Yichen Jiang b3ff0f5dc7 Merge remote-tracking branch 'origin/master' into worktree/experimental-voice-input
# Conflicts:
#	packages/client/ui-plugin-manager/tests/components.client.spec.tsx
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-primitives/tests/icons.client.spec.tsx
#	packages/client/ui-primitives/tests/state-dot.client.spec.tsx
2026-09-21 10:56:23 +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
Yichen Jiang c6bc1a2fab Merge remote-tracking branch 'origin/master' into worktree/experimental-voice-input
# Conflicts:
#	apps/desktop/electron-builder.config.mjs
#	apps/desktop/tests/macos-signature.spec.ts
#	apps/desktop/tests/main-startup.spec.ts
#	apps/web/tests/expected/plugin-config/official.expected.md
#	apps/web/tests/expected/plugin-manager/live-enabled.expected.md
#	apps/web/tests/expected/plugin-manager/manager.expected.md
#	apps/web/tests/plugin-config.e2e.ts
#	apps/web/tests/plugin-manager.e2e.ts
#	apps/web/tsconfig.json
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
#	packages/client/ui-plugin-manager/src/client/locales.ts
#	packages/client/ui-plugin-manager/src/client/presentation.ts
#	packages/client/ui-plugin-manager/tests/components.client.spec.tsx
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-primitives/src/StateDot.tsx
#	packages/client/ui-primitives/src/icons/index.tsx
#	packages/client/ui-primitives/tests/icons.client.spec.tsx
#	packages/experimental/README.i18n.yaml
#	packages/experimental/README.md
#	packages/experimental/README.zh.md
#	packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
#	pnpm-lock.yaml
#	scripts/gen-cordis-catalog.ts
#	tsconfig.host.json
2026-09-20 13:22:11 +08:00
imccyu 0d611ea151 feat(web): display plugin-owned locale metadata 2026-09-19 20:19:04 +08:00
Yif c3226f93e9 Merge remote-tracking branch 'origin/master' into feat/plugin-refine
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-primitives/tests/icons.client.spec.tsx
2026-09-18 17:43:20 +08:00
Turtle de662ee010 fix(boot): skip failed profile bundles and retain recovery controls (#4516) 2026-09-18 16:35:50 +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 19e6e7b81b test(agent-team): verify browser activation and document bundle composition 2026-09-18 12:53:31 +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
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 5ccf1c57d2 fix(voice-input): align CI fixtures and source-only coverage 2026-09-17 14:23:25 +08:00
Dudu-0223 5c507b12c6 test(web): refresh Subagent summary in plugin manager snapshots 2026-09-17 14:23:12 +08:00