Commit Graph
23821 Commits
Author SHA1 Message Date
Saafo f84559ffda 🧪 Match stats tooltip test to drawer content width 2026-10-23 17:46:04 +08:00
Saafo 1430dee92b 🔀 Sync master test configuration 2026-10-23 13:34:57 +08:00
Turtle 09c74eca30 Merge pull request #7018 from deepseek-harness/turtle/docs/unify-plugin-lists-b09478de437d
docs(official-bundles): state the util data-list exception and list contracts
2026-10-23 13:14:44 +08:00
Ziya 0da2e7e48a Merge pull request #6631 from deepseek-harness/feat/plugin-recommendations
feat(experimental): 实验性插件「插件推荐」:在回答末尾推荐官方插件
2026-10-22 22:04:34 -07:00
Turtle b11d3ac198 docs(official-bundles): limit the protected-list contract to its own refusal 2026-10-23 12:56:17 +08:00
Saafo 241468ce09 🔀 Sync master and resolve mobile sidebar integration 2026-10-23 12:52:35 +08:00
Turtle 2d130c7e61 Merge pull request #5610 from deepseek-harness/turtle/image-cache-stale-0a243f674e12
fix(client): reload overwritten local Markdown images in new renders
2026-10-23 12:44:17 +08:00
Turtle 3264972ac3 docs(official-bundles): state the util data-list exception and list contracts
Group READMEs no longer place the bundle lists under boot/, util/ names its
data-only exception, PROTECTED_PLUGINS states what removing a name allows,
EXTENSION_BUNDLES is described as a ranking, and the package README records
the browser inlining constraint.
2026-10-23 12:42:11 +08:00
ZiyaZhang 935d9f178a Merge feat/creation-recommendations into plugin recommendation experiment
Takes master's move of the official plugin lists into
@deepseek-ai/dsh-official-bundles. The Plugins page files come from master,
and the plugin recommendations bundle follows the personalized pages bundle
in OPTIONAL_BUNDLES, MORE_BUNDLES and EXPERIMENTAL_BUNDLES.
2026-10-22 21:41:49 -07:00
ZiyaZhang beb23ac093 Merge remote-tracking branch 'origin/master' into pr-6635-ci
# Conflicts:
#	packages/client/ui-plugin-manager/src/client/PluginManagerPage.tsx
#	packages/client/ui-plugin-manager/src/client/presentation.ts
2026-10-22 21:37:10 -07:00
Turtle b6380c865b Merge pull request #7012 from deepseek-harness/turtle/unify-plugin-lists-b09478de437d
refactor(util): collect hardcoded official plugin lists in dsh-official-bundles
2026-10-23 12:31:19 +08:00
ZiyaZhang af711df6e4 test(web): refresh the card fixtures for the eight-language plugin catalog
The plugin skill's catalog lists every official plugin's title and
description in the eight shipped languages, and the page skill's catalog
lists the plugin recommendations entry with its new translations.
2026-10-22 21:30:04 -07:00
ZiyaZhang fee58ad80b feat(experimental): translate the plugin recommendation packages into the shipped languages
Master now ships Spanish, French, German, Russian and Portuguese, and its
locale gates require every package's plugin metadata and Client dictionaries
in those languages. Both plugin recommendation packages add them, the card
registers the new dictionaries, and the terms follow the card and Plugins
page translations.
2026-10-22 21:27:14 -07:00
ZiyaZhang 72c104e099 Merge feat/creation-recommendations into plugin recommendation experiment
Takes master 020a053a120 through the base, which ships Spanish, French,
German, Russian and Portuguese and requires them in every package. The page
card fixture takes the base's eight-language plugin catalog.
2026-10-22 21:26:27 -07:00
ZiyaZhang fd963e1cf3 test(web): refresh the page card fixture for the eight-language plugin catalog
The skill result lists official plugin titles and descriptions in every shipped language.
2026-10-22 21:22:06 -07:00
ZiyaZhang 00b5405e98 feat(experimental): translate the card packages into the shipped languages
Master now ships Spanish, French, German, Russian and Portuguese, and its locale gates require every package's plugin metadata and Client dictionaries in those languages. The four card packages add them and register the new dictionaries.
2026-10-22 21:22:05 -07:00
Turtle 7f324909a9 docs(official-bundles): describe the plugin manager lists precisely 2026-10-23 12:12:38 +08:00
Turtle 9b4aacb41a refactor(util): collect hardcoded official plugin lists in dsh-official-bundles
Move @deepseek-ai/dsh-official-bundles from packages/boot to packages/util
and move the plugin manager's protected plugin list and the Web plugin
page's hidden, ordered, and experimental bundle lists into it, so editing
any of these lists no longer touches app-boot or either plugin manager
package.
2026-10-23 12:12:38 +08:00
ZiyaZhang a34a4524e5 Merge remote-tracking branch 'origin/master' into pr-6635-ci 2026-10-22 21:12:11 -07:00
imccyu b5fb03927e Merge pull request #7007 from deepseek-harness/07akioni/fix-master-locale-parity
fix: 同步 master 合并后的五种语言字典
2026-10-23 12:10:32 +08:00
ZiyaZhang b5d4e93861 refactor(experimental): drop experimental from the plugin recommendation package names
The two packages keep their directories under packages/experimental and are
registered as experimental name exceptions:

- @deepseek-ai/dsh-plugin-recommendations
- @deepseek-ai/dsh-client-ui-plugin-recommendations

Loader row ids, the Remote service name, locale namespaces and the
enable_official_plugin action are unchanged. Generated catalogs are
regenerated, and both card Web fixtures record the renamed bundle in their
skills' plugin catalogs.
2026-10-22 21:02:23 -07:00
ZiyaZhang 30dafd2106 Merge feat/creation-recommendations into plugin recommendation experiment
Takes the card packages' new names and master up to e115cc98d65. The plugin
recommendation packages and their bundle rows now name
@deepseek-ai/dsh-action-cards and @deepseek-ai/dsh-client-ui-action-cards;
generated catalogs are regenerated, and both card Web fixtures record the
renamed bundles in their skills' plugin catalogs.
2026-10-22 20:58:11 -07:00
07akioni e1d9697f6c test: match the neutral task cleanup confirmation title 2026-10-23 11:57:29 +08:00
ZiyaZhang 57195d1934 refactor(experimental): drop experimental from the card package names
The four packages keep their directories under packages/experimental and
are registered as experimental name exceptions:

- @deepseek-ai/dsh-action-cards
- @deepseek-ai/dsh-client-ui-action-cards
- @deepseek-ai/dsh-creation-recommendations
- @deepseek-ai/dsh-client-ui-creation-recommendations

Loader row ids, plugin record names, message source kinds, the Remote
service name and locale namespaces are unchanged. Generated catalogs are
regenerated, and the page card Web fixture records the renamed bundle in
the skill's plugin catalog.
2026-10-22 20:48:18 -07:00
07akioni 0926f361b2 fix: align task cleanup copy across locales 2026-10-23 11:46:17 +08:00
ZiyaZhang 0d97af58b5 Merge commit 'e115cc98d65' into pr-6635-ci 2026-10-22 20:40:34 -07:00
07akioni 3ae19c15a9 fix: keep clear confirmation counts grammatically neutral 2026-10-23 11:33:25 +08:00
07akioni 84b028655b fix: synchronize new locales with current client dictionaries 2026-10-23 11:29:25 +08:00
imccyu b049cd257c Merge pull request #6980 from deepseek-harness/07akioni/more-locales
feat(i18n): add Spanish, French, German, Russian and Portuguese
2026-10-23 11:22:55 +08:00
Chinesezjc 7bf0640c13 Merge pull request #6734 from deepseek-harness/feat/schedule-clear-ended
feat(schedule): remove every ended task from the automation page
2026-10-23 11:20:28 +08:00
Turtle b3189f6fad Merge pull request #6804 from deepseek-harness/turtle/subagent-picker-row-align-5fdaf8a5d12d
fix(web): align subagent switcher rows without a sidebar button
2026-10-23 10:31:22 +08:00
Turtle 918c01c1bf Merge pull request #6889 from deepseek-harness/turtle/menu-trigger-gap-a6ac85a85cd9
fix(ui-primitives): keep header menus next to their trigger on macOS desktop
2026-10-23 10:31:07 +08:00
Turtle 153b760fe8 Merge branch 'master' into turtle/subagent-picker-row-align-5fdaf8a5d12d 2026-10-23 10:19:27 +08:00
Turtle a0cbe9331c Merge pull request #6887 from deepseek-harness/turtle/trace-tab-indicator-clip-bede5ab93d0f
fix(ui-conversation): keep the active tab bar visible over Trajectory and widen tab targets
2026-10-23 10:14:02 +08:00
Turtle af5ab40ac5 Merge remote-tracking branch 'origin/master' into turtle/menu-trigger-gap-a6ac85a85cd9
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
2026-10-23 10:01:13 +08:00
Turtle 424cde1de2 Merge pull request #6950 from deepseek-harness/turtle/preview-codemirror-slow-e4bae59874fa
fix(web): speed up lazy bundle loads in the Web preview
2026-10-23 09:56:19 +08:00
Turtle 06f960d705 Merge pull request #6984 from deepseek-harness/turtle/hover-truncated-text-e74d638a44b5
feat(ui-chat): show cut-off composer statistics in a tooltip
2026-10-23 08:40:51 +08:00
ZiyaZhang 63c46af8b4 test(web): refresh the plugin card fixture after the approval prompt wording change 2026-10-22 09:27:46 -07:00
ZiyaZhang 39fa48b074 Merge feat/creation-recommendations into plugin recommendation experiment
Takes current master through the base, including the runtime-context
approval sentence that recorded Web fixtures replay against.
2026-10-22 09:27:46 -07:00
ZiyaZhang 3801502461 test(web): refresh the page card fixture after the approval prompt wording change
Master now describes enabled approval prompts in the runtime context; the fixture records the new sentence.
2026-10-22 09:17:59 -07:00
ZiyaZhang 1e9600be15 Merge remote-tracking branch 'origin/master' into pr-6635-ci 2026-10-22 09:14:14 -07:00
ZiyaZhang b62dfa2d63 feat(experimental): invite to plugin cards only from the accepted call's result
The model sometimes wrote the skill's invitation sentence without calling
propose_action, so users read "click below" with no card. The plugin kind
now registers its invitation, which only an accepted call's result carries:
"Card shown below your answer. Do not restate it. End with at most one short
invitation in the user’s language to click Enable below; do not say the
plugin is already on." The skill drops its invitation sentence and says the
call's result tells how to end the answer. A test runs a real turn and checks
that the accepted result carries the invitation and a refused call does not;
the plugin Web fixture is refreshed for the new skill and result text.
2026-10-22 09:04:47 -07:00
ZiyaZhang d9b95adf93 Merge feat/creation-recommendations into plugin recommendation experiment
Takes the card invitation that only an accepted call's result carries. The
page card fixture keeps the base's skill and result text and the plugin
recommendations entry in its catalog. The plugin kind gains its invitation
in the next commit.
2026-10-22 09:03:38 -07:00
ZiyaZhang 969b4bd5f2 feat(experimental): give the card invitation only in the accepted call's result
The model sometimes wrote the skill's invitation sentence without calling
propose_action, so users read "click below" with no card. Each card kind
now registers its invitation, and only an accepted call's result carries
it: "Card shown below your answer. Do not restate it. <invitation>".
The personalized-pages skill drops its invitation sentence and says the
call's result tells how to end the answer; the Web fixture is refreshed
for the new skill and result text.
2026-10-22 08:57:29 -07:00
Tianyi Cui 5219b36110 Merge pull request #6498 from deepseek-harness/turtle/approval-never-wording-7e59b56e7f5c
fix(user-approval): describe approval policies by meaning in model-visible text
2026-10-22 23:47:16 +08:00
imccyu 3725e75edd Merge pull request #6991 from deepseek-harness/worktree-sync-dsh-0.2.1-to-master-1022
release(dsh): sync 0.2.1 navigation and model listing to master
2026-10-22 23:39:15 +08:00
imccyu 261f2db185 Merge master into DSH 0.2.1 navigation and model listing sync 2026-10-22 23:22:35 +08:00
ZiyaZhang 38c05d24b2 fix(experimental): confirm unconfirmed plugin cards before Not now
An enable cut off by a plugin reload can still land. The kind now uses the
shared reconcile step: before every action on an unconfirmed card, including
Not now, it checks the profile and records enabled when the plugin is on, so
the card is not dismissed or enabled again.
2026-10-22 08:17:48 -07:00
ZiyaZhang dbe0eb3aa2 Merge feat/creation-recommendations into plugin recommendation experiment
Takes the action-card fixes: kinds reconcile before every action, only live
roots get cards, the tool refuses while messages are queued, and bodies no
longer receive ready. The plugin card drops ready, its queued-card test goes
with the suppressed phase, and the shared-row limitation follows the base's
new limitations.
2026-10-22 08:16:20 -07:00
ZiyaZhang cb425d1384 fix(experimental): settle plugin cards from what enabling reports
- An enable that a plugin reload cuts off records unconfirmed; the card
  offers a retry and Not now, and a retry that finds the plugin on records
  enabled because this card's change landed.
- A rejected profile change records failed with operation-error and keeps
  the retry instead of failing the click; overridden and cancelled are gone
  because enabling a bundle only reports applied, restart-required or failed.
- A refused or lost catalog lookup keeps Not now and offers Try again, with
  separate copy for each; a settled card keeps its outcome after its plugin
  leaves the catalog. Only the clicked button shows Working, the details
  label is interpolated, and the reason and description stay its
  accessible description.
- The Host entry exports its inject list, so the configuration catalog lists
  its services; the skill keeps its rules without the examples.
- With both experiment bundles on, the shared action-card rows cannot be
  switched or configured on the Plugins page; the READMEs say so and a
  Loader test pins it while the bundles still switch.
- The unused intent fixture is removed and the evaluation set expects a
  create_personalized_page card for the counter.
2026-10-22 08:13:22 -07:00