Commit Graph
23191 Commits
Author SHA1 Message Date
yudshj 0231bbccb8 Merge remote-tracking branch 'origin/master' into pr-5609-merge 2026-10-21 18:12:58 +08:00
imccyu 3e547bbd54 Merge pull request #6850 from deepseek-harness/07akioni/japanese-locale-completeness
fix(i18n): 补全日语元数据、授权提示和 Windows 安装器
2026-10-21 17:56:15 +08:00
07akioni b8c907dbd1 test(web): fix Japanese settings overflow probe 2026-10-21 17:44:32 +08:00
07akioni bec62b10f6 test(web): refresh localized translator component snapshots 2026-10-21 17:09:03 +08:00
07akioni 11295990b5 fix(i18n): cover nested metadata and repair locale CI regressions 2026-10-21 17:00:42 +08:00
yudshj c47d3285b5 test(snapshots): record the current present tool description
The background-wait-steer pinned tool schemas still carry the pre-reword present description, so the snapshot header no longer matches the shipped tool.
2026-10-21 16:50:06 +08:00
07akioni 9ce74cda96 feat(desktop): localize Windows installer with per-language JSON resources 2026-10-21 16:43:19 +08:00
yudshj cf620a98df fix(message-quotes): register the Japanese dictionary
The quote plugin's dictionaries predate the Japanese locale merge, so the locale dictionary parity gate rejects its object-form dictionary without Japanese copy.
2026-10-21 16:35:29 +08:00
yudshj d12498798a fix(conversation): add missing Japanese quote removal label
The Japanese dictionary landed without the quote removal copy its English and Chinese dictionaries already carry, so the conversation dictionaries do not typecheck against the current master.
2026-10-21 16:26:54 +08:00
yudshj f9816f62eb Merge origin/master into fix/question-composer-compact-details
Re-record the merged Answering section's bilingual pairing hashes and add the new Expand/Collapse copy to the Japanese dictionary.
2026-10-21 16:26:39 +08:00
07akioni 87c4de2e43 chore(i18n): limit added locale checks to JSON metadata 2026-10-21 16:22:53 +08:00
yudshj fb290b388d fix(ui-user-questions): clip dropped lines from hit testing
A collapsed question or description keeps its full line budget and only
masked its dropped line, so that transparent line still took clicks: it
covered the first line of the question detail and the top edge of the
custom answer row. clip-path now removes the line from hit testing as
well as from view, and Web e2e hit tests pin both targets.

Expansions also record the question they belong to and apply only while
that question is shown, so a position change from another surface of the
same Session no longer carries them to a different question. `.title`
returns to its base margin; `.questionTitle` owns the flex sizing.
2026-10-21 16:20:04 +08:00
yudshj f8a094e465 fix(ui-user-questions): label every copy toggle Expand or Collapse
Option names made the toggle tooltips as long and unpredictable as the
option labels themselves. Every question and description toggle now uses
the same Expand and Collapse copy, and the question toggle, like the
description toggles, is described by the text it controls.
2026-10-21 16:20:04 +08:00
yudshj 5d5bd8eb41 test(web): re-check long question copy across chat and window widths
A long question with long, width-sensitive, and short option descriptions
is driven through the transcript width handle at its narrowest and widest
positions, an opened and collapsed right sidebar, and a smaller and
restored window. At each settled width every collapsed copy follows its
own overflow, the expanded description stays expanded, and the actions
stay reachable; collapsing the sidebar or restoring the window returns
the wide state exactly.
2026-10-21 16:20:03 +08:00
yudshj 012bfe03e2 style(ui-user-questions): expand long copy with chevron icon buttons
The expand and collapse controls reuse the composer's 24px icon button
with the existing downward and upward chevron icons instead of text. Each
carries a localized accessible name, which a portaled Tooltip shows on
hover. The fade at the end of clipped copy narrows to the 24px button.
2026-10-21 16:20:03 +08:00
yudshj 82b43da3dc revert(ui-primitives): drop HoverCard callout and click pinning
The question composer expands long copy in place, so no caller uses the
callout variant, openOnClick pinning, describeAnchor, or the
preview-to-anchor pointer handling this pull request added. HoverCard,
its stylesheet, tests, and README return to their merge-base state.
2026-10-21 16:20:03 +08:00
yudshj 45fd961413 refactor(ui-user-questions): expand long copy in place
A question shows in full up to three rendered lines and an option
description up to two. Longer copy keeps one line fewer, fades at the end
of that line, and offers a "More" text button that expands it in place;
expanded copy offers "Show less" on its own line.

CSS scroll timelines decide which copy overflows, so the composer no
longer measures layout in an effect. Each box keeps its full line budget
plus a 2px glyph allowance, and a negative margin returns the dropped
line, so the overflow reading never depends on the collapsed layout.
Navigation resets scroll and expansions from the navigation handler.
2026-10-21 16:20:03 +08:00
yudshj baa5cb2714 fix(client): retain hover previews when returning to anchors 2026-10-21 16:20:03 +08:00
yudshj 2e420e6fad test(client): verify responsive question disclosures after rebase 2026-10-21 16:20:03 +08:00
yudshj 2b6360c1d9 refactor(ui-user-questions): let CSS wrap option descriptions 2026-10-21 16:20:02 +08:00
yudshj f3bb36263d fix(client): complete hover-card coverage and steering golden 2026-10-21 16:20:02 +08:00
yudshj 50a9e31c2c fix(client): preserve question focus and dismiss hover cards 2026-10-21 16:20:02 +08:00
yudshj fbc2550f52 fix(ui-user-questions): preview long questions in three lines 2026-10-21 16:20:02 +08:00
yudshj 9d44ecefb7 style(ui-user-questions): fade truncated option details 2026-10-21 16:20:02 +08:00
yudshj 935a891a45 fix(ui-user-questions): preserve inline short option descriptions 2026-10-21 16:20:02 +08:00
yudshj 005bb7255a test(web): verify question callout in dark mode 2026-10-21 16:20:01 +08:00
yudshj 5b96747630 fix(ui-user-questions): refine option detail callouts 2026-10-21 16:20:01 +08:00
yudshj 1cbf50d03e test(web): stress long question layouts 2026-10-21 16:20:01 +08:00
yudshj aa099a9b40 fix(ui-user-questions): keep long questions answerable 2026-10-21 16:20:01 +08:00
07akioni ed783066e6 fix(i18n): complete Japanese plugin metadata and guard locale coverage 2026-10-21 16:14:12 +08:00
Chinesezjc cf6684d8a4 Merge pull request #4484 from deepseek-harness/fix/multiline-display-math
fix(web): render multi-line display-dollar math
2026-10-21 15:53:22 +08:00
imccyu d4aa52c2be Merge pull request #6796 from deepseek-harness/07akioni/japanese-locale
feat(locale): 增加日语界面支持
2026-10-21 15:44:22 +08:00
Xu Hanxiang c818773a61 Merge pull request #6052 from deepseek-harness/fix/issue-5965-steer-background-wait
feat(jobs): release job_output waits on steered input
2026-10-21 15:44:05 +08:00
Chinesezjc 3d00d6faad test(ui-primitives): regenerate math-multiline-display DOM fixture for KaTeX 0.18 2026-10-21 15:40:19 +08:00
Yudong Han ef5f92c0c5 Merge pull request #6786 from deepseek-harness/fix/present-turn-end-delivery
fix(deliverables): present 说明交付在本轮结束后展示,并保留收尾回复之后的交付
2026-10-21 15:38:59 +08:00
Turtle ee95ae7ced Merge pull request #6724 from deepseek-harness/turtle/dark-hover-missing-33b8a5d72c4b
fix(client): show settings nav hover in dark theme
2026-10-21 15:36:06 +08:00
Turtle ce403d850c Merge pull request #6815 from deepseek-harness/turtle/plugin-market-entry-8303d8c92886
feat(web): list custom plugin markets on the main experimental list
2026-10-21 15:32:32 +08:00
Turtle be43f4d846 Merge remote-tracking branch 'origin/master' into turtle/dark-hover-missing-33b8a5d72c4b
# Conflicts:
#	packages/client/ui-settings-general/src/client/SettingsRoot.module.css
2026-10-21 15:19:21 +08:00
Magolor a6a5c41b3b refactor(token-meter): 分离计量恢复信息与价格缓存 (#6728)
* refactor(token-meter): checkpoint measurement facts without pricing caches

* refactor(token-meter): reuse cached headers without new history reads

* fix(token-meter): isolate measurement recovery failures
2026-10-21 15:15:42 +08:00
Turtle 6db97a9b61 Merge pull request #6824 from deepseek-harness/turtle/make-clean-node-modules-3061242ba73e
fix(scripts): remove dangling pnpm links in clean
2026-10-21 15:12:49 +08:00
Turtle 589790d6e9 Merge remote-tracking branch 'origin/master' into turtle/plugin-market-entry-8303d8c92886
# Conflicts:
#	apps/web/tests/inspector-late-enable.e2e.ts
#	packages/experimental/inspector-profile/README.i18n.yaml
#	packages/experimental/inspector-profile/README.md
2026-10-21 15:12:43 +08:00
mektpoy 184605873d docs(tool-jobs): mark the steer-release heuristic
The release trigger treats a user-sourced inbox insertion as a user steer and
only this wait responds to it. Both are known approximations for the
short-term fix: a shared steer signal should let every waiter decide locally
and let the input's producer own the decision. Mark both spots for the
follow-up and keep the public jobs contract unchanged.
2026-10-21 15:06:42 +08:00
mektpoy ea25277107 test(snapshots): declare the llm package the steering fixture imports
The recorded-session fixture is a scenario-owned plugin that imports
`@deepseek-ai/dsh-llm` at runtime. Declare the workspace package at the root
so the snapshot lane resolves it from a clean install instead of relying on a
local node_modules layout.
2026-10-21 15:06:42 +08:00
mektpoy 3ec8d15cf5 test(sdk): record the steered background wait
`snapshots/sdk/background-wait-steer` replays a keyless SDK session whose
`job_output(wait: true)` is released by a user steer: the fixture steers once
the waiter registers and the producer has written its barrier line, and the
scenario asserts the early return with `user steered`, the surviving producer,
and exactly one completion notice for the settlement that the released read
did not consume.

The authored session takes its job id from the live request with
`{{fromRequest:(bash-[0-9a-f]{16})}}`, so an opaque id needs no fixture edit.
2026-10-21 15:06:42 +08:00
mektpoy e2a5eab020 test(tool-jobs): cover the released job_output wait
Registry-level cases pin the release claim, the settlement the read carries,
the withheld notice a cancelled read returns to delivery, parallel waits on one
job, and the model-killed settlement that must not repeat. A real AgentLoop
case covers the user steer releasing the wait while the producer survives.
2026-10-21 14:58:12 +08:00
mektpoy 01ea8ed877 docs(events): list tool-jobs as a consumer of agent/inbox/inserted
Generated by `pnpm exec tsx scripts/gen-doc-graphs.ts` after the wait-release
listener moved into the tool-jobs plugin.
2026-10-21 14:58:11 +08:00
mektpoy 7854778639 feat(tool-jobs): end job_output waits on a user steer
A `job_output(wait: true)` wait now ends when the user steers the current
step, returning the job's real state and the output already read; the
producer keeps running and the pending input stays queued. The wait is ended
by a controller the tool owns, so the registry's abort semantics — and every
other consumer of `wait` — stay unchanged. The model sees why a running job
came back early in the unchanged status line (`user steered`).

A settlement that lands between the release and this call's own read is
carried by that read instead of a second notice; if the read never commits,
the notice is delivered when the claim releases. Settlements already delivered
elsewhere (the model's own `job_kill` result or another waiter's collection)
are not repeated.
2026-10-21 14:57:28 +08:00
yudshj 17c8fc7076 fix(deliverables): 收窄 present 描述,并让行内引用包含收尾回复之后的写入
present 描述改为宿主可能只在本轮结束后展示交付文件,并只在等待用户回答的工具调用前建议改用链接。
本轮产生的文件与交付声明一样按整轮取,不再按收尾回复的 seq 截断;README 补充交付卡片的展示时机。

Refs #6769
2026-10-21 14:52:55 +08:00
Saafo e98d49d094 Merge pull request #6669 from deepseek-harness/feat/narrow-settings-pages
fix(client): reflow settings and task fields for narrow screens
2026-10-21 14:44:48 +08:00
lsdsjyandlsdsjy 0e49f443dd feat(ui-conversation,ui-chat): 基于 user-text 支持富文本引用与草稿恢复 (#3206)
* feat(ui-chat,ui-conversation): 通过通用文本交互支持原文引用

* refactor(message-quotes): 插件化引用交互与文本扫描豁免

* test(message-quotes): 补齐插件装配预期与交互分发覆盖

* refactor(ui-conversation): 移除引用删除文案的语言切换刷新

* refactor(message-quotes): 移除引用扫描豁免并收窄文本交互接口

* fix(ui-chat): 修复引用浮层的滚动遮挡与恢复

* fix(ui-chat): 对齐 master 的聊天流注入与界面快照

* test(message-quotes): 补齐 Host 入口覆盖并固定子会话回放时序

* refactor(message-quotes): 清理文本依赖特例并修正引用按钮

* fix(ui-primitives): 让引用原文弹层按内容收缩

* fix(ui-primitives): 修复相邻引用悬停弹层重叠与误切换

* fix(message-quotes): 为引用悬停样式限定设备能力

---------

Co-authored-by: lsdsjy <[email protected]>
2026-10-21 14:41:41 +08:00