Commit Graph
5210 Commits
Author SHA1 Message Date
zhc d6fdabd274 refactor(file-drag): 将传输常量归属通用文件包 2026-10-20 21:12:18 +08:00
winewill 122da6fcff perf(windows): isolate packaging temporary files 2026-10-20 21:10:29 +08:00
_Kerman a9c006f9c3 refactor(agent): own model selection on each agent 2026-10-20 21:09:09 +08:00
_Kerman 639602e63a Merge origin/master into xtr/session-model-selection 2026-10-20 20:57:11 +08:00
winewill 9ee94429b9 perf(windows): support isolated packaging workspaces 2026-10-20 20:47:05 +08:00
Yichen Jiang a614375f36 Merge branch 'worktree/forge-change-request-bindings' into worktree/forge-pr-worktree-panel 2026-10-20 20:39:17 +08:00
Yichen Jiang 4f013673e5 Merge branch 'worktree/composer-host-confirmed-echo' into worktree/forge-change-request-bindings 2026-10-20 20:38:21 +08:00
creatixchu f8912d267f fix(plugins): retain independent row controls during query suspension 2026-10-20 20:17:53 +08:00
ZiyaZhang 50f21daa84 Merge master into personalized pages experiment 2026-10-20 04:52:17 -07:00
ZiyaZhang ea28b1199c Merge master into plugin recommendation experiment 2026-10-20 04:51:51 -07:00
ZiyaZhang 7802f06d17 refactor(experimental): compose recommendation remote and reuse current catalog 2026-10-20 04:48:47 -07:00
ZiyaZhang d6ad08c758 refactor(experimental): load creation guidance through skill and compose remote 2026-10-20 04:48:26 -07:00
Chinesezjc 82461b7f33 fix(ci): keep the weighted approval status unchanged and add the decision check run
Only add the `weighted approval decision` check run: the required
`weighted approval` commit status keeps its `pending`, `success`, and `error`
states exactly as before, and branch rules keep requiring it. The check run
reports the same decision as a conclusion label and is not required, so it
never blocks a merge.

The Agent Note and README now state the status semantics as unchanged and the
measured reason a required check run is not available here.
2026-10-20 19:44:13 +08:00
Turtle aa8bdfc79e Revert "feat(agent): admit Web prompts through the agent controller" 2026-10-20 19:09:02 +08:00
Chinesezjc 422aa724e3 fix(schedule): qualify the clear-ended copy and pin its tests 2026-10-20 18:41:33 +08:00
zhc 7c27a4aaf9 fix(file-drag): 补齐准备取消与文件名保真处理 2026-10-20 18:25:11 +08:00
Chinesezjc a2416dd357 feat(schedule): remove every ended task from the automation page 2026-10-20 18:24:49 +08:00
Turtle e1a11ef09c Merge pull request #6222 from deepseek-harness/turtle/auto-review-cache-ffc00f27f914
fix(auto-review): keep review requests cacheable across calls
2026-10-20 18:05:26 +08:00
Chinesezjc e34162881c fix(ci): gate weighted approval through its commit status and label the conclusion
The required check run introduced previously is not matched by this repository's
branch rules, so the gate could not be satisfied. Keep the required
`weighted approval` commit status as the gate and publish the
`weighted approval decision` check run as the label: action_required while the
policy is unmet, success when it holds, failure on setup or evaluation errors.
The status completes as success or failure instead of waiting as pending, so CI
watchers end.

Record the measured check-run limit, the revocation and recorded-conclusion
design, and the alternatives in the Agent Note; update the review-ownership
README, the workflow permissions, and the approval tests.
2026-10-20 17:59:41 +08:00
Chinesezjc 4c293671ea Revert "Merge pull request #5440 from deepseek-harness/fix/weighted-approval-check-run"
This reverts commit 17c5ac9bac7eae975dde6596287deeb77cba20a4, reversing
changes made to c830699b0a3d21f993de79b2089f227da913e428.
2026-10-20 17:46:59 +08:00
zhc 9676ff7724 fix(file-drag): generalize transfers and address lifecycle review 2026-10-20 17:45:09 +08:00
winewill b7f46b5739 perf(build): overlap client compilation with host bundling 2026-10-20 17:38:24 +08:00
_Kerman 8b79a1ddcc Merge origin/master into xtr/session-model-selection 2026-10-20 17:22:59 +08:00
_Kerman d22b5d9fff Merge remote-tracking branch 'origin/master' into xtr/session-store-write-lifecycle
# Conflicts:
#	packages/client/ui-workspace/README.i18n.yaml
#	packages/client/ui-workspace/README.md
#	packages/client/ui-workspace/README.zh.md
2026-10-20 17:19:39 +08:00
Dudu-0223 f3436fe3c2 Merge named subagent parent and reconcile Team package migration 2026-10-20 17:15:46 +08:00
Dudu-0223 d046335532 Merge updated subagent tree parent into named agents 2026-10-20 17:11:08 +08:00
Dudu-0223 c6d6c87b3b Merge master into subagent tree stack 2026-10-20 17:10:31 +08:00
Yichen Jiang 6752c858a7 Merge remote-tracking branch 'origin/master' into worktree/composer-host-confirmed-echo 2026-10-20 16:49:50 +08:00
zhc 31bd06d503 feat(image): restore pan and sharing with plugin-owned transfers 2026-10-20 16:46:23 +08:00
Chinesezjc 9e6692931c Merge pull request #5440 from deepseek-harness/fix/weighted-approval-check-run
Publish weighted approval as a completed check run
2026-10-20 16:34:06 +08:00
Dudu-0223 fb3fb18f48 Merge updated agent-team parent into subagent names 2026-10-20 16:25:26 +08:00
creatixchu 5b8c1f4550 merge: retain current CUA toggle ownership with persistent consent 2026-10-20 15:57:09 +08:00
creatixchu b60d2f4861 Merge remote-tracking branch 'origin/fix/cua-service-toggle' into feat/bundle-host-platforms 2026-10-20 15:55:04 +08:00
Yichen Jiang 899320122b fix(web): keep a sent message's attachments out of the next message's limits
While a message waits for the Host, its attachments stay in the draft until
the Host accepts it. The image intake counted them against the limits of the
next message, and the rail offered a remove button that the input refused
without feedback.

InputState now lists the attachments of the message being sent. The intake
pre-check counts only the images added for the next message, and the rail
shows the sent attachments without a remove action.
2026-10-20 15:51:35 +08:00
imccyu 14e5add505 Merge master into DSH 0.2.1 entry customization synchronization branch
Bring master 45d1196d3fe into the release/dsh-0.2.1 squash commit of #6247
so the release commit stays an ancestor of master.

Conflict resolutions:
- apps/web/tsconfig.json, tsconfig.host.json: keep the entry-customization
  e2e and master's Computer Use e2e entries.
- docs/subsystems/slots.{md,zh.md}: keep both added paragraphs; re-record the
  slots, ui-primitives, and ui-workspace README translation pairs.
- ui-sidebar SidebarRoot.tsx and locales.ts: keep the More menu imports and
  copy next to master's version-copy toast.
- apps/web/tests/agent-preset-selection.e2e.ts: keep the New Session
  blank-reuse assertions, read presets through master's
  sessionProjections.checkpoint() instead of the deprecated stateOf().

Follow-ups on master's side:
- ui-sidebar sidebar-root spec: give master's version-copy render the entry
  pin props that SidebarRootInjected now requires.
- snapshots/web/steering/trajectory.expected.md: add the More conversation
  views trigger to master's new Trajectory golden.
2026-10-20 15:47:29 +08:00
creatixchu 8126594af5 fix(plugins): retain independent row controls during query suspension 2026-10-20 15:46:43 +08:00
ZiyaZhang d773750c2f Merge master and retain recommendation scenarios with plugin detail pages 2026-10-20 00:37:08 -07:00
ZiyaZhang 420a4ae6fd feat(experimental): offer personalized pages independently of plugin recommendations 2026-10-20 00:35:51 -07:00
creatixchu 97a571556e refactor(cua): remove redundant bundle metadata and build prewarm 2026-10-20 15:31:28 +08:00
_Kerman e7ffab7902 Merge remote-tracking branch 'origin/master' into xtr/session-store-write-lifecycle
# Conflicts:
#	apps/web/tests/new-session-refused.e2e.ts
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
2026-10-20 15:31:09 +08:00
creatixchu c7b6fba276 feat(plugins): enforce bundle Host platform support 2026-10-20 15:28:55 +08:00
5ff29190ed feat(ui): add navigation entry customization (#6247)
* fix(ui): avoid tooltip trigger overlap when a side fits

* feat(ui): add navigation entry customization

* fix(test): keep tooltip geometry independent of JSX types

* fix(ui): align customization catalogs and integration fixtures

* test(ui): complete customization lifecycle and release integration coverage

* fix(ui): return entry discovery to the installed plugin list

* docs: refresh module graph for entry customization

* build: refresh workspace links for the moved entry customization package

* docs: regenerate catalogs and pairing hashes for the moved entry customization package

* test(web): cover default-loaded entry customization in the Web e2e

* test(ui): describe entry customization as a browser plugin in the host entry spec

* build: order entry customization publication files as workspace constraints require

* test(release): drop the moved entry customization package from the experimental family list

* style(ui): use the shared focus ring color on entry customization triggers

* test(web): re-record goldens for the default-loaded More navigation menus

* test(web): add the More conversation views trigger to the remaining CI-reported goldens

* docs: record region-owned pins for plugin entry customization

* refactor(ui): rebuild entry customization on region-owned pins and More menus

- Each navigation region (left sidebar, Conversation header, right sidebar
  guide) persists its own unpinned list under
  dsh.slot.manual-order.<list slot key>.v1, filters its own launchers, and
  draws its own More button and Menu around its actions slot.
- ui-entry-customization only registers the shared menu rows (entries with
  pin buttons, Browse other plugins, Create your plugin) into the three
  actions slots and keeps no state.
- Remove ctx.layout.entryVisibility, the plugin store, left-sidebar drag
  reordering, and agentPresetNavigation; ui-layout and ui-agent-preset match
  release/dsh-0.2.1 again.
- Keep the release <nav> and Conversation tab-bar visibility conditions.
- Move the More glyph into ui-primitives as IconAppsAddOutline{Regular,Medium}.

* docs: compile the entry customization owner props example

* docs(ui): describe the wrapping Conversation tab row in the header comment

* fix(ui): return New Session to the Workspace blank and its unsent draft

- New Session (startSession without options) takes the blank-reuse path
  again instead of creating a fresh Session on every call, which hid the
  previous blank and its unsent draft since a5c9c2aaeef (#5775).
- A request that names an Agent preset skips blanks listing a different
  preset, so Creator entries no longer take over an ordinary draft.
- Record the change in a v0.2.1-rc.2 upgrade guide; the Host refresh of a
  stale loaded blank stays deferred (see the Agent Note).

* docs: regenerate the Cordis inspect catalog for New Session blank reuse

* fix(ui): keep the selected entry visible while unpinned

- Left-sidebar rows and View tabs keep the selected entry, with aria-current or aria-selected, until another entry is selected.
- Entry menu Creator action takes no region argument; the registration's region selects the prompt.
- Document the 2px panel-row and 32px View-tab gaps; drop commit hashes from the New Session Agent Note.

* fix(ui): leave a blank of another preset unstaged when starting Creator

startCreatorDraft stages cordis only when the main blank lists no preset or already lists cordis; navigation opens a separate Creator blank otherwise, so a Standard draft blank keeps its preset.

* feat(ui): choose whether a draft prompt replaces, appends to, or keeps an existing draft

- DraftInitializationOptions gains whenDraftExists ('replace' | 'append' | 'keep', default 'keep'); clearPreviousDraft stays and maps to 'replace' only when whenDraftExists is omitted.
- Append adds the prompt as new paragraphs after the existing text and references; attachments stay in every mode.
- The three Create your plugin entries append their regional prompt.

* test(web): align e2e with New Session blank reuse and the visible selected entry

* refactor(ui): share the draft paragraph writer between setDraft and appendDraft

---------

Co-authored-by: Yif <[email protected]>
Co-authored-by: imccyu <[email protected]>
2026-10-20 15:17:13 +08:00
_Kerman 82b23cf4d2 refactor(ptc-runtime-node): drop evaluation ids from the control protocol
One pipe delivers each evaluation's messages before its result, and the
child refuses calls from finished evaluations, so the per-message
evaluation id protected nothing. Remove it with the checks, counters and
helpers it required, measure outgoing messages only when posting, and
replace rethrowing validation blocks with early refusals.
2026-10-20 15:15:04 +08:00
Yichen Jiang 27c1b4c56f Merge pull request #6649 from deepseek-harness/xtr/fix-trajectory-input-order
fix(web): 修复停止补发后轨迹中的输入顺序
2026-10-20 15:14:49 +08:00
Dudu-0223 3331b91a52 Merge origin/master into refactor/agent-team-named-subagents 2026-10-20 15:10:31 +08:00
winewill e9e7722d53 fix(desktop): preserve safe operation diagnostics across failures 2026-10-20 15:09:37 +08:00
winewill a247c4c04a fix(ci): resolve package caches after runner allocation 2026-10-20 15:04:24 +08:00
Dudu-0223 eee91744f9 fix(agent-team): require confirmed persistence before task notifications 2026-10-20 15:03:30 +08:00
Chinesezjc d98ff5d9fa fix(ci): gate the setup failure step on the recorded conclusion
The evaluation failure title was preserved by matching details_url, a field
GitHub may rewrite for check runs created with the workflow token, so the
setup-failure step could replace the specific title after all. Record the
conclusion the publish step wrote in a step output and run the setup-failure
step only when no conclusion was recorded; a published decision now survives
a later failure or cancellation without relying on an API field.

Record the measured timeout cancellation path and the re-run migration limit in
the decision note, and scope the pre-push guidance to ACTION_REQUIRED so a
failure conclusion is not read as an approval wait.
2026-10-20 15:01:34 +08:00
winewill fb20e72e96 perf(windows): isolate package cache measurements and configure compression 2026-10-20 15:01:09 +08:00