Commit Graph
101 Commits
Author SHA1 Message Date
_Kerman 6a994ee917 Merge pull request #7463 from deepseek-harness/fix/plugin-install-failure-diagnostics
fix(plugin-manager): 安装失败时补齐诊断输出与完整日志入口
2026-10-29 11:42:57 +08:00
_Kerman e5269b3bd6 fix(plugin-manager): keep the check's diagnostic honest and off the answer
Review fixes for the GitHub connection check: the returned packageResult
no longer carries the check's command line (it stays a module-local field
of the streamed run), and the recorded line drops URL user information
while Git still runs the address as typed. A check the deadline stopped
records the coerced status 1 in the result because an exit code is a
number, while its streamed run reports none; the JSDoc, package README
and boot subsystem page now say exactly that.
2026-10-28 16:35:13 +08:00
_Kerman 9005026ea6 fix(plugin-manager): stream the install diagnostics a failed run already holds
A failed installation could show the generic sentence while its details
panel stayed empty. A pnpm run that printed nothing had its diagnostic
written to the complete log and the result but never streamed, and the
GitHub connection check that stops an installation before pnpm ran kept
its captured output only in the result. Both now reach the install-log
stream the dialog renders: the no-output diagnostic streams as the run's
output, and a network or timeout check failure streams the exact
git ls-remote command line and its output as the installation's only
run under the caller's request id, with no exit code when the check
timed out. A check failure pnpm may resolve streams nothing.
2026-10-28 14:08:30 +08:00
creatixchu dbd881ab46 feat(cua): deliver notarized helpers through on-demand plugin installation 2026-10-27 17:07:25 +08:00
winewill 6cbbc8caa5 Merge master and reconcile desktop diagnostic records 2026-10-26 11:05:45 +08:00
winewill 36dce6b596 fix(desktop): preserve operation identity and bound diagnostic shutdown 2026-10-23 14:36:04 +08:00
creatixchu 205a465046 feat(plugins): hide unsupported bundles from default discovery 2026-10-23 14:10:57 +08:00
creatixchu 82bbf85894 fix(plugins): report unsupported bundle activation and address review 2026-10-23 13:15:05 +08:00
creatixchu 2e0cc478e8 Merge master into bundle Host platform support 2026-10-23 13:12:09 +08:00
winewill 37d26dd098 merge: include upstream locale dictionary fixes 2026-10-23 13:05:17 +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
winewill cda5c51b4f merge: reconcile desktop diagnostics with master 2026-10-22 18:47:16 +08:00
Turtle b70735089d docs(plugin-manager): keep pendingBuilds JSDoc on one line 2026-10-22 15:38:14 +08:00
Turtle a8bf3e7600 fix(plugin-manager): harden git allowBuilds key parsing
Capture git keys that contain spaces, skip keys whose git URL carries a
credential, and isolate Git configuration for the real pnpm test.
2026-10-22 15:38:14 +08:00
Turtle 220301c614 fix(plugin-manager): offer script approval for git-hosted packages
pnpm 11 refuses to prepare a git-hosted dependency with
ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED instead of reporting ignored build
scripts. Classify that error as build-blocked and record the allowBuilds
key pnpm suggests, so the existing approval-and-retry flow applies.

Fixes #6837
2026-10-22 15:37:59 +08:00
Turtle 8255ebe3cc Merge remote-tracking branch 'origin/master' into turtle/git-https-source-auth-b46e6aff6136 2026-10-22 14:09:45 +08:00
Turtle 420a7797f6 fix(plugin-manager): harden Git transport probe prompts, fragments and attribution
Refs #6938
2026-10-22 14:07:10 +08:00
Turtle f59f0dfc67 fix(plugin-manager): install self-hosted Git plugins over SSH when only SSH can read them
Refs #6938
2026-10-22 13:42:56 +08: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
creatixchu be0c971766 Merge updated approval base into bundle platform support 2026-10-21 10:42:25 +08:00
ZiyaandZiyaZhang 5e9bb51724 feat(plugins): Ralph 循环和会话搜索默认从 GUI 隐藏 (#6754)
* feat(plugins): hide Ralph and session search from default discovery

* fix: keep hidden bundled plugins explicitly activatable

---------

Co-authored-by: ZiyaZhang <[email protected]>
2026-10-20 10:26:31 -07:00
winewill 9738e49720 fix(desktop): preserve partial-write history and isolate journals 2026-10-20 15:56:15 +08:00
creatixchu c7b6fba276 feat(plugins): enforce bundle Host platform support 2026-10-20 15:28:55 +08:00
winewill e9e7722d53 fix(desktop): preserve safe operation diagnostics across failures 2026-10-20 15:09:37 +08:00
winewill 4478a868ae fix(plugin-manager): retain refused install identity in diagnostics 2026-10-20 14:16:48 +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
winewill d136ac9f6f fix(diagnostics): retain observed plugin versions for recovery 2026-10-19 17:54:46 +08:00
winewill dfbe5d8da3 feat(desktop): retain bounded plugin operation diagnostics 2026-10-19 17:35:18 +08:00
turtle1999 b10bd84dfe feat(plugins): check and install newer registry versions of third-party bundles 2026-10-19 15:40:51 +08:00
turtle1999 3de3a977e0 feat(plugin-market): add the Custom plugin markets bundle and Discover tab
Read configured plugin market indexes on the Host, search them with fuzzy
multilingual matching, and install a chosen version from the Plugins page.

- dsh-plugin-market-index validates format-1 indexes and builds install
  arguments; inline icons are capped at 32 KiB.
- The pluginMarket service fetches configured http(s) URLs, parses bodies in
  a Worker Thread, caches documents, and pages filtered, ordered results with
  installation status and engines.dsh compatibility.
- Discover is an opt-in experimental bundle; the Plugins page gains a
  plugins.tab slot and confirmed installs.
- The plugin_market tool lists indexes, plugins, and versions for Creator mode.
- Plugin compatibility reads engines.dsh before DSH peer dependencies.
2026-10-15 05:37:44 +08:00
imccyu d7bd68ee7a feat(remote-access): add rbac policies and gate non-owner calls and events 2026-10-13 23:01:37 +08:00
turtle1999 879ad372ac feat(hmr): replace plugins whose package files changed during profile recomposition
With HMR, installing, enabling, disabling and removing bundles take effect live. Each profile recomposition compares
the loaded modules below the profile directory and its linked targets with disk, stops the plugins whose files
changed, and recomposes the profile through app-boot's recomposeProfile(): the rows the next generation drops are
removed first, the latest runtime resolution is published once, and the generation is applied and judged. Afterwards
HMR evicts the modules below the mappings the recomposition dropped.

- app-boot: recomposeProfile(); PluginPackages.resolution; ResolutionRestartRequired; the resolver accepts in-place
  version changes and relinks, and relocates Node's cached link real paths.
- plugin-manager: with HMR, installBundle refuses an installed package (already-installed), so an upgrade is a
  removal and an installation; every restart-required result carries a restartReason; removal uses the registry the
  package was installed from.
- ui-plugin-manager: the Official Update removes and then installs; restart prompts name their reason.
2026-10-13 22:15:57 +08:00
turtle1999 e776e2b3d2 refactor(plugin-manager): pass the profile to writePluginEnabled 2026-10-13 17:09:18 +08:00
turtle1999 5a107fdef5 fix(plugin-manager): keep anchors and comment placement when pruning switches 2026-10-13 00:50:54 +08:00
turtle1999 5b4cb3dd4d fix(plugin-manager): drop profile switches the bundles already imply 2026-10-12 19:28:12 +08:00
fz 634d7e96dc fix(plugin-manager): close pnpm logs when preparation fails 2026-10-12 13:05:37 +08:00
Turtle a8e9e9b546 fix(plugin): address review on the preset-patch revert
Let a title provider replace one that is still draining, so switching the
titles bundle during an in-flight request no longer leaves no provider.
Omit group container rows from bundle inventories, since they have no
plugin entry to switch. Drop the obsolete preset-target product-use case,
fix the Claude Code row id example, and refresh stale Agent Note text.
2026-10-07 21:27:38 +08:00
Turtle b173f3e2a2 revert(plugin): drop preset-scoped profile patches; ship optional tools as global Host rows
Remove the `{ preset, insert }` / `{ preset, id, ...override }` profile patch
operation added in #5773, together with the app-boot compiler and reload drain,
config-editor filtering, plugin-manager preset row inventory and retained-module
removal checks, the read-only preset rows on the Plugins page, and the
agent-preset-registry row identities that served them.

Session search, Ralph, persistent terminals, Codex, and Claude Code bundles now
insert ordinary Host rows whose tools register in the global tool layer, like the
earlier optional bundles. Every preset, including minimal, sees them, and toggling
a bundle updates live Agents without new composition generations.
2026-10-07 20:46:37 +08:00
Tianyi Cui b9bea234ce fix(plugin-manager): record ignored build scripts reported by a non-interactive pnpm
pnpm writes allowBuilds placeholders for blocked dependency scripts only when
it can prompt, so a managed run that always captures output left
pendingBuilds empty and the approval flow could not offer anything. The failed
run's own report is the surviving record: the profile policy now records those
names, which keeps approval, persistence, and the wildcard and decision guards
unchanged.
2026-10-07 12:58:25 +08:00
Tianyi Cui f7e5b6d354 fix(plugins): install official source bundles from the running checkout 2026-10-07 01:26:01 +08:00
Tianyi Cui e9a68b2484 fix(plugin): clarify on-demand recovery and preserve package diagnostics 2026-10-07 01:26:00 +08:00
Tianyi Cui a453218aff fix(plugins): retain unreadable official catalog entries 2026-10-07 01:26:00 +08:00
Tianyi Cui 8ed0b530ed feat(plugins): offer official bundles through on-demand installation 2026-10-07 01:26:00 +08:00
Tianyi Cui d68ae3bf51 fix(plugin): preserve bundled resource identity in executables 2026-10-06 23:48:59 +08:00
Tianyi Cui 1f8debb552 fix(plugin): validate explicit preset host activation targets 2026-10-06 23:48:59 +08:00
Tianyi Cui 7e65d1119b fix(plugin): preserve scoped identities across inspection consumers 2026-10-06 23:48:59 +08:00
Tianyi Cui 996007e103 fix(plugin): retain scoped row identity and source diagnostics 2026-10-06 23:48:59 +08:00
Tianyi Cui 599b9f45d4 fix(plugins): preserve scoped patches during Host edits 2026-10-06 23:48:59 +08:00
Tianyi Cui 15ae753dcd fix(plugin): inspect preset contributions before profile activation 2026-10-06 23:48:59 +08:00
Tianyi Cui b6ef9d5503 fix(plugin): identify retained scoped bundle rows precisely 2026-10-06 23:48:59 +08:00