Commit Graph
5165 Commits
Author SHA1 Message Date
ZiyaZhang 58dea020c0 feat(experimental): propose personalized pages with a dsh-action answer block
The proposal is a fenced dsh-action JSON object at the end of the final
answer instead of a suggest_action tool call. The projection reads the
last valid block of an assistant message, keeps one card per turn, and
marks a proposal written while queuedMessageLimit user messages are
queued as suppressed; the chat hides dsh- fences from rendered answers.
The Web replay fixture, tool catalog and READMEs follow the toolless
mechanism.
2026-10-21 08:27:41 -07:00
Yichen Jiang dd568f76de Merge remote-tracking branch 'origin/master' into worktree/composer-image-preupload
# Conflicts:
#	packages/test-support/client-runtime/README.i18n.yaml
2026-10-21 23:17:57 +08:00
zhc 8e7bce82fb Merge master into fix/image-drag-plugin-ownership 2026-10-21 22:53:25 +08:00
Magolor be83795e6a chore(test): retire moved animation test cast allowance 2026-10-21 22:21:52 +08:00
_Kerman ded424132e Merge pull request #6619 from deepseek-harness/xtr/session-store-write-lifecycle
fix(session): 约束托管 Session 的事件发布时序
2026-10-21 22:10:32 +08:00
zhc a0b45086da Merge master into fix/image-drag-plugin-ownership
保留文本交互和文件拖放注入,合并依赖及生成目录。
2026-10-21 21:22:17 +08:00
ZiyaZhang d28efd25a2 Merge master into personalized pages experiment 2026-10-21 06:10:18 -07:00
winewill 69b446666b Merge pull request #6711 from deepseek-harness/fix/desktop-update-background-focus
fix(desktop): keep update dialogs in-window and follow app theme
2026-10-21 20:51:20 +08:00
Magolor f879017105 fix(tooling): 保留产品标识并修复 vendor 重命名检查 (#6716)
* fix(tooling): 保留产品标识并校验 vendored 包引用

* fix(tooling): preserve module rewrites in product-name exceptions
2026-10-21 20:42:35 +08:00
sjw1231 1f14903f28 Merge branch 'master' into feat/apply-patch
# Conflicts:
#	apps/cli/tests/web-agent-presets.e2e.ts
#	docs/subsystems/system-prompt.i18n.yaml
#	docs/tool-catalog.i18n.yaml
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
2026-10-21 20:06:56 +08:00
winewill eda31bfc29 perf(windows): store installer uploads without recompression 2026-10-21 19:35:40 +08:00
_Kerman fef2f3d06e Merge master into xtr/session-store-write-lifecycle 2026-10-21 19:27:56 +08:00
ZiyaZhang 3a8c1daf66 Merge master into personalized pages experiment
Follow the tool executor refactor: the tool/ptc-dispatch event type now comes
from dsh-tool-executor-ptc, and the tests invoke tools through dsh-tool-testkit.
Regenerate the doc graphs, tool catalog and persistence schema after the merge
and re-record their translation pairing.
2026-10-21 03:50:29 -07:00
Tianyi Cui 2a48671b83 Merge pull request #6472 from deepseek-harness/worktree/session-copy-markdown
feat(session): copy sessions as Markdown with source paths
2026-10-21 18:49:57 +08:00
winewill b6e387e5b3 fix(windows): normalize packaging step scheduling priority 2026-10-21 18:38:30 +08:00
winewill 1d41b28ed6 Merge master and fix desktop update CI integration 2026-10-21 18:37:44 +08:00
ZiyaZhang b6c3f57c6c Merge master into personalized pages experiment 2026-10-21 03:35:02 -07:00
_Kerman 7c86126642 Merge latest master into xtr/ptc-vm-script 2026-10-21 18:25:41 +08:00
_Kerman b43a01e285 Merge master into xtr/session-store-write-lifecycle 2026-10-21 18:16:23 +08:00
Tianyi Cui 84cfd5f76d Merge master 98fb6ddd into session-copy-markdown
Integrate exact origin/master 98fb6dddb86a9f631054417d48bfc07c06e95a68. Adopt master's canonical narrow-layout overflow probe instead of the branch-local equivalent. Preserve Session Markdown copy, source-path metadata, and locale integration.
2026-10-21 18:10:46 +08:00
Chinesezjc 4607c360ec Merge commit '98fb6dddb86a9f631054417d48bfc07c06e95a68' into feat/schedule-clear-ended
# Conflicts:
#	packages/session/message-quotes/src/client/locales.ts
2026-10-21 18:09:51 +08:00
_Kerman d98025a089 Merge origin/master into xtr/tool-executor-plugins 2026-10-21 18:01:55 +08:00
Chinesezjc acc3f3a779 Merge remote-tracking branch 'origin/master' into fix/weighted-approval-app-check 2026-10-21 17:59:50 +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 8246e568e7 Merge remote-tracking branch 'origin/master' into worktree/composer-image-preupload 2026-10-21 17:57:39 +08:00
Chinesezjc 1665223358 feat(ci): publish the approval decision label from a dedicated approval App
Mint the check-run token from a dedicated approval App instead of a shared
automation App, so the identity that owns the decision check suite is specific to
this gate. The workflow reads `vars.DSH_APPROVAL_APP_CLIENT_ID` and
`secrets.DSH_APPROVAL_APP_PRIVATE_KEY`, and the token stays scoped to
`checks: write`.
2026-10-21 17:50:27 +08:00
sjw1231 8f798da97d fix(tool-fs): leave sandbox decisions to providers and bound patch diffs
Drop the preflight sandbox fence. It derived writable roots in the local
process, so under the SSH provider it threw on remote additionalWritableRoots
and compared remote targets against local temp roots; write and edit never
fenced in the tool layer. The provider now refuses a denied operation at
commit, and a commit whose first operation failed without any change rejects
like a preflight refusal so the sandbox escalation path keeps its error code.

Classify FS_ABORTED as unknown: a cancelled remote request rejects while the
provider may still be writing, so no stat comparison can settle it. Document
that a cancelled call receives the registry's abort result like every tool.

Store no diff for creations, matching write, and bound the move source basis
by diffBasisMaxBytes so persisted metadata never holds whole files;
FsMoveOutcome.sourceBefore becomes nullable. Omit deletions from the call
preview and from result diffs without a basis instead of rendering them as
empty creations, and count distinct files in the preview title.

Reject a NUL byte beyond the read sampling window in preflight, name targets
by display path in atomic-write diagnostics, align the apply_patch guidance
with the edit wording and mention delete and move, read the stopped flag and
applied diffs tool-agnostically in the client models, skip the permission-bit
snapshot under root, list fs/delete-intent in the tool catalog, and refresh
the fs-patch description, group README, fs-sandbox summary, and ui-tool README.
2026-10-21 17:21:01 +08:00
Tianyi Cui 7a3c24738e Merge master b9bdd062 into session-copy-markdown
Integrate exact origin/master b9bdd062c8ffd3dc234ebea7f5dff55ff26d87ad. Preserve the Session Markdown copy lifecycle and dictionary while adopting the Japanese locale, regenerate the client slot catalog, and add the Japanese quote-removal string required by the merged locale type.
2026-10-21 17:10:56 +08:00
Chinesezjc 482ce61890 Merge commit 'b9bdd062c8ffd3dc234ebea7f5dff55ff26d87ad' into feat/schedule-clear-ended
# Conflicts:
#	packages/client/ui-schedule/README.i18n.yaml
#	packages/client/ui-schedule/README.md
#	packages/client/ui-schedule/README.zh.md
2026-10-21 17:06:43 +08:00
07akioni 11295990b5 fix(i18n): cover nested metadata and repair locale CI regressions 2026-10-21 17:00:42 +08:00
Yichen Jiang b22cf68e50 fix(web): explain refused image uploads and tighten image staging
Address the review of this pull request:
- A failed image upload keeps the Host's attachment refusal reason. The
  thumbnail of a refused image names the reason instead of offering a
  retry that cannot succeed, and Enter while uploads hold the send names
  the first failure; a transport failure still offers retry, and an
  image without a file name uses the pending-image label.
- An image upload stops reading at the smaller of the per-image and
  per-message byte limits.
- A carried image draft moving to a Session that sends images inline
  drops its upload instead of staging it again.
- The image upload ready state no longer carries an unread image ref.
- Docs describe stored-image admission and the command image path, and
  the attachment rail test builds typed props instead of casting through
  unknown.
2026-10-21 16:48:01 +08:00
_Kerman 5dcb912b1b refactor(cua): delegate retained execution settings to Node provider 2026-10-21 16:47:32 +08:00
Chinesezjc 5fc95b6213 feat(ci): publish the approval decision label from the repository App
The decision check run kept its job-token check suite out of the pull request's
merge box: GitHub associates check runs with a pull request through the check
suite of the workflow run, and a `pull_request_target` run is not associated.
Mint a token from the repository App scoped to `checks: write` and publish only
the check run with it, so the merge box lists the label; the commit status gate
keeps using the job token and is unaffected when the token or the write fails.

Pin the token step, its single secret reference, and the client split in the
workflow and approval tests, and record the measured association limit in the
Agent Note and review-ownership README.
2026-10-21 16:47:07 +08:00
07akioni 9ce74cda96 feat(desktop): localize Windows installer with per-language JSON resources 2026-10-21 16:43:19 +08:00
creatixchu 47e16be285 Merge updated platform base into CUA permissions 2026-10-21 16:27:33 +08:00
creatixchu 684bb206af Merge master into bundle platform support 2026-10-21 16:22:55 +08:00
07akioni 87c4de2e43 chore(i18n): limit added locale checks to JSON metadata 2026-10-21 16:22:53 +08:00
ZiyaZhang b6c967c984 Merge master into experimental personalized pages 2026-10-21 01:21:39 -07:00
sjw1231 59ac56dfdd fix(tool-fs): derive applyPatch from write and edit
A patch creates files like write and updates them like edit, so
applyPatch now defaults to `write && edit` instead of an independent
true. Compositions that disable both text mutation tools lose
apply_patch without naming it, and a user config override of the
tool-fs row cannot bring the tool back; the sdk-minimal and Web
minimal presets drop their explicit applyPatch: false. An explicit
value still overrides the derivation.

Align the fs-patch package version with the 0.2.1-rc.2 root, and add
apply_patch to the standard preset tool list, the subagent-inheritance
expected session, and the Python SDK dynamic-tools snapshot.
2026-10-21 16:18:47 +08:00
_Kerman f04a1257f0 Merge latest master into xtr/ptc-vm-script 2026-10-21 16:14:49 +08:00
07akioni ed783066e6 fix(i18n): complete Japanese plugin metadata and guard locale coverage 2026-10-21 16:14:12 +08:00
_Kerman f53d476790 chore(tools): drop unused testing export policy 2026-10-21 16:09:26 +08:00
_Kerman 2b7b2a0ee6 refactor(ptc): share the program format type 2026-10-21 15:59:56 +08:00
_Kerman a53ecb2f3a Merge origin/master into xtr/tool-executor-plugins 2026-10-21 15:56:44 +08:00
imccyu d4aa52c2be Merge pull request #6796 from deepseek-harness/07akioni/japanese-locale
feat(locale): 增加日语界面支持
2026-10-21 15:44:22 +08:00
Yichen Jiang 85b29bbcea Merge remote-tracking branch 'origin/master' into worktree/dynamic-tool-activation-pr-64796e 2026-10-21 15:21: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
Turtle 6db97a9b61 Merge pull request #6824 from deepseek-harness/turtle/make-clean-node-modules-3061242ba73e
fix(scripts): remove dangling pnpm links in clean
2026-10-21 15:12:49 +08:00
_Kerman 6085b6fb62 Merge latest master into xtr/ptc-vm-script 2026-10-21 15:12:47 +08:00
Yichen Jiang 9d0c97b9d2 feat(tools): admit conditional tools per step
ctx.tools.register(definition, { when }) adds a synchronous or asynchronous
condition. AgentLoop resolves conditions once per proposed step with the
agent, the model selection that step preparation captured, and the turn
signal, before prompt assembly and agent/pre-step. The resulting
ResolvedToolSet governs tool declarations, Native dispatch, PTC bindings,
and nested calls for that step and its retries, and the turn disposes it
when the proposal is rejected or fails, when no step opens, and after the
step. A false condition removes the tool everywhere; a thrown condition
ends the turn with TOOL_ACTIVATION_FAILED. Calls whose registration was
replaced or removed during the step return UNKNOWN_TOOL.

system-prompt/assemble now transforms PromptPresentation without a tool
array, so tool declarations stay provider-owned. exit_plan_mode is declared
only for steps whose selected plan state is active, the same state that
renders plan guidance; it still rejects a call before the selection is
logged.

Model selection stays as master defines it; this change adds no model
selection event or Agent field.
2026-10-21 15:02:29 +08:00