Commit Graph
7432 Commits
Author SHA1 Message Date
winewill 46bf9a9d44 Merge pull request #7887 from deepseek-harness/fix/windows-workspace-first-paint
Fix white flash on Windows dark workspace startup
2026-11-05 19:05:23 +08:00
Yichen Jiang 5e602b4116 Merge remote-tracking branch 'origin/master' into worktree/archive-session-worktrees 2026-11-05 17:54:42 +08:00
Turtle 03e70034e6 refactor(agent-preset): consolidate creator skills into dsh-doc (#6633)
* 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.

* feat(agent-preset): ship plugin artwork skill with creator mode

* docs(skills): clarify artwork icon lookup and official review steps

* refactor(agent-preset): fold plugin artwork into cordis plugin development

* feat(agent-preset): require detail documents for creator bundles

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

* refactor(agent-preset): consolidate creator skills into dsh-doc

* 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.

* docs(agent-preset): add dsh-doc install, upgrade, and fallback guidance

* docs(agent-preset): align dsh-doc archive reads and upgrade start versions

* docs(agent-preset): bound dsh-doc upgrade index reads and test documented commands

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

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

* docs(upgrade-guide): correct dsh-doc session verification step

* test(agent-preset): use a block body for dsh-doc fixture cleanup

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

* docs(agent-preset): read the running DSH version from the installation

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

* docs(agent-preset): document the verified PowerShell runtime invocation

* docs(agent-preset): keep PowerShell runtime output streams and exit code

* docs(tool-cordis): describe the shipped dsh-doc skill

* docs(skills): load configuration guidance separately

* fix(skills): declare shared template details in every locale

* fix(skills): verify dsh-doc guidance through recorded sessions

* test(skills): retain current runtime reminder in dsh-doc replay

* test(snapshot): refresh terminal panel runtime context
2026-11-05 17:53:22 +08:00
Yichen Jiang 200e6a8f4a Merge remote-tracking branch 'origin/master' into worktree/archive-session-worktrees
# Conflicts:
#	snapshots/session/worktree/session.v4.jsonl
2026-11-05 16:52:49 +08:00
winewill 5e17999f78 docs(desktop): describe current startup theme behavior 2026-11-05 16:51:25 +08:00
winewill ac60dc5188 Read startup appearance from Host settings instead of a theme cache 2026-11-05 16:51:25 +08:00
winewill 327aeefca1 Update welcome startup theme mock for native appearance events 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
流光 1c63ff48be Merge pull request #7642 from deepseek-harness/fix/macos-scrolled-content-window-drag
fix(client): 修复 macOS 滚动内容遮挡标题栏拖动
2026-11-05 16:38:10 +08:00
_Kerman a773ebb233 Merge pull request #7321 from deepseek-harness/xtr/runtime-context-reminders
fix(context): frame runtime reminders and track prior snapshots
2026-11-05 16:35:17 +08:00
Yichen Jiang bde500ecc2 Merge pull request #6699 from deepseek-harness/feat/agent-terminal-panel-tools
feat(terminal): run Agent terminal tools in visible Web sidebar terminals
2026-11-05 08:28:44 +00:00
_Kerman 03cd147c2c Merge origin/master into xtr/runtime-context-reminders 2026-11-05 15:55:01 +08:00
Xinyu Yang 630cd17b86 fix(client): simplify window drag exclusions and coverage 2026-11-05 15:40:38 +08:00
Xinyu Yang 30eeaeca28 fix(client): handle macOS window drag review findings 2026-11-05 15:40:38 +08:00
Xinyu Yang 5d47fb39c2 fix(client): isolate macOS window regions from scrolled content 2026-11-05 15:39:27 +08:00
turtle1999 20d38e784b chore: integrate current master for pre-merge validation 2026-11-05 15:35:26 +08:00
_Kerman e4544c5854 Merge origin/master into xtr/runtime-context-reminders 2026-11-05 15:24:14 +08:00
_Kerman beb5186e36 Merge origin/master into xtr/runtime-context-reminders 2026-11-05 15:23:36 +08:00
winewill 435e273102 Merge pull request #7883 from deepseek-harness/feat/windows-restart-banner
Show Windows installation status during desktop update restarts
2026-11-05 15:23:07 +08:00
Yichen Jiang 9333ec599b Merge remote-tracking branch 'origin/feat/agent-terminal-panel-host' into feat/agent-terminal-panel-tools 2026-11-05 14:53:17 +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
winewill 5c464b8f25 fix(desktop): harden optional restart status rendering 2026-11-05 14:16:01 +08:00
yudshj 42cf6b1e3e fix(web): 精简网页搜索与获取设置页文案,去掉原理说明 2026-11-05 13:58:38 +08:00
winewill 60cd68bf3a test(desktop): account for localized restart status strings 2026-11-05 13:42:51 +08:00
Yichen Jiang f73ff5985f Merge remote-tracking branch 'origin/master' into worktree/archive-session-worktrees 2026-11-05 13:16:30 +08:00
Yichen Jiang 1dd1476a1b test(web): refresh the Forge plugin card golden for the single worktree row
The card lists six components: the isolated `forge-worktree` row is gone.
2026-11-05 13:12:10 +08:00
imccyu 82582b7b40 chore(deps): unify zod to ~4.6.6 (#7502)
* chore(deps): unify zod to 4.6.6

Raise all 88 workspace zod declarations to exact 4.6.6 and move @browserbasehq/stagehand to 4.4.0, which pins the same version, so the lock keeps a single zod copy. Test expectations and the Typert consumer's node types follow the new declarations; pnpm-workspace.yaml records the release-age exemption for [email protected].

* fix(stagehand): drop the deprecated extensionId option

Stagehand 4.4.0 ignores extensionId and discovers the installed extension itself, so the option no longer selects anything. Remove it from the provider config and worker plumbing, update the READMEs and regenerated config catalog, and adjust the attach test fixture.

* test(bench): widen the browser stream overlap window

The input-overlap probe can start after the paced synthetic reply finishes on a loaded runner, so double the per-chunk pace and re-record the README translation hash after the extensionId removal.
2026-11-05 13:09:43 +08:00
Yichen Jiang f585c61322 Merge remote-tracking branch 'origin/master' into worktree/archive-session-worktrees 2026-11-05 12:38:16 +08:00
Yichen Jiang 691ebd7b6c refactor(worktrees): move archive cleanup into the worktree service
The worktree service now records each checkout it creates as a
`plugin:worktree/created` record, folds them in its own `worktree`
projection with fork-aware ownership, and reclaims a clean, unreferenced
checkout when the Session that created it is archived. The Forge panel
reads the service's record and forwards its cleanup state; it no longer
writes a `created` record, owns a retention projection, or gates every
Session's directory access.

Admission registers the attempt inside the Workspace write queue and
returns; inspection runs afterwards, reading cold Sessions through the
projection cache when mounted and from their log otherwise, with subagent
children of an archived ancestor counted as archived. Only a path being
removed holds `working-directory/access`, whose request now carries the
access's `signal`, and listeners withdraw before the drain. Ignored files
no longer retain a checkout, matching Git's non-force removal; processes
and terminals are not consulted.

The Forge bundle mounts one `worktree` service: the `forge-worktree` row
and the `optional-forge-panel` group that isolated a second service are
gone, and `forge-panel` is a top-level row. `canRemove`, `remove`, the
`forgeWorktreeRetention` projection, and `ForgeWorktreeCleanup` are
removed; `WorktreeService.cleanupOf`, `WorktreeCleanup`, and the
`worktree/cleanup` Host event replace them. The upgrade guide moves to
the current version directory and covers the id removals.
2026-11-05 12:28:50 +08:00
winewill ae090f028b Merge pull request #7884 from deepseek-harness/feat/desktop-rollout-website
feat(desktop): add rollout and website publication workflow
2026-11-05 12:18:06 +08:00
winewill 77cd0c8f03 fix(desktop): disclose website installer replacement 2026-11-05 11:57:27 +08:00
Yichen Jiang a2d8340421 Merge origin/master into worktree/archive-session-worktrees 2026-11-05 11:45:46 +08:00
winewill e9e835a7d4 fix(desktop): clarify independent website publication 2026-11-05 11:39:30 +08:00
imccyu 6b8d868008 chore(deps): unify zod to 4.6.6
Raise all 88 workspace zod declarations to exact 4.6.6 and move @browserbasehq/stagehand to 4.4.0, which pins the same version, so the lock keeps a single zod copy. Test expectations and the Typert consumer's node types follow the new declarations; pnpm-workspace.yaml records the release-age exemption for [email protected].
2026-11-05 11:27:26 +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
turtle1999 d047e2c5f9 feat(plugin-market): define index order and optional popularity metadata 2026-11-05 00:49:59 +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 1037727459 test(office): expect Office skills in Web catalog 2026-11-04 21:54:51 +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 b366ef16bc fix(office): align profile e2e and spreadsheet render guidance 2026-11-04 20:57:01 +08: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