Commit Graph
28 Commits
Author SHA1 Message Date
ZiyaandMagolor 341ea6eea4 feat(schedule): integrate standalone tasks with the existing WebUI (#6189)
* feat(schedule): manage Host tasks with typed timing and delivery targets

* fix(schedule): align task creation button halves

* refactor(schedule): remove obsolete Session reminder runtime

* refactor(schedule): simplify task UI and preserve keyboard navigation

* fix(schedule): address task delivery and interface review findings

* test(schedule): normalize bundle module paths on Windows

* fix(schedule): cover reserved targets and trim unrelated changes

* refactor(schedule): minimize task management changes after rebase

* test(schedule): align rebased fixtures and documentation records

* test(schedule): refresh SDK scenarios added on master

---------

Co-authored-by: Magolor <[email protected]>
2026-10-29 18:11:48 +08:00
creatixchu cf65ee6e01 Merge master into bundle Host platform support 2026-10-25 11:58:20 +08:00
Turtle 94ed636380 fix(tool-ask-user): tell the model a skipped question is answered
The blocking ask_user_question description did not explain that an answer
item with empty selected and no custom is a user skip, so models re-asked
the same question after the user clicked Skip.

Refs #7134
2026-10-24 13:23:53 +08:00
ZiyaandZiyaZhang d6d51be4cb feat(experimental): 把个性化页面和插件推荐合并为实验性插件「个性化推荐」 (#7034)
* feat(experimental): ship the two card experiments as one Personalized recommendations bundle

@deepseek-ai/dsh-personalized-recommendations inserts the action card
service, its browser half, Personalized pages and Plugin recommendations
with their card bodies under the existing row ids. As the only layer that
declares those ids, the Plugins page addresses and switches each row,
including the two shared card rows that were read-only while two bundles
inserted them.

The two experiment packages stop being bundles; the new bundle takes their
place in the official lists and the dsh installation, with the personalized
pages icon, localized title and description, and a feature preview of both
cards. The two feature rows describe what they do on the bundle page.

* fix(experimental): drop the model reason line from plugin recommendation cards

The reason follows the language of the user's question while the catalog
description below it follows the interface language, so the two lines could
differ in language and largely repeat each other; the answer already gives
the reason. The card keeps the catalog title and description, both in the
interface language, as its details target.

* test(web): refresh the card fixtures for the Personalized recommendations bundle

Both card replays enable the new bundle, so each Session lists both card
skills, and each skill's catalog lists Personalized recommendations in place
of the two former bundles. The plugin card goldens lose the reason line.

---------

Co-authored-by: ZiyaZhang <[email protected]>
2026-10-23 07:55:49 +00:00
creatixchu 4026b5f2b0 test(plugins): refresh the scoped recommendation recording 2026-10-23 13:46:34 +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 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
ZiyaZhang 63c46af8b4 test(web): refresh the plugin card fixture after the approval prompt wording change 2026-10-22 09:27:46 -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 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
ZiyaZhang ad482a45ec test(web): replay the plugin card through propose_action
The plugin fixture now offers the card with a propose_action call, the
tool schema pin records the tool addition after the skill load, and the
card goldens name the region after the card title as the shared frame does.
The page fixture's skill catalog lists the plugin recommendation bundle.
2026-10-22 07:18:05 -07:00
ZiyaZhang b0e5c20a29 test(web): re-record the plugin card prompt pin after the subagent guidance change 2026-10-22 03:25:45 -07:00
ZiyaZhang 51000d47c5 style(experimental): make the recommendation card one hover target
The card takes the deliverables card border and layer background. Its title,
reason and description stay one details button, which now highlights as a
whole on hover and keyboard focus with the interactive hover token instead of
underlining a separate "View details" hint; the hint copy is removed and the
Web goldens lose it from the button text.
2026-10-22 03:15:15 -07:00
ZiyaZhang 0bc0e53173 feat(experimental): route capability questions to the official-plugin skill
The official-plugins catalog entry now also triggers when the user asks how
to do or use something in this app, asks whether it can do something, or says
a capability is missing, and names tools, automation, access, badges and
signatures besides the earlier categories. At 495 characters it stays within
the skill catalog's 500-character limit; the previous 535-character entry lost
its exclusions to truncation. The Web replay fixture records the new catalog
line.
2026-10-22 03:13:23 -07:00
ZiyaZhang 776f1ccf48 revert(experimental): keep the original descriptions of the other official plugins
Routing hints belong in the official-plugins skill, not in the
user-visible descriptions of thirteen other plugins; the plugin pages,
permission pages and the replay goldens return to their master text.
2026-10-21 13:08:09 -07:00
ZiyaZhang d4800ceca2 refactor(experimental): read answer blocks through the shared parser subpath
The recommendation card imports actionBlocksOf from the personalized pages
action-block subpath instead of keeping its own copy, and the Web replay
tool schema golden follows the merged master.
2026-10-21 11:10:10 -07:00
ZiyaZhang 50be7d37c9 feat(experimental): recommend official plugins through dsh-action answer blocks
Replaces list_official_plugins, suggest_plugin and the routing prompt
section with the official-plugins skill, whose load appends the live
catalog, and an enable_official_plugin block at the end of the answer.
The card reads catalog text from the Host, Enable goes through the plugin
manager, and each outcome reaches the model as a status notice on the
next request. Adds the queuedMessageLimit option, en/zh/ja card copy and
a re-recorded persistence change and Web replay.
2026-10-21 10:50:48 -07:00
ZiyaZhang 1df9e40786 fix(experimental): avoid repeated discovery and honor declined recommendations 2026-10-20 05:11:51 -07:00
ZiyaZhang 03ff1010b6 fix(experimental): allow optional reusable-page suggestions 2026-10-20 02:05:22 -07:00
ZiyaZhang 578997c475 test: refresh plugin routing Web replay pins 2026-10-20 01:29:06 -07:00
ZiyaZhang 5eba1ec929 fix: guide capability discovery with scenario descriptions 2026-10-19 22:07:28 -07:00
ZiyaZhang 8145f4c05d fix(plugin-recommendations): settle actions safely across HMR and replay 2026-10-19 21:32:36 -07:00
ZiyaZhang 6c7f45624f fix(plugin-recommendations): preserve explicit execution limits after enabling 2026-10-19 11:38:56 -07:00
ZiyaZhang 4f40d71a22 Pin clarified recommendation guidance in the Web replay 2026-10-19 10:04:30 -07:00
ZiyaZhang fbe725a798 fix(plugin-recommendations): explain automatic hot activation 2026-10-19 08:49:42 -07:00
ZiyaZhang 7983ae9d5c feat: open recommended plugin details from conversation cards 2026-10-19 08:14:08 -07:00
ZiyaZhang facceb8be9 feat(experimental): recommend official plugins after completed answers 2026-10-19 07:46:24 -07:00