Commit Graph
3609 Commits
Author SHA1 Message Date
imccyu 59fcf274d0 Merge pull request #5099 from deepseek-harness/worktree/deepseek-harness-bug-verify-94fe09
fix(web): open pending plan reviews across Sidebar seat changes
2026-09-29 11:43:11 +08:00
imccyu 11925ce345 fix(web): stabilize e2e and settings placement
wait for SVG changed-file card

update performance settings placement

skip crashing WebKit model-menu observer case
2026-09-29 10:29:28 +08:00
Yif 3ec8cd925d perf(web): observe model menu stickiness without layout reads 2026-09-29 00:01:58 +08:00
Yif 989b93d86f feat(web): unify grouped model picker ordering and sticky headers 2026-09-29 00:01:58 +08:00
Yif bfec75eb14 fix(web): refine model search threshold and focus restoration 2026-09-29 00:01:58 +08:00
Yif 45368fb158 fix(web): align model command menus and keyboard focus 2026-09-29 00:01:57 +08:00
Yif 78bc78d48c feat(web): refine model picker search and sticky headings 2026-09-29 00:01:57 +08:00
Yao Meng b3d6da9083 fix(web): address model search accessibility review
Signed-off-by: Yao Meng <[email protected]>
2026-09-29 00:01:56 +08:00
Yao Meng 4ff33be0bd test(web): update provider model picker search snapshot
Signed-off-by: Yao Meng <[email protected]>
2026-09-29 00:01:56 +08:00
Yao Meng 6773e10645 feat(web): add fuzzy search to composer model picker
Signed-off-by: Yao Meng <[email protected]>
2026-09-29 00:01:55 +08:00
Magolor ed34a1d7fe fix: keep queued question replies read-only after reload 2026-09-28 23:21:38 +08:00
Magolor b6401085cb fix(user-questions): address review findings 2026-09-28 23:21:36 +08:00
Magolorandimccyu 3a296b16b4 feat(user-questions): support timed waits and late replies
Co-authored-by: imccyu <[email protected]>
2026-09-28 23:21:35 +08:00
Tianyi Cui c89b65aa45 Merge pull request #5286 from deepseek-harness/worktree/plugin-highlight-ci-flake-20260927
test(web): keep plugin install routes active until page closes
2026-09-28 23:11:52 +08:00
yixiangihsiang ad008e2ea5 fix(client): refine chat duration, theme, and shortcuts 2026-09-28 21:32:57 +08:00
imccyu 4878cdabd8 release(dsh): 0.2.0-rc.1 (#5387) 2026-09-28 19:48:10 +08:00
Ziya 5e19099593 Merge pull request #5356 from deepseek-harness/copy/preview-notice-0.2
fix(web): 更新 0.2 中英文预览版说明
2026-09-28 03:37:01 -07:00
imccyu 1ae8857842 Merge pull request #5368 from deepseek-harness/pr-5346-snapshot-refresh
style(client): 统一扫光动画 & 调整聊天过程间距
2026-09-28 17:57:04 +08:00
turtle1999 7ded036fdb feat(web): add Session Log upload preference in General settings (#5337) 2026-09-28 17:55:03 +08:00
Tianyi Cui 5f782ebf12 Merge pull request #5291 from deepseek-harness/fix/document-preview-selection-20260927
test(web): move the spreadsheet selection by keyboard before sidebar reflows
2026-09-28 17:52:39 +08:00
ZiyaZhang 4374c2040a fix(web): apply revised 0.2 preview notice copy 2026-09-28 02:45:16 -07:00
yixiangihsiangandimccyu 6dd319ad5a test(web): align completed turn spacing
Co-authored-by: imccyu <[email protected]>
2026-09-28 17:18:32 +08:00
yixiangihsiangandimccyu 4be290f4d8 test(client): align shimmer and spacing assertions
Co-authored-by: imccyu <[email protected]>
2026-09-28 17:09:23 +08:00
yudshj 3adf561295 fix(client): unify overlay clearance and preserve the Windows caption 2026-09-28 16:55:49 +08:00
yudshj 1aea67a755 fix(windows): preserve caption gaps across dialogs and fullscreen 2026-09-28 16:55:48 +08:00
ZiyaZhang 441939eaa4 fix(web): require acknowledgement of the 0.2 preview notice 2026-09-28 01:04:41 -07:00
Yifffan e5587c7ff5 Merge pull request #5354 from deepseek-harness/ux/plugin-manager-followup
fix(web): 暗色下关闭态开关不再像禁用,并微调插件管理说明图标
2026-09-28 15:58:21 +08:00
ZiyaZhang cd57af4925 fix(web): 更新 0.2 中英文预览版说明 2026-09-28 00:47:07 -07:00
Yif 9e8db21d2f fix(web): distinguish an off switch from a disabled one in dark mode
The off-state thumb reused the palette's primary foreground, which resolves
to near-black in dark mode; against the translucent track it read as
disabled, while a disabled control differs only by half opacity. Give the
off state its own thumb color through the new `--dsw-alias-switch-thumb`
alias: white in light mode and neutral-bluish 400 in dark mode.

The plugin management info button also becomes an 11px caption-colored icon
in a 20px square, keeping the 4px gap beside the subtitle.

Refs #5347
2026-09-28 15:46:43 +08:00
lsdsjy c6aefab797 fix(web): 同步反馈菜单端到端快照与桌面说明 2026-09-28 14:59:30 +08:00
gengruilin 326b9093c1 Merge origin/master into fix/issue-4803-webkit-json 2026-09-28 13:53:54 +08:00
gengruilin 9925ba721d refactor(web): trim unrelated changes from Safari recovery fix 2026-09-28 12:00:35 +08:00
yudshj 37ffaa52ca fix(client): make Office and PDF text selections visible in both themes 2026-09-28 11:05:13 +08:00
Ziya 4bbfa0884f Merge pull request #5284 from deepseek-harness/ux/plugin-manager-guidance-preview
fix(web): 完善插件管理说明与安装警告
2026-09-28 10:42:00 +08:00
Ruilin Geng 90cc7ce652 Merge branch 'master' into fix/issue-4803-webkit-json 2026-09-28 10:30:31 +08:00
Tianyi Cui d7b5b42231 test(web): assert the overlay focus and record the measured probe counts
Addresses ds-review-bot: the keyboard step now asserts that focus landed on
the sheet overlay before pressing arrows, the comment keeps only the local
why, and the Agent Note carries the measured counts (10 of 11 master runs,
7 of 38 probe runs, 26 of 26 keyboard runs, 10 of 10 local repetitions).
2026-09-28 01:12:46 +08:00
Tianyi Cui 979b77a6bc test(web): move the spreadsheet selection by keyboard before sidebar reflows
The meeting-sheet step of document-preview.e2e.ts clicked the sheet overlay
at the cell FortuneSheet already selects on mount, so its polls passed before
the click committed, and the press resolved its cell inside a React state
updater that later renders re-execute against the reflowed grid. On loaded
Linux runners that re-execution landed after the first sidebar resize and
committed B1 (the two-column sheet clamps the stale pointer x to its last
column), failing the reflow loop with `expected 'B1' to be 'A1'`.

Select A1 through ArrowRight/ArrowLeft instead: keyboard moves compute the
target from committed state, so a re-executed updater yields the same cell,
and the B1 -> A1 transition verifies the interaction before the reflows.

Refs #5242
2026-09-28 00:54:54 +08:00
ZiyaZhang adb58a76d1 fix(web): align plugin guidance with review feedback 2026-09-27 09:31:07 -07:00
Tianyi Cui 4b19616206 docs(testing): clarify plugin interception evidence and terminology 2026-09-27 23:03:40 +08:00
Tianyi Cui 7152b91e7a test(web): keep plugin install routes active until page closes 2026-09-27 22:47:59 +08:00
ZiyaZhang 473fd15101 fix(web): clarify plugin management guidance and warnings 2026-09-27 07:18:09 -07:00
Tianyi Cui 0490c30f30 Merge pull request #5271 from deepseek-harness/fix/web-lane-flakes-20260927
test(web): name the input state each browser-lane capture asserts
2026-09-27 20:44:21 +08:00
Tianyi Cui 62ac57218d test(web): correct the states the new comments and note name
Review found two factual errors in the prose this change adds.

plugin-install-cancel: the scenario pauses the page clock before the
enable click, so the highlight's `setTimeout(clearHighlight, 2400)`
cannot fire while the status poll runs. The comment claimed a reload
could outlive that expiry, and the note explained the two CI timeouts
at the untouched highlight locator the same way. The cause of those
timeouts is not diagnosed, so both now say so instead of offering a
mechanism the paused clock rules out. The pre-change file reproduces the
same hang under the same lane command, which the note records.

workspace-new-session-folding: `nth(7)` is the first row the batch
reveals, not the last established one, and the reflowing `showMore.click()`
is above the comment, not below. Both are corrected, and the workspace-row
comment names what `:hover` reveals instead of restating a cell swap the
project row does not have.

turn-tail-actions: clear the pointer modality flag with `Shift`, which
moves no focus, matching focus-rings.e2e.ts.
2026-09-27 20:13:00 +08:00
Tianyi Cui 5e09b8231d Merge pull request #5239 from deepseek-harness/worktree/web-clock-flake-20260926
test(web): pin conversation clocks to the fixture day and await saved settings
2026-09-27 19:15:50 +08:00
Tianyi Cui 751724c88e test(web): drop the obsolete settled-title wait from the steering scenario
Master's 07dcdb46e5 moved the question step's settled title into the
`Ask question waiting` row of mid-steer.expected.md, so the button this
scenario waited for no longer renders. The wait therefore never resolved and
parked the scenario on the question page, producing the lane's cascade: `no
turn/end within 30000ms`, no live root session matching session.v4.jsonl, and
`llm-replay: fixture not fully consumed`. `captureStableAria` already polls
until two consecutive normalized captures agree, so the settled state is
captured without the extra wait.

DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts
apps/web/tests/steering.e2e.ts -> 7 passed (reproduced twice); with the wait
present the same command fails at its 10 s bound and again widened to 30 s.
2026-09-27 19:06:39 +08:00
Tianyi Cui 378853c096 test(web): name the input state each browser-lane capture asserts
Three scenarios captured an aria region while the state their golden
records was implied by the pointer, the keyboard, or an in-flight Host
read, so the capture could land on the other state.

workspace-new-session-folding captures two goldens of one sidebar, each
recording a hovered row that Rows.module.css renders with the row
actions in place of the relative time. Both hovered rows are now
established before their capture instead of inherited from wherever the
Show-more click left a stationary pointer. The serial self-hosted master
lane failed this scenario in every failing run observed between
2026-09-24 and 2026-09-27.

turn-tail-actions records a tooltip beside the focused Copy footer in
running.expected.md. Tooltip ignores focus while the last input came
from a pointer and only a keydown clears that flag, so the scenario now
establishes keyboard-owned focus and waits for the bubble.

plugin-install-cancel polls the enabled card's status instead of
sampling it once. The store marks the card and starts the directory
reload the Host answers, and the status flipped disabled -> running 61 ms
after the highlight in three local runs, which the single read sampled
inside.

Goldens, product code, and assertion strength are unchanged.
2026-09-27 18:57:12 +08:00
imccyu 78a21f29a9 Merge pull request #5226 from deepseek-harness/worktree-newwhale
feat(ui-chat): animate a whale tail below the transcript while the Session runs
2026-09-27 17:19:32 +08:00
Yichen Jiang ebb6b03378 fix(sidebar-right): name the on-screen Session instead of a seat binding
ctx.sidebarRight acted on a binding the right Sidebar seat published from
passive effects. React runs a commit's passive effects in tree order and
the frame renders the Conversation column before the right column, so an
opener mounting in the commit that switched Sessions or returned from a
global panel ran while no seat was bound, and its open threw.

The plugin now names the on-screen Session itself: the selected Session
while the Conversation fills the main column, derived from the Sidebar's
Session views and ctx.layout.panelInfo. Both notify before React renders,
so `mounted` already names the arriving Session during that commit, and
its seat mints the Session's store in the same render. Public commands act
through the Session's adopted store; the seat reports only the room its
docking kit measured, and focus continuity and the auto-fullscreen rule
come from a host the plugin supplies.

- ctx.layout gains viewportWidth from the root layout store.
- SidebarRightBinding, controller.bind(), and the seat's bindService are
  removed; the seat's inject face gains measureRoom.
- ui-plan's review opener returns to a plain open gated on `mounted`.
- The plan-review e2e expands the Workspace group by its aria state.
2026-09-27 16:43:45 +08:00
Tianyi Cui 55bcb56684 Merge branch 'master' into worktree/web-clock-flake-20260926 2026-09-27 16:19:16 +08:00
Tianyi Cui 3117268c04 Merge pull request #5243 from deepseek-harness/fix/document-preview-selection-poll
test(web): poll the spreadsheet selection after each sidebar resize
2026-09-27 16:18:23 +08:00