Commit graph

2336 commits

Author SHA1 Message Date
Yichen Jiang
cd7e45ced6 Merge remote-tracking branch 'origin/master' into worktree/deepseek-native-multimodal 2026-08-19 12:35:05 +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
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
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
imccyu
8088d2a6a0 fix(client): harden bootstrap invariants 2026-08-18 01:34:55 +08:00
imccyu
1c94446a56 fix(client): preserve dependency boundary cleanup 2026-08-18 01:34:54 +08:00
imccyu
4ad6e28663 fix(client): consume bootstrap handoff queue 2026-08-18 01:34:54 +08:00
imccyu
cf603b847f fix(client): complete dynamic module bootstrap 2026-08-18 01:34:53 +08:00
imccyu
aa03eff500 build(client): enforce client package boundaries 2026-08-18 01:34:53 +08:00
imccyu
e1777b7891 fix(client): tighten UI ownership boundaries 2026-08-18 01:34:25 +08:00
imccyu
07484b9474 fix(build): preserve package metadata across rebase 2026-08-18 01:34:24 +08:00
imccyu
2f974ca9b0 feat(web): show plugin loading progress 2026-08-18 01:34:24 +08:00
imccyu
0fda2a26b7 fix(web): preserve boot page through React handoff 2026-08-18 01:34:24 +08:00
imccyu
c065ba34d1 fix(client): tighten UI service boundaries 2026-08-18 01:34:24 +08:00
imccyu
85fa5b6943 docs(client): synchronize UI boundary references 2026-08-18 01:34:23 +08:00
imccyu
cf5e686408 refactor(client): merge React bindings into UI renderer 2026-08-18 01:34:23 +08:00
imccyu
f37bc082c5 refactor(client): move web rendering into a dynamic plugin 2026-08-18 01:34:21 +08:00
imccyu
3e4ad10d05 refactor(client): make attachment UI a client plugin 2026-08-18 01:34:20 +08:00
imccyu
56dff07c4e refactor(client): move schema handling into ui-settings 2026-08-18 01:34:20 +08:00
creatixchu
0e39055121 fix(attachment): refuse oversized image sides at admission
An image with a side above the deployed routes' 2000px many-image bound
could be durably committed by read_image, ride every later request, and
permanently fail the session with provider 400s. Admission now enforces a
configurable maxImageDimension (default 2000) during the full decode, so
read_image surfaces a recoverable tool error naming the limit instead of
poisoning durable history; the Web composer gets dedicated copy for the
new IMAGE_DIMENSION_TOO_LARGE reason.

Fixes #2626
2026-08-17 20:49:08 +08:00
Chinesezjc
d496d48c4b Merge remote-tracking branch 'origin/master' into fix/locale-default-english 2026-08-17 20:28:21 +08:00
creatixchu
c530de9edc Merge origin/master: fold admitEncodedImages onto AttachmentStore.saveImages
master introduced AttachmentStore.saveImages as the batch admission
(count/aggregate-byte/media-type limits, validate-all-before-save,
ordered commit). admitEncodedImages narrows to the shared wire entry:
canonical-base64 enforcement plus delegation to saveImages, keeping one
home for batch policy while both wire endpoints (prompt RPC and the
command executor) still call one function. Test doubles gain saveImages;
batch-limit error texts follow saveImages' wording.
2026-08-17 19:59:53 +08:00