Commit Graph
12025 Commits
Author SHA1 Message Date
turtle1999 d86da2e31c test(plugin-manager): keep approval assertions type-safe 2026-09-16 16:55:46 +08:00
turtle1999 9a83772560 fix(plugin-manager): request approval for single-call full access 2026-09-16 16:53:34 +08:00
turtle1999 470d4aae11 fix(plugin-manager): require full access for agent tool calls 2026-09-16 16:27:48 +08:00
turtle1999 7342687170 fix(creator): bound visual verification and refresh module graph 2026-09-16 15:39:17 +08:00
turtle1999 ed32f57f88 feat(creator): use Plugin Manager for persistent plugins 2026-09-16 15:39:16 +08:00
yudshj 82ab876331 fix(office): validate strict and corrupt OOXML 2026-09-16 15:21:18 +08:00
yudshj fa518ecd89 feat(desktop): enable standalone Office skills 2026-09-16 15:21:18 +08:00
Yichen Jiang 941cf78b5d Merge pull request #4336 from deepseek-harness/worktree/messages-tool-history-json
fix(llm): tolerate malformed historical Messages tool input
2026-09-16 15:18:59 +08:00
Yichen Jiang 99402378b7 Merge pull request #4333 from deepseek-harness/worktree/user-terminal-permissions
feat(web): give user terminals system-user permissions
2026-09-16 15:04:33 +08:00
Turtle e879c7456a Merge pull request #4321 from deepseek-harness/turtle/builtin-plugin-i18n
fix(web): localize built-in plugin names and descriptions
2026-09-16 14:37:15 +08:00
Yichen Jiang 1f030b3c1c fix(llm): tolerate malformed historical Messages tool input 2026-09-16 14:28:20 +08:00
07akioni 46bac5f7db Merge master and retain desktop execution PATH isolation 2026-09-16 14:20:57 +08:00
lsdsjy 44c65b70ad Merge pull request #4257 from deepseek-harness/fix/desktop-directory-picker
fix(desktop,client): attach workspace folder dialogs to the application window
2026-09-16 14:11:15 +08:00
Yichen Jiang ab695ef4cf feat(web): give user terminals system-user permissions 2026-09-16 13:52:23 +08:00
lsdsjy 21c7828678 docs(desktop,client): align native directory picker summaries 2026-09-16 13:50:38 +08:00
lsdsjy 48dd4b3bea test(desktop,client): keep picker composition coverage with its feature 2026-09-16 13:50:37 +08:00
lsdsjy ea5f1dce4a fix(desktop,client): preserve folder creation and verify picker wiring 2026-09-16 13:50:21 +08:00
lsdsjy 73dcae2915 fix(desktop,client): attach workspace folder dialogs to the application window 2026-09-16 13:50:07 +08:00
turtle1999 aea150a17e test(pwsh): align repeated sandbox mode expectations 2026-09-16 13:35:31 +08:00
turtle1999 61c548e200 fix(sandbox): accept repeated effective permission modes 2026-09-16 13:16:33 +08:00
07akioni a66d81e33f fix(ptc): limit Electron selector to startup and budget native tests 2026-09-16 13:11:08 +08:00
07akioni a139e6e9e1 fix(ptc): preserve Electron Node mode when launching programs 2026-09-16 12:52:50 +08:00
Tianyi Cui c4f1cae6c6 Merge pull request #4313 from deepseek-harness/fix/llm-remove-v4-flash-models
feat(llm): drop the V4 Flash and V4 Flash Vision Exp default models
2026-09-16 12:36:35 +08:00
Turtle 6bc7938a15 fix(web): localize built-in plugin names and descriptions 2026-09-16 12:26:54 +08:00
Kexin Liu ac0acf55a6 Merge pull request #4231 from deepseek-harness/feat/composer-selection-keyboard
feat(client): give the composer's selections and its menus one keyboard model
2026-09-16 11:49:20 +08:00
Tianyi Cui a55b08233f test(llm): point the keyless onboarding case at a listed model
The case verifies first-boot catalog browsing and an actionable
MISSING_CREDENTIAL, so it follows the default catalog instead of an
unlisted id whose route only proves pass-through.
2026-09-16 11:39:32 +08:00
Tianyi Cui f2beb99c3b feat(llm): remove the V4 Flash and V4 Flash Vision Exp defaults
The shipped DeepSeek catalog keeps V41 Flash and V4 Pro only; the removed
ids still pass through as text-only routes when configured explicitly.

Updates the adapter tests, the Web settings goldens that render the default
catalog, and the regenerated config catalog.
2026-09-16 11:26:21 +08:00
Yichen Jiang 2bc7697265 Merge pull request #3596 from deepseek-harness/feat/plugin-mgmt-4-web
feat(web): manage global plugins from the sidebar
2026-09-15 23:40:55 +08:00
Yichen Jiang a9fe93fc0b refactor(plugins): name bundles by their package name only
`dsh.title` was a manifest field this branch introduced: the manager read
it for `listBundles` and `inspect`, and the Web page showed it over the
package name. A bundle is named by its package name now, so `DshManifest`
keeps only its shipped fields, the page derives every heading from the
name, and the install dialog's subject line reads the name the Host
answered. The two e2e fixtures drop their titles and the manager lane's
goldens follow.
2026-09-15 23:31:54 +08:00
Yichen Jiang b017b2861c fix(experimental): declare react as a build input of the agent team client
@deepseek-ai/dsh-experimental-client-ui-agent-team listed react under
dependencies, which the shipped client packages never do: react reaches the
browser through the web build. Now that the agent team web profile is an
optional bundle of @deepseek-ai/dsh, that dependency pulled react into the
npm install layout, where verify-npm-install-layout rejects it.
2026-09-15 22:56:08 +08:00
Yichen Jiang 15eb952733 test(client): count the plugin page's two glyphs in the icon set
The info ring and the plugin pinwheel joined the hand-authored product
glyphs without the icon-set inventory following: master's count of 79
stayed after the merge while the barrel exports 81.
2026-09-15 22:56:04 +08:00
Yichen Jiang 430f88d1c5 refactor(web): keep the plugin manager's store state types package-private
The Client entry re-exported ConfirmState, InstallState, ManagerNotice and
PluginManagerState from the controller store although no other package names
them; the page, its tests and the presentation module import them from the
store directly. Only the face, the page props and the locale key stay public.
2026-09-15 22:38:48 +08:00
Yichen Jiang 79729c3422 refactor(plugins): read a bundle's one-liner from the package description only
The dsh manifest gains no description field: a bundle's card shows the
package.json description, and the shipped optional bundles carry no
display title or description of their own until localized metadata is
designed. The plugin author tutorial shows the bundle declaration alone.
2026-09-15 22:26:58 +08:00
Yichen Jiang fa320209ab refactor(plugins): name the optional bundles in the launcher, not the installation manifest
OPTIONAL_BUNDLES in app-boot lists the bundles the installation ships
switched off; the plugin manager, the default-product isolation gate,
the workspace constraints, and the packed-install check read that one
list instead of a dsh.optionalBundles field in apps/cli/package.json.
2026-09-15 22:22:22 +08:00
Yichen Jiang f04c265725 refactor(plugins): stop announcing patch generations applied outside the manager
app-boot no longer emits profile/reconciled after a reload, and the plugin
manager no longer turns such a generation into a plugin-manager/changed
notice: the Web page learns of a CLI or hand edit on its next read. The
change event keeps only the reasons a manager operation produces.
2026-09-15 22:21:06 +08:00
Yichen Jiang 5e5f0a2393 fix(web): start the approval retry with a fresh log and keep the install dialog in view
The retry that allows blocked install scripts drops the failed run from
the dialog instead of stacking the new run under it. The dialog no longer
grows past the viewport: the card is capped and everything under the
head scrolls, so the close and edit controls stay reachable however long
pnpm's output is.
2026-09-15 21:40:54 +08:00
Yichen Jiang c3c7a4f412 refactor(app-boot): drop the root Include lookup by id
reconcileProfilePatches finds the root Include only through the registry
the module that mounted it keeps, as it did before the Web page: a tree
mounted by another copy of app-boot was a test-harness situation, not a
product one. The web e2e scaffold now mounts and resolves the profile
through the built app-boot, loaded with Node's own require so it shares
the module map with the Host plugins the profile loads, instead of the
source copy a bare import resolves to.
2026-09-15 21:39:42 +08:00
Yichen Jiang c13d21fb95 feat(web): approve blocked install scripts from the install dialog
When pnpm leaves a dependency's install scripts undecided, the failed
screen lists the pending packages and offers to allow them and retry in
place of plain retry; the Host saves the permission in the profile before
running pnpm again, and the installed screen names what was allowed. A
failure the Host could not name falls back to the manual instruction, and
a stale approval is worded like the other refusals. A new web lane drives
the whole flow through a fake pnpm that blocks, then installs.
2026-09-15 21:23:01 +08:00
Yichen Jiang 075aab54a7 Merge remote-tracking branch 'origin/master' into feat/plugin-mgmt-4-web
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	docs/subsystems/boot.i18n.yaml
#	docs/subsystems/boot.md
#	docs/subsystems/boot.zh.md
#	packages/api/remotes/src/client/index.ts
#	packages/boot/plugin-manager/README.i18n.yaml
#	packages/boot/plugin-manager/README.md
#	packages/boot/plugin-manager/README.zh.md
#	packages/boot/plugin-manager/src/index.ts
#	packages/boot/plugin-manager/src/types.ts
#	packages/boot/plugin-manager/tests/manager.spec.ts
#	packages/client/ui-settings-plugin-inventory/src/client/locales.ts
#	packages/client/ui-settings-plugin-inventory/src/client/management.tsx
#	packages/client/ui-settings-plugin-inventory/tests/components.client.spec.tsx
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	pnpm-lock.yaml
#	scripts/verify-default-product-isolation.spec.ts
2026-09-15 21:15:15 +08:00
07akioni 6f893f270a Merge pull request #4263 from deepseek-harness/desktop/native-fatal-recovery
feat(desktop): use native dialogs for fatal recovery
2026-09-15 21:06:04 +08:00
Turtle faf8da83f0 Merge pull request #4277 from deepseek-harness/turtle/plugin-build-approval
fix(plugin-manager): approve blocked dependency builds before retrying
2026-09-15 20:59:02 +08:00
Yichen Jiang 8059d76ea3 feat(plugins): ship Auto review as an optional bundle
The installation lists @deepseek-ai/dsh-experimental-auto-review beside
the two Agent Teams layers under dsh.optionalBundles, so a blank Web
profile offers it in the built-in group switched off. The bundle gets a
display title and one-liner, and its README says where it is switched on.
2026-09-15 20:58:37 +08:00
07akioni 8c28d87de8 Merge remote-tracking branch 'origin/master' into desktop/native-fatal-recovery
# Conflicts:
#	apps/web/tests/composer-draft-scroll.e2e.ts
2026-09-15 20:55:28 +08:00
Yichen Jiang bc0ecae21f feat(plugins): ship optional bundles switched off and guide the install dialog
The dsh installation lists under `dsh.optionalBundles` the bundles it
ships for a person to switch on. The plugin manager reports them as
`optional`, and the Web plugin page shows them first, in a built-in
group with an official tag, off until selected and never removable.
Agent Teams ships this way, so a blank profile offers both of its
layers. Default-product isolation, the workspace constraints, and the
packed-install check accept that one dependency edge and nothing else
experimental.

A bundle's title and one-liner come from `dsh.title` and the new
`dsh.description`, else from the package name and `description`. A
dependency without a bundle patch is no longer listed unless the
profile selects it. The install dialog asks for a package name or
address; a guide under the field shows the three accepted forms with
an example each and ends in a security warning, and the copy no longer
speaks of a plugin ID.
2026-09-15 20:51:12 +08:00
imccyu 7fb4cb4c8e fix(client): version lazy chunks by build generation 2026-09-15 20:45:49 +08:00
imccyu 45c74c5483 fix(client): satisfy chunk loader test lint 2026-09-15 20:45:49 +08:00
imccyu b98d5c8003 test(client): cover lazy chunk loader branches 2026-09-15 20:45:49 +08:00
imccyu b1471fd73c perf(client): load split bundles on demand 2026-09-15 20:45:49 +08:00
imccyu 7f5385bf01 revert(client): remove eager chunk scanning 2026-09-15 20:45:49 +08:00
imccyu d28807e05c fix(client): preserve lazy chunk runtime semantics 2026-09-15 20:45:49 +08:00