1067 Commits
Author SHA1 Message Date
mektpoy ddd9cbc243 chore(build): split the liveshare protocol compiler faces
The package carried one Host-based tsconfig that both aggregates registered, so the browser carrier
was compiled under the Host face while the wire codecs that use Buffer were compiled under the same
config. It now follows the repository's double-face template: a solution-only package root, a Host
leaf (wire codecs, identity contract, shared vocabulary, and the root barrel that re-exports the
carrier), and a browser leaf for the viewer carrier and the pure types it shares. The two repository
aggregates register the matching leaf, and the carrier stays in the Host file list because the root
barrel re-exports it for the Relay's script generation.

The tsdown comment now states the two compiler faces and why only the Host face publishes runtime
modules.
2026-10-23 16:13:23 +08:00
mektpoy 27ff469ea5 feat(liveshare-protocol): add the shared wire frames and identity contract
The owner bundle and the Relay must agree on the frames they exchange and on
how one viewer identity is keyed, without either depending on the other. This
package carries both halves: the owner/worker IPC frames, the gateway frames the
Relay forwards without interpreting, and the provider-neutral identity contract
with its loopback mock. `parseGatewayFrame` answers undefined for input this
build does not understand instead of failing the connection, and
`unsupportedFrameRefusal` turns such a frame into the refusal to send back.

The package is registered as a release member, a doc-standard library, a
tsconfig host and client program, and carries the coverage lane the wire codec
needs. Its Further Exploration list names the owner bundle and the Relay
without linking to packages this layer does not add yet.
2026-10-23 16:13:05 +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 <199893125+ZiyaZhang@users.noreply.github.com>
2026-10-23 07:55:49 +00:00
Ziya 0da2e7e48a Merge pull request #6631 from deepseek-harness/feat/plugin-recommendations
feat(experimental): 实验性插件「插件推荐」:在回答末尾推荐官方插件
2026-10-22 22:04:34 -07: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
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
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
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
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 0d97af58b5 Merge commit 'e115cc98d65' into pr-6635-ci 2026-10-22 20:40:34 -07: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
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
ZiyaZhang c6d9a964d3 Merge feat/creation-recommendations into plugin recommendation experiment 2026-10-22 06:50:25 -07:00
ZiyaZhang 9980af2d48 feat(experimental): add shared action cards behind a propose_action tool
action-cards owns the propose_action tool, the actionCards projection of
proposals and decisions, the act Remote and the card status notice; card
kinds register an action name, skill, details schema, verbs and handler.
The tool is admitted per Agent only after a registered kind's skill loads.
client-ui-action-cards draws the card frame below the completed answer,
lets kinds register a body per action and adds the propose_action
process row.
2026-10-22 06:36:30 -07:00
ZiyaZhang a07485bdc7 refactor(experimental): drop the dsh-action answer block and its chat filter
Personalized pages no longer proposes cards through a fenced block in the
answer, so the chat stops hiding dsh- fences and the block parser package
goes away with its registrations.
2026-10-22 06:28:09 -07:00
TurtleandZiyaZhang 9ede8f237d feat(ui-chat): show cut-off composer statistics in a tooltip
Co-authored-by: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com>
2026-10-22 20:40:28 +08:00
07akioni 84edeadc2b feat(i18n): add Spanish French German Russian and Portuguese 2026-10-22 19:53:52 +08:00
ZiyaZhang caa5535dee Merge feat/creation-recommendations into plugin recommendation experiment 2026-10-22 02:47:01 -07:00
ZiyaZhang 80997ea36a Merge master into personalized pages experiment 2026-10-22 02:34:47 -07:00
Turtle b908e13271 Merge remote-tracking branch 'origin/master' into turtle/image-cache-stale-0a243f674e12
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 14:57:42 +08:00
Turtle f837cdbfbf Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 14:50:11 +08:00
ZiyaZhang ac49bef0c2 Merge master into personalized pages experiment 2026-10-21 23:42:16 -07:00
ZiyaZhang 8c780f4b7d fix(experimental): share the dsh-action fence scanner and harden the page projection 2026-10-21 22:40:50 -07:00
Turtle 5f77d80555 Merge remote-tracking branch 'origin/master' into turtle/icon-tokens/icons-plugin-tokens-e20dec90761c
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 13:24:28 +08:00
ZiyaZhang 83d3c6f8e9 Merge master into personalized pages experiment 2026-10-21 22:08:51 -07:00
Turtle e0e37bfd3d refactor(boot): move official bundle lists out of app-boot
Profile templates and the default, optional, on-demand, retired, and
installation-owned bundle lists move to the new data-only package
@deepseek-ai/dsh-official-bundles, so editing a bundle list no longer
touches app-boot.
2026-10-22 11:56:47 +08:00
Turtle 3e5deca05d Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 11:37:26 +08:00
ZiyaZhang 2eb1b89cac refactor(experimental): share the dsh-action parser and drop the cross-experiment coupling
The fenced-block parser moves to the zero-dependency package
@deepseek-ai/dsh-util-action-block, which the client bundle inlines;
Personalized pages and Plugin recommendations both read answers through
it and no longer import or edit each other. Personalized pages yields:
a page block in an answer or turn that also carries another action's
block is logged but never offered, and a later other-action block
retracts this turn's undecided page card. Plugin recommendations never
yields and keeps one plugin card per turn of its own.
2026-10-21 13:08:06 -07:00
ZiyaZhang e11ce354c1 Merge feat/creation-recommendations into plugin recommendation experiment 2026-10-21 11:00:50 -07:00
ZiyaZhang 8efbfaf4e0 Merge master into personalized pages experiment 2026-10-21 10:39:35 -07:00
Turtle 9009edb7c2 Merge remote-tracking branch 'origin/master' into turtle/icon-tokens/icons-plugin-tokens-e20dec90761c
# Conflicts:
#	packages/client/ui-primitives/src/icons/index.tsx
2026-10-22 01:13:40 +08:00
Turtle 6470b39557 fix(client): harden theme icon replacements and add a real-composition test
Store a frozen copy of ThemeDefinition.icons, treat null as absent,
require replacement element ids under the symbol id, document the trust
level and ignored root attributes, and boot a theme plugin through the
Loader to check the sprite swaps and restores icons.
2026-10-22 00:59:21 +08:00
ZiyaZhang 7cafebe528 Merge feat/creation-recommendations into plugin recommendation experiment 2026-10-21 09:11:34 -07:00
ZiyaZhang ec1021b052 Merge master into plugin recommendation experiment 2026-10-21 09:09:40 -07:00
zhc ea7c67887b Merge master into fix/image-drag-plugin-ownership 2026-10-21 23:52:53 +08:00
Kaige-Gaoandimccyu 0778dec09f feat(ui-user-questions): show answered batches as shared message bubbles (#6362)
* feat(ui-user-questions): show answered batches as shared message bubbles

* refactor(ui-primitives): share clipboard confirmation lifecycle

* test(web): include answered question bubbles in steering goldens

* fix(ui-user-questions): keep answered turns collapsible

* test(ui-user-questions): drop the removed compactAnswer expectation

master removed ChatTurnProcessPresentation.compactAnswer in aaeb344
("fix(chat): keep the reply gap on a folded final answer"); reply spacing
now comes from the adjacent-row rules. The rebase left this assertion
behind, so the parametrized replay/live/prepend cases failed on every CI
coverage lane even though typecheck stayed green: toMatchObject accepts
the stale property.

* fix(ui-user-questions): address answer bubble review feedback

* test(web): observe file card styles after both cards mount

---------

Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com>
2026-10-21 23:44:02 +08:00
TurtleandShigma 4f7ebe8d34 test(web): cover conversation view tab hit testing in the browser
Co-authored-by: Shigma <33423008+shigma@users.noreply.github.com>
2026-10-21 23:15:02 +08:00
zhc a0b45086da Merge master into fix/image-drag-plugin-ownership
保留文本交互和文件拖放注入,合并依赖及生成目录。
2026-10-21 21:22:17 +08:00
ZiyaZhang 3a8c1daf66 Merge master into personalized pages experiment
Follow the tool executor refactor: the tool/ptc-dispatch event type now comes
from dsh-tool-executor-ptc, and the tests invoke tools through dsh-tool-testkit.
Regenerate the doc graphs, tool catalog and persistence schema after the merge
and re-record their translation pairing.
2026-10-21 03:50:29 -07:00
ZiyaZhang b6c3f57c6c Merge master into personalized pages experiment 2026-10-21 03:35:02 -07:00
Turtle a3b26c896b Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18 2026-10-21 18:21:31 +08:00
_Kerman d98025a089 Merge origin/master into xtr/tool-executor-plugins 2026-10-21 18:01:55 +08:00
Turtle 16cf3316e6 Merge remote-tracking branch 'origin/master' into turtle/image-cache-stale-0a243f674e12
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-21 17:58:20 +08:00
Turtle da7a582491 Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18
# Conflicts:
#	apps/web/tests/plugin-manager.e2e.ts
#	apps/web/tsconfig.json
#	packages/client/ui-plugin-manager/README.i18n.yaml
#	packages/client/ui-plugin-manager/README.md
#	packages/client/ui-plugin-manager/README.zh.md
#	packages/client/ui-plugin-manager/src/client/PluginManagerPage.module.css
#	packages/client/ui-plugin-manager/src/client/PluginManagerPage.tsx
#	packages/client/ui-plugin-manager/tests/components.client.spec.tsx
#	packages/client/ui-primitives/README.i18n.yaml
#	tsconfig.host.json
2026-10-21 16:44:06 +08:00
ZiyaZhang b6c967c984 Merge master into experimental personalized pages 2026-10-21 01:21:39 -07:00
07akioni ed783066e6 fix(i18n): complete Japanese plugin metadata and guard locale coverage 2026-10-21 16:14:12 +08:00
Yif 3c26689899 fix(plugin-manager): make sticky header scrolling smooth
让插件主页面的吸顶过渡随滚动连续到位,而不是滚过 8px 后突然重排。

- 标题栏与列表共用滚动容器,保留展开态占位,避免收缩改变滚动范围
- 用不可交互的临时布局副本测量展开态和吸顶态,在同一组控件上按滚动距离更新位移和宽度
- 保持控件身份与焦点,补偿占空间的滚动条,防止水平偏移和临界位置来回抖动
- 小屏优先将 Tabs 与操作按钮排成一行,放不下时固定 Tabs 在上、按钮在下,吸顶前后不换序
- 仅 macOS 收起侧栏的吸顶态采用窗口安全区外 8px 留白,不再限制宽度;其他平台和状态不变
- 补充端点布局、滚动往返、短列表、滚动条和平台隔离回归

本次到插件主页面的吸顶动画与布局优化为止。实验性插件相关页面的吸顶体验留待后续单独处理。
2026-10-21 16:09:06 +08:00
_Kerman a53ecb2f3a Merge origin/master into xtr/tool-executor-plugins 2026-10-21 15:56:44 +08:00