Commit Graph
3684 Commits
Author SHA1 Message Date
Yichen Jiang dc9256536b Merge remote-tracking branch 'origin/master' into feat/plugin-mgmt-4-web
Master now carries the final #4182 plugin manager and the live client
module graph of #4189, so the web management layer is re-ported onto
them:

- The manager keeps master's `ManagementError` codes, `ChangeResult`
  stages, `configure()` under `hmr.runExclusive`, `reload()` warnings
  and `writePluginEnabled` name matching, and adds back `inspect`,
  request-id installs with `plugin-manager/install-log` and
  `plugin-manager/install-state`, `cancelInstall`, `listBundles` titles,
  rows and overrides, `packageResult.kind`, `pnpmCommand` and
  `inspectTimeoutMs`, and `plugin-manager/changed` after each change and
  each `profile/reconciled`. A failed or cancelled installation restores
  the snapshotted manifest and lockfile instead of master's one-shot
  `pnpm remove` cleanup, so `cleanup` and `remainingDependencies` leave
  the result.
- App boot keeps master's reconciliation diagnostics and emits
  `profile/reconciled`; `watchUserPatches` goes with the launcher's
  watcher now that HMR owns profile reloads.
- The settings Plugin list tab stays read-only with #4189's page-local
  sync failures and retry; master's bundle form and row checkboxes are
  dropped again. The sidebar page words the Host's codes through its
  dictionary, and a client bundle change follows the live module graph
  without a page reload.
- The web e2e scaffold no longer chooses a reload policy: the base
  bundle's `hmr` row turns on with the profile context and application
  readiness, and `profile.hmr: false` disables it through an overlay for
  the startup-only scenario.
2026-09-15 17:28:08 +08:00
Turtle 511216983e Merge pull request #4182 from deepseek-harness/turtle/plugin-manager
feat: manage profile plugins with unified dsh-hmr
2026-09-15 16:41:28 +08:00
Yichen Jiang 4d1adb8541 feat(web): manage plugins over the #4182 manager from the sidebar page
The sidebar Plugins page now drives `ctx.pluginManager` from #4182 and the
settings Plugin list tab goes back to read-only: its bundle form and row
checkboxes are removed, and the page joins `listBundles` with
`listPlugins` into one view per bundle, decides availability from the
inventory's `managementAvailable`, switches bundles and rows through
`setBundleEnabled` and `setPluginEnabled`, and confirms uninstalls.

The manager gains what the guided install dialog needs: `inspect(spec)`
reads a spec through the registry or a directory before anything installs
and refuses specs without a bundle; `installBundle` takes a request id,
streams each pnpm run as `plugin-manager/install-log`, reports its phases
as `plugin-manager/install-state`, classifies a failed run into
`packageResult.kind`, names the bundle it added, and restores
`package.json` and `pnpm-lock.yaml` when the run fails, is cancelled, or
adds a package without a bundle patch; `cancelInstall(requestId)` answers
only after pnpm exited and the files are back; `listBundles` carries
titles, one-liners, declared rows with their live entries, and the
built-in rows a bundle overrides; every completed operation and every
patch generation applied outside the manager emits
`plugin-manager/changed`. The config gains `pnpmCommand` and
`inspectTimeoutMs`. App boot emits `profile/reconciled` after each applied
patch generation and finds a root Include mounted under its pinned id by
another copy of the module.

Row diagnostics, dependency checks, and the non-bundle dependency group
are not carried over; the web e2e scaffold mounts a launcher-style
managed profile instead of the removed profile runtime.
2026-09-15 16:36:31 +08:00
Yichen Jiang b3e964c340 Merge PR #4182 (turtle/plugin-manager) into feat/plugin-mgmt-4-web
The web plugin management layer now sits on the current-profile plugin
manager from #4182 instead of the boot and manager layers of #3593 and
#3594. This merge takes #4182's host side whole — `packages/boot/hmr`,
its `packages/boot/plugin-manager`, `profileContext` in app-boot, the
vendored loader change — and drops the replaced host packages and their
app-boot, inventory, Remote, CLI, and catalog edits. The web files of
#3596 are carried over unchanged: the sidebar page package, the
ui-primitives terminal changes, the settings-section tweaks, the e2e
scenarios and fixtures, and the two web Agent Notes. They do not build
against the new host until the following commit adapts them.
2026-09-15 16:36:31 +08:00
Turtle cc190b07d5 Merge pull request #4002 from deepseek-harness/turtle/blame-weighted-approval
feat(ci): scale approval weights with production blame
2026-09-15 16:30:25 +08:00
Turtle 311156b1c2 Merge master and preserve profile-managed HMR 2026-09-15 16:20:47 +08:00
Turtle 794b658401 fix(ci): address production blame approval review 2026-09-15 16:14:37 +08:00
07akioni 05fb7b90e8 Merge pull request #3981 from deepseek-harness/07akioni/thin-electron-webui
refactor(desktop): run shared Web UI in a thin Electron shell
2026-09-15 15:39:43 +08:00
07akioni 9ce6d98e11 fix(ci): validate Web injection payload and cover macOS sidebar controls 2026-09-15 14:32:29 +08:00
Turtle 59fb655d66 Merge remote-tracking branch 'origin/master' into turtle/plugin-manager 2026-09-15 14:16:09 +08:00
Turtle 9cee793b90 Merge branch 'master' into turtle/blame-weighted-approval 2026-09-15 14:08:57 +08:00
Turtle 86497c479c Merge remote-tracking branch 'origin/master' into turtle/plugin-manager
# Conflicts:
#	packages/client/ui-settings-plugin-inventory/package.json
2026-09-15 13:09:38 +08:00
Turtle abd765a600 refactor(hmr): own profile reload lifecycle through YAML 2026-09-15 13:01:06 +08:00
Yichen Jiang ac2bed35e2 feat(web): guide plugin installation with a pre-install check and classified failures
The install dialog asks the Host to read a spec before installing it:
`plugins/inspect` sorts the spec (registry name, absolute path, git address,
tarball), asks the registry through `pnpm view` in the profile directory, or
reads a directory's package.json, and refuses what would fail with
`plugins/inspect-rejected` and a problem the dialog words under the field.
A failed pnpm run carries a `kind` classified from how it ended and what pnpm
printed, shown as one line with the output folded behind the details.
Enabling happens after the fact from the installed screen, which scrolls the
list to the first new bundle. Refusals of the moment and the confirmed
cancellation are toasts; the run is stopped through the manager's
`cancelInstall` and the dialog offers the spec again once the Host confirms.
The non-pack dependency group folds by default under its own name.

The host config gains `inspectTimeoutMs`; the CLI passes it explicitly.
2026-09-15 12:43:44 +08:00
Yichen Jiang ad8a00c291 Merge remote-tracking branch 'origin/master' into worktree/sidebar-session-recovery
# Conflicts:
#	packages/subprocess/subprocess-local/src/index.ts
2026-09-15 12:15:20 +08:00
07akioni aa083ebfa4 Merge latest master into thin Electron Web UI 2026-09-15 11:25:07 +08:00
imccyu eb8cc594b3 feat(util): add caller-relative lazy require 2026-09-15 11:06:42 +08:00
Yichen Jiang ccd6121c99 Merge remote-tracking branch 'origin/master' into worktree/sidebar-session-recovery
# Conflicts:
#	apps/web/tests/sidebar-terminal.e2e.ts
#	packages/client/ui-sidebar-terminal/src/client/TerminalBody.module.css
2026-09-15 10:29:08 +08:00
Yichen Jiang b25c5ad82e feat(web): restore sidebar layouts and reclaim unattended terminals 2026-09-15 10:27:44 +08:00
07akioni bafe2b7d55 Merge master into thin Electron Web UI and reconcile runtime resolution 2026-09-15 01:17:42 +08:00
Turtle 4d13d8ad9d Merge remote-tracking branch 'origin/master' into turtle/plugin-manager 2026-09-14 23:30:17 +08:00
Turtle 438c862fea refactor: keep profile launch context data-only and HMR backend-scoped 2026-09-14 23:09:06 +08:00
Turtle d06e6b5519 feat: coordinate profile management through dsh-hmr 2026-09-14 23:09:06 +08:00
Turtle 98b92b683c feat: add current-profile plugin manager service and Web controls 2026-09-14 23:09:05 +08:00
imccyu 013aead5c9 fix(boot): align runtime profile resolution with links 2026-09-14 22:30:50 +08:00
imccyu 6aa2e4633c feat(boot): add profile resolution modes 2026-09-14 22:30:48 +08:00
Yichen Jiang 9c80145109 Merge commit '0f88503eb30b0c9e06d297f4863e5b42746e291c' into worktree/pr3596-global-only 2026-09-14 22:05:18 +08:00
Yichen Jiang eca54e94a7 fix(plugins): publish shared subprocess installation chunks 2026-09-14 21:59:59 +08:00
Yichen Jiang 9d58c54f49 Merge commit '1438b3ade6248047b74cc05f461845e9eb8bdedf' into worktree/pr3596-global-only
# Conflicts:
#	packages/boot/plugin-manager/tests/plugin-manager.spec.ts
2026-09-14 21:54:50 +08:00
Yichen Jiang ff1f3f72a1 feat(plugins): cancel installations after process and file cleanup 2026-09-14 21:50:33 +08:00
Yichen Jiang 850d2882f6 Merge commit '03af7e39c641a58fd77f5b3f7b3eb089f200e519' into worktree/pr3596-global-only 2026-09-14 19:57:15 +08:00
Yichen Jiang 9dc51c4666 Merge commit '7d96a1bcda353371db935725ef3a8d228312f42e' into worktree/pr3594-manifest-mergeup
# Conflicts:
#	packages/api/remotes/src/client/index.ts
#	pnpm-lock.yaml
2026-09-14 19:55:22 +08:00
Yichen Jiang 534d05a924 Merge remote-tracking branch 'origin/master' into worktree/pr3593-manifest-3899
# Conflicts:
#	.agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.i18n.yaml
#	.agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.md
#	.agents/notes/rejected/simplification/2026-07-26-builtin-timer-promises-for-hand-rolled-sleeps.zh.md
#	scripts/gen-cordis-catalog.ts
2026-09-14 19:51:13 +08:00
Ruilin Geng bb2b325486 Merge pull request #4137 from deepseek-harness/feat/docs-site-mermaid-viewer
feat(docs): 支持 Mermaid 图表全屏缩放和平移
2026-09-14 17:57:00 +08:00
winewill 361c20cb41 Merge master into thin Electron Web UI
Retain the Desktop profile-boot alias alongside the new browser-use and
terminal aliases when resolving tsconfig.base.json.
2026-09-14 17:06:17 +08:00
Yichen Jiang 2d660bf078 fix(web): list only installed packages on the sidebar Plugins page
The sidebar page no longer shows the profile template's own bundles
(dsh-base, dsh-web-app). The Settings Plugins section gets its read-only
Plugin list tab back for them, with both of its groups collapsed by
default. Restores @deepseek-ai/dsh-client-ui-settings-plugin-inventory
with its web bundle row, tsconfig entries, catalogs, and goldens, and
drops the built-in tag, locked switch, and source fact the page no
longer needs.
2026-09-14 16:45:13 +08:00
Tianyi Cui 16f97e2dfb refactor(browser-use): defer DSH inference integration 2026-09-14 15:43:14 +08:00
Yichen Jiang d5155007e0 refactor(web): manage bundles without module composition actions 2026-09-14 15:24:55 +08:00
Yichen Jiang 95e2da7416 refactor(plugins): retain bundle management and existing row toggles 2026-09-14 15:20:59 +08:00
Tianyi Cui e543cc9a6e Merge awaited Agent creation from master 2026-09-14 14:46:15 +08:00
Yichen Jiang 6a6796f48d refactor(web): separate preset management from global plugins 2026-09-14 14:34:42 +08:00
Tianyi Cui ee031f9cf9 Merge master into browser-use backends 2026-09-14 14:30:58 +08:00
Yichen Jiang 07f9daa55a refactor(plugins): limit manager operations to the global profile 2026-09-14 14:16:18 +08:00
_Kerman 0a382becb3 Merge latest origin/master into xtr/agent-setup-hook 2026-09-14 13:57:18 +08:00
gengruilin b0ec8cef32 feat(docs): add fullscreen Mermaid diagram viewer 2026-09-14 12:25:23 +08:00
07akioni 9187c3662e Merge master and fix desktop editing and Windows lock contention 2026-09-14 12:16:33 +08:00
Yichen Jiang 0a7f47e3f2 Merge remote-tracking branch 'origin/master' into worktree/web-sidebar-terminal 2026-09-14 12:03:02 +08:00
Yichen Jiang 673fce91e2 Merge branch 'worktree/pr3595-sep14-sync' into feat/plugin-mgmt-4-web
# Conflicts:
#	packages/client/ui-plugin-manager/README.i18n.yaml
#	packages/client/ui-settings-plugin-inventory/README.md
#	packages/client/ui-settings-plugin-inventory/tests/components.client.spec.tsx
#	scripts/verify-package-readme-model-experience.ts
#	tsconfig.base.json
#	tsconfig.client.json
2026-09-14 11:07:31 +08:00
Yichen Jiang 33d89aee77 feat(web): choose and remember terminal shells 2026-09-14 10:59:46 +08:00
Yichen Jiang 0f14d6703b Merge branch 'worktree/pr3594-manifest-mergeup' into worktree/pr3595-sep14-sync
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/event-producer-consumer.i18n.yaml
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/client/connection/src/client/fixture.ts
2026-09-14 10:56:36 +08:00