Commit Graph
528 Commits
Author SHA1 Message Date
_Kerman 5bcee95efe fix(ptc): preserve automatic images for unadapted tools 2026-11-09 21:46:06 +08:00
_Kerman 8566fdb439 docs(ptc): complete runtime migration guidance 2026-11-09 21:42:31 +08:00
_Kerman dc240209e3 Merge origin/master into xtr/ptc-inspect-output 2026-11-09 20:27:19 +08:00
_Kerman e1f0a36193 fix(ptc): preserve native console methods 2026-11-09 18:17:19 +08:00
_Kerman a03cf79fc7 Merge origin/master into xtr/ptc-inspect-output 2026-11-09 18:03:41 +08:00
_Kerman a2ea3970fd refactor(ptc): return ordered text and image output 2026-11-09 17:44:12 +08:00
_Kerman 1fed265b3b fix(ptc): bound binary inspection and preserve failure output 2026-11-09 17:19:48 +08:00
Dudu-0223 d4100b4d3f merge: preserve CUA selection fixes with AX traversal limits 2026-11-09 16:52:39 +08:00
CreatixChu 5a18be1c9a Merge pull request #8164 from deepseek-harness/feat/cua-ax-traversal-limits
feat(cua): 支持按次设置 AX 树的节点数和深度上限
2026-11-09 16:40:21 +08:00
Dudu-0223 1d246ff9af fix(cua): merge master and address selection review feedback 2026-11-09 16:33:06 +08:00
_Kerman 83e3d0ebc0 Merge remote-tracking branch 'origin/master' into xtr/ptc-inspect-output
# Conflicts:
#	packages/experimental/cua-macos/README.i18n.yaml
#	packages/experimental/cua-macos/README.md
#	packages/experimental/cua-macos/README.zh.md
#	packages/experimental/cua/src/api.ts
#	packages/experimental/cua/src/guidance.ts
#	packages/experimental/cua/src/types.ts
#	packages/experimental/cua/tests/api.spec.ts
#	snapshots/session/cua-native/system-prompt.expected.md
#	snapshots/session/cua-ptc/system-prompt.expected.md
#	snapshots/session/ptc-script-retained/system-prompt.expected.md
2026-11-09 16:17:18 +08:00
_Kerman 4e72e43037 chore(ptc): align fixtures and docs with simplified image handling 2026-11-09 15:42:49 +08:00
_Kerman 724e56b286 feat(ptc): unify explicit text and image inspection 2026-11-09 15:06:09 +08:00
Yichen Jiang 2479e6ddab Merge remote-tracking branch 'origin/master' into feat/forge-review-threads
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
2026-11-09 14:43:20 +08:00
Yichen Jiang dacbc37209 Merge remote-tracking branch 'origin/master' into feat/forge-review-threads
# Conflicts:
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	packages/experimental/client-ui-forge/README.i18n.yaml
#	packages/experimental/client-ui-forge/README.md
#	packages/experimental/client-ui-forge/README.zh.md
#	packages/experimental/client-ui-forge/src/client/ChangesTab.tsx
#	packages/experimental/client-ui-forge/src/client/DiffFile.tsx
#	packages/experimental/forge-github/README.i18n.yaml
#	packages/experimental/forge-github/README.md
#	packages/experimental/forge-github/README.zh.md
#	packages/experimental/forge/README.i18n.yaml
#	packages/experimental/forge/src/index.ts
#	packages/extensions/tool-cordis/src/api-catalog.ts
2026-11-09 14:28:39 +08:00
creatixchu 9425b6defe fix(cua): report configured AX budgets and document migration 2026-11-09 14:23:46 +08:00
Jiawei Song b43fcce60e Merge pull request #8006 from deepseek-harness/refactor/tool-errors-fs
feat(fs,lsp,present): give file, search, LSP, and present tool failures error codes
2026-11-09 13:59:49 +08:00
Jiawei Song 74ae5f0da9 Merge pull request #8053 from deepseek-harness/refactor/tool-errors-shell
feat(shell,sandbox,jobs,terminal): give shell, sandbox, job, and terminal tool failures error codes
2026-11-09 13:56:40 +08:00
CreatixChu e5359d9a49 Merge pull request #8107 from deepseek-harness/feat/session-mouse-consent
feat(cua): 按会话授权 macOS 悬停移动系统鼠标
2026-11-09 13:51:42 +08:00
_Kerman 790991a6c0 docs(ptc): align inspection guidance and references 2026-11-09 12:56:55 +08:00
Yichen Jiang 1a6268ed52 Merge pull request #8152 from deepseek-harness/fix/worktree-archive-cleanup
fix(worktree): reclaim archived checkouts in large repositories
2026-11-09 12:31:05 +08:00
Yichen Jiang fcc33725d9 fix(worktree): keep an early streamed answer and document cleanup limits
- Return the early answer from scanCommand without awaiting a successful
  outcome: the SSH provider rejects done when termination cancels a
  launch it has not yet acknowledged, which turned a retained dirty
  checkout into a failed cleanup.
- Test that a never-initialized submodule is removed and that Git
  refuses a committed embedded repository, which inspection leaves to
  Git by design.
- Record the git-status-only trade-off and its sparse-checkout rationale
  in the worktree Agent Note, and align the README, upgrade guide,
  maxOutputBytes description, and comments with what is streamed.

Refs #8151
2026-11-09 12:00:23 +08:00
_Kerman c1783e9dff feat(ptc): select program output with Harness.inspect 2026-11-09 12:00:07 +08:00
Yichen Jiang e7e5ed638d Merge remote-tracking branch 'origin/master' into feat/forge-review-threads
# Conflicts:
#	apps/web/tests/forge-panel.e2e.ts
#	packages/experimental/client-ui-forge/README.i18n.yaml
#	packages/experimental/client-ui-forge/src/client/DiffFile.tsx
#	scripts/type-equiv.manifest.json
2026-11-09 11:38:53 +08:00
Yichen Jiang bafc363d78 fix(worktree): reclaim archived checkouts in large repositories
Archive cleanup read whole Git listings into the 64 KiB maxOutputBytes
buffer, so every clean checkout in a repository with more than about a
thousand tracked files settled as failed.

- Drop the skip-worktree/assume-unchanged and gitlink listings; removal
  follows what `git status` reports, as peer agent products do.
- Stream `git status` and stop at its first entry, and stream the
  worktree listing, so neither is bounded by maxOutputBytes; restoring a
  worktree shares the streamed lookup.
- Retain a checkout whose administrative directory holds submodule
  repositories instead of letting Git refuse the removal.

Refs #8151
2026-11-09 10:59:09 +08:00
creatixchu bfa829a648 fix(cua-macos): require an explicit request for every system-pointer move 2026-11-07 17:40:42 +08:00
liukx0205 9d18b68095 fix(session): assign batch sequences after payload snapshots 2026-11-07 17:02:19 +08:00
creatixchu c51ecb2bff feat(cua): request system pointer access on the target mouse move 2026-11-07 16:31:24 +08:00
creatixchu 05e4c5364f Merge origin/master into feat/session-mouse-consent 2026-11-07 16:09:21 +08:00
creatixchu 3af5496e14 fix(cua): reserve mouse permission requests for the main task 2026-11-07 16:04:36 +08:00
creatixchu 238f7584fe Merge remote-tracking branch 'origin/master' into feat/macos-keyboard-chords 2026-11-07 15:15:27 +08:00
creatixchu 29ceb385e6 docs(cua-macos): document caller-requested key repeats in the upgrade guide 2026-11-07 15:02:33 +08:00
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
Yichen Jiang f11daf3ad3 docs(forge): document review thread reads, the thread overlay, and the unsupported failure
The forge subsystem page documents ctx.forge.readReview, its thread
types, and the panel's changeRequestReview cache; the package READMEs
describe the GitHub thread mapping, the overlay and thread list, and the
new panel Config fields. An upgrade guide covers the unsupported
ForgeFailure code. The Web e2e overlays scripted threads, opens them from
the thread list, and sends a quoted thread through a replayed turn.
2026-11-07 14:31:30 +08:00
creatixchu 946cc8d298 feat(cua): ask before moving the system pointer for a session 2026-11-07 14:26:21 +08:00
creatixchu 89d374d578 feat(cua-macos): hold physical keys for one run_code execution 2026-11-07 13:33:24 +08:00
creatixchu 5a0c6c10f8 fix(cua-macos): validate physical key chords before dispatch 2026-11-07 13:08:42 +08:00
Dudu-0223 2ef5f9dc53 fix(cua): select applications and windows without reading AX 2026-11-07 12:20:20 +08:00
CreatixChu 683a98aa37 Merge pull request #8015 from deepseek-harness/fix/macos-window-element-click
Fix macOS mouse actions after the interface change
2026-11-07 03:52:42 +00:00
Yichen Jiang 0a10b6fd16 Merge pull request #8049 from deepseek-harness/fix/forge-pinned-diff
fix(forge): pin change request diffs to the polled head and count every review thread
2026-11-07 11:22:43 +08:00
lsdsjy d51d623bfc feat(account): 接入通用通知接口并统一账号服务 (#7550)
将赠金专用提示迁移到通用通知 list、content 和 events 接口,支持轮询、语言刷新及单次交互上报。

统一账号服务和 Remote,通知 UI 放入侧栏并保持独立生命周期。

Refs #6373
2026-11-06 17:40:24 +08:00
sjw1231 3ce9462e7f fix(terminal): keep both startup failures on TerminalBackendCleanupError's cause
Renderers such as errorChain and the activation report expand
AggregateError members but otherwise follow only cause, so a cause of
just the setup failure hid the cleanup failure that may leave
resources alive. The cause is now an AggregateError of both failures.
An upgrade guide records that the class extends TerminalError instead
of AggregateError.

INIT_REJECTED is documented as the code a consumer that drives a shell
uses when the shell rejects its setup input, and the persistent bash
tool README records it.

Refs #7869
2026-11-06 17:31:56 +08:00
sjw1231 11a5bf8a55 refactor(tool-fs): keep attachment store codes in read_image failures
The attachment store already classifies its rejections, so read_image
no longer translates them into ImageInputError codes. An AttachmentError
keeps its name and code; for codes with a known remedy the tool rethrows
it with a message naming the file and the next step, and the store
error as cause. Other store failures pass through unchanged.

ImageInputError keeps only the refusals the tool makes before storing
the image: IMAGE_UNSUPPORTED_MODEL and IMAGE_UNSUPPORTED_FORMAT. The
removed codes (IMAGE_TYPE_MISMATCH, IMAGE_INVALID, IMAGE_TOO_LARGE,
IMAGE_CONVERSION_FAILED, IMAGE_STORE_FAILED) were never released.
2026-11-06 17:06:13 +08:00
Yichen Jiang 7dc864a931 fix(forge-github): read pinned diffs through the compare API
The GitHub provider now reads headRefOid and baseRefOid in one GraphQL query,
returns `stale` when the head moved, and reads the patch from
`compare/<baseRefOid>...<headSha>` instead of bracketing `gh pr diff` with two
head reads. Both ends are fixed commits. The compare read lives in the internal
`readComparison` helper so commit-range diffs can reuse it.

For every open and merged pull request measured, the compare patch is
byte-identical to `gh pr diff`. Unlike the pull request diff, it returns diffs
over 300 files, so such a pull request now shows its complete diff; only output
over `maxOutputBytes` or GitHub's HTTP 406 / `too_large` refusal is
`too-large`. The read passes `--allow-escape-sequences`, which gh 2.97 and
newer require to print patches whose files contain terminal escape sequences.
2026-11-06 17:05:05 +08:00
creatixchu 5e7532f8fa Verify macOS hover permission stays with its connection 2026-11-06 16:21:51 +08:00
sjw1231 c2fd342d33 fix(fs): address review feedback on read_image and create errors
- read_image converts only AttachmentError rejections from saveImage;
  any other value is a store defect or cancellation and propagates
  unchanged instead of becoming IMAGE_STORE_FAILED.
- ImageInputError is no longer exported from the dsh-tool-fs entry, and
  its JSDoc notes that two codes share AttachmentError spellings.
- str_replace_editor create maps a guarded-creation collision
  (FS_NOT_OBSERVED after a concurrent create) to FS_ALREADY_EXISTS.
- The fs-local directory-swap test asserts FS_NOT_REGULAR_FILE exactly.
- The attachment upgrade guide lists the full AttachmentErrorCode set
  instead of an ATTACHMENT_ prefix.
- dsh-error dependency entries sit in sorted position.
2026-11-06 16:19:10 +08:00
Yichen Jiang 94336c6b3d fix(forge): pin change request diffs to the polled head and count every review thread
ForgeProvider.diff now takes the head commit it must describe. The GitHub
provider reads headRefOid before and after `gh pr diff` and returns the new
ForgeFailure code `stale` when either read names another commit, so the
forge panel never caches a patch under a head it does not describe. A stale
read polls the change request at once, and the changes view waits for the
next status before reading again.

Status polling pages reviewThreads up to the new `maxReviewThreads` setting
(default 1,000) instead of counting only the first 100, and sets
ChangeRequestSnapshot.threadsTruncated when the count is a lower bound.
2026-11-06 16:15:24 +08:00
creatixchu 09b90ed112 Keep macOS hover off the system pointer by default and route file panel clicks 2026-11-06 15:20:30 +08:00
sjw1231 eee5c94a41 feat(attachment): make AttachmentError a HarnessError
AttachmentError now extends HarnessError from the dependency-free
dsh-error package, keeping its name and every ATTACHMENT_* and image
admission code, so tool results record its name and code and adapter
failures report the attachment code instead of UNKNOWN. An upgrade
guide records the persisted code change.

read_image classifies AttachmentError before the HarnessError
pass-through so its ImageInputError codes stay unchanged. HarnessError
imports this branch added in dsh-tool-fs and dsh-lsp-stdio now come
from dsh-error, which both packages declare.
2026-11-06 15:10:37 +08:00
creatixchu ecd56a18d3 Verify and document mouse clicks separately from AX actions 2026-11-06 14:08:06 +08:00