Commit Graph
6148 Commits
Author SHA1 Message Date
Dudu-0223 04a3c30a04 fix(subagent): default delegation depth to one 2026-09-17 00:38:16 +08:00
Dudu-0223 9fcf9f7b11 merge: sync master into continuable activation limits 2026-09-17 00:35:36 +08:00
Yichen Jiang ce113eb86a Merge pull request #4376 from deepseek-harness/feat/plugin-page-config-items
feat(web): host plugin configuration on the Plugins page
2026-09-16 22:35:24 +08:00
Turtle 22c96420fe Merge pull request #4367 from deepseek-harness/turtle/orchestrator-2d656b6cb16e
feat(client): lead known-site links with the site's own mark
2026-09-16 21:31:27 +08:00
Yichen Jiang 90af3110b7 feat(web): host plugin configuration on the Plugins page
The Plugins page declares three slots as children of its main entry:
`plugins.item` lists an official plugin's page in the Official group,
`plugins.bundle.config` renders a bundle's own form on its page, and
`plugins.row.config` gives a row a configure control opening the row's
page. Every entry renders in the `summary` and `page` views the page
passes as owner props; the page draws the title, icon, and crumb and
projects the ledgers beside its store, naming no configurable plugin.

`ui-settings-plugins` registers its four host-plane pages into
`plugins.item` while the Host serves their namespaces and withdraws them
when it stops; the forms keep edits until a save and drop them on leaving
the page, so the discard control and the unsaved marker are gone. The
Settings section becomes the Built-in plugins shell around the inventory
tab, and `settings.plugin.item` is retired.

The Official group opens with the optional bundles the installation
ships, tagged Beta where the feature is one and without an official tag,
followed by the configuration pages. Auto review leaves the optional
bundles and the CLI's dependencies; the install guide names it as its
example spec. The version tag is a capsule like the other tags.

The `plugin-config` web lane drives the pages through the real wire and
opens a community fixture's row page after switching its bundle on; the
settings lanes re-record the renamed navigation entry.
2026-09-16 21:05:34 +08:00
07akioni 3766f4af95 merge: resolve event catalog conflicts with master 2026-09-16 20:18:01 +08:00
creatixchu 974d0271c0 fix(deliverables): satisfy the static gates and Windows tests
Regenerate the client and persistence catalogs, document the review address builder with a plain parameter, share the changed-file coordinate parsing between the comparison and native-open routes, and fold the summary and comparison stores onto one Host read store. A path with no existing ancestor but the filesystem root keeps its spelling on every platform, and the temp-root test redirects TMP and TEMP as well as TMPDIR while counting only the recorder's own directories.
2026-09-16 19:32:25 +08:00
creatixchu 2875e28a0e Merge remote-tracking branch 'origin/worktree/code-diff-card' into worktree/changes-diff-preview 2026-09-16 19:26:39 +08:00
Turtle 59456dbb5b feat(client): lead known-site links with the site's own mark
Clickable external links now lead with the destination site's own mark
instead of the globe when the host belongs to a known site: GitHub,
GitLab, npm, PyPI, Stack Overflow, MDN, Wikipedia, Hacker News, YouTube,
X, Bilibili, Zhihu, Juejin, and CSDN. LinkIcon takes an optional href and
resolves the mark through a private SiteGlyph module; markdown anchors,
reference links, URL-promoted inline code, and web-card source and fetch
links pass their sanitized destination. Unmapped hosts, non-http schemes,
and the file categories keep today's glyph.

The marks are the single-path form of Simple Icons (CC0-1.0) on its
24x24 viewBox, filled with currentColor like every other link glyph, so
they follow the link alias in both themes and on hover.

Coverage: the LinkIcon spec pins one host per mapped site plus the alias
and fallback branches, the markdown and web-card specs pin their consumer
wiring, and the clickable-links gallery e2e pins the assembled mark
against the globe in a real browser.
2026-09-16 19:23:03 +08:00
creatixchu c63da07322 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-16 19:19:58 +08:00
07akioni bbbd93ad32 Merge remote-tracking branch 'origin/master' into fix/session-used-toast 2026-09-16 19:12:13 +08:00
Turtle f756097108 Merge pull request #4324 from deepseek-harness/turtle/creator-plugin-manager
feat(creator): use Plugin Manager for persistent plugins
2026-09-16 17:58:53 +08:00
turtle1999 9a83772560 fix(plugin-manager): request approval for single-call full access 2026-09-16 16:53:34 +08:00
07akioni 73c2300ce4 merge: align session toast fix with latest master 2026-09-16 16:51:49 +08:00
creatixchu 142ca8b956 Merge remote-tracking branch 'origin/worktree/code-diff-card' into worktree/changes-diff-preview 2026-09-16 16:49:48 +08:00
creatixchu 9a74f173d3 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card 2026-09-16 16:31:23 +08:00
turtle1999 470d4aae11 fix(plugin-manager): require full access for agent tool calls 2026-09-16 16:27:48 +08:00
Yichen Jiang cb731e26e9 Merge master into worktree/model-input-checkboxes 2026-09-16 16:03:24 +08:00
07akioni e297b75a5d merge: align session toast fix with latest master 2026-09-16 15:47:57 +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
07akioni 5c369a0a1f fix: carry session writer failures by typed remote code 2026-09-16 15:38:34 +08:00
Yichen Jiang f5683559a5 fix(web): isolate model settings tests and update input guide 2026-09-16 15:33:50 +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 ab695ef4cf feat(web): give user terminals system-user permissions 2026-09-16 13:52:23 +08:00
Yichen Jiang cc394230bf feat(web): unify model input controls and catalog inheritance 2026-09-16 13:48:07 +08:00
creatixchu fac80a84fb Merge remote-tracking branch 'origin/worktree/code-diff-card' into worktree/changes-diff-preview 2026-09-16 13:39:21 +08:00
creatixchu 2440937459 fix(workspace-changes): list oversized pairs, bound capture reads, and resolve paths through symlinked ancestors
Two oversized captures are no longer treated as unchanged, so the file is listed as oversized instead of vanishing; an oversized side outranks a binary one in the card and the tab alike. Captures read at most maxFileBytes + 1 bytes through a file handle, a missing file resolves through its nearest existing ancestor so a path created through a directory symlink keeps one canonical spelling, and ls-tree matches paths literally. The comparison tab draws at most 5,000 lines. Docs record that comparisons serve whole file text beyond the workspace root, the newline normalization, and the coarse payload bound; the card note's row behavior is current again.
2026-09-16 13:37:22 +08:00
Dudu-0223 0eed02d447 fix(subagent): map capacity refusal and clarify one-shot scope 2026-09-16 13:11:47 +08:00
Dudu-0223 ab8bc05695 Merge remote-tracking branch 'origin/master' into feat/continuable-activation-limit 2026-09-16 12:52:09 +08:00
Dudu-0223 a69bcf3636 feat(subagent): own editable delegation limits in the backend 2026-09-16 12:51:50 +08:00
creatixchu 664190c6f9 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
2026-09-16 12:42:02 +08:00
Dudu-0223 d7f9d3a773 fix(subagent): default to eight live continuable children 2026-09-16 11:50:17 +08:00
Dudu-0223 6bdbe4dff2 Merge remote-tracking branch 'origin/master' into feat/continuable-activation-limit 2026-09-16 11:47:10 +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
Dudu-0223 2d24d80d5f docs: synchronize translated subagent event references 2026-09-15 23:33:26 +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
Dudu-0223 16620a3a70 feat(subagent): cap live continuable activations per root at 16 2026-09-15 23:29:22 +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 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 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 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
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 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 72aaad53fd docs(config): refresh generated catalog pairing 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