Commit Graph

7977 Commits

Author SHA1 Message Date
ZiyaZhang
be693f3bc7 test(plugin-inventory): avoid assuming loader sibling order 2026-08-12 04:23:03 -07:00
ZiyaZhang
5ed98d2da9 fix(docs): restore static gate consistency 2026-08-12 03:54:02 -07:00
Ziya
8019949fc7 Merge branch 'master' into feat/web-plugin-settings-tabs 2026-08-12 18:40:38 +08:00
ZiyaZhang
de0d16d3d1 fix(web): complete plugin tab accessibility 2026-08-12 02:41:29 -07:00
Chinesezjc
93b400a1de Merge branch 'codex/disable-telemetry-default' into master
Resolved conflicts:
- packages/client/ui-settings-general/README.md, README.zh.md: kept PR
  opt-in telemetry description (DSH_TELEMETRY_MODE)
- scripts/snapshots/translation-prompt-v4: kept master's newer README
  structure snapshot
- i18n.yaml pairing records: resolved per file state
- pnpm-lock.yaml: regenerated
- Modify/delete conflicts (scaffold/telemetry, sdk-follow-up-capabilities):
  kept master deletions
2026-08-12 17:27:37 +08:00
ZiyaZhang
14e70b1bf4 test(web): cover plugin settings tab states 2026-08-12 02:18:11 -07:00
Ziya
7f058284fa Merge branch 'master' into feat/web-plugin-settings-tabs 2026-08-12 16:54:18 +08:00
Chinesezjc
d11df1825c Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-12 16:48:46 +08:00
Chinesezjc
e0e43f40c2 Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-12 16:39:15 +08:00
Chinesezjc
c55fca5eda Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui
Keep both Remote contributions master and this branch add: the mount loop
now carries commandsRemote, goalsRemote, pluginInventoryRemote, and
messageFeedbackRemote, with both new tsconfig references retained.
2026-08-12 16:36:10 +08:00
Yichen Jiang
b77033d8b3 Merge master into worktree/custom-model-image-input-0185de 2026-08-12 16:32:49 +08:00
Yichen Jiang
50edee2dab review: sync the note this supersedes, gate the schema paths, export the modality type
The declared-provider-catalog note still recorded modalities as closed
because "nothing reads them: context.ts keeps only text blocks" — the
same reasoning this change disproves. Rewrite that fact in place, keep
pricing closed for its own still-current reason, and cross-link both
directions.

The new resolver cases never crossed the config schema, so neither
acceptance path this change adds had an executable gate: config.spec.ts
now refuses an unknown modality at both levels, pins the empty route
list to the namespace validator the settings seam actually runs, and
pins the `[]` materialization the inheritance rule depends on. A
catalog.spec.ts case re-asserts every rung through a written settings
section and `ctx.llm`, which is what the note's Testing section claimed.

Also export PiAiModality from the package entry — it types two public
config fields and consumers could not name it — record the unverified
declaration as a Known Limitation, and stop sharing one fallback array
across a route's models.
2026-08-12 16:18:52 +08:00
Yichen Jiang
94289d057e fix(llm-pi-ai): let a model declare the request modalities it accepts
A model the installed pi-ai catalog does not describe was reported as
text-only with no way to say otherwise, so a vision model added through
the custom-provider form was refused at every image admission point.
The justification in the source described the DeepSeek chat-completions
serializer, which does reject image blocks; the pi-ai request converter
and every wire protocol it speaks carry images.

Modalities now resolve entry `input` -> installed catalog entry -> route
`defaultInput`, the chain the two capacity fallbacks already use, so the
route value is a fallback and never narrows a catalog model. Its default
stays `[text]`: nothing can interrogate a gateway for its modalities, and
over-claiming admits an image the provider rejects mid-turn, after prompt
admission has already committed the message.
2026-08-12 16:18:52 +08:00
creatixchu
7c8ec67102 Merge remote-tracking branch 'origin/master' into worktree/attachment-alignment-2 2026-08-12 16:14:56 +08:00
ZiyaZhang
4f5c730032 feat(web): combine plugin settings into tabs 2026-08-12 01:06:01 -07:00
pku-xht
21b316de23 Merge origin/master into codex/bounded-background-tasks-v2 2026-08-12 15:54:49 +08:00
creatixchu
b108c6c1c9 Merge remote-tracking branch 'origin/master' into worktree/attachment-alignment-2 2026-08-12 15:41:01 +08:00
pku-xht
b1c13b5ca3 Merge pull request #2254 from deepseek-harness/codex/subprocess-process-exit-cleanup-v2
fix(subprocess): clean managed processes on host exit
2026-08-12 15:27:03 +08:00
creatixchu
2014d354e3 Merge remote-tracking branch 'origin/master' into worktree/attachment-alignment-2 2026-08-12 15:19:32 +08:00
creatixchu
51dc55ec3d fix(web): cap default images at 5 MiB 2026-08-12 14:47:20 +08:00
Ziya
5b448ae15f Merge branch 'master' into feat/web-loader-plugin-inventory-settings 2026-08-12 14:35:46 +08:00
imccyu
3784607f3d Merge pull request #2035 from deepseek-harness/fix/grep-glob-web-search-row-distinction
fix(client): distinguish grep/glob rows from the web search row
2026-08-12 14:27:04 +08:00
Ziya
29a089519d Merge branch 'master' into feat/web-loader-plugin-inventory-settings 2026-08-12 13:53:20 +08:00
Yichen Jiang
76805df26e Merge pull request #2326 from deepseek-harness/fix/onboarding-reads-every-provider
fix(web): 任意可用提供方即结束首次引导,setup 卡片可关闭
2026-08-12 13:52:45 +08:00
creatixchu
8d4c3f8a0a review: format check precedes limits, INVALID_IMAGE/IMAGE_TYPE_MISMATCH as format copy, tile-sized retry control 2026-08-12 13:50:07 +08:00
Ziya
91305c6240 Merge branch 'master' into feat/web-loader-plugin-inventory-settings 2026-08-12 13:49:57 +08:00
pku-xht
fc68949e1a Merge pull request #2296 from deepseek-harness/codex/workflow-run-auto-disclosure
feat(workflow): auto-follow run and phase disclosures
2026-08-12 13:49:36 +08:00
Ziya
e568299daf Merge branch 'master' into feat/web-loader-plugin-inventory-settings 2026-08-12 13:29:06 +08:00
Turtle
15c84cdc4b Merge pull request #2310 from deepseek-harness/refactor/cmdline-plan-trim
refactor(cmdline): run the program's own commander action instead of a plan callback
2026-08-12 13:20:30 +08:00
Chinesezjc
80255be10b Merge pull request #2304 from deepseek-harness/fix/sandbox-local-runner-entry-coverage
test(sandbox-local): pin the windows-acl runner-entry arms independent of build state
2026-08-12 13:19:56 +08:00
Ziya
3ac89bcab5 Merge branch 'master' into feat/web-loader-plugin-inventory-settings 2026-08-12 13:18:28 +08:00
creatixchu
c9a536e0c8 review: theme-owned drop mask token, overlay fade-in, stable gallery keys, close-button stacking, stale note defaults 2026-08-12 13:12:06 +08:00
Turtle
54dd75a969 refactor(cmdline): run the program's own commander action instead of a plan callback
parseCmdline(ctx, program): void only adapts commander control flow to
the launcher: it parses the immutable cmdlineArgs snapshot and turns
help, version, parse errors, and action rejections into a ctx.appExit
request. App validation and the ctx.provide of the app-owned service
live in the program's own synchronous .action(), which commander runs
inside parse — program.error(...) there shares the exit path with a
grammar rejection. Deletes the CmdlinePlan export, its unread ctx
parameter, the type-unsound (() => ({}) as T) default, and the
T | undefined return with its per-caller publish guard.
2026-08-12 13:07:41 +08:00
creatixchu
7259252536 Merge remote-tracking branch 'origin/master' into worktree/attachment-alignment-2 2026-08-12 13:02:39 +08:00
imccyu
b76029db0a Merge pull request #2322 from deepseek-harness/fix/clienthost-spec
fix(types): assign package tests to client and host compiler faces
2026-08-12 13:00:58 +08:00
Yif
625711e718 fix(client): distinguish grep/glob rows from the web search row
The grep, glob, and web_search tool rows all rendered as "Search" with
the same magnifier icon, so a transcript full of local searches was
indistinguishable from web searches. Grep and glob now carry their own
command-named titles through TOOL_TITLES, and the web_search row wears
a new globe glyph (IconGlobeOutline14) while keeping its "Search" title.
2026-08-12 12:57:59 +08:00
Ziya
91e073e5e1 Merge branch 'master' into feat/web-loader-plugin-inventory-settings 2026-08-12 12:51:46 +08:00
Yichen Jiang
d57463c2fb fix(web): end first-run onboarding on any usable provider
The step and the Models page both asked one question of a join that
describes every provider: is deepseek-official's credential stored? A user
who configured some other route was taken over on every blank session, and
the DeepSeek setup card opened over them on every visit to Models with a
Cancel that could not close it — while clearing the add card's draft,
because it shared the row-editor close handler.

providerUsable(row) now answers what both surfaces need: the route is
registered and whatever credential its profile names is stored. Readiness
(renamed onboardingReadiness) ends on any usable row, needsSetup takes the
same fact, and each card kind owns its own close handler.

Fixes #2325
2026-08-12 12:50:45 +08:00
_Kerman
d5ec13bdd9 Merge pull request #2250 from deepseek-harness/xtr/sidebar-workspace-controls
feat(web): improve workspace sidebar navigation
2026-08-12 12:41:53 +08:00
ZiyaZhang
46c0e3dba7 fix(ci): align plugin inventory with current contracts 2026-08-11 21:38:11 -07:00
creatixchu
2c9036b102 feat(web): whole-page image drop, projected intake limits, and thumbnail tiling
Second alignment step for #2248: document-level drag intake behind the new
DropOverlay atom, lightbox close icon and shared dialog mask, DeepSeek Chat
thumbnail rules (single 240px long edge with ratio clamp, 64px tiles, merged
consecutive assistant images), image limits raised to 20/10MiB/100MiB and
published to clients as the imageLimits projection, whole-batch intake
pre-check with product-copy banners, and attachment-error reasons mapped to
localized copy.
2026-08-12 12:31:52 +08:00
ZiyaZhang
eea356e785 Show module names for dynamic plugins 2026-08-11 21:10:14 -07:00
ZiyaZhang
2614a2df93 Refine plugin inventory card details 2026-08-11 21:10:14 -07:00
ZiyaZhang
4cf76f2362 Fix plugin status tag clipping 2026-08-11 21:10:14 -07:00
ZiyaZhang
6ed5df964e feat(web): add read-only Loader plugin inventory 2026-08-11 21:10:14 -07:00
_Kerman
64326cb597 refactor(ui-workspace): extract shared drag-accept and status-dot renderers
The flat-list ordering change duplicated the document-level native-drag
acceptance effect and the status-dot block across the search and session
rows, tripping the duplication gate. Extract useNativeDragAcceptance and
SessionStatusDots so both call sites share one implementation.
2026-08-12 12:01:23 +08:00
Yichen Jiang
d4e06d6dd8 Merge pull request #2279 from deepseek-harness/worktree/preset-user-root-in-package
agent-presets owns the writable preset root instead of awaiting an app
2026-08-12 11:53:55 +08:00
Huanqi Cao
50bedaf03b Merge pull request #2234 from deepseek-harness/feat/loader-entry-disabled-interpolation
feat(loader): interpolate the entry disabled field
2026-08-12 11:40:02 +08:00
Yichen Jiang
2646da8d56 refactor(agent-presets): keep the user-root segment out of the package API
`USER_PRESET_DIR` was exported with no production consumer — only the new test
read it, and a test that imports the implementation constant cannot catch that
constant being wrong. It stays module-internal, and the test spells the segment
it expects.
2026-08-12 11:36:24 +08:00
imccyu
660d24e705 fix: client/host spec 2026-08-12 11:22:24 +08:00