Commit Graph
750 Commits
Author SHA1 Message Date
Yichen Jiang 27c1b4c56f Merge pull request #6649 from deepseek-harness/xtr/fix-trajectory-input-order
fix(web): 修复停止补发后轨迹中的输入顺序
2026-10-20 15:14:49 +08:00
Turtle 8114a96ae4 Merge pull request #6623 from deepseek-harness/turtle/experimental-plugin-details-all
docs(experimental): add illustrated detail documents to the remaining experimental plugins
2026-10-20 14:11:59 +08:00
CreatixChu 082e4c3c3e Merge pull request #6653 from deepseek-harness/worktree/experimental-cua
fix(web): 将 CUA 移到实验性插件二级页并添加标签
2026-10-20 12:50:09 +08:00
Turtle 5c4c743ff3 Merge pull request #6300 from deepseek-harness/turtle/model-picker-defaults-c7775e2d3040
feat(ui-settings-models): open model picker on the configured models
2026-10-20 12:17:05 +08:00
creatixchu 968ceefd22 test(web): update CUA secondary-page expectations 2026-10-20 12:16:39 +08:00
_Kerman bb2a0197d4 fix(trajectory): preserve request prompt update ordering 2026-10-20 12:06:14 +08:00
Yichen Jiang 32f4993cd6 Merge pull request #6628 from deepseek-harness/worktree/session-item-trailing-slot
feat(web): add trailing icon slots to session rows
2026-10-20 10:46:10 +08:00
Yichen Jiang 83ec1b3658 fix(web): preserve session row details across pointer and touch input 2026-10-20 10:29:22 +08:00
fz b88a1c2d14 Merge pull request #6351 from deepseek-harness/fix/sdk-desktop-alignment
fix(sdk): 补齐桌面工具、上下文和原生问答
2026-10-20 01:24:13 +08:00
turtle1999 116438bcd1 docs(experimental): add illustrated detail documents to the remaining experimental bundles
Ten experimental bundles get a user-facing detail document in English and Chinese. Each starts with one 640x300 SVG feature illustration drawn to the plugin preview standard, then covers how to use the plugin and what to know before turning it on.
2026-10-19 23:50:17 +08:00
Turtle c9eb8e9349 Merge pull request #6605 from deepseek-harness/turtle/experimental-plugin-details
refactor(plugin-manager): show built-in feature previews through bundle detail documents
2026-10-19 23:23:16 +08:00
Yichen Jiang 9dbf907f93 Merge branch 'master' into worktree/session-item-trailing-slot 2026-10-19 23:07:23 +08:00
Yichen Jiang 9153978b36 feat(web): add trailing icon slots to session rows 2026-10-19 22:55:18 +08:00
turtle1999 3be4701a9d refactor(plugin-manager): show built-in feature previews through bundle detail documents 2026-10-19 22:04:01 +08:00
creatixchu 14a422021e Merge origin/master into feat/cua-basic-onboarding 2026-10-19 21:53:59 +08:00
creatixchu ecc90620a4 feat(cua): use one action per system permission row 2026-10-19 21:04:06 +08:00
turtle1999 9c8522bb64 feat(plugin-detail): show Markdown plugin details on bundle and market entry pages
Plugins bundle pages and Discover entry pages show the plugin's long
description first, as Markdown with images, in a height-limited region
without its own heading. The document is the file locale meta.detail
names, otherwise the package README, otherwise (market entries only)
the declared repository's README.

The new dsh-plugin-detail library selects documents and reads local
package directories and npm file CDNs without state. plugin-manager
reads installed and offered bundles through readBundleDetail; plugin-market
reads market entries through readEntryDetail, single-file APIs, and a
size-limited partial clone cache serialized across processes. Raw HTML is
omitted, relative links stay text, and relative images load from Host
routes with a sandbox CSP.
2026-10-19 19:13:22 +08:00
fz 1861316e74 fix(sdk): defer harness development context alignment 2026-10-19 16:59:40 +08:00
Yichen Jiang f2e0d7db1b feat(llm): raise custom model defaults to 1M context and 128K output 2026-10-19 16:59:30 +08:00
creatixchu 7d6a8f052f feat(cua): add an explicit persistent PTC setting 2026-10-19 15:14:09 +08:00
fz 1781189c31 test: sync desktop context and delivery prompt expectations 2026-10-19 12:07:48 +08:00
creatixchu 8a90e689d8 Merge origin/master into the basic CUA entry 2026-10-19 11:29:22 +08:00
_Kerman 955e600031 Merge master into session projection registration handles 2026-10-19 11:21:16 +08:00
creatixchu 26282b91d4 test(cua): match existing optional bundle presentation 2026-10-19 11:17:08 +08:00
creatixchu 1954e948cb feat(cua): add optional macOS setup with existing plugin interfaces 2026-10-19 11:10:31 +08:00
imccyu 8598307c1e test(web): cover kept replies and the replies setting
Settings goldens gain the Replies After Collapse row; folded-Turn aria
goldens for plan review, goal turns, and turn-tail actions include their
intermediate replies. The folded layout checks measure the intermediate
reply that now follows the Turn control at the 12px reply gap.
2026-10-18 23:01:23 +08:00
imccyu 11bc10f621 test(web): refresh steering snapshots for the running status position
The running status now renders after the transcript rows and before the
steering echoes that are still waiting, so the mid-steer accessibility
snapshots list the status ahead of the interjection echo. Refreshed with
DSH_SNAPSHOT=refresh on the steering scenarios; no other golden changed.
2026-10-18 15:14:16 +08:00
Turtle cd77df1e7b Merge remote-tracking branch 'origin/master' into turtle/model-picker-defaults-c7775e2d3040 2026-10-18 15:00:16 +08:00
Dudu-0223 66d9f70255 Merge master and resolve subagent control package metadata 2026-10-17 15:55:44 +08:00
Yudong HanandLegGasai fda98dadd2 feat(web): add DeepSeek Search and Fetch APIs behind a settings switch (#6103)
* fix(web-search-deepseek): disable thinking for auxiliary search requests

The provider discards the generated text of the auxiliary Messages turn,
so reasoning tokens have no consumer. DeepSeek enables thinking by default,
which adds latency and output tokens to every search.

Fixes #6099.

* feat(web): add opt-in traditional Search and Fetch APIs

* test(web): verify API settings persistence and refresh Session evidence

* fix(web): require an explicit Search API base with its route prefix

* docs(web): document direct Search and Fetch API decisions

* fix(web): keep Messages search default behind the new Web Search API switch

- Rename useTraditionalApi/traditionalBaseURL to useSearchApi/searchApiBaseURL and
  label the switch "Use the new Web Search API"; Messages search stays the default.
- Default the Search / Fetch API base to https://api.deepseek.com/v1/tools.
- Authenticate the Search API with an API key only: DeepSeek Account tokens
  returned an empty HTTP 404 on /v1/tools/* when probed on 2026-10-16.
- Remove the count setting, which tool-web's maxResults always overrides, and
  the undocumented DeepSeek-API-Version header.
- Name the active API's base URL field and the current settings path in
  endpoint guidance; re-record the endpoint guidance Session.
- Keep WebFetchResult.statusCode required: DeepSeek Fetch reports HTTP 200 and
  drops the page title, so the fetch-metadata widening and its upgrade guide
  are removed.

* fix(web): accept account sign-in on the live Search API

The public Search and Fetch routes went live on 2026-10-16 and accept the
DeepSeek Account token, so account-route Sessions send it to the Search API
as they do for Messages search, and the settings copy no longer says account
sign-in does not apply.

Record the live behavior in the README and Agent Note: summaries of
1,000-2,300 characters, an HTTP 500 for an unresolvable Fetch target, and
migration notes for gateways without /v1/tools routes. Test doubles now use
the live response fields and RFC 3339 offsets.

* feat(web): configure Search API result count and send the triggering question

- Add web-search-deepseek.count (1-50, default 10, the service default) and
  show it as "Results per search" in Search API mode, where "Max searches per
  request" applies only to Messages; a smaller request maxResults still wins.
- Send the initiating Session's latest human prompt as ori_question, with
  whitespace collapsed and cut to the API's 128-character limit; blank or
  absent prompts omit it, and sendOriginalQuestion: false disables it. The
  settings hint states that the question is sent.
- Match the web search double on the request's query field, since
  ori_question now carries every query in the prompt.

* fix(client): unify web search endpoint override controls

* feat(web): configure registered search and fetch providers through shared settings

* feat(web): include Exa and Perplexity in provider settings

* test(web): cover provider settings branches and refresh plugin snapshots

* revert(web): drop the provider dropdown, schema-driven form, and Exa/Perplexity settings

Revert aed8c5cb609, d88c47dcd80, and 036a5a337d3. The Web search settings
page returns to the DeepSeek toggle; the DeepSeek Search and Fetch API split
is reintroduced as one plugin in the following commit.

* feat(web): move the DeepSeek Search and Fetch APIs into web-deepseek-api

The new web-deepseek-api plugin registers deepseek-search-api and
deepseek-fetch-api over one credential and API base, and exports the
authentication and redirect-rejecting transport that web-search-deepseek now
reuses for Messages search only. The web service reads searchProvider and
fetchProvider for each operation, so the Web search settings switch selects
both APIs together on save and restores Messages search with local HTTP fetch
when turned off. The switch hint links to the DeepSeek search and fetch guide.

* refactor(client): keep the web search endpoint fields on the shared override controls

Drop the always-visible reset and the inherited-address placeholder from the
Web search page, restoring ui-primitives to its base. Each endpoint field shows
the selected section's effective value and offers Reset to default only for an
override, like every other settings field.

* refactor(web): keep Messages search independent of web-deepseek-api

Restore dsh-web-search-deepseek to its own credential and transport code,
keeping only the disabled-thinking request and the current settings guidance,
so the Messages plugin no longer depends on the Search and Fetch API package.
dsh-web-deepseek-api keeps its transport internal; the regions that repeat the
Messages helpers carry jscpd:ignore markers, with the rationale recorded in the
Search and Fetch API Agent Note.

* refactor(web): keep the web-deepseek-api request type module-private

---------

Co-authored-by: LegGasai <[email protected]>
2026-10-17 15:08:08 +08:00
Yichen Jiang 3c937cd0ba feat(web): display a temporary 1017 badge for DeepSeek Flash 2026-10-17 13:33:35 +08:00
Dudu-0223 4df09d37d5 refactor(subagent): register shared control tools together 2026-10-17 13:28:17 +08:00
Yichen Jiang 32efe36a4e revert: restore the bundled DeepSeek Flash display name 2026-10-17 13:23:06 +08:00
Dudu-0223 590cfe168c Merge master and refresh tool catalog translation pairing 2026-10-17 12:03:03 +08:00
Yichen Jiang 9404cd1790 Merge branch 'master' into worktree/deepseek-flash-1017 2026-10-17 09:13:01 +08:00
Yichen Jiang 7d844abc87 fix(llm): append 1017 to the bundled DeepSeek Flash display name 2026-10-17 09:06:36 +08:00
lsdsjy 5ee0f50811 Merge pull request #6384 from deepseek-harness/feat/account-notice-stack
feat(account): 支持通用通知字段和多通知层叠展示
2026-10-16 18:40:03 +08:00
lsdsjy 2dcd031a8e feat(account): 支持通用通知字段和多通知层叠展示 2026-10-16 17:14:42 +08:00
Yichen Jiang 919aa5f400 feat(web): add provider-aware model label slot 2026-10-16 14:24:47 +08:00
Turtle f150f2178d fix(ui-settings-models): keep model picker selection current and non-empty
Derive the picker's checked state from the list at render so a row drafted
during the fetch is not removed. Disable Update list when it would empty a
non-empty list, because an empty list serves the whole catalog. List a
repeated candidate id once and treat rows without an id as unconfigured.
2026-10-15 20:17:52 +08:00
Turtle 72a607dfee fix(ui-settings-models): open model picker on the configured models
The fetched-model picker now starts with the configured models checked and
Update list adds newly checked candidates and removes unchecked configured
ones. Configured models the provider does not list stay. Select all and
Deselect all change only visible candidates so a hidden configured model is
not removed unseen.

Refs #6290
2026-10-15 19:52:23 +08:00
_Kerman 90014a7508 Merge remote-tracking branch 'origin/master' into xtr/session-projection-registration-handles
# Conflicts:
#	docs/tool-catalog.i18n.yaml
2026-10-15 18:26:22 +08:00
Yudong Han e44061c934 Merge pull request #6264 from deepseek-harness/fix/tool-exit-badge
fix(ui-tool): show command exits in neutral inline capsules
2026-10-15 16:41:15 +08:00
yudshj e8488f6b41 fix(shell): preserve missing exit codes in terminal presentation 2026-10-15 15:57:11 +08:00
yudshj 95e76236bf refactor(ui-tool): isolate exit badge and cover long descriptions 2026-10-15 15:46:03 +08:00
yudshj 00f897b048 fix(ui-tool): show command exits in neutral inline capsules 2026-10-15 14:20:22 +08:00
Yichen Jiang f61d9982f8 feat(models): edit reasoning levels of custom model API models
A model row on a hand-declared pi-ai route now edits its reasoningEfforts
from the Models settings page instead of only through cordis.patch.yml.
A switch turns the field on or off; when on, each row pairs a level
select with the API value sent for it, which defaults to the level name.
Off only turns reasoning off, so its value field is disabled and a value
already stored for it is kept. Saving refuses a list without a level
besides off, and a help tooltip beside the label explains the values.
Catalog routes and the DeepSeek card are unchanged.

Refs #6260
2026-10-15 12:56:11 +08:00
Yichen Jiang 5d7d13289c test(web): decouple plugin snapshots from release versions 2026-10-14 20:59:15 +08:00
turtle1999andZiyaZhang 7fcaf07051 feat(plugin-manager): show a built-in feature preview for the badge skill
Plugin Manager hardcodes feature previews by package name, like its
experimental bundle lists, instead of reading a package manifest field.
The DSH badge skill bundle shows an English or Chinese illustration
below its description. Client bundles embed imported SVG, PNG, and
WebP files as data URLs through the shared tsdown preset, which
replaces the account package's own asset loader.

Co-authored-by: ZiyaZhang <[email protected]>
2026-10-14 16:22:56 +08:00
lsdsjy 2a7ba15ee1 fix(account): 同步头像渲染失败并完善恢复验证 2026-10-14 14:37:22 +08:00