Commit Graph
347 Commits
Author SHA1 Message Date
winewill ac60dc5188 Read startup appearance from Host settings instead of a theme cache 2026-11-05 16:51:25 +08:00
winewill 21ebc61074 Restore desktop theme before startup and track Windows background changes 2026-11-05 16:51:25 +08:00
winewill c174e33a1b Paint the Windows workspace with its startup theme before the first frame 2026-11-05 16:51:25 +08:00
yudshj ca3ad0cc85 fix(office): 按 review 意见同步文档事实、Office 行兜底、拒绝用例结构与主运行时默认值归属
- Native Office 工具 Agent Note:移除已删除的 `/locate` 子路径、把「PDF 页数」改为转换器报告的页数、补全输出文件删除条件、把「工具不可用」统一为「不在工具列表中」,中英文与配对哈希同步。
- skill-office / tool-office README:Progressive loading 与 unavailable 提示摘要按实际行为描述,重录 i18n 哈希。
- Office 行:结果只含图片块时不再回退到扁平化输出(避免向用户显示附件引用 JSON),用例随之改为断言没有输出区。
- tool-office 用例:参数拒绝与路径拒绝拆成两组,用 resolve 调用次数显式表达「是否碰文件系统」。
- office-docx / office-xlsx:去掉引导语会让模型把「只做内容检查」误读成「需要渲染」,并刷新内嵌技能正文的 office 快照。
- visual-intent 夹具:用具名 intent 常量代替下标引用。
- Desktop:主运行时「运行时目录旁」的布局假设只保留在 Host 侧,壳传空参数表示使用默认,行为不变。
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 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 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 ee06bf3f9b fix(office): 升级 LibreOffice Kit 到 0.2.3,Kit CLI 定位失败时隔离并保留技能
- 将 Kit 引擎包解析提取为 office-engine-resolver,并与 master 的发布配置对齐
- LibreOffice Kit 升级到 0.2.3 正式版
- Desktop 的 Office CLI 改由 skill-office 解析 Kit,去掉 desktop-host 对 Kit 的依赖
- Kit 缺失时给出可操作错误;Office CLI 定位失败时隔离错误并保留 Office 技能
- 按 Kit 0.2.3 的 helper 授予 macOS JIT 权限,并按新 Host 签名转发夹具参数
2026-11-04 18:17:57 +08:00
yudshj 498d436db5 fix(office): 技能文件缺失时不再阻止 Desktop Host 启动,Office 改由 Desktop profile 挂载
- skill-office 在技能文件缺失或元数据解析失败时降级为持久失败,不再阻止 Desktop Host 启动
- Office 改由 Desktop profile 的 yaml 挂载,载体路径由 Desktop 壳通过 Host 环境传入
- 升级 LibreOffice Kit 到 rc.4,移除 Desktop Host 的引擎钩子,runtimeArchivePath 内联到 cli.ts 并删除 office-engine.ts
- 按平台原生路径和当前 Host 参数布局更新 web-app 与 desktop-host 测试夹具
2026-11-04 18:17:57 +08:00
winewill 0d03fb3ca3 Merge master into desktop channel version policy 2026-11-04 15:30:38 +08:00
std4453 a9b2873303 Merge pull request #7787 from deepseek-harness/turtle/add-paste-plain-shortcut-d16f8fd43c4b
feat(desktop): bind Paste and Match Style to Shift+Command+V on macOS
2026-11-04 15:18:06 +08:00
winewill 152d0294c2 fix(desktop): decouple update channels from version suffixes 2026-11-04 11:06:11 +08:00
80cec4bde3 refactor(desktop): spell out the macOS Edit menu copy
Co-authored-by: std4453 <[email protected]>
Co-authored-by: 07akioni <[email protected]>
2026-11-03 15:57:19 +08:00
34d1ff94f7 fix(desktop): localize macOS Edit submenu titles
Co-authored-by: std4453 <[email protected]>
Co-authored-by: 07akioni <[email protected]>
2026-11-03 14:43:04 +08:00
09f5e52fdd feat(desktop): bind Paste and Match Style to Shift+Command+V on macOS
Refs #7782

Co-authored-by: std4453 <[email protected]>
Co-authored-by: 07akioni <[email protected]>
2026-11-03 14:02:29 +08:00
winewill 3c46127816 Merge remote-tracking branch 'origin/master' into feat/desktop-update-channels 2026-11-03 13:20:42 +08:00
winewill d7ca2e0ac2 fix(desktop): keep configuration recovery dialog interactive 2026-11-03 12:50:36 +08:00
winewill 0535b85a1d fix(desktop): recover update settings under mandatory policy 2026-11-03 11:54:27 +08:00
winewill eb5b32c9c9 fix(desktop): report and recover saved channel apply failures 2026-11-03 11:47:04 +08:00
winewill 224fe9a658 fix(desktop): distinguish committed and uncertain settings saves 2026-11-03 11:26:57 +08:00
winewill 88b01c24ea fix(desktop): discard stale channel check prompts and align error copy 2026-11-02 17:12:00 +08:00
winewill c05a34e153 feat(desktop): reload update settings from configuration errors 2026-11-02 15:48:13 +08:00
winewill f387930ebe docs(desktop): align channel guidance with saved settings 2026-11-02 15:17:46 +08:00
winewill c0795c003a fix(desktop): explain current download filesystem failures 2026-11-02 14:32:06 +08:00
winewill 598006d608 fix(desktop): log obsolete update cleanup failures without blocking 2026-11-02 14:30:14 +08:00
winewill f578528f1f fix(desktop): guide recovery from invalid settings files 2026-11-02 14:28:37 +08:00
winewill d2bd3f3893 feat(desktop): rename stable update channel consistently 2026-11-02 14:27:21 +08:00
winewill 1c9a7e6a71 fix(desktop): preserve updates on repeated channel selection 2026-11-02 14:26:09 +08:00
Turtleandlsdsjy 93bef27ec7 fix(desktop): remove legacy Host auth cookies from the default session
Earlier releases left one dsh-auth-* cookie per launch in the default
Electron session. Each Host start now removes them so other requests to
127.0.0.1 stop carrying them.

Co-authored-by: lsdsjy <[email protected]>
2026-10-31 19:55:51 +08:00
Turtleandlsdsjy 5868dbc357 fix(desktop): stop storing Host auth cookies in the Electron session
Each Desktop launch picks a random Host port and the native welcome client
authenticated through net.fetch with credentials: 'include', so the default
Electron session kept one port-named 30-day dsh-auth cookie per launch.
Cookies ignore ports, so every request carried all of them; after about 70
launches the Cookie header exceeded Node's 16 KiB limit, the Host answered 431,
and startup failed with 'Web authentication failed'.

The welcome RPC client and the account WebSocket now send the Cookie header
returned by authenticateWebHost explicitly and use no cookie jar.

Co-authored-by: lsdsjy <[email protected]>
2026-10-31 19:46:38 +08:00
winewill 32036b372e fix(desktop): separate channel save feedback from update suspension 2026-10-30 17:48:17 +08:00
winewill 47c6e1da03 refactor(desktop): unify settings storage and field validation 2026-10-29 18:08:58 +08:00
winewill acf3f66325 refactor(desktop): share shell settings path resolution 2026-10-29 17:57:09 +08:00
winewill c2cda0bdd7 Merge origin/master into feat/desktop-update-channels 2026-10-29 15:27:08 +08:00
winewill 6d0a5f0f12 refactor(desktop): isolate updater qualification and gate dependency versions 2026-10-29 15:23:41 +08:00
07akioni bc705e0ff1 fix(desktop): use developer tools as the localized menu name 2026-10-29 14:31:22 +08:00
07akioni b83f38a44b fix(desktop): group DevTools before quit and isolate shortcuts 2026-10-29 14:10:47 +08:00
07akioni b5be2c0339 fix(desktop): localize DevTools menu labels 2026-10-29 14:03:00 +08:00
07akioni 4214f86da3 fix(desktop): show DevTools toggle in application menus 2026-10-29 13:40:11 +08:00
winewill dc1eab34cc fix(desktop): align update configuration locale key order 2026-10-28 19:11:44 +08:00
winewill 0cf76b9fad feat(desktop): switch update channels from settings 2026-10-28 18:56:20 +08:00
zhc 39da0914a9 fix(file-actions): reveal saved files from completion toasts 2026-10-26 15:25:25 +08:00
zhc 1de7f17cc0 fix(context-menu): use native downloads and explicit plugin presentation 2026-10-26 14:01:31 +08:00
zhc 4abb9147cf Merge master into feat/extensible-context-menus 2026-10-26 13:28:46 +08:00
winewill 6cbbc8caa5 Merge master and reconcile desktop diagnostic records 2026-10-26 11:05:45 +08:00
zhc 076b0e5881 fix(client): clarify context menu ownership and render icon groups 2026-10-23 18:32:36 +08:00
winewill 46ce2b61e0 Merge remote-tracking branch 'origin/master' into perf/desktop-packaging-integration
# Conflicts:
#	docs/development.i18n.yaml
#	scripts/build.spec.ts
2026-10-23 16:53:18 +08:00
winewill 36dce6b596 fix(desktop): preserve operation identity and bound diagnostic shutdown 2026-10-23 14:36:04 +08:00
winewill 77ee0be32d fix(desktop): align diagnostic limits and recovery copy 2026-10-23 13:26:09 +08:00