Commit Graph
19856 Commits
Author SHA1 Message Date
winewill 1bc594d701 Merge pull request #5076 from deepseek-harness/feat/windows-update-restart
fix(desktop): clarify Windows updates and raise the restarted window
2026-09-24 13:41:12 +08:00
Kexin Liu 450f155955 Merge pull request #4826 from deepseek-harness/feat/unify-code-highlight-languages
统一并扩展代码高亮语言表(read 卡片与侧栏 Code 预览)
2026-09-24 12:10:50 +08:00
liukx0205 bf4d264368 Merge master into feat/unify-code-highlight-languages 2026-09-24 11:58:08 +08:00
2fd748edad feat(desktop): 按请求凭据区分欠费提示及充值入口 (#4858)
* feat(desktop): distinguish account quota alerts from API key notices

* docs: condense architecture introduction within existing budget

(cherry picked from commit 01aacaee4d48fd7f4d00acb5e23758084d3f224e)

* test(desktop): cover quota notice lifecycle and remove unknown casts

(cherry picked from commit 7fd09407c482d1f0e30f24ba0ebf23cd844ac9a1)

* chore(account-quota): align tests, catalogs, and bilingual pairs with the account plugin

* fix(ui-settings-account): pass the Platform retry label to the account top-up overlay

* fix(chat): preserve quota failures and global notices

* fix(account): keep active top-up pages across quota notices

* fix(account): share platform page ownership and release quota holds

* fix(account): defer notices behind the shared Platform page

The single native Platform view covers the document, so a quota failure that arrives while a Settings-opened page shows is deferred rather than retained: the newest failure still replaces an older notice and its Modal appears after the viewer returns if still current. Top up remains the retained case, releasing its hold and page request with the entry.

* test(account): align quota fixture with bonus actions

* fix(account): preserve quota notice and Platform return focus

* fix(account): preserve onboarding return reads and failed notices

* docs(account): clarify page opener return ownership

* test(account): drive bonus acknowledgement retry deterministically

---------

Co-authored-by: liyao <[email protected]>
Co-authored-by: lsdsjy <[email protected]>
2026-09-24 11:50:11 +08:00
winewill 037bed1f41 fix(desktop): reject running app before installer extraction 2026-09-24 11:49:01 +08:00
lsdsjy 5be03410cd Merge pull request #4990 from deepseek-harness/fix/platform-webview-persistence
fix(desktop): persist account-scoped Platform page preferences
2026-09-24 11:21:21 +08:00
lsdsjy dd0578fadd Merge origin/master into fix/platform-webview-persistence 2026-09-24 11:05:40 +08:00
Turtle 2099andTurtle 16af6fddc7 fix(plugins): name the default install source by the registry it names (#5084)
* fix(plugins): name the default install source by the registry it names

The add-plugin dialog showed "默认安装源" for pnpm's own registry, which
told the reader nothing about where the install would download from. Name
npm's own registry as the official npm registry, and any other registry
pnpm's own configuration names by that registry's name or host, so the
folded control reads by the registry the install actually asks.

* test(plugins): cover comparing an unparseable registry address

---------

Co-authored-by: Turtle <[email protected]>
2026-09-24 10:55:35 +08:00
07akioni 655534d009 Merge pull request #5046 from deepseek-harness/fix/language-neutral-default-workspace-naming
fix(workspace): keep the default Workspace path language-neutral
2026-09-24 10:41:07 +08:00
_Kerman 26dcd5a247 Merge remote-tracking branch 'origin/master' into fix/language-neutral-default-workspace-naming
# Conflicts:
#	.agents/notes/implemented/feature/2026-09-20-default-workspace.i18n.yaml
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/subsystems/workspace.i18n.yaml
#	packages/api/workspace-controller/README.i18n.yaml
#	packages/client/ui-workspace/README.i18n.yaml
#	packages/client/ui-workspace/tests/workspaces-service.client.spec.ts
#	packages/workspace/workspace/README.i18n.yaml
2026-09-24 10:30:24 +08:00
winewill a67119845d fix(desktop): align update fixtures and clear deferred startup focus 2026-09-24 01:18:52 +08:00
winewill a7e745de66 Merge master into feat/windows-update-restart 2026-09-24 01:11:36 +08:00
winewill 3bcf1bfc7c Merge pull request #4967 from deepseek-harness/fix/desktop-main-bundle-order
build(desktop): bundle the main process after the workspace tsdown pass
2026-09-24 00:44:55 +08:00
std4453 3055bad0d1 Merge pull request #5078 from deepseek-harness/fix/onboarding-recharge-artwork
feat(desktop): add onboarding with current artwork and work-detail defaults
2026-09-24 00:36:30 +08:00
Yifffan f032bd2d04 Merge pull request #5002 from deepseek-harness/session-archieve-refine
feat(client): explicit three-way archived filter with empty-state refinements
2026-09-24 00:18:51 +08:00
zhc 7cadefb991 fix(onboarding): use shared modal focus ownership 2026-09-23 23:58:21 +08:00
Yif 5688962ee9 test(ui-primitives): count the 94 merged public glyphs 2026-09-23 23:48:05 +08:00
Yif 6ddece2439 refactor(ui-workspace): share the viewing store with the row toast as a declared store
The archived filter reaches the row toast through the registration's declared
store instead of a registrant-owned view hook, per the cross-entry view-state
rule. The README names the toast action by its actual label, and the
unarchive e2e switches back to Hide archived so it again proves the restored
row is an ordinary row in the default view.
2026-09-23 23:48:04 +08:00
Yif d6e5dc7748 test(client): cover the unset archived filter and follow the three-way menu in web goldens 2026-09-23 23:48:00 +08:00
Yif aaf733c175 fix(client): let a snippetless search result use the full row for its workspace name 2026-09-23 23:48:00 +08:00
Yif 64352df324 style(client): tune empty-state tokens and glyph spacing 2026-09-23 23:47:59 +08:00
Yif e28434bbc8 chore(client): re-record slot catalog source lines after the slots import 2026-09-23 23:47:59 +08:00
Yif 2129486048 feat(client): give the session list an iconed empty state with an archived-only way back 2026-09-23 23:47:30 +08:00
Yif 62bd4363e6 feat(client): omit the toast filter action while archived rows are visible 2026-09-23 23:46:21 +08:00
Yif 9775a95315 feat(client): make archived filtering an explicit three-way menu choice
The view-options filter is now hide/all/only radio items, the
archived-only view drops Workspaces without an archived Session, and
tree children of a dropped Workspace nest under the nearest shown
ancestor (#4854).
2026-09-23 23:46:21 +08:00
Yif 82b8c476e6 feat(client): add archive-off glyph and reuse chat-lines for session references 2026-09-23 23:46:21 +08:00
zhc 0e18138427 test(web): start bonus notice scenario after onboarding 2026-09-23 23:44:51 +08:00
zhc 6233f998a2 merge: integrate current account bonus notices with onboarding 2026-09-23 23:43:53 +08:00
winewill 1e5af11d8c build(desktop): emit shortcuts protocol before the main bundle 2026-09-23 23:42:19 +08:00
winewill 917613c776 Merge master and preserve Desktop bundle validation 2026-09-23 23:40:02 +08:00
zhc e44a4d4dd3 test(desktop): separate fixture state from native window members 2026-09-23 23:35:58 +08:00
lsdsjy a523d8ec58 Merge pull request #5040 from deepseek-harness/feat/account-bonus-notices
feat(account): show bonus notices and send Platform client metadata
2026-09-23 23:35:54 +08:00
zhc ac586cefca test(desktop): type overlay visibility fixture explicitly 2026-09-23 23:35:13 +08:00
涂轶翔 f6a2c700af Merge pull request #4844 from deepseek-harness/feat/dynamic-tool-update-message
Support dynamic tool updates during active conversations
2026-09-23 23:35:08 +08:00
zhc 4fdcaf16b5 merge: integrate desktop shortcuts and refresh onboarding decisions 2026-09-23 23:34:17 +08:00
Chinesezjc 7a362b263b Merge pull request #4335 from deepseek-harness/feat/schedule-storage-phase1
feat(schedule): persist tasks and resume due sessions
2026-09-23 23:33:33 +08:00
lsdsjy 6171ed6f5d Merge origin/master into feat/account-bonus-notices 2026-09-23 23:25:21 +08:00
lsdsjy 3ff8fe093a fix(account): satisfy bonus notice style and coverage checks 2026-09-23 23:12:19 +08:00
流光 6638afae5e Merge pull request #4938 from deepseek-harness/feat/shortcuts-rework
feat(shortcuts): restore configurable shortcuts with regression fixes
2026-09-23 23:08:15 +08:00
zhc f55c8d5215 test(desktop): await the selected onboarding preference write 2026-09-23 22:57:42 +08:00
lsdsjy b9fb1cceea fix(web): synchronize read-only spreadsheet scroll state 2026-09-23 22:53:08 +08:00
zhc c4b13d154f merge: refresh master translation pairing format 2026-09-23 22:47:06 +08:00
Xinyu Yang bfb624cd3b Merge master translation record migration into feat/shortcuts-rework 2026-09-23 22:46:08 +08:00
lsdsjy 99032c6b10 Merge origin/master into feat/account-bonus-notices 2026-09-23 22:42:37 +08:00
Tianyi Cui ba66011fdb test(sdk): use generated sample data for cache probes
The probe needs a value that cannot be inferred from the prompt, not protected information. Describing that generated UUID as a private secret made the API test depend on an unrelated disclosure decision. Use an explicitly synthetic sample label and a benign formatting update while preserving execution audits, first-continuation cache assertions, and disabled retries.
2026-09-23 22:40:40 +08:00
Tianyi Cui 5827477658 test(web): account for tool update process rows
Open the running Think disclosure explicitly when a process group also contains tool updates, and keep the fork process summary expandable in its ARIA expectation. Record the Goal request-series marker in a V4 fixture successor while preserving the historical V3 recording. Production behavior and the scroll assertions stay unchanged.
2026-09-23 22:40:40 +08:00
Tianyi Cui 611c2bc2e9 test(headless): refresh dynamic tool request expectations
Record explicit request-series starts and the tool additions admitted when resuming a seeded parent with no tool declarations. Keep tool names and the shifted source-event reference alongside that activation history. Refresh only the affected owner-local outputs to the current writer format; retain historical replay fixtures and the unchanged child expectation.
2026-09-23 22:40:40 +08:00
Tianyi Cui f6848ee921 fix(agent-loop): preserve prompt history during supported tool updates
Tool changes previously forced prompt consolidation even when the prepared
route could activate new tools through history. Rewriting the first system
message, or clearing an earlier appended prompt, reset the declaration
series and turned additions into immediate declarations.

Only routes without toolUpdate need that tool-triggered consolidation.
Capable routes append the full changed prompt and keep existing messages.
Explicit series starts, surface replacements, and unsupported prompt
routes still consolidate; retained-name definition changes still rebuild
tool declarations in Session.

Cover both update modes and reset paths, and pin the combined prompt/tool
transition through the shipped headless profile with shared schema goldens.
2026-09-23 22:40:40 +08:00
Tianyi Cui f765a21dc7 test(sdk): verify cache reuse across native tool additions
Run a real DeepSeek conversation through the built SDK profile and change the scoped tool registry through a model-invoked controller. Compare the first post-addition cache usage with the preceding request after unique user history has been cached; verify deferred declarations, chronological activation, and actual tool execution. Removal remains covered without requiring its cache prefix to survive. Disable test and provider retries so a warmed transition cannot hide a cache regression.
2026-09-23 22:40:39 +08:00
Tianyi Cui e221615112 test(sdk): cover native dynamic tool lifecycle 2026-09-23 22:40:39 +08:00