Commit Graph
2354 Commits
Author SHA1 Message Date
Yichen Jiang 458a742cfe Merge remote-tracking branch 'origin/master' into worktree/deepseek-native-multimodal 2026-08-19 14:22:22 +08:00
07akioni 7d2982de68 Merge pull request #2695 from deepseek-harness/fix/open-file-fail
feat(web): Implement file-open failure handling in chat view
2026-08-19 14:16:37 +08:00
07akioni 2aaf760fa2 Merge pull request #2709 from deepseek-harness/feat/home-path-abbr
feat(ui-tool): integrate connection handling for POSIX home path abbreviation
2026-08-19 14:16:08 +08:00
Chinesezjc 6079181d1a Merge pull request #2673 from deepseek-harness/fix/web-feedback-note-popover
fix(feedback): float the note editor in a popover
2026-08-19 13:59:30 +08:00
Chinesezjc e2ee5c0f5d feat(feedback): float the note editor in a popover, not inline in the actions row
The message-feedback note editor previously expanded inline inside the
assistant message's shared IconActions row, overflowing the row at every
viewport and pushing the branch action and the clock out of the column.
Rework it into a portable popover: the note editor is a fixed-position panel
portaled to document.body and anchored to the note trigger, so the row keeps
its single 28px line whether the editor is open or not and the panel escapes
the column's overflow clip.

The like/dislike buttons and the note trigger stay in the row unchanged; the
trigger toggles the popover (textarea + Save/Cancel + note-save failure) which
auto-focuses the input and closes on Escape or an outside click, returning
focus to the trigger. Rating/list-load failures surface in the row, note-save
failures inside the popover. Reuse the Menu portal surface tokens and add
@types/react-dom so the createPortal usage typechecks.

Layout e2e sweeps six viewports and pins that opening the editor leaves the
row's overflow, line count, and out-of-column items unchanged, and that the
panel is outside the column, within the viewport, and anchored to its trigger.
Unit tests cover the popover's portal-to-body, toggle, Escape/outside-click
dismissal, and unmount early-returns.
2026-08-19 13:49:30 +08:00
Yichen Jiang cd7e45ced6 Merge remote-tracking branch 'origin/master' into worktree/deepseek-native-multimodal 2026-08-19 12:35:05 +08:00
07akioni 11ed98de55 Merge remote-tracking branch 'origin/master' into fix/open-file-fail 2026-08-19 12:27:34 +08:00
07akioni 149d4ba01c Merge remote-tracking branch 'origin/master' into feat/home-path-abbr 2026-08-19 12:24:40 +08:00
Yichen Jiang 7078918b30 feat(llm-deepseek): support multimodal requests 2026-08-19 11:39:52 +08:00
creatixchu fcaa0efec5 Merge remote-tracking branch 'origin/master' into worktree/command-attachment-envelope 2026-08-19 11:11:15 +08:00
Chinesezjc 657f52eb21 Merge pull request #1787 from deepseek-harness/feat/plan-narrow-viewport-regression
fix(web): wrap the composer control row so the plan chip never overlaps the model trigger
2026-08-19 10:50:54 +08:00
Dudu-0223 d57c2d19db fix(web): require queries array for web search 2026-08-19 10:33:43 +08:00
Dudu-0223 6b4df99c44 fix multi-query web search review feedback 2026-08-19 10:33:43 +08:00
Dudu-0223 b06722e2d4 support bounded multi-query web search 2026-08-19 10:33:43 +08:00
07akioni f15ca23386 fix: ci 2026-08-18 20:14:40 +08:00
07akioni 996f6e49a5 fix: ci 2026-08-18 20:04:18 +08:00
07akioni b8670e3fbe fix: ci 2026-08-18 19:58:55 +08:00
07akioni bd41b3cbc7 Merge remote-tracking branch 'origin/master' into feat/home-path-abbr 2026-08-18 19:42:01 +08:00
07akioni dd3ea3db2e fix: ci 2026-08-18 19:31:12 +08:00
07akioni 20a5f5a3ee feat(ui-tool): integrate connection handling for POSIX home path abbreviation 2026-08-18 19:25:13 +08:00
07akioni 2442e63360 fix: cr 2026-08-18 19:14:20 +08:00
07akioni 0148c9bef6 Merge remote-tracking branch 'origin/master' into fix/open-file-fail 2026-08-18 19:06:27 +08:00
07akioni e3752e207e fix: remove debug code 2026-08-18 19:02:38 +08:00
07akioni b1be9e93cd fix: optimize ui 2026-08-18 18:54:18 +08:00
Chinesezjc 6f0681f1ab Merge branch 'master' of github.com:deepseek-harness/deepseek-harness into fix/locale-default-english
# Conflicts:
#	packages/client/locale/tests/apply.client.spec.ts
#	packages/client/ui-agent-preset/tests/apply.client.spec.ts
#	packages/client/ui-settings-general/tests/apply.client.spec.ts
#	packages/client/ui-settings-models/tests/apply.client.spec.ts
#	packages/client/ui-settings-plugins/tests/apply.client.spec.ts
#	packages/client/ui-theme/tests/apply.client.spec.ts
2026-08-18 18:16:33 +08:00
Chinesezjc 8c7d8ad33f Merge remote-tracking branch 'origin/master' into feat/plan-narrow-viewport-regression
# Conflicts:
#	apps/web/tests/scaffold.ts
2026-08-18 18:15:38 +08:00
Yichen Jiang 6c16d29b24 Merge pull request #2613 from deepseek-harness/feat/web-settings-describe-mirror
refactor(client): serve every settings consumer from one describe mirror
2026-08-18 17:58:26 +08:00
Chinesezjc 9301def7eb fix(locale): tighten parity gate and correct copy-source wording
Address the three open review threads on the dictionary parity gate.

Regex/TEXT: localeOf now requires an uppercase ASCII [A-Z] flat-letter at
the third position of a name-prefix shape, so zh2Foo/zh_probe are no longer
treated as dictionaries in localeOf while the admission pre-filter skips
them. The two now agree exactly.

register detection now also admits a bare register identifier callee in
addition to a property access, covering a future destructured
register(NS, 'zh'|'en', dict) call instead of silently dropping it.

A 3-arg register whose dictionary argument is a local variable is resolved
through module-scope const initializers; one that cannot be resolved to an
object literal makes the gate refuse with a named error rather than skipping
the registration and narrowing the sweep.

Also restate the FALLBACK_LOCALE rationale: the residual case points at
English because a browser naming neither shipped language is the reader
least likely to read Chinese, not because English is the copy's source
language (Chinese is; packages/client/AGENTS.md). Sync the identical claim
in the bilingual Agent Note and re-record its .i18n.yaml pairing.
2026-08-18 17:56:49 +08:00
07akioni aab839a971 feat(web): Implement file-open failure handling in chat view 2026-08-18 17:39:38 +08:00
Chinesezjc e78fdf05fe Merge branch 'master' of github.com:deepseek-harness/deepseek-harness into fix/locale-default-english 2026-08-18 17:38:33 +08:00
pku-xht 50ba75762b Merge pull request #2607 from deepseek-harness/codex/workflow-manual-disclosure
feat(workflow): let users control run and phase disclosures
2026-08-18 17:30:06 +08:00
creatixchu d71f744c16 Merge remote-tracking branch 'origin/master' into worktree/command-attachment-envelope 2026-08-18 16:58:46 +08:00
Yichen Jiang d415b63c19 test(client): cover settings lifecycle guards 2026-08-18 16:55:39 +08:00
creatixchu 51fa8da8a3 fix(plan): accept image-only plan requests 2026-08-18 15:43:59 +08:00
Yichen Jiang cf7d485b5e fix(client): harden settings describe mirror 2026-08-18 15:26:16 +08:00
Yichen Jiang 02008db244 Merge remote-tracking branch 'origin/master' into feat/web-settings-describe-mirror 2026-08-18 14:37:07 +08:00
Chinesezjc 8e2785d9eb fix(locale): cover direct register() dictionaries and assert <html lang> assembled
The parity gate recognized only a `[['zh',{...}],['en',{...}]]` array, so the
two separate ctx.locale.register(NS, 'zh'|'en', {...}) calls in
ui-permission-presets were unchecked: deleting a key from one side left the
gate green. Pair those calls by their namespace argument. Widen the pre-filter
to admit zhSettings/accessZh spellings, which a bare \b(zh|en)\b misses and
would have skipped before parsing.

Assert document.documentElement.lang in the assembled app. The served markup
already ships lang="en", so the fr-FR scenario passes whether or not the sync
runs; the zh scenario is the discriminating half and now asserts zh-CN before
the switch and en after it.

Drop the dead vi.unstubAllGlobals() from the document-language spec, which
manages navigator with defineProperty and never calls vi.stubGlobal.
2026-08-18 13:28:18 +08:00
Yichen Jiang 3e1915a3b2 feat(web): add model picker bulk selection 2026-08-18 13:07:11 +08:00
Chinesezjc cb0d835582 Merge remote-tracking branch 'origin/master' into fix/locale-default-english 2026-08-18 12:48:52 +08:00
Chinesezjc 6e9b2560a3 fix(locale): keep the test-runtime devDependency and narrow the parity gate catch
Restore @deepseek-ai/dsh-client-test-runtime in ui-settings-general: the
package still imports bindSnapshotSelector from it in
tests/components.client.spec.tsx, so removing it was manifest drift. The
earlier knip report predated that file arriving on this branch.

Swallow only ENOENT when reading a directory in the parity gate. A broad catch
treated EACCES or an I/O failure as "absent", which would narrow the sweep and
let the gate pass while checking less.
2026-08-18 12:25:09 +08:00
Chinesezjc 9de06952ab fix(locale): persist an explicit pick of the provisional locale
setLocale returned early when the id already matched the active locale, so
choosing the language already on screen wrote nothing. That value may be a
provisional browser-derived or fallback resolution nothing has stored, so a
different browser sharing the DSH home still resolved on its own. Write
unconditionally; keep the render publish conditional.

Broaden the dictionary parity gate to every workspace package, pair zh/en
across sibling files and inline registrations, and fail when a dictionary has
no counterpart. It previously scanned only packages/client and packages/
extensions, compared within a single module, and silently skipped unpaired
dictionaries -- so the split locales/zh.ts + en.ts common pair, the inline
directory-picker-browse dictionary, and session-log-export were unchecked.
Normalize paths at ingestion so the sweep does not narrow on Windows.

Regenerate the client API catalog and update the locale README pair: both
described the old zh fallback direction.

Add the English fallback dialog golden, and drop a dead afterEach plus the
blank lines left where the dead browser-language pins were removed.
2026-08-18 12:18:03 +08:00
creatixchu 761d9d1978 fix(web): render command errors as banners 2026-08-18 12:06:40 +08:00
creatixchu 1492b0cfee Merge remote-tracking branch 'origin/master' into worktree/command-attachment-envelope
# Conflicts:
#	apps/web/tests/assembled-boot.ts
2026-08-18 12:00:46 +08:00
creatixchu d559ba9b2b fix(attachment): address dimension-limit review 2026-08-18 11:30:07 +08:00
Chinesezjc bf4cb507f1 fix(locale): track the active locale in <html lang>
The document language attribute was a static value in the served markup, so
it reported zh-CN for an English UI and would have reported en for a Chinese
one once the resolved default changed. Set it from the active locale at
plugin activation and on every switch, carrying a BCP 47 tag (zh-CN / en).

Drop the now-unused dsh-client-test-runtime devDependency from
ui-settings-general: removing its dead browser-language pin left the package
with no remaining use of it, which knip reports as an error.
2026-08-18 11:25:39 +08:00
Yichen Jiang 950fcf9df6 Merge remote-tracking branch 'origin/master' into feat/web-settings-describe-mirror
# Conflicts:
#	packages/client/locale/tests/apply.client.spec.ts
#	packages/client/ui-permission-presets/src/client/index.ts
#	packages/client/ui-permission-presets/src/client/settings-store.ts
#	packages/client/ui-permission-presets/tests/permission-presets-row.client.spec.tsx
#	packages/client/ui-permission-presets/tests/settings-store.client.spec.ts
#	packages/client/ui-settings-general/src/client/index.ts
#	packages/client/ui-settings-models/src/client/index.ts
#	packages/client/ui-settings-models/src/client/store.ts
#	packages/client/ui-settings-models/tests/apply.client.spec.ts
#	packages/client/ui-settings-models/tests/components.client.spec.tsx
#	packages/client/ui-settings-models/tests/onboarding-dialog.client.spec.tsx
#	packages/client/ui-settings-models/tests/provider-form.client.spec.tsx
#	packages/client/ui-settings-models/tests/store.client.spec.ts
#	packages/client/ui-settings-models/tests/welcome-notice.client.spec.tsx
#	packages/client/ui-settings-plugins/tests/apply.client.spec.ts
#	packages/client/ui-settings/README.i18n.yaml
#	packages/client/ui-settings/README.md
#	packages/client/ui-settings/README.zh.md
#	packages/client/ui-settings/src/client/index.ts
#	packages/client/ui-settings/src/client/settings-scope.ts
#	packages/client/ui-settings/tests/plugin.client.spec.ts
#	packages/client/ui-settings/tests/settings-scope.client.spec.ts
#	packages/client/ui-theme/tests/apply.client.spec.ts
2026-08-18 11:23:25 +08:00
creatixchu 609ee2facf Merge remote-tracking branch 'origin/master' into worktree/image-dimension-limit 2026-08-18 11:12:56 +08:00
Chinesezjc acc9359a53 Merge remote-tracking branch 'origin/master' into fix/locale-default-english
# Conflicts:
#	packages/client/ui-settings-models/tests/apply.client.spec.ts
#	packages/client/ui-settings-plugins/tests/apply.client.spec.ts
#	packages/client/ui-theme/tests/apply.client.spec.ts
2026-08-18 10:53:18 +08:00
imccyu d9ea5da2ff fix(ci): satisfy client script quality gates 2026-08-18 02:07:09 +08:00
imccyu c60f132b9c refactor(client): close module loader bootstrap loop 2026-08-18 01:34:55 +08:00