Commit Graph
85 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
_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
_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
TurtleandKaige-Gao 44ad857798 feat(ui-chat): show context injections as tool-call rows
Ordinary Context injections were hidden from Chat. Show them as the
existing collapsed disclosure rows inside the Turn process group, and
title a group made only of Context "Injected context" instead of
"Analysis completed".

Co-authored-by: Kaige-Gao <[email protected]>
2026-11-03 21:26:17 +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 a7f21a8dd6 fix(subagent): persist task owner names and simplify receipts 2026-11-02 16:01:05 +08:00
Dudu-0223 65a87a5860 fix(subagent): clarify selection guidance and stabilize Web smoke capture 2026-11-02 15:52:24 +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
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
Turtle 4bec077664 feat(tool-web): raise default web_search query cap to 10 2026-10-23 12:57:58 +08:00
Dudu-0223 e16f966470 Merge origin/master and align subagent UI locale keys 2026-10-23 12:49:41 +08:00
TurtleandTianyi Cui 747cbf13b6 Describe the ask approval policy by its meaning
Replace the literal "Approval policy: ask." runtime-context sentence
with a statement parallel to the never-policy sentence, and refresh the
current-generation fixtures that persist it.

Co-authored-by: Tianyi Cui <[email protected]>
2026-10-22 23:13:19 +08:00
Dudu-0223 b43a6c9e9c Merge remote-tracking branch 'origin/master' into HEAD 2026-10-22 18:22:17 +08:00
Dudu-0223 21bd0789ec Merge master and preserve parent-message settlement deduplication 2026-10-22 17:33:12 +08:00
Chinesezjc 8cd82e8001 Merge branch 'master' into work/restore-subagent-end-turn 2026-10-22 16:21:42 +08:00
Dudu-0223 16ece34568 Merge master into subagent tree branch 2026-10-22 13:33:16 +08:00
Dudu-0223 89e2a525aa refactor(subagent): distinguish runtime ownership from Team identity 2026-10-22 11:59:09 +08:00
Yichen Jiang 2f09a68329 Merge remote-tracking branch 'origin/master' into worktree/dynamic-tool-activation-pr-64796e 2026-10-21 17:58:24 +08:00
Yichen Jiang 7f32f6c3cc test(snapshots): declare exit_plan_mode only in plan mode
Keyless session, SDK, ACP, and Web snapshots, the subagent-inheritance
expected output, and the Python dynamic-tools snapshot no longer list
exit_plan_mode outside plan mode, and the collapse-timing goldens count one
fewer added tool. In plan-review, the approved exit now removes the tool on
the next step: its header records a change that starts a series and a
tool-removal developer message, which the expanded Web timeline shows.
cordis-inspect-jsdoc records the new tools service signatures. The pwsh
tool-turn pins are edited by hand because pwsh is unavailable for a local
refresh; their only change is the removed schema.
2026-10-21 15:15:29 +08:00
yudshj 17c8fc7076 fix(deliverables): 收窄 present 描述,并让行内引用包含收尾回复之后的写入
present 描述改为宿主可能只在本轮结束后展示交付文件,并只在等待用户回答的工具调用前建议改用链接。
本轮产生的文件与交付声明一样按整轮取,不再按收尾回复的 seq 截断;README 补充交付卡片的展示时机。

Refs #6769
2026-10-21 14:52:55 +08:00
yudshj 76d015b484 fix(deliverables): present 说明交付在本轮结束后展示,并保留收尾回复之后的交付
present 的工具描述说明宿主在本轮结束后展示交付文件,需要用户提前审阅时改为在消息中链接。
交付卡片不再按收尾回复的 seq 过滤,同一步给出文字并调用 present、之后没有文字的轮次也会显示卡片。

Refs #6769
2026-10-21 10:33:56 +08:00