Commit Graph
18306 Commits
Author SHA1 Message Date
creatixchu 2e7fdfec78 Merge remote-tracking branch 'origin/master' into feat/macos-keyboard-chords 2026-11-07 13:48:06 +08:00
creatixchu de0515a771 fix(cua-macos): retain the run signal and validate test receiver events 2026-11-07 13:41:15 +08:00
creatixchu 7f8a6ad4d4 test(cua-macos): isolate desktop key holds and cover failed pause cleanup 2026-11-07 13:36:26 +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 6d6fc89686 test: cover macOS CUA channel policy forwarding on every platform 2026-11-07 13:07:08 +08:00
creatixchu 636c34f5a6 feat(cua): support overlapping macOS key presses 2026-11-07 12:17:15 +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
creatixchu f8237c051e Describe mouseMove as a request to move to the target 2026-11-07 11:34:09 +08: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
Dudu-0223 e89d2b031f fix(ui): show subagent descriptions above names without arrows (#7730)
* fix(ui): show subagent descriptions above names without disclosure arrows

* fix(ui): narrow subagent result cards

* Revert "fix(ui): narrow subagent result cards"

This reverts commit 23a5a353ac9daf0e322f28e19c9d2c2cfbb15acb.

* test(web): sample agent row geometry in one browser task
2026-11-07 01:03:59 +08:00
Yudong Han 2d463af8d2 Merge pull request #7365 from deepseek-harness/feat/sidebar-file-search
feat(ui-sidebar-files): 侧栏文件树新增搜索栏 UI 与排除规则设置
2026-11-07 00:56:13 +08:00
imccyu 3876a6f3fe test(ui-chat): synchronize history paging and reload readiness 2026-11-07 00:03:20 +08:00
imccyu e48c9cc529 fix(ui-chat): keep manual history available and settle prepend anchors 2026-11-06 23:37:23 +08:00
imccyu 33f5c3ba3e fix(ui-chat): reuse screen preservation for history prepends 2026-11-06 23:37:22 +08:00
imccyu 0a228f0a6a feat(ui-chat): load earlier history with explicit consumption intent 2026-11-06 23:37:20 +08:00
Turtle 0c2559a602 Merge pull request #8032 from deepseek-harness/turtle/goal-button-order-8c781e0a57fd
fix(ui-goal): order goal actions edit, clear, pause and tighten icon gaps
2026-11-06 21:01:56 +08:00
Yudong Han d6aec866d3 Merge pull request #8001 from deepseek-harness/perf/open-in-app-cache
perf(open-in-app): 文件右键菜单不再等待关联应用查询,按文件类型缓存
2026-11-06 18:56:58 +08:00
Yichen Jiang e07b170d77 fix(forge): address review of pinned diffs and thread counting
- forge-github: repeat a compare read without --allow-escape-sequences when
  a gh older than 2.97 rejects the option; such a gh prints escape sequences
  unchanged, so every version reads every diff (checked with gh 2.96.0 and
  2.100.0 on a pull request whose patch holds an ESC byte).
- client-ui-forge: a stale refusal now re-runs the read effect, so a status
  that arrived during the read, including a failed poll that keeps the
  earlier head, starts the next read at once instead of leaving the changes
  view loading.
- forge: ctx.forge.diff polls at once only for the first stale read at a head
  commit; later stale reads at it wait for the regular poll, which bounds the
  read-poll loop while GitHub's answers briefly disagree.
- forge-github: review thread pages share the byte budget of a complete
  check read.
- client-ui-forge: a truncated count shows its "+" even when it is zero.
- READMEs: document the batch deadline and rewritten-base limitations.
2026-11-06 18:17:04 +08:00
creatixchu b9b6fccd6c Name the window receiver in macOS click guidance 2026-11-06 17:52:25 +08:00
creatixchu 24477680bd Guide macOS clicks on clipped elements and verify their effects 2026-11-06 17:46:22 +08:00
lsdsjy d51d623bfc feat(account): 接入通用通知接口并统一账号服务 (#7550)
将赠金专用提示迁移到通用通知 list、content 和 events 接口,支持轮询、语言刷新及单次交互上报。

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

Refs #6373
2026-11-06 17:40:24 +08:00
creatixchu a2dc561cb9 Limit shared CUA guidance changes to hover and foreground recovery 2026-11-06 17:28:12 +08:00
Yichen Jiang f489bcc9ed Merge branch 'master' into fix/forge-pinned-diff 2026-11-06 17:23:35 +08:00
yudshj af1a520b5a test(open-in-app): 显式忽略后台刷新返回的 Promise
refreshApplications now returns a Promise; the refresh lifecycle test starts refreshes without awaiting them, so it marks them with void for the type-aware no-floating-promises lint.
2026-11-06 17:21:56 +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
Magolor 2f9d5d083c Show server-masked credential previews by Unicode code point 2026-11-06 16:59:29 +08:00
Magolor 5e39b7dcb5 fix(settings): hide unavailable API key reveal controls 2026-11-06 16:59:28 +08:00
Magolor ef3a02167a fix(settings): preserve saved API key mask length 2026-11-06 16:59:27 +08:00
Magolor 1fa3a9d191 fix(settings): explain saved-key actions and environment fallback 2026-11-06 16:59:26 +08:00
Magolor 7d81a91577 fix(settings): keep saved-key editing within the existing input 2026-11-06 16:59:00 +08:00
Magolor 86247d664b fix(settings): protect saved keys and preserve clear failure state 2026-11-06 16:58:59 +08:00
Magolor 8b50763c0d test(credentials): expect masked metadata after provider restart 2026-11-06 16:58:49 +08:00
Magolor 334a76ef88 fix(settings): show masked saved keys and restore environment auth 2026-11-06 16:58:49 +08:00
TurtleandYifffan 4736af3b00 test(ui-goal): drop unnecessary button cast
Co-authored-by: Yifffan <[email protected]>
2026-11-06 16:26:37 +08:00
creatixchu 5e7532f8fa Verify macOS hover permission stays with its connection 2026-11-06 16:21:51 +08:00
creatixchu 0f15e8766a Refresh the configuration catalog and retain Agent disposal coverage 2026-11-06 16:19:01 +08:00
creatixchu 3430de3531 Keep platform-specific CUA instructions and hover policy in the macOS provider 2026-11-06 16:16:47 +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
imccyu 7e00f186e2 Merge pull request #8022 from deepseek-harness/turtle/fix-ungrouped-new-session-8d376327b451
fix(ui-workspace): drop the inert New Session button from the Ungrouped header
2026-11-06 16:07:56 +08:00
TurtleandYifffan a8fb5eb9fa fix(ui-goal): keep goal action positions while activation loads
Co-authored-by: Yifffan <[email protected]>
2026-11-06 16:07:17 +08:00
creatixchu 1fd66fd75f Measure refused hover in the cursor-stability fixture 2026-11-06 15:43:06 +08:00
creatixchu 0d6c614164 Establish the file panel keyboard target and compare hover state across refusal 2026-11-06 15:40:54 +08:00
TurtleandYifffan eba9e768e6 fix(ui-goal): order goal actions edit, clear, pause and tighten icon gaps
Refs #8024

Co-authored-by: Yifffan <[email protected]>
2026-11-06 15:39:00 +08:00
creatixchu 344e8a91a5 Resolve element hover before checking geometry for pointer delivery 2026-11-06 15:35:37 +08:00
creatixchu c07035b4ef Check the rendered file panel button against its AX bounds 2026-11-06 15:34:32 +08:00
creatixchu 0c2fbb031d Capture the selected macOS window without its attached window group 2026-11-06 15:31:55 +08:00
yudshj 54387e9278 feat(open-in-app): 某类型第一次右键时最多等 300 ms 关联应用再弹出菜单
A file type without a recorded association answer now holds the file menu until the background query settles, 300 ms pass, or the menu closes, so the application row usually opens already named instead of changing after the menu appears. Later openings of the type still show the recorded answer at once and refresh in the background. Open menus track the answer they last applied per verification, so answers for other types never re-resolve them. README documents the wait and its first-opening delay.
2026-11-06 15:30:04 +08:00
winewill 04188f67e7 Merge pull request #7951 from deepseek-harness/fix/desktop-update-progress-width
fix(desktop): 稳定下载进度宽度并补充检查更新反馈
2026-11-06 15:23:44 +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