Commit Graph
5107 Commits
Author SHA1 Message Date
_Kerman beb5186e36 Merge origin/master into xtr/runtime-context-reminders 2026-11-05 15:23:36 +08:00
Yudong Han 6b59aa0053 Merge pull request #7868 from deepseek-harness/feat/web-tool-custom-endpoint
feat(web): DeepSeek Search/Fetch API 支持选择计费方式(自动 / 已登录账号 / API Key)
2026-11-05 14:32:24 +08:00
yudshj 42cf6b1e3e fix(web): 精简网页搜索与获取设置页文案,去掉原理说明 2026-11-05 13:58:38 +08:00
Turtle 4d4a7c36ad Merge pull request #7892 from deepseek-harness/turtle/fix-dark-mode-layering-e8ad7a481b97
fix(sidebar-files): layer the dark file-tree card by background instead of shadow
2026-11-05 00:52:36 +08:00
Turtle 7be4511492 Merge pull request #7010 from deepseek-harness/turtle/retry-policy-ui-fb23c6dee798
feat(ui-settings-models): edit the provider retry policy in Models settings
2026-11-05 00:35:41 +08:00
Turtle 38c7a9fbf4 feat(release): publish package source, declaration maps, and documentation (#5884)
* feat(release): publish package source, declaration maps, and documentation

Every release member publishes its TypeScript source and the declaration
maps that resolve into it, and @deepseek-ai/dsh publishes the repository
Markdown documentation staged from docs/ at prepack time.

The ./src/* export most members already declared now resolves for an
installed consumer, and a consumer editor follows a declaration to the
implementation. Bundled JavaScript maps stay unpublished; the vendored
family and the Desktop runtime file policy are unchanged.

Rationale: .agents/notes/implemented/process/2026-10-08-published-source-and-docs.md

* feat(release): publish JavaScript maps and compress bundles

Every emitted JavaScript map ships beside the bundle it describes, and the
workspace build and the client preset compress bundles without mangling
identifiers.

The documentation payload now mirrors the website publication manifest and
is removed again by `postpack`; Desktop and the Python executable exclude
the published source, documentation, and maps; `clean` removes a staged
copy. Typert's publication contract gains the Remote declaration map.

* fix(release): keep node bundles readable for the worker image

The browser worker image lowers `yield*` only as a whole statement and
rewrites `for await` loops by their source layout, so compressed node-side
entries either fail that lowering or lower to unparseable code. Only the
browser bundles keep compression, which removes about a third of their text.

The bundle-purity assertion now matches the module-loader call regardless of
the quote style compression picks, and the release-pack fixture exercises
the installed package's new documentation requirement.

* feat(release): publish the whole documentation tree

`@deepseek-ai/dsh` copies `docs/` in full instead of the website's page
set: the maintainer documents, the generated migration records, the
translation guidelines, and the `*.i18n.yaml` consistency records ship
with the installed package, so the documentation's own links resolve
without a checkout.

* feat(release): publish the upgrade guides with the documentation

The staged documentation keeps the website's page set and adds every
`docs/upgrade-guide/` document, which is what an installed reader consults
when a released change breaks something. The rest of the maintainer tree
stays out.

* test(release): expect source and maps in master's new payload cases

* feat(release): keep installed docs and source readable in Desktop

Desktop keeps the published src/ and docs/ trees inside app.asar, and
every model shell call receives DSH_INSTALL_DIR and DSH_NODE_EXECUTABLE
so an agent can read them through Electron's Node mode. Staging also
generates docs/upgrade-guide/README.md, an index of the upgrade guides
grouped by the release they upgrade from.

Minified client bundles print string literals with backticks: the
worker image packer now recognizes those chunk requests, client license
banners are prepended after minification so their text survives, and
the affected artifact tests accept either quote.

* test(desktop): read archived docs through the Windows PowerShell form

Regenerate the config catalog for the shifted shell-env source line.

* test(desktop): wait for the GUI-subsystem Electron process from PowerShell

* build(release): publish source and maps from the message-quotes package

* build(release): publish source and maps from packages new on master

* build(release): publish source and maps from the tool-office package
2026-11-05 00:22:36 +08:00
9115580c7b Merge branch 'master' into turtle/fix-dark-mode-layering-e8ad7a481b97
Co-authored-by: Yifffan <[email protected]>
Co-authored-by: yudshj <[email protected]>
2026-11-04 23:45:00 +08:00
Turtle 0f8702299d Merge pull request #7896 from deepseek-harness/turtle/remove-session-more-tooltip-87c40ecbaf33
fix(client): drop the tooltip from sidebar row more buttons
2026-11-04 23:12:02 +08:00
24bfeda864 fix(sidebar-files): bind the file-tree card's light hairline to border-l2
Co-authored-by: Yifffan <[email protected]>
Co-authored-by: yudshj <[email protected]>
2026-11-04 22:47:44 +08:00
783f5908b1 fix(sidebar-files): match the file-tree card's hairline and shadow to the menu card
Co-authored-by: Yifffan <[email protected]>
Co-authored-by: yudshj <[email protected]>
2026-11-04 22:21:32 +08:00
yudshj 3f6cd80c9d feat(office): Office 技能在 Web、SDK 均可加载
- web-app profile 不再限定 Desktop 才加载 skill-office;非 Desktop 时可用 DSH_BUNDLED_OFFICE_SKILLS 指定技能目录,否则使用随包技能,并指引模型使用用户自己的 Python
- sdk-app profile 不再要求 DSH_PRIMARY_RUNTIME 才加载 skill-office;没有 primary runtime 时使用随包技能和用户自己的 Python
- 相应刷新 SDK / Web snapshot 与 golden(首轮注入 Office 技能目录),并更新 README、Agent Note、升级指南和测试
2026-11-04 13:25:24 +00:00
yudshj 483dfc223f feat(web): 计费文案改为明确会产生费用,高级覆盖时显示胶囊并禁用计费方式 2026-11-04 20:07:38 +08:00
edac13d29c fix(sidebar-files): use layer-1 and a static black shadow for the file-tree card in both themes
Co-authored-by: Yifffan <[email protected]>
Co-authored-by: yudshj <[email protected]>
2026-11-04 19:46:10 +08:00
yudshj f3a4643e71 feat(web): DeepSeek Search/Fetch API 支持按能力选择计费方式(自动 / 已登录账号 / API Key) 2026-11-04 19:32:22 +08:00
TurtleandYifffan 61634cf91f test(web): expect no tooltip on the Session row more button
Co-authored-by: Yifffan <[email protected]>
2026-11-04 19:27:44 +08:00
5320eabb46 test(web): expect the dark file-tree card without a shadow
Co-authored-by: Yifffan <[email protected]>
Co-authored-by: yudshj <[email protected]>
2026-11-04 19:07:01 +08:00
yudshj 63e99a1f56 refactor(office): Office 技能在 Web 仅随 Desktop 加载、SDK 仅在有 primary runtime 时加载,开放加载移至后续 PR 2026-11-04 18:18:03 +08:00
yudshj 0b075a8d32 test(snapshot): 合并 master 后为 Web golden 补上 skill-catalog 上下文注入行 2026-11-04 18:18:02 +08:00
yudshj edd38f1d66 refactor(office): office 工具拆成 office_render/office_convert/office_recalculate,加载 Office 技能后按需声明
- tool-office 注册三个工具,参数规则由各自 schema 表达,运行时拒绝其他工具的参数
- 三个工具共用 when:本 agent 成功加载过 activationSkills 中的技能(内存标记),或上一次请求头已声明 office_*;加载后下一步声明,之后不移除
- Office 技能改用新工具名,加入工具不可用时重新加载 office 的说明和旧格式先转换的说明
- Client 卡片按工具名分派,图片子槽改为 tool.call.office_render.images
- 删除未发布 office 工具的两份升级指南,新增 office-operation-tools 指南,只记录已发布版本的变化
- 刷新 catalog、snapshot、SDK expected 与 Agent Note
2026-11-04 18:17:59 +08:00
yudshj 78da437976 refactor(office): 移除 render/recalculate/export-pdf 技能,改为直接调用 office 工具 2026-11-04 18:17:58 +08:00
yudshj 50ba635949 feat(office): Office 操作改为常驻的原生 office 工具
- 新包 @deepseek-ai/dsh-tool-office 提供常驻的 office 工具(render / convert / recalculate),由 office-kit 在 Host 中直接调用 Kit 的 JS API;标准模式与 PTC 通过同一个工具调用
- render 的页面图片直接进入工具结果(有数量、像素与字节上限);convert / recalculate 的结果写入 office-kit 按 Session 划分的私有输出目录,由模型用 shell 复制到工作区,fs 与 Host 代码不写用户工作区
- 删除为 shell 执行 Kit CLI 而存在的代码:skill-office 的 node / cli / kitRoot、resolveKitCli、DSH_BUNDLED_OFFICE_CLI / DSH_BUNDLED_OFFICE_NODE / DSH_BUNDLED_RUNTIME_ROOT 与 Electron 下的独立 Node 检查;打包 smoke 改为经 office-kit 真实渲染、转换与重算
- office 由 web-app 的 standard / ptc 预设与 sdk-app 挂载,minimal 不挂载;操作技能正文与目录描述指向 office 工具
- 新增 Agent Note,部分取代 progressive-office-skills 的 shell 执行决定;同步 README、子系统页、catalog 与升级指南(含已保存预设的迁移步骤)

本 PR 的 snapshot 统一在这个提交里重新生成,前 4 个提交中的 snapshot 不一定和那一步的代码对应。
2026-11-04 18:17:58 +08:00
yudshj a220e017b5 refactor(office): 合并为 office-kit,Kit 缺失时降级而非加载失败
- Kit CLI 由 office-kit/locate 在 Host 中定位(含 ASAR 映射与可选 root 越界检查),删除 Desktop 壳的 office-cli 与诊断文件;生产版 Desktop 由壳通过 DSH_BUNDLED_RUNTIME_ROOT 显式传入 Kit 根目录,开发版与 Web 不检查
- office-to-pdf 与 office-kit-resolver 合并为 @deepseek-ai/dsh-office-kit,由同一包定位 Kit 并提供转换服务
- Kit 缺失时 provider 照常注册,转换请求以 OfficeKitError unavailable 拒绝,之后安装 Kit 无需重载
- 类型统一使用 OfficeKit 前缀(OfficeKitRequest/Result/Priority/Key),同步消费方、文档、升级指南与 catalog
- 处理 ds-review-bot 意见,并更新 unknown 断言基线

本 PR 的 snapshot 统一在这个提交里用 keyless refresh 重新生成,前 3 个提交中的 snapshot 不一定和那一步的代码对应。
2026-11-04 18:17:57 +08:00
yudshj 4a41d3ad1f feat(office): Office 技能在 Desktop、Web、SDK 均可用
- Office 技能从 Desktop 专属改为在 Web、SDK 与 Desktop profile 中均可挂载
- skill-office 新增 pythonEnvironment 配置,按部署显式选择内置依赖或用户已有的 Python
- Python 类技能末尾追加固定的 Python 环境说明,技能正文不再写死 load_workspace_dependencies
- 去掉 node:sea 探测,避免 Web 预览镜像依赖 webworker stub
2026-11-04 18:17:57 +08:00
imccyu abc0e7092b Merge remote-tracking branch 'origin/release/dsh-0.2.2' into merge/release-dsh-0.2.2-rc.1-to-master
# Conflicts:
#	packages/client/ui-agent-team/package.json
#	packages/client/ui-brand-official/package.json
#	packages/client/ui-open-in-app/package.json
#	packages/client/ui-settings-web-search/package.json
#	packages/experimental/agent-team-profile/package.json
#	packages/team/agent-team/package.json
#	packages/web/web-search-exa/package.json
#	packages/web/web-search-perplexity/package.json
2026-11-04 15:59:50 +08:00
imccyu 2f97f60455 release(dsh): 0.2.2-rc.1 2026-11-04 15:50:06 +08:00
liukx0205 78167faa4f Merge remote-tracking branch 'origin/master' into fix/web-prompt-retry 2026-11-04 15:34:17 +08:00
liukx0205 a186602dc3 Merge remote-tracking branch 'origin/master' into fix/web-prompt-retry
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/src/commands.ts
2026-11-04 15:29:20 +08:00
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 e85a3f90be Merge master into ux/session-menu-open-in-app
重新生成冲突的 ui-conversation 双语配对记录与 slot 目录;其余改动自动合并。
2026-11-04 14:31:49 +08:00
Dudu-0223 db109a62fb Merge master into feat/subagent-catalog-names 2026-11-04 14:16:00 +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
Dudu-0223 bb3ac8e304 Merge master into feat/subagent-catalog-names 2026-11-04 13:51:31 +08:00
liukx0205 8706daa679 fix(web): deduplicate prompt retries after input acceptance 2026-11-04 13:37:53 +08:00
_Kerman efa57ca366 Merge origin/master into xtr/runtime-context-reminders 2026-11-04 13:26:14 +08:00
Yichen Jiang 36ed2133ff Merge remote-tracking branch 'origin/master' into worktree/continue-generation-after-failure
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-11-04 12:50: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
Ziya d70967e36b Merge pull request #6586 from deepseek-harness/experiment/home-code-ripple
feat(web): play a pixel and code whale on blank home clicks
2026-11-04 04:07:26 +00: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
Yichen Jiang 46983a077f Merge remote-tracking branch 'origin/master' into worktree/continue-generation-after-failure 2026-11-04 11:27:00 +08:00
Yichen Jiang e369822bc0 Merge pull request #7832 from deepseek-harness/worktree/fix-floating-panel-anchors
fix(web): preserve floating panel anchor alignment
2026-11-03 23:20:25 +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
Yichen Jiang c4ecee9173 test(web): align menu expectations and await workspace readiness 2026-11-03 22:44:39 +08:00
Yichen Jiang 0e8bfc1b9d fix(web): preserve floating panel anchor alignment 2026-11-03 21:58:56 +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 dca8cfb77e fix(client): position approval risks with CSS anchors 2026-11-03 21:05:16 +08:00
Yixiang Tu 9cfa6153ca fix(client): dismiss approval risks on focus and foreground loss 2026-11-03 21:05:16 +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