Commit Graph
70 Commits
Author SHA1 Message Date
Dudu-0223 6cc45f22bd feat: 在内置配置中关闭 subagent 和 Team 的 interrupt 工具 (#7986)
* feat(subagent): disable interrupt tool by default

* test(subagent): update remaining default tool inventories

* fix: disable agent interruption in shipped configuration

* test: configure interruption explicitly in custom preset fixture

* test: update tool count in collapse display snapshots

* docs: clarify agent interruption opt-in and verify preset controls

* test: cover macOS CUA channel policy forwarding on every platform

* test: move CUA coverage repair to a separate master change
2026-11-07 06:55:25 +00:00
turtle1999 0da56480c7 test(web): include dsh-doc in recommendation catalogs 2026-11-05 18:51:05 +08:00
_Kerman beb5186e36 Merge origin/master into xtr/runtime-context-reminders 2026-11-05 15:23:36 +08:00
yudshj 3f6cd80c9d feat(office): Office 技能在 Web、SDK 均可加载
- web-app profile 不再限定 Desktop 才加载 skill-office;非 Desktop 时可用 DSH_BUNDLED_OFFICE_SKILLS 指定技能目录,否则使用随包技能,并指引模型使用用户自己的 Python
- sdk-app profile 不再要求 DSH_PRIMARY_RUNTIME 才加载 skill-office;没有 primary runtime 时使用随包技能和用户自己的 Python
- 相应刷新 SDK / Web snapshot 与 golden(首轮注入 Office 技能目录),并更新 README、Agent Note、升级指南和测试
2026-11-04 13:25:24 +00:00
Dudu-0223 ba4b6d69ea refactor(subagent): remove shared directory and scope guidance 2026-11-04 16:59:07 +08:00
Dudu-0223 bb3ac8e304 Merge master into feat/subagent-catalog-names 2026-11-04 13:51:31 +08:00
_Kerman 9776b567bc Merge remote-tracking branch 'origin/master' into xtr/runtime-context-reminders 2026-11-04 13:26:15 +08:00
_Kerman efa57ca366 Merge origin/master into xtr/runtime-context-reminders 2026-11-04 13:26:14 +08:00
Dudu-0223 a6f6b98053 Merge master into feat/subagent-catalog-names 2026-11-04 12:04:15 +08:00
sjw1231 1d5f9f7607 Merge remote-tracking branch 'origin/master' into feat/apply-patch-row-summary 2026-11-04 12:03:48 +08:00
Dudu-0223 fd8dfa270d test(subagent): refresh naming snapshots against current base 2026-11-03 16:02:27 +08:00
Dudu-0223 0d18d256c3 Merge master and simplify wait_agent input guidance 2026-11-03 14:51:55 +08:00
Dudu-0223 8223beef55 docs(subagent): explain wait input delivery after code execution 2026-11-03 14:14:56 +08:00
Dudu-0223 9f57925000 Merge remote-tracking branch 'origin/master' into feat/subagent-catalog-names
# Conflicts:
#	docs/persistence-schema.json
#	docs/tool-catalog.i18n.yaml
2026-11-03 13:49:18 +08:00
Dudu-0223 0cb47b9d03 fix(subagent): integrate root-call scoped wait protection
Integrate PR #7774 with one-shot code guidance and matching snapshots. Cover distinct nested call IDs sharing a root and concurrent model calls with pending input.
2026-11-03 13:29:33 +08:00
Dudu-0223 bed550f81e test(subagent): sync wait guidance across SDK and Web snapshots 2026-11-03 12:26:34 +08:00
Turtle 582c334472 Merge pull request #7022 from deepseek-harness/turtle/websearch-query-limit-96c308027005
feat(web): raise web_search defaults to 10 queries and 10 sources
2026-11-03 11:41:39 +08:00
Dudu-0223 a4c933ad1f fix(subagent): fail unmatched name paths and tighten name admission
Review round on the naming change.

`resolveName` now distinguishes an address from a Session id: a
slash-separated address never is one, so an unmatched path fails with
AGENT_NAME_NOT_FOUND instead of reaching member lookup as an unknown id,
while a single token keeps the Session-id fallback. Path resolution also
treats external and unknown children as leaves, so a name below an external
run reports the same clear failure instead of surfacing a session-query error
for an identity that owns no local Session.

Native V4 admission rejects a repeated sibling name in own catalog facts,
symmetrically with its duplicate-child check, so a log that would make name
lookup ambiguous fails before any member is resolved.

`SiblingNameReservations.release()` checks that it still owns the map entry,
so a stale or repeated release cannot drop a newer reservation for the same
creator.

`list_agents` explains corrupt, unsupported, and unavailable: they report that
the row's own descendants could not be read, and the row remains a member the
caller can message. The earlier wording restricted messaging to running or
inactive rows, which excluded addressable members.

`isAgentName` stays module-local; the package entry exports only
ROOT_AGENT_NAME, matching its current callers.

Package READMEs, the subsystem page, the Agent Note, and the generated API
catalogue follow; recorded-session, CLI, and Web expectations are refreshed.
2026-11-02 22:43:01 +08:00
Dudu-0223 6644a234a5 Merge master into feat/subagent-catalog-names 2026-11-02 17:46:04 +08:00
Chinesezjc fdff707b82 Merge pull request #7303 from deepseek-harness/fix/read-guidance-line-ranges
fix(prompt): name line ranges and shell readers in the read guidance
2026-11-02 16:57:54 +08:00
Chinesezjc 1d2e1c6be5 Merge remote-tracking branch 'origin/master' into fix/read-guidance-line-ranges
# Conflicts:
#	packages/fs/tool-fs/tests/tools.spec.ts
2026-11-02 16:14:57 +08:00
Dudu-0223 05225052f9 docs(subagent): clarify discovery covers explicit model selection 2026-11-02 16:13:04 +08:00
Dudu-0223 65a87a5860 fix(subagent): clarify selection guidance and stabilize Web smoke capture 2026-11-02 15:52:24 +08:00
sjw1231 822229c588 fix(tool-fs): update apply_patch tool description
Describe what the patch tool does and the patch text it expects, and
refresh the tool catalog and recorded schema snapshots to match.

Refs #7696
2026-11-02 15:26:37 +08:00
Dudu-0223 5a75c8b4a5 fix(subagent): require an explicit route for reasoning overrides 2026-11-02 15:06:10 +08:00
Dudu-0223 7301fa98b0 fix(subagent): state when to query child routes and when to omit them
The discovery tool presented itself as the place to inspect options before
selecting a child route, and rejected every provider or model outside the
Session's authorized routes, including providers that do not exist. A model
that skipped the no-argument call therefore had no way to learn the correct
ids or that omission was legal, and repeated identical denials.

Say that queries exist to override the child route, that omitting both route
fields inherits the parent route, that a field is omitted rather than sent
empty, and, in each optional route field, that omitting it inherits the
parent value.
2026-11-02 15:05:53 +08:00
Dudu-0223 ff563d07e0 feat(subagent): name subagents in their creator catalog
Models coordinate subagents through send_message, interrupt_agent, list_agents,
and Team task owners, but every one of those addressed a member by a
36-character Session id. Each new child now has a name, unique among its
creator's children, recorded as a field of the subagent/catalog entry the
creator already appends (payload version 3).

The Session id stays the only execution identity for routing, authorization,
persistence, task ownership, and navigation. A name is a model-facing
reference: 1-32 lower-case letters, digits, or hyphens starting with a letter,
never `lead`, so a UUID never parses as one. Omission selects the first free
`agent-N`; an explicit duplicate or invalid name fails before startup. The
creator reserves the name synchronously at admission and releases it when the
catalog entry commits or startup fails, so no second write, rollback protocol,
or optional naming service exists.

The root is `lead`, and a descendant's full name is its path from the root
without a `lead/` prefix, such as `reviewer/checker`. Sibling-unique segments
make full names tree-unique without a root registry, and cold resume rebuilds
a member's path from the catalogs along its creation chain. A member below an
unnamed historical creator keeps its Session id as its name. resolveName()
reads only the catalogs along the path and grants no authority.

Tools, runtime-authored text, and the Web client consume names: delegation
takes an optional name and returns { kind, subagentId, name }; send_message and
interrupt_agent take `agent`; list_agents rows carry name, status, and
description; Team task results report the owner's name while storage keeps
ownerId; identity runtime context, message framing, and settlement notices use
full names. Recorded sessions, CLI and Web expectations, the Python runtime
snapshots, bilingual docs, an upgrade guide, and an Agent Note follow.
2026-11-02 14:58:32 +08:00
Dudu-0223andimccyu 0487699ae4 feat(subagent): share ID-based identity and collaboration guidance (#7519)
* feat(subagent): share identity and collaboration guidance

* fix(subagent): complete shared guidance snapshot expectations

* fix(subagent): match task descriptions to the user language

* refactor(subagent): retain shared guidance with Session ids

* test(subagent): recognize parent ids in shared identity

* Checkpoint ID collaboration guidance generated expectations

* Preserve historical Web schema sidecars

* fix(test-support): preserve job references during snapshot refresh

* test(subagent): refresh ID-only collaboration guidance outputs

* fix(subagent): rely on list_agents tool description

* fix(subagent): keep collaboration guidance consistent with live identity

* test(team): parse parent identity from shared guidance

* test(subagent): address parent from shared identity context

* test(subagent): refresh compiled Web guidance snapshots

* test(subagent): refresh browser collaboration context fixtures

* docs(subagent): attribute required identity to standard controls

* fix(subagent): clarify collaboration identity prompts

* test(subagent): remove duplicate PowerShell collaboration context

* refactor(subagent): match unavailable-root errors by name and code

---------

Co-authored-by: imccyu <[email protected]>
2026-10-31 22:38:07 +08:00
Dudu-0223 71676cbc21 Merge master into the ID-only subagent and Team core 2026-10-30 14:57:57 +08:00
sjw1231 c9970438d3 Merge branch 'feat/apply-patch' into feat/apply-patch-default-on
Takes master's re-recorded plan-review, creation-recommendations, and
plugin-recommendations scenarios from the base and refreshes their headers
and schema sidecar for the enabled apply_patch tool.
2026-10-29 18:57:53 +08:00
sjw1231 14d3e53c19 feat(fs): ship apply_patch on and the observation policy off
Evaluation on the shipped compositions decided the defaults: the `dsh-base`
`tool-fs` row and the Web `standard` preset enable apply_patch, keeping the
SDK and Desktop `standard` tool sets equal (the SDK PTC overlay keeps the
base row while the Desktop PTC preset lists its own, which the parity
exceptions record); the `fs-observation-policy` row ships `disabled: true`,
so write, edit, and apply_patch mutate unconditionally in every profile, and
the package is classified as an optional product package.

The write and edit guidance stops citing the policy as the default and the
apply_patch guidance asks for enough hunk context instead of a prior read.
The two recordings that capture a policy refusal re-enable the row through a
per-scenario runtime.cordis.yml; the fixed-budget compaction scenarios pin
`applyPatch: false` so their recorded thresholds hold; every other sidecar
and recorded header follows. An upgrade guide records the default change.
2026-10-29 18:36:52 +08:00
sjw1231 ea4837abb1 feat(fs): keep apply_patch opt-in and the observation policy mounted
This pull request lands the tool; switching the shipped defaults is a
separate pull request stacked on it. Every shipped `tool-fs` row states
`applyPatch: false`, the `fs-observation-policy` row stays mounted, the
write, edit, and apply_patch guidance names the policy, and every recorded
expectation outside the apply-patch scenarios returns to the master
baseline. The upgrade guide, the parity exception, and the optional
classification of the policy package move to the stacked change.
2026-10-29 18:36:31 +08:00
Dudu-0223 a0a5a24556 Merge current master schedule APIs into stack base 2026-10-29 18:18:04 +08:00
ZiyaandMagolor 341ea6eea4 feat(schedule): integrate standalone tasks with the existing WebUI (#6189)
* feat(schedule): manage Host tasks with typed timing and delivery targets

* fix(schedule): align task creation button halves

* refactor(schedule): remove obsolete Session reminder runtime

* refactor(schedule): simplify task UI and preserve keyboard navigation

* fix(schedule): address task delivery and interface review findings

* test(schedule): normalize bundle module paths on Windows

* fix(schedule): cover reserved targets and trim unrelated changes

* refactor(schedule): minimize task management changes after rebase

* test(schedule): align rebased fixtures and documentation records

* test(schedule): refresh SDK scenarios added on master

---------

Co-authored-by: Magolor <[email protected]>
2026-10-29 18:11:48 +08:00
sjw1231 fe5450b152 feat(fs): ship without the observation policy and enable apply_patch in the Web standard preset
Evaluation on the shipped Web composition decided the defaults: the
`fs-observation-policy` row in dsh-base ships `disabled: true`, so write,
edit, and apply_patch mutate unconditionally in every profile; the Web
`standard` preset lists apply_patch; and the tool-fs `applyPatchGuard` switch
is gone, apply_patch always consulting the fs/* intent waterfalls like the
other mutating tools.

The write and edit guidance stops citing the policy as the default, and the
apply_patch guidance asks for enough hunk context instead of a prior read.
The two recordings that capture a policy refusal (fs-policy-reject and
apply-patch-rejected) re-enable the row through a per-scenario
runtime.cordis.yml; every other sidecar follows the prompt change, and the
Web standard-preset recordings gain the apply_patch schema. An upgrade guide
records the default change.
2026-10-29 16:38:42 +08:00
_Kerman 23123a2c9a test(context): refresh Web runtime reminder expectations 2026-10-26 15:40:14 +08:00
Turtle b690b20ff0 Merge origin/master into turtle/websearch-query-limit-96c308027005 2026-10-26 12:25:06 +08:00
Chinesezjc c74015c81e test(snapshot): re-render expected prompts and the read guidance fence
89 recorded system prompts carry the restored sentence; the two pinned
historical sidecars keep their recorded text. The package README fence is
updated in both languages.
2026-10-26 11:26:43 +08:00
Dudu-0223 c49c4f11de Merge master into subagent tree stack and reconcile fixtures 2026-10-25 15:24:45 +08:00
creatixchu cf65ee6e01 Merge master into bundle Host platform support 2026-10-25 11:58:20 +08:00
Turtle 94ed636380 fix(tool-ask-user): tell the model a skipped question is answered
The blocking ask_user_question description did not explain that an answer
item with empty selected and no custom is a user skip, so models re-asked
the same question after the user clicked Skip.

Refs #7134
2026-10-24 13:23:53 +08:00
Dudu-0223 ffad919ed8 refactor(subagent): remove interrupt guidance from list_agents 2026-10-23 16:45:22 +08:00
Dudu-0223 b5cbd3c08d Merge master compiler budget and recommendation composition 2026-10-23 16:20:59 +08:00
ZiyaandZiyaZhang d6d51be4cb feat(experimental): 把个性化页面和插件推荐合并为实验性插件「个性化推荐」 (#7034)
* feat(experimental): ship the two card experiments as one Personalized recommendations bundle

@deepseek-ai/dsh-personalized-recommendations inserts the action card
service, its browser half, Personalized pages and Plugin recommendations
with their card bodies under the existing row ids. As the only layer that
declares those ids, the Plugins page addresses and switches each row,
including the two shared card rows that were read-only while two bundles
inserted them.

The two experiment packages stop being bundles; the new bundle takes their
place in the official lists and the dsh installation, with the personalized
pages icon, localized title and description, and a feature preview of both
cards. The two feature rows describe what they do on the bundle page.

* fix(experimental): drop the model reason line from plugin recommendation cards

The reason follows the language of the user's question while the catalog
description below it follows the interface language, so the two lines could
differ in language and largely repeat each other; the answer already gives
the reason. The card keeps the catalog title and description, both in the
interface language, as its details target.

* test(web): refresh the card fixtures for the Personalized recommendations bundle

Both card replays enable the new bundle, so each Session lists both card
skills, and each skill's catalog lists Personalized recommendations in place
of the two former bundles. The plugin card goldens lose the reason line.

---------

Co-authored-by: ZiyaZhang <[email protected]>
2026-10-23 07:55:49 +00:00
Dudu-0223 d7858505da Sync recommendation recordings with shared subagent tools 2026-10-23 15:34:26 +08:00
creatixchu 4026b5f2b0 test(plugins): refresh the scoped recommendation recording 2026-10-23 13:46:34 +08:00
Turtle 976e8b4a2f Merge origin/master into turtle/websearch-query-limit-96c308027005 2026-10-23 13:19:29 +08:00
ZiyaZhang af711df6e4 test(web): refresh the card fixtures for the eight-language plugin catalog
The plugin skill's catalog lists every official plugin's title and
description in the eight shipped languages, and the page skill's catalog
lists the plugin recommendations entry with its new translations.
2026-10-22 21:30:04 -07:00
ZiyaZhang b5d4e93861 refactor(experimental): drop experimental from the plugin recommendation package names
The two packages keep their directories under packages/experimental and are
registered as experimental name exceptions:

- @deepseek-ai/dsh-plugin-recommendations
- @deepseek-ai/dsh-client-ui-plugin-recommendations

Loader row ids, the Remote service name, locale namespaces and the
enable_official_plugin action are unchanged. Generated catalogs are
regenerated, and both card Web fixtures record the renamed bundle in their
skills' plugin catalogs.
2026-10-22 21:02:23 -07:00
ZiyaZhang 30dafd2106 Merge feat/creation-recommendations into plugin recommendation experiment
Takes the card packages' new names and master up to e115cc98d65. The plugin
recommendation packages and their bundle rows now name
@deepseek-ai/dsh-action-cards and @deepseek-ai/dsh-client-ui-action-cards;
generated catalogs are regenerated, and both card Web fixtures record the
renamed bundles in their skills' plugin catalogs.
2026-10-22 20:58:11 -07:00