Commit Graph
23293 Commits
Author SHA1 Message Date
sjw1231 7fab3cf976 test: refresh module graph and Web pins for apply_patch
Regenerate docs/module-graph for the fs-patch package, add apply_patch
to the shipped Web composition tool list, and refresh the Web
tool-schema, system-prompt, and collapse-timing pins that CI compares
against the default tool set.

Cover the symbolic-link preflight refusal through a provider lstat
double and the atomic-write parent failure through a regular-file
blocker, so Windows coverage no longer depends on POSIX-only tests.
2026-10-22 15:53:02 +08:00
sjw1231 1f14903f28 Merge branch 'master' into feat/apply-patch
# Conflicts:
#	apps/cli/tests/web-agent-presets.e2e.ts
#	docs/subsystems/system-prompt.i18n.yaml
#	docs/tool-catalog.i18n.yaml
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
2026-10-21 20:06:56 +08:00
Tianyi Cui 2a48671b83 Merge pull request #6472 from deepseek-harness/worktree/session-copy-markdown
feat(session): copy sessions as Markdown with source paths
2026-10-21 18:49:57 +08:00
imccyu ad340232fa Merge pull request #6792 from deepseek-harness/when-access
feat(remote-access): 插件注册跟随访问状态(whenAccess),index 按 Peer 注入访问快照
2026-10-21 18:42:23 +08:00
Yudong Han d70d52ceb2 Merge pull request #5609 from deepseek-harness/fix/question-composer-compact-details
fix(ui-user-questions): keep long questions answerable
2026-10-21 18:40:46 +08:00
Wenlu Wang 58b3dc70e8 Merge pull request #6820 from deepseek-harness/fix/6043-middle-click-close-tabs
feat(client): 支持右侧标签页中键关闭
2026-10-21 18:34:49 +08:00
_Kerman 1c6c558432 Merge pull request #6539 from deepseek-harness/xtr/tool-executor-plugins
refactor(tools): split native and PTC execution into scoped plugins
2026-10-21 18:17:35 +08:00
imccyu 31ebfa7aa9 fix(settings-account): 撤权时丢弃迟到的帧并清空登录状态 2026-10-21 18:16:28 +08:00
yudshj 0231bbccb8 Merge remote-tracking branch 'origin/master' into pr-5609-merge 2026-10-21 18:12:58 +08:00
Tianyi Cui 84cfd5f76d Merge master 98fb6ddd into session-copy-markdown
Integrate exact origin/master 98fb6dddb86a9f631054417d48bfc07c06e95a68. Adopt master's canonical narrow-layout overflow probe instead of the branch-local equivalent. Preserve Session Markdown copy, source-path metadata, and locale integration.
2026-10-21 18:10:46 +08:00
kingwl 3d746bc794 fix(client): preserve tab drags during chorded middle clicks 2026-10-21 18:09:29 +08:00
kingwl 9c5958b07b fix(client): close sidebar tabs with middle click
Refs #6043
2026-10-21 18:09:29 +08:00
_Kerman 8569a3f798 fix(tools): add executor locale metadata 2026-10-21 18:04:42 +08:00
Tianyi Cui 0891effd68 test(web): probe locale dialog scroll container
Anchor the desktop-locale overflow probe to the locale selector's nearest horizontal scroll container instead of nav's next sibling. Master moved the settings header between nav and options, so the old positional target put the probe in a fixed header row and the negative control could not overflow.
2026-10-21 18:04:02 +08:00
_Kerman d98025a089 Merge origin/master into xtr/tool-executor-plugins 2026-10-21 18:01:55 +08:00
mektpoy a07e889dc1 test(ui-settings-account): share the access guard helpers in the revocation spec
Both revocation cases restated the same grant and revoke helpers; one module-level pair keeps the two
cases reading the same install and disposal order.
2026-10-21 17:57:53 +08:00
imccyu 7f7e1efdff fix(settings-account): 撤权时失效在途账号读取并清空账号快照 2026-10-21 17:57:52 +08:00
imccyu 0c619816c3 docs(plugin-manager): pluginNavigation 写明为可选读取的服务 2026-10-21 17:57:52 +08:00
imccyu d5d43d931d fix(remote-access): 按评审修正访问门控边界,插件导航改为可选依赖
- ui-entry-customization、voice-input 不再把 pluginNavigation 当必需服务:服务不在时隐藏「浏览插件」与「打开 / 查看详情」按钮,插件照常启动
- plugin-manager 每次授权时刷新已加载的列表
- settings-account 账号设置分区与 sign-in 一并按 account/watch 门控,revision 恢复 master 原样
- schedule 会话头部提醒另按会话 useAccess('schedule/list') 渲染
- 导出 staticAccessPlugin;补 whenAccess 归属、撤权与读者页启动测试
- 同步 README、web-server 子系统文档、webserver 包描述与 Agent Note
2026-10-21 17:57:52 +08:00
imccyu 09899f3a0f feat(remote-access): 插件注册跟随访问状态(whenAccess),index 按 Peer 注入访问快照
- remote-access 新增 whenAccess / whenResourceAccess,ui-session、ui-workspace 各自提供 whenAccess
- schedule、plugin-manager、settings-general、settings-account、directory-picker-native 的入口包进 global whenAccess;消息反馈按钮按会话 useAccess 渲染
- webserver/index-inject 带 Peer,renderIndex / collectIndexInjections 需要 Peer,remote-access 注入 snapshotFor(peer.principal)
- client-test-runtime 新增 StaticRemoteAccess、staticAccessPlugin 与 TestClientOptions.access
- implemented Agent Note 2026-10-21-when-access 与升级指南 webserver-index-peer

Refs #2940
2026-10-21 17:57:51 +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
Tianyi Cui c7278aa4d5 fix(message-quotes): complete Japanese locale registration
Add the Japanese quote action dictionary and register it with the existing Chinese and English dictionaries. The package entered master alongside the Japanese locale lane without a Japanese entry.
2026-10-21 17:46:00 +08:00
07akioni b8c907dbd1 test(web): fix Japanese settings overflow probe 2026-10-21 17:44:32 +08:00
Tianyi Cui af4360620e test(snapshots): align background wait present schema
The SDK background-wait-steer fixture was authored on a branch that predates master's present description change (1ec651f2098). Refresh only its expected present tool description; committed Session generations and product behavior stay unchanged.
2026-10-21 17:41:05 +08:00
Tianyi Cui e4e1411a5c test(session-log-export): remove redundant label assertion
Keep the rendered Header and browser scenarios as the copy-action coverage, and describe the backend converter as used by the Session Markdown copy Host route.
2026-10-21 17:24:56 +08:00
sjw1231 8f798da97d fix(tool-fs): leave sandbox decisions to providers and bound patch diffs
Drop the preflight sandbox fence. It derived writable roots in the local
process, so under the SSH provider it threw on remote additionalWritableRoots
and compared remote targets against local temp roots; write and edit never
fenced in the tool layer. The provider now refuses a denied operation at
commit, and a commit whose first operation failed without any change rejects
like a preflight refusal so the sandbox escalation path keeps its error code.

Classify FS_ABORTED as unknown: a cancelled remote request rejects while the
provider may still be writing, so no stat comparison can settle it. Document
that a cancelled call receives the registry's abort result like every tool.

Store no diff for creations, matching write, and bound the move source basis
by diffBasisMaxBytes so persisted metadata never holds whole files;
FsMoveOutcome.sourceBefore becomes nullable. Omit deletions from the call
preview and from result diffs without a basis instead of rendering them as
empty creations, and count distinct files in the preview title.

Reject a NUL byte beyond the read sampling window in preflight, name targets
by display path in atomic-write diagnostics, align the apply_patch guidance
with the edit wording and mention delete and move, read the stopped flag and
applied diffs tool-agnostically in the client models, skip the permission-bit
snapshot under root, list fs/delete-intent in the tool catalog, and refresh
the fs-patch description, group README, fs-sandbox summary, and ui-tool README.
2026-10-21 17:21:01 +08:00
Tianyi Cui 0ab1fcb674 fix(session-log-export): clarify Session Markdown copy label
Rename the Header menu item to Copy Session as Markdown (复制会话为 Markdown) so it states that the whole selected Session is copied. Update Header selectors, browser coverage, controller JSDoc, and the bilingual README; success toast wording stays unchanged.
2026-10-21 17:18:56 +08:00
Tianyi Cui 957379e8a9 test(session-log-export): adapt merged input actions
Add the master-introduced insertQuote input action to the isolated Header action fixture so the merged client aggregate typechecks.
2026-10-21 17:18:51 +08:00
Tianyi Cui 7a3c24738e Merge master b9bdd062 into session-copy-markdown
Integrate exact origin/master b9bdd062c8ffd3dc234ebea7f5dff55ff26d87ad. Preserve the Session Markdown copy lifecycle and dictionary while adopting the Japanese locale, regenerate the client slot catalog, and add the Japanese quote-removal string required by the merged locale type.
2026-10-21 17:10:56 +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