Commit Graph
302 Commits
Author SHA1 Message Date
_Kerman beb5186e36 Merge origin/master into xtr/runtime-context-reminders 2026-11-05 15:23:36 +08:00
yudshj 100a0bcc3d test(snapshot): rebase 到最新 master 后刷新 office 场景快照与双语配对记录 2026-11-04 18:18:03 +08:00
yudshj edd38f1d66 refactor(office): office 工具拆成 office_render/office_convert/office_recalculate,加载 Office 技能后按需声明
- tool-office 注册三个工具,参数规则由各自 schema 表达,运行时拒绝其他工具的参数
- 三个工具共用 when:本 agent 成功加载过 activationSkills 中的技能(内存标记),或上一次请求头已声明 office_*;加载后下一步声明,之后不移除
- Office 技能改用新工具名,加入工具不可用时重新加载 office 的说明和旧格式先转换的说明
- Client 卡片按工具名分派,图片子槽改为 tool.call.office_render.images
- 删除未发布 office 工具的两份升级指南,新增 office-operation-tools 指南,只记录已发布版本的变化
- 刷新 catalog、snapshot、SDK expected 与 Agent Note
2026-11-04 18:17:59 +08:00
yudshj 78da437976 refactor(office): 移除 render/recalculate/export-pdf 技能,改为直接调用 office 工具 2026-11-04 18:17:58 +08:00
yudshj 50ba635949 feat(office): Office 操作改为常驻的原生 office 工具
- 新包 @deepseek-ai/dsh-tool-office 提供常驻的 office 工具(render / convert / recalculate),由 office-kit 在 Host 中直接调用 Kit 的 JS API;标准模式与 PTC 通过同一个工具调用
- render 的页面图片直接进入工具结果(有数量、像素与字节上限);convert / recalculate 的结果写入 office-kit 按 Session 划分的私有输出目录,由模型用 shell 复制到工作区,fs 与 Host 代码不写用户工作区
- 删除为 shell 执行 Kit CLI 而存在的代码:skill-office 的 node / cli / kitRoot、resolveKitCli、DSH_BUNDLED_OFFICE_CLI / DSH_BUNDLED_OFFICE_NODE / DSH_BUNDLED_RUNTIME_ROOT 与 Electron 下的独立 Node 检查;打包 smoke 改为经 office-kit 真实渲染、转换与重算
- office 由 web-app 的 standard / ptc 预设与 sdk-app 挂载,minimal 不挂载;操作技能正文与目录描述指向 office 工具
- 新增 Agent Note,部分取代 progressive-office-skills 的 shell 执行决定;同步 README、子系统页、catalog 与升级指南(含已保存预设的迁移步骤)

本 PR 的 snapshot 统一在这个提交里重新生成,前 4 个提交中的 snapshot 不一定和那一步的代码对应。
2026-11-04 18:17:58 +08:00
_Kerman efa57ca366 Merge origin/master into xtr/runtime-context-reminders 2026-11-04 13:26:14 +08:00
Dudu-0223 a7f21a8dd6 fix(subagent): persist task owner names and simplify receipts 2026-11-02 16:01:05 +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 454374be98 Merge current master through ID-only Team UI into polish 2026-10-30 15:16:28 +08:00
Dudu-0223 71676cbc21 Merge master into the ID-only subagent and Team core 2026-10-30 14:57:57 +08:00
Dudu-0223 6766a694fc Merge refreshed ID-only Team base into UI polish 2026-10-30 14:40:43 +08:00
Dudu-0223 5a052d6767 Merge ID-only Team base into agent teamwork UI polish 2026-10-30 14:32:55 +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
Dudu-0223 8f7cef03da Keep UI polish expectations aligned with its stack layer 2026-10-29 18:55:35 +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 422cb047a9 Sync Team UI polish with current stack parent 2026-10-29 18:32:48 +08:00
Dudu-0223 1287db6c8d Sync latest master schedule changes into naming layer 2026-10-29 18:20:02 +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
Dudu-0223 11c02855e1 Merge master into subagent runtime stack base 2026-10-29 17:55:40 +08:00
Dudu-0223 4514b99d9c Merge master into feat/subagent-names 2026-10-29 17:43:46 +08:00
sjw1231 d8243a3f52 feat(base): enable apply_patch on the dsh-base tool-fs row
The SDK/Desktop parity check requires the `standard` tool sets to match, so
the base row enables apply_patch like the Web standard preset; the SDK PTC
overlay keeps that row while the Desktop PTC preset lists its own, which the
parity exceptions now record. fs-observation-policy, no longer mounted by
default, is classified as an optional product package.

Every headless, SDK, and ACP recording follows: sidecars and recorded headers
gain the apply_patch schema, the fixed-budget compaction scenarios pin
`applyPatch: false` so their recorded thresholds hold (model-switch-notice and
session-resume own their schema sidecars again), the parent presets that
borrow the default pin mirror the base row, and the pwsh and Python PTC pins
carry the schema and guidance.
2026-10-29 17:34:25 +08:00
Dudu-0223 03af1488b4 fix(subagent): remove unused settlement task description 2026-10-29 11:24:25 +08:00
Yif 970a728e78 test: repair teamwork CI coverage and inherited expectations 2026-10-29 03:14:54 +08:00
Yif 066f615cdf feat(subagent): refine delegation and team collaboration UI
Add dedicated fork tool presentation and localized settlement outcomes. Simplify the subagent catalog, clarify team collaboration controls, and update documentation and replay expectations.
2026-10-28 11:21:57 +08:00
_Kerman 022da17f27 fix(context): introduce session information in natural language 2026-10-26 14:29:50 +08:00
_Kerman 31c08a6114 test(context): align remaining CLI and packaged Python reminder expectations 2026-10-26 13:58:36 +08:00
_Kerman ce85be0a44 fix(context): frame runtime reminders and condition supersession on history 2026-10-26 13:48:16 +08:00
Dudu-0223 f84c7371ca refactor(subagent): keep names in a durable alias map 2026-10-25 13:46:55 +08:00
Dudu-0223 15386b4440 feat(subagent): move optional names into a separate plugin 2026-10-25 12:06:43 +08:00
fz a42991af24 feat(sdk): enable plugin management and gate Desktop tool parity 2026-10-23 23:36:47 +08:00
Dudu-0223 3dde36b5bb Merge master while preserving subagent lifecycle changes 2026-10-23 15:41:00 +08:00
Dudu-0223 b096659245 fix(session): make ordinary forks independent of source lineage 2026-10-23 14:48:07 +08:00
Dudu-0223 0b1899534b Align Web and Python child guidance expectations 2026-10-22 19:01:43 +08:00
Dudu-0223 16ece34568 Merge master into subagent tree branch 2026-10-22 13:33:16 +08:00
Yichen Jiang 207b30d299 Merge remote-tracking branch 'origin/master' into worktree/dynamic-tool-activation-pr-64796e
# Conflicts:
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/persistence-catalog.i18n.yaml
#	docs/persistence-catalog.md
#	docs/persistence-catalog.zh.md
#	docs/persistence-schema.json
#	packages/core/agent-loop/src/agent.ts
#	packages/core/agent-loop/src/tool-calls.ts
#	packages/core/agent-loop/tests/tool-updates.spec.ts
#	packages/core/system-prompt/README.i18n.yaml
#	packages/core/system-prompt/README.md
#	packages/core/system-prompt/README.zh.md
#	packages/core/tool-executor-ptc/src/ptc.ts
#	packages/core/tool-executor-ptc/tests/ptc.spec.ts
#	packages/core/tools/README.i18n.yaml
#	packages/core/tools/README.md
#	packages/core/tools/README.zh.md
#	packages/core/tools/src/index.ts
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	packages/plan/plan-mode/tests/plan-mode.spec.ts
#	snapshots/session/cordis-inspect-jsdoc/session.v4.jsonl
2026-10-21 23:32:15 +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
_Kerman d6dc8890b9 Merge github/master into xtr/session-store-write-lifecycle 2026-10-21 15:01:22 +08:00
_Kerman 8b79a1ddcc Merge origin/master into xtr/session-model-selection 2026-10-20 17:22:59 +08:00
Dudu-0223 3331b91a52 Merge origin/master into refactor/agent-team-named-subagents 2026-10-20 15:10:31 +08:00
_Kerman cc0e980e48 fix(session): align store-owned writes with lifecycle notifications 2026-10-20 11:33:44 +08:00
fz 1861316e74 fix(sdk): defer harness development context alignment 2026-10-19 16:59:40 +08:00
Dudu-0223 299eecdc28 Remove global identity from Python authoring snapshots 2026-10-19 16:33:27 +08:00
fz 1781189c31 test: sync desktop context and delivery prompt expectations 2026-10-19 12:07:48 +08:00
Dudu-0223 a6fbd906ba test(team): align profile and packaged expectations with inbox controls 2026-10-19 11:53:51 +08:00
fz f4fb5fbe1c test(python): align SDK runtime snapshots with desktop composition
Record the six added default SDK tools in the dynamic-tool history. Keep the existing custom snapshot, recovery, and restart compositions independent of the desktop defaults using the same disabled rows as the TypeScript legacy context patch. Validate the original failure and the following scenarios through the supported built CLI path.
2026-10-16 16:50:10 +08:00
fz 3d20a6269f test(sdk): cover desktop entrypoint and stabilize authoring snapshots 2026-10-16 15:48:08 +08:00
_Kerman e39b5f58c2 refactor(agent): persist model selection in session state 2026-10-15 19:05:09 +08:00