Commit Graph
20170 Commits
Author SHA1 Message Date
Tianyi Cui 09ecc4f423 Merge pull request #5265 from deepseek-harness/fix/git-command-line-config-scrub-20260927
test(boot): isolate plugin-manager Git children from host command-line config
2026-09-27 20:44:24 +08: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 1c0234e7b1 test(boot): isolate plugin-manager Git children from host command-line config
The self-hosted Windows serial lane failed 12 cases from one cause: the host
exported Git's indexed command-line configuration (`GIT_CONFIG_COUNT` with
`GIT_CONFIG_KEY_0` / `GIT_CONFIG_VALUE_0`), and the shared subprocess scrub
removes credential-shaped names, so a child inherited the counter without its
key and died with `error: missing config key GIT_CONFIG_KEY_0` before it read
any configuration file.

Both spec files now delete that group from their own environment before they
spawn Git, because they judge profile behavior rather than host state. The
product-side handling stays out of this change; it is preserved on the branch
`deferred/git-command-line-config-scrub-20260927` for a later product PR.

GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=core.bare GIT_CONFIG_VALUE_0=true pnpm exec
vitest run packages/boot/plugin-manager/tests/github-connection.spec.ts
packages/boot/plugin-manager/tests/manager.spec.ts -> 12 failed at the parent
revision, 95/95 passed with the isolation.
2026-09-27 20:03:56 +08:00
Tianyi Cui 1badc22b1b Merge pull request #5264 from deepseek-harness/fix/windows-lane-flakes-20260926
test(boot): wait on the observed state in two Windows-lane cases
2026-09-27 19:54:57 +08:00
Tianyi Cui 8a7c5e1a98 docs(notes): record the install-cancel residual and the lane baseline
The three-file lane run passes all three scenarios in three consecutive
local runs, and the install-cancel scenario keeps a residual exposure:
it finds the card through the highlight, so a reload that outlives the
highlight while the card is absent fails that locator. One lane run
failed there and it did not reproduce.
2026-09-27 19:24:25 +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
Tianyi Cui 6ad3557b1b test(boot): wait on the observed state in two Windows-lane cases
`operations.spec.ts` read the profile's run record from a 100 ms timer armed
before the refused installation whose repair it observes; a loaded runner
reached the repair run after that timer and the case failed with `null`
against the recorded run. The observing child now stays in flight until the
record appears, and the bounded wait starts at the launcher hand-over rather
than at test start.

The loader-composition case counts `stdin_read` settlements but reported only
the count, so its Windows failures could not say which tier settled which
send. The recorded reasons now ride in the assertion message; the threshold
and the assertions are unchanged.
2026-09-27 16:37:14 +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
Tianyi Cui ef2c281e6e Merge branch 'master' into worktree/web-clock-flake-20260926 2026-09-27 15:37:37 +08:00
imccyu e9e03abf95 fix(ui-chat): refine running status motion and shimmer 2026-09-27 15:16:20 +08:00
imccyu 69865faf7a docs(ui-chat): clarify running status placement 2026-09-27 15:16:07 +08:00
imccyu e44917fc52 test(web): refresh remaining running status snapshots 2026-09-27 15:10:08 +08:00
imccyu 03531c5836 test(web): align running status snapshots 2026-09-27 15:10:08 +08:00
imccyu cae515d504 feat(ui-chat): restore the complete running status 2026-09-27 15:10:07 +08:00
imccyu 398c2cde25 docs(ui-chat): describe the bottom running status 2026-09-27 15:10:07 +08:00
imccyu fa3d555cd8 feat(ui-chat): animate a whale tail below the transcript while the Session runs 2026-09-27 15:08:24 +08:00
imccyu 361ac7858f docs(ui-chat): describe the whale tail shown below the running transcript 2026-09-27 15:08:23 +08:00
Yifffan a8fc0b3f16 Merge pull request #5233 from deepseek-harness/ui/plugin-example-visual-polish
fix(plugins):  change plugin placeholder npm, visual refine and UX bug ifx
2026-09-27 15:02:43 +08:00
Yif 142b655241 fix(plugins): use shared focus color for invalid inputs 2026-09-27 14:48:49 +08:00
Yif 69b55fb53b fix(plugins): preserve registry keyboard selection and focus feedback 2026-09-27 14:25:27 +08:00
Tianyi Cui 94a9b4d700 Merge pull request #5228 from deepseek-harness/fix/web-search-account-token
fix(web-search): 账号路由会话的 DeepSeek 搜索使用账号 token 鉴权
2026-09-27 13:04:12 +08:00
Tianyi Cui 3443de63cc Merge branch 'master' into fix/web-search-account-token 2026-09-27 12:55:21 +08:00
Yif db5ed22884 test(plugins): make the refresh spinner hold deterministic
Extract settleRefresh() so the spinner-minimum hold has one settle point,
advance the e2e fake clock past the 400ms hold before asserting the button
restores, and drive the disposal-during-hold store test on fake timers for
both success and failure reads.
2026-09-27 12:42:30 +08:00
imccyu 80fad723f6 Merge pull request #5204 from deepseek-harness/fix/legacy-normal-detailed
调整工作过程展示的旧配置映射与 npm Web 默认值
2026-09-27 12:17:30 +08:00
imccyu 682393aede docs(ui-chat): separate display modes from saved preferences 2026-09-27 12:05:42 +08:00
imccyu 79fce08d25 test(web): align browser scenarios with detailed work defaults 2026-09-27 11:51:50 +08:00
imccyu 47db27a730 fix(ui-chat): resolve work-details defaults in client code 2026-09-27 11:43:10 +08:00
imccyu b066690f70 fix(web): default fresh work details to detailed 2026-09-27 11:43:09 +08:00
imccyu a03e63d1e3 fix(ui-chat): map legacy normal work details to detailed 2026-09-27 11:43:09 +08:00
Yif eb9efc6265 fix(plugins): restore registry group, own opaque material, hold refresh spinner
The install registry picker used MenuSurface and overrode the theme-owned
menu material tokens, which the shared-menu-material gate rejects. Return
the picker to a fieldset (its native group role) and paint an opaque
bg-layer-2 surface so the form controls stay readable without touching
menu tokens. This also restores the group's radios to the accessible tree.

Align plugin-install-registry.e2e and its snapshots with the PR's visible
text: registry option names drop the parentheses around the host, the
custom address field is no longer disabled, and the custom hint spells out
http(s) and ~/.npmrc.

Hold the manual-refresh spinner to a 400ms minimum so a fast read does not
flash it, clearing to idle (or the failure toast) only after the minimum,
and dropping a refresh that settles after disposal.

Prune the retired no-unknown-casts baseline entry for browser-plugin.client.spec.
2026-09-27 09:46:15 +08:00
Yif 9fabb67bca test(plugins): trim redundant refresh/tooltip coverage
Drop the plugin-manager refresh e2e to a single failure round: the store's
success and retry outcomes are covered deterministically by
manager-store.client.spec.ts, while the e2e keeps its unique value — real
500ms tooltip timing, a running spinner animation, aria-busy, and the
portaled failure toast over kept cards. Regenerate refresh.expected.md.

Remove the components spec tooltip-delay case; ui-primitives'
tooltip.client.spec.tsx already covers 499/500ms hover/focus delay, early
cancellation, and portaling. PluginManagerPage.tsx stays at 100% coverage.
2026-09-27 02:28:09 +08:00
Yif 9c6bdd020c Merge master into ui/plugin-example-visual-polish 2026-09-27 02:03:39 +08:00
Yif f057cc37c4 fix(plugins): guard IME submission and refine automation icon 2026-09-27 01:44:00 +08:00
Yif 5d72bfbe49 fix(plugins): refine refresh feedback and plugin artwork 2026-09-27 01:00:50 +08:00
std4453 2fc10a41c4 Merge pull request #5136 from deepseek-harness/feat/desktop-product-analytics
feat(desktop): add product analytics event collection
2026-09-26 23:14:59 +08:00
zhc b43d52ef45 merge: reconcile desktop analytics with latest master 2026-09-26 22:56:57 +08:00
Yif e967e3cbba fix(ui): shrink auto-review artwork by one pixel 2026-09-26 22:40:27 +08:00
Yif d27663918d Merge master scheduling updates and preserve approved icon 2026-09-26 22:11:11 +08:00
Tianyi Cui 67f648cf0c Merge pull request #4595 from deepseek-harness/worktree/fix-tool-failure-history-6967
fix(agent-loop): settle pending tool results before failed steps close
2026-09-26 22:01:39 +08:00
Yif 8ad3a2ca0d Merge master to refresh plugin polish base 2026-09-26 21:57:59 +08:00
Ziya 88967ce80a Merge pull request #5207 from deepseek-harness/ux/automation-tasks-plugin-row
fix(schedule-bundle): name the Plugins row Automation tasks with an alarm clock icon
2026-09-26 06:57:49 -07:00
Yichen Jiang 50117a144e Merge pull request #5190 from deepseek-harness/worktree/scoped-events-heap-budget
fix(docs): align publication runner and scoped-event heap budgets
2026-09-26 21:46:55 +08:00
Ziya d70db1ccfd Merge pull request #5210 from deepseek-harness/fix/plugin-inventory-card-align
fix(ui-settings-plugin-inventory): align and simplify plugin cards
2026-09-26 06:44:15 -07:00
ZiyaZhang 9626323fc4 Merge remote-tracking branch 'upstream/master' into ux/automation-tasks-plugin-row 2026-09-26 06:10:21 -07:00
Tianyi Cui 98f367c84c Merge remote-tracking branch 'origin/master' into worktree/web-clock-flake-20260926 2026-09-26 20:19:45 +08:00