1053 Commits
Author SHA1 Message Date
std4453 0ddca24030 Merge pull request #7569 from deepseek-harness/ux/session-menu-open-in-app
feat(client): 将 Open in 收进 Session 菜单并适配窄屏
2026-11-04 15:26:58 +08:00
zhc 39471d572d Merge master and fix CI on shared menu branch
- 合并最新 master,无冲突。
- 清理 `no-unknown-casts` 基线中已失效的 `session-log-export` 测试条目。
- 会话行 ⋯ 改为共享 `contextMenu.button` 后会显示 tooltip;它在气泡尺寸
  测量完成后才可见,原用例在假时钟下立即记录,结果取决于渲染时机。用例
  改为等待该 tooltip 可见,快照 `more-hover` 阶段记录该 tooltip。
- 删除子菜单几何用例中对父卡片施加 `transform` 的步骤。它验证的是已删除
  的逐帧移动跟踪;产品中的菜单卡片不带 transform,CSS 锚点对 transform
  的跟随由浏览器决定,WebKit 在负载下不稳定。行外边距、字号、父列表滚动
  与视口缩窄的真实布局验证保留。
2026-11-04 13:56:23 +08:00
zhc 68312d2a4a Merge master into ux/session-menu-open-in-app
重新生成冲突的 slot 目录与 ui-conversation 双语配对记录;其余改动自动合并。
2026-11-04 12:31:38 +08:00
zhc 45bb3da47e Merge master and position submenus with CSS anchors
master 通过 #7700 将 portal 菜单改为 CSS Anchor Positioning,并删除了
`useAnchoredPosition`。本次合并让子菜单跟进同一机制:

- 子卡片以父卡片内一个不随列表滚动、与卡片同尺寸的锚点框为默认锚点,
  侧开时默认在右侧、放不下时由 CSS 翻到左侧;单面板模式占据父卡片位置。
- JavaScript 只决定侧开或单面板,并提供当前行在父卡片内的偏移和子卡片
  自然高度;两者都是相对尺寸,双指缩放与平移由 CSS 锚点处理。
- 锚点框绕开了 WebKit 的两个问题:锚定到自身由锚点定位的父卡片时不会
  在其定位稳定后重新计算;锚定到滚动列表内的行时不计入滚动偏移。
- 删除 `useAnchoredPosition` 及其测试;`menu-submenu-position` 只保留
  侧开/单面板判断,相应单测改为验证模式与锚点名。
- 解决 README、测试与 package.json 冲突,沿用 master 的 CSS 锚点说明并
  补充子菜单定位描述。
2026-11-04 12:26:20 +08:00
Dudu-0223 a6f6b98053 Merge master into feat/subagent-catalog-names 2026-11-04 12:04:15 +08:00
Yichen Jiang 9ee92455c4 Merge pull request #7788 from deepseek-harness/worktree/forge-diff-base-branch-4ffd61
feat(forge): add a base branch picker to local changes and restyle merge
2026-11-04 11:38:17 +08:00
Turtle 917aab8204 Merge pull request #7830 from deepseek-harness/turtle/render-context-injection-f1a5826b9910
feat(ui-chat): show context injections as tool-call rows
2026-11-03 23:13:35 +08:00
TurtleandKaige-Gao 44ad857798 feat(ui-chat): show context injections as tool-call rows
Ordinary Context injections were hidden from Chat. Show them as the
existing collapsed disclosure rows inside the Turn process group, and
title a group made only of Context "Injected context" instead of
"Analysis completed".

Co-authored-by: Kaige-Gao <[email protected]>
2026-11-03 21:26:17 +08:00
Yixiang Tu 43e9de8170 fix(cua): restore existing approval button emphasis 2026-11-03 21:05:16 +08:00
Yixiang Tu 4ff169c8ad refactor(cua): refine application control risk notice 2026-11-03 21:05:16 +08:00
Yixiang Tu ba3c339cc7 fix(cua): dismiss pointer-focused risks and refine localized notice 2026-11-03 21:05:16 +08:00
Yixiang Tu 85da1c0f66 fix(client): remove close button from app risk hover card 2026-11-03 21:05:16 +08:00
Yixiang Tu fdf8f140ba feat(cua): clarify application approval risks and session choice 2026-11-03 21:05:16 +08:00
Dudu-0223 7b2d7841dd Merge master into subagent naming fixes 2026-11-03 15:52:55 +08:00
Yichen Jiang a703e9e4b0 fix(forge): address review of the base branch picker
Identify a local review comparison by its compared ref instead of the
displayed base name. Branch records stored before this change appear in
the automatic comparison again, and comparisons that share a name, such
as a worktree start and a local branch, stay apart.

List base branch refs within maxDiffBytes, so a repository with more refs
than maxOutputBytes allows keeps a working menu, and document the
remaining limit.

Move the merge button fill toward the label color so its label reaches
4.5:1 contrast in both themes, name the automatic menu group, and drop an
unused DOM attribute.

Refs #7781
2026-11-03 15:52:36 +08:00
winewill ece8f7cb77 Merge pull request #7495 from deepseek-harness/feat/desktop-update-channels
feat(desktop): 在设置中切换更新渠道
2026-11-03 14:03:04 +08:00
Yichen Jiang 61addcbcb9 Merge remote-tracking branch 'origin/master' into worktree/forge-diff-base-branch-4ffd61 2026-11-03 13:49:51 +08:00
Dudu-0223 9f57925000 Merge remote-tracking branch 'origin/master' into feat/subagent-catalog-names
# Conflicts:
#	docs/persistence-schema.json
#	docs/tool-catalog.i18n.yaml
2026-11-03 13:49:18 +08:00
Yichen Jiang fcc1becf11 feat(forge): choose the base branch of local changes
The Branch scope of the local changes view compared only with the
automatic fork point. Its header now names the checked-out branch and a
searchable base branch menu that lists the automatic fork point, then
remote-tracking and local branches; a chosen branch compares with its
merge base with HEAD. The choice lives in the view tab, a missing or
unrelated branch offers the default instead of a retry, and local Branch
review quotes name the base they were compared with.

Refs #7781
2026-11-03 13:49:13 +08:00
winewill 3c46127816 Merge remote-tracking branch 'origin/master' into feat/desktop-update-channels 2026-11-03 13:20:42 +08:00
yudshj 3859913c68 feat(web): 网页搜索与获取设置页分开选择 Search 与 Fetch,Search 默认改为 DeepSeek Search API 2026-11-03 13:04:26 +08:00
imccyu 06bf7ce024 Revert "fix(settings): show saved API keys and preserve environment detection…"
This reverts commit 9bb49604b63bb5d50e879bcf63c9f5cb2afbd737.
2026-11-03 12:33:44 +08:00
imccyu ef5f28d0fb Merge master into worktree-sync-dsh-0.2.2-to-master 2026-11-03 11:47:40 +08:00
Yichen Jiangandimccyu d721353f86 feat(forge): unify plugin entry for reviews and worktrees (#7721)
* feat(forge): unify the worktree plugin entry and add user previews

* docs(forge): show session-linked GitHub pull requests in preview

* refactor(forge): keep plugin unification out of profile loading

* docs(forge): document manual upgrade to the unified plugin entry

* fix(forge): localize preview descriptions and address review feedback

* test(web): refresh creation recommendation catalog for the forge description

---------

Co-authored-by: imccyu <[email protected]>
2026-11-02 22:34:01 +08:00
Yif 52ba88132e Merge master and address shared menu ownership review 2026-11-02 22:05:54 +08:00
Dudu-0223 6644a234a5 Merge master into feat/subagent-catalog-names 2026-11-02 17:46:04 +08:00
CreatixChu 4eb2118dba Merge pull request #7515 from deepseek-harness/feat/cua-optional-bundle
feat(cua): 随 DSH 分发 Computer Use,并在实验性插件列表中显示
2026-11-02 16:21:57 +08:00
Magolor 8d0c3b4633 fix(settings): show saved API keys and preserve environment detection (#7695)
* fix(settings): show saved API keys in provider editors

* test(settings): retain DeepSeek environment detection states

* fix(settings): classify saved-key reads and align browser expectations

* test(settings): cover saved keys under derived references

* test(settings): verify saved endpoints and keys on provider requests

* fix(settings): preserve credential drafts without changing authentication
2026-11-02 15:00:19 +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
creatixchu 7d9bc01a50 Merge updated master and helper identity into bundled Computer Use 2026-11-02 14:58:31 +08:00
winewill 26c077aa5f test(desktop): verify settings recovery in the browser 2026-11-02 14:37:28 +08:00
Yifffan a1c3458e12 Merge pull request #7504 from deepseek-harness/feat-agent-teamwork-ui-polish
feat(web): improve agent collaboration panels and tool receipts
2026-10-31 11:10:03 +08:00
Dudu-0223 127923cfec fix(client): expose complete subagent labels and total counts 2026-10-30 23:46:02 +08:00
winewill 32036b372e fix(desktop): separate channel save feedback from update suspension 2026-10-30 17:48:17 +08:00
Yudong Han 02578b3cce Merge pull request #7629 from deepseek-harness/fix/revert-4484-display-dollar
revert(ui-primitives): 撤回 #4484 的多行美元公式解析
2026-10-30 17:43:58 +08:00
Dudu-0223 d37b3d98f5 test(web): align collaboration fixtures with panel presentation 2026-10-30 16:57:28 +08:00
creatixchu 5744837ef5 Merge master updates into bundled Computer Use 2026-10-30 15:58:02 +08:00
imccyu ea9912523d Merge pull request #7619 from deepseek-harness/worktree/forge-local-changes-independent
fix(web): keep local changes visible alongside pull requests
2026-10-30 15:49:46 +08:00
CreatixChu 490c6fdd92 Merge pull request #7557 from deepseek-harness/feat/cua-permission-guide
feat(cua): 补齐 macOS 系统权限申请与应用拖入引导
2026-10-30 15:48:02 +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 43c4919f86 merge: refresh ID-only Team UI from core master updates 2026-10-30 15:13:05 +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 dcc3bde068 test(ui): refresh ID-only teamwork and subagent expectations 2026-10-30 14:52:15 +08:00
Dudu-0223 6766a694fc Merge refreshed ID-only Team base into UI polish 2026-10-30 14:40:43 +08:00
Dudu-0223 b5fed8ca06 test(team): refresh ID-only UI and session snapshots 2026-10-30 14:37:04 +08:00
Yichen Jiang da51975dfb fix(web): keep local changes visible alongside pull requests 2026-10-30 14:29:54 +08:00
Dudu-0223 0eb1bb52e2 refactor(team): keep session UI and task tools keyed by IDs 2026-10-30 14:25:27 +08:00
yudshj 1d9c0ab757 revert(markdown): remove PR #4484 display-dollar parser
Revert PR #4484 (merge b9bdd062c8f), retaining later Windows-path and GFM changes. Its display-dollar rules are replaced by upstream math parsing with bounded invalid-block recovery in the next commit.
2026-10-30 14:16:26 +08:00
creatixchu 791d04e003 Merge permission guide recovery and window handling updates 2026-10-30 13:38:21 +08:00
creatixchu cbbf9d86a1 fix(cua): preserve settings recovery and validate current application metadata 2026-10-30 12:26:20 +08:00