_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
Turtle
beee3dbe42
Merge pull request #7035 from deepseek-harness/turtle/market-git-update
...
feat(plugins): update Git-installed plugins from Discover
2026-11-05 12:43:43 +08:00
yudshj
6bcf6ee314
refactor(web): 按有序凭据来源执行 Search/Fetch 认证
2026-11-05 12:06:14 +08:00
涂轶翔
ae24f608a6
Merge pull request #7415 from deepseek-harness/feat/windows-writable-directory-sets
...
fix(sandbox): keep Windows extra directory grants in file tools
2026-11-05 11:39:50 +08:00
turtle1999
d2bed0238e
feat(plugins): update Git-installed plugins from Discover
...
Discover offers Update for a plugin installed from a pinned Git commit
when the plugin index lists a newer commit of the same repository
directory. The Plugins page update removes the installed copy, installs
the target with an expected-package check that undoes a wrong install
with its modules, and reinstalls the removed commit when the target
fails. A network failure reaching the target's host stops the update
before anything is removed.
2026-11-05 01:38:32 +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
yudshj
9df26413ee
refactor(office): Office 技能统一读取包内 assets,移除包外 office-skills 拷贝与 DSH_BUNDLED_OFFICE_SKILLS
...
- web-app、sdk-app 的 skill-office 不再覆盖 assetRoot;pythonEnvironment 不变
- Desktop 与 Python SDK 打包不再生成 office-skills 资源目录,删除 prepareOfficeSkillAssets 与 skillSource
- Desktop 打包 smoke 校验 4 个 Office 技能可从运行时归档列出并加载
- 同步测试、README、Agent Note,新增升级指南 office-skill-resources
2026-11-04 13:25:24 +00: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
f3a4643e71
feat(web): DeepSeek Search/Fetch API 支持按能力选择计费方式(自动 / 已登录账号 / API Key)
2026-11-04 19:32:22 +08:00
yudshj
63e99a1f56
refactor(office): Office 技能在 Web 仅随 Desktop 加载、SDK 仅在有 primary runtime 时加载,开放加载移至后续 PR
2026-11-04 18:18:03 +08:00
yudshj
e90954631e
refactor(desktop): primaryRuntime 保持 Host argv 传入,由 desktop-host 写入 DSH_PRIMARY_RUNTIME,不再升级 Host 协议版本
...
- main.ts / host-process.ts / host-protocol.ts 恢复 master 的 argv 布局与协议版本 4
- desktop-host 在环境快照和 profile 求值前把 argv[4] 写入 DSH_PRIMARY_RUNTIME
- 相关测试、smoke 脚本与 fixture 恢复按构造参数传入 primaryRuntime
- 删除 README 与升级指南中「内置终端继承 DSH_PRIMARY_RUNTIME」的不实说明(子进程会清除 DSH_* 变量)
2026-11-04 18:18:02 +08:00
yudshj
a485361411
chore(office): align new package and upgrade guides with current release
2026-11-04 18:18:01 +08:00
yudshj
9d01969217
fix(office): 清理 /locate 残留文档,收窄 office 工具输出 schema
...
- 打包、document 分组、office-kit 子系统页与 Agent Note 改为提供方内部解析 Kit,不再引用已删除的 /locate 入口
- office_recalculate 输出 format 收窄为 xlsx/ods;office_render 图片 mediaType 去掉 GIF,存储返回 GIF 时明确报错
- 修正 office-kit 输出位置、技能数量、token 预算说明,补充 /office 直接调用的激活时机限制
- 升级指南说明继承的 DSH_PRIMARY_RUNTIME 优先于 SDK 下载缓存,刷新 office-progressive-ptc 系统提示快照
2026-11-04 18:17:59 +08:00
yudshj
d7ae76a92b
refactor(office): 渲染图片沿用附件实际媒体类型,收窄 office-kit 冗余接口
...
- office_render 返回存储规范化后的 mediaType(JPEG/WebP),复用 ImageAttachmentRef 字段并补回归测试
- 删除无生产消费者的 office-kit/locate 公开子路径与 unpackedPath 导出
- tool-office 复用 office-kit 格式与扩展名类型
- 删除新操作结果的 generation 与请求的 priority 字段
- 删除 tool-office 入口无人使用的结果类型重导出
2026-11-04 18:17:59 +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
012088543a
fix(office): PDF 导出后不再渲染,合并 DSH_BUNDLED_PRIMARY_RUNTIME 到 DSH_PRIMARY_RUNTIME
...
- office 路由技能:PDF 导出写明验收(复制的文件非空且以 `%PDF-` 开头)并在此停止;保留排版类任务主动渲染。office 工具让渲染只差一次调用后,模型常在导出后渲染 result.pdf 验收,e2e「exports PDF」因此失败。
- office-pptx / office-xlsx 删去不提供操作的免责句。
- Desktop、SDK 与 web-app 配置只读 DSH_PRIMARY_RUNTIME,空值视为未设置;SDK 启动器在用户未设置时才填入下载缓存路径。
- e2e 断言附带工具调用诊断;render 检测改用记录的 office 调用,新增 render-context.spec.ts。
- 同步 office 快照、README 与升级指南。
2026-11-04 18:17:58 +08:00
yudshj
847c327ac1
docs(office): 恢复 office-kit-package 与 office-tool 升级指南,office-tool 指向操作技能移除指南
2026-11-04 18:17:58 +08:00
yudshj
78da437976
refactor(office): 移除 render/recalculate/export-pdf 技能,改为直接调用 office 工具
2026-11-04 18:17:58 +08:00
yudshj
611e42b9a5
fix(office): 输出清理限定在自有目录,缓存命中前确认读权限
...
- office-kit:启动 sweep 只处理 session-<hash>/<uuid> 格式的真实目录,不跟随 symlink;删除成功后才释放记账,失败保留并重试,dispose 等待全部删除;容量腾不出时 save 明确失败
- office-kit / web-app 测试:显式使用临时 outputDirectory,不再清理真实 $DSH_HOME
- tool-office:交给 kit 前读 1 字节并重核 version,缓存命中也受当次读权限约束
- 文档:升级指南与 README 写明 render 不再保存图片文件、原生引擎在 Host 内运行;skill-office 链接 #7677;清理 Office-to-PDF 旧描述并重新生成 catalog
- 客户端:renderImages 改用 useCallback;e2e 补 assertNever,依赖按字母序
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
Yixiang Tu
41a1aa8a97
fix(sandbox): limit Windows extra directory grants to file tools
2026-11-04 16:07:04 +08:00
Yixiang Tu
d6e89120d1
fix(sandbox): compare root paths with host semantics
...
Reuse derived directory SIDs during initialization and align documentation with per-directory grants.
2026-11-04 16:07:04 +08:00
Yixiang Tu
0120f0c01e
refactor(sandbox): compose Windows write permissions per directory
2026-11-04 16:07:04 +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
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
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
Turtle and Kaige-Gao
f6e942a097
docs(ui-chat): document the context process category contract
...
Clarify the processActivity and summary JSDoc, correct the running label
in the title table, export RunningProcessActivity, and add the upgrade
guide for the ProcessActivity union change.
Co-authored-by: Kaige-Gao <[email protected] >
2026-11-03 22:05:51 +08:00
_Kerman
ab2bee0051
Merge remote-tracking branch 'origin/master' into xtr/ptc-timeout-step-1
2026-11-03 20:12:59 +08:00
Turtle
b685ec0ddb
Merge remote-tracking branch 'origin/master' into turtle/retry-policy-ui-fb23c6dee798
...
# Conflicts:
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
2026-11-03 17:11:52 +08:00
Turtle
035ef9b37d
feat(llm): define built-in failure codes once and offer retry choices through the schema
...
Refs #7005
2026-11-03 16:29:23 +08:00
Dudu-0223
fd8dfa270d
test(subagent): refresh naming snapshots against current base
2026-11-03 16:02:27 +08:00
Dudu-0223
7b2d7841dd
Merge master into subagent naming fixes
2026-11-03 15:52:55 +08:00
Dudu-0223
6c0b6c7aa3
fix(subagent): validate persisted names and clarify presentation
2026-11-03 15:51:40 +08:00
Stevring
82b953acc5
Merge master into refactor/css-anchored-panels
2026-11-03 14:26:17 +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
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
Stevring
0667efe813
Merge master into refactor/css-anchored-panels
2026-11-03 13:32:06 +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
aa4774e685
Merge master into worktree-sync-dsh-0.2.2-to-master
2026-11-03 12:05:47 +08:00
imccyu
ef5f28d0fb
Merge master into worktree-sync-dsh-0.2.2-to-master
2026-11-03 11:47:40 +08:00
Turtle
582c334472
Merge pull request #7022 from deepseek-harness/turtle/websearch-query-limit-96c308027005
...
feat(web): raise web_search defaults to 10 queries and 10 sources
2026-11-03 11:41:39 +08:00
imccyu
eb1713f856
fix(session-projection): keep released units in checkpoints ( #7754 )
...
* fix(session-projection): keep released units in checkpoints
Since the Cordis rc.11 teardown order unloads the Web layer before the
base layer, Session Controller and harness-dev-context release their
projection units before their live Sessions detach. The projection
cache is still alive at that point and wrote a checkpoint holding only
the units that were still registered, replacing the complete record.
A blank Session then lost sessionListMetadata and listed as an untitled
conversation after every graceful restart.
A released unit now stays in the registry as a predecessor: it leaves
event drives, snapshots, restores, and change notifications, while
checkpoint() keeps each Session's last cell of it without advancing it.
Registering the same key again replaces the predecessor and refolds
the log. The projection cache keeps replacing whole records.
* test(session-projection): assert frozen released units across unload tests
Update the remaining unload tests that still expected a released unit
to vanish from checkpoint(): user-approval, agent-loop inbox and scope
lifecycle, time-context, and the agent registry now assert that the
same Session keeps its pre-unload row, that a later event does not
advance it, and that a Session created after the unload has no row.
The token-meter and goal unload tests also append an event after the
unload.
Document that a retained handle read still advances a released cell
that checkpoint() serves, and that restore() folds only live units, so
its refreshed rows omit released units.
* docs(session-projection): sync the ProjectionHandle type-equiv block
* docs(session-projection): record frozen released units and their upgrade
Add the upgrade guide for checkpoint() keeping a released unit's last
row, update the registration-handles Agent Note with the frozen-cell
decision and the retained predecessor, list both consequences under the
registry README's known limitations, note in the projection cache README
that a stored row can be frozen at its unit's release, and say that
restoreFloor() ignores released predecessors.
Update the agent-loop resource-lifecycle unload test, which read
checkpoints through an alias, to the frozen-row semantics.
* docs(upgrade-guide): mark the released-checkpoint snippet ignore-check
* docs(session-projection): state the retained-handle path and narrow a rejected alternative
* docs(upgrade-guide): re-record the released-checkpoint guide pairing
2026-11-03 11:07:09 +08:00
Stevring
dd8fb95670
Merge master into refactor/css-anchored-panels
2026-11-03 10:50:14 +08:00
Yichen Jiang and imccyu
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