Commit Graph
83 Commits
Author SHA1 Message Date
creatixchu 33381c86c4 fix(release): preserve platform constraints in packed install verification 2026-10-19 22:11:22 +08:00
creatixchu b40d335e3d refactor(cua): colocate permission UI and narrow package exports 2026-10-19 19:46:13 +08:00
creatixchu 1954e948cb feat(cua): add optional macOS setup with existing plugin interfaces 2026-10-19 11:10:31 +08:00
Tianyi Cui f4260fc2f7 test(desktop): cover unsigned packaging failure and cleanup 2026-10-18 15:31:23 +08:00
Tianyi Cui 091d6ed6be feat(desktop): use local branding for unsigned packages 2026-10-18 15:06:16 +08:00
Tianyi Cui 427e3dcd69 feat: add standalone OAR subagent provider and tool 2026-10-18 00:28:33 +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
creatixchu ef3375780b fix(build): select package manifests for workspace bundles 2026-10-11 19:21:07 +08:00
creatixchu f65cb889b8 refactor(cua): separate shared execution from macOS provider 2026-10-11 19:18:02 +08:00
creatixchu b9de05d1c4 test(cua): include experimental package in release inventory 2026-10-11 17:55:48 +08:00
Tianyi Cui 8ed0b530ed feat(plugins): offer official bundles through on-demand installation 2026-10-07 01:26:00 +08:00
Tianyi Cui 2b0dd1567d fix(plugins): preserve Creator drafts and refresh bundle validation 2026-10-06 23:48:59 +08:00
Tianyi Cui de27882007 test(plugin): refresh optional bundle inventory and browser evidence 2026-10-06 23:48:59 +08:00
Tianyi Cui 4da62dc8f4 test(release): include experimental session search tools 2026-10-06 23:45:22 +08:00
Tianyi Cui 582c9ab7b7 fix(experimental): retain published names and centralize identity policy 2026-10-06 16:42:25 +08:00
Tianyi Cui 7bc0b972f8 test(experimental): preserve platform and installed-profile coverage 2026-10-06 16:41:34 +08:00
Tianyi Cui cfc6be809c feat(reasoning): persist opt-in machine translations 2026-10-06 15:36:14 +08:00
Tianyi Cui d299d3b966 test(experimental): verify worktree release and sandbox behavior 2026-10-06 01:39:46 +08:00
Tianyi Cui 8a7d5014bf Merge pull request #5716 from deepseek-harness/worktree/pr-ci-speed-independent-20261005
perf(ci): reduce repeated compilation without raising concurrency
2026-10-05 19:35:09 +08:00
Tianyi Cui 350dbb45df perf(ci): emit benchmark artifacts without repeated type checks 2026-10-05 17:28:27 +08:00
Tianyi Cui 536aaef0b3 fix(ci): preserve workflow concurrency and portable artifact checks 2026-10-05 12:53:52 +08:00
Tianyi Cui 853ad0bb9f perf(ci): remove repeated aggregate compilation and gate work 2026-10-05 12:07:57 +08:00
Tianyi Cui f1250c6e36 feat(translator): add anonymous Google and Bing translation service 2026-10-05 09:55:25 +08:00
Tianyi Cui 534acc5952 Merge pull request #3649 from deepseek-harness/fix/packed-install-private-npm-cache
fix(release): isolate packed-install npm cache
2026-10-05 09:23:14 +08:00
Tianyi Cui d6b2430df1 Merge master checkpoint a2ac28a6 into packed-install cache fix 2026-10-05 09:09:23 +08:00
Tianyi Cui a809d9289d fix(release): preflight channels without relying on latest 2026-10-03 09:52:54 +08:00
Tianyi Cui 185b9c59e7 feat(release): support isolated npm channels 2026-10-03 09:20:13 +08:00
Tianyi Cui 2db0c83e86 docs(experimental): compatibility page, READMEs, and catalogs for mods as plugins
docs/subsystems/claude-code-mods.md lists every way a mod behaves
differently through the bridge than under Claude Code 2.1.287 — packaging,
events, the chain, $ members, drawing, testing, and the example mods,
including the four official mods assessed by reading. The bridge README
describes defineMod, the band, and the test kit; the band package gets its
README; the group index, release families, config and client catalogs,
module and seam graphs, and the Cordis API catalog are regenerated.
2026-10-03 03:19:43 +08:00
Tianyi Cui 6e948732d1 test(experimental): cover the mods bridge's process cwd fallback on Windows and list the package in the release family
Also narrow the mod tool's rendered value to the string its schema admits and
bind the registration's catch before calling it untyped.
2026-10-02 11:53:56 +08:00
imccyu 732dd913cf feat(inspector): embed Chrome DevTools and bundle optional diagnostics 2026-10-01 00:14:13 +08:00
Chinesezjc c6dd905972 feat(web): ship the Schedule service and task page in the Web composition
The reminder stack no longer hides behind an optional experimental bundle.
`packages/bundle/web-app/cordis.patch.yml` inserts `schedule` and
`ui-schedule`, so a shipped profile mounts the task store, the delivery
runtime, and the Automation tasks page; the
`@deepseek-ai/dsh-experimental-schedule-bundle` package and its wiring are
removed.

Preset ownership is unchanged: `standard`, `cordis`, and `ptc` declare the
clock and the four reminder tools in their own scope, and `minimal` declares
neither, so a minimal session carries no reading and no reminder tool even
though the service is mounted.

`apps/cli` depends on `@deepseek-ai/dsh-tool-schedule`, and
`packages/bundle/web-app` declares `@deepseek-ai/dsh-schedule` and
`@deepseek-ai/dsh-client-ui-schedule`: preset and profile rows resolve plugin
names from the installation anchor, so a missing declaration leaves the row
without a fiber and every session creation fails with
`agent-preset/invalid`.

Documentation, Agent Notes, and the recorded Web fixtures follow the shipped
composition.
2026-09-28 18:31:53 +08:00
Chinesezjc 41c29fa832 feat(schedule): ship the Schedule switch as an optional bundle
The shipped Web composition carries `time-context`, `schedule`, and
`ui-schedule` disabled. This adds
`@deepseek-ai/dsh-experimental-schedule-bundle`, whose patch sets
`disabled: false` on those three rows and inserts none, and names it in
`OPTIONAL_BUNDLES` with a runtime dependency of `apps/cli`, so every
installation ships it switched off and the Web Plugins page offers it in
the Official group.

The two Web suites and the built-Web Schedule Remote scenario enable the
rows through that bundle instead of a scenario-local fixture.
2026-09-24 21:03:26 +08:00
winewill b8050f0251 fix(desktop): finish the review items the first pass missed
Three comments in the same review round went unread and still applied.

A failed tag push left the local tag in place, so the printed recovery
`git tag … && git push …` short-circuited on "already exists" and never
pushed. The result now carries the commands still outstanding, and the
tests cover a failed push and a failed tag separately.

Automatic numbering caught every error from resolving the upload
destination, which turned a misconfigured destination into silent local
numbering that can reuse a published index. It now checks whether a
destination is configured at all and lets an invalid one fail, and the
remaining catch names the error it reports.

`pnpmCommand` fell back to a bare `pnpm`, which on Windows is the batch
shim spawnSync cannot start — the failure this branch exists to fix. It
says so instead, and keeps the fallback where a shim is executable.

The afterPack regression this branch introduced earlier reached review
because nothing exercised that hook: one spec calls it directly for an
ordinary build, a prepared qualification runtime, and a build version,
and it fails when the expected version collapses back to one value.
2026-09-21 16:37:50 +08:00
winewill 0181baae5b Merge branch 'master' into build/windows-release-scripts
Adopt the `unsignedArtifacts` build path master introduced, in place of
the directory this branch was joining by hand for automatic numbering.
2026-09-21 16:14:26 +08:00
winewill 1b6451a647 fix(desktop): follow the documented release version rules
Review found that `apps/desktop/README.md#release-versions` and the
2026-09-16 version-derivation note already specify this convention, and
that three of their requirements were reversed without saying so. The
rules themselves are right; what was wrong was leaving them undocumented
and rejecting one of the forms they prescribe.

A stable base takes `-test.YYYYMMDD.index`, which validation refused
because such a version ranks below its base. That ordering is the point:
the form belongs to a test feed that never serves the production
release. Both READMEs, the older note, and a new note now record which
requirements this change reverses and why.

Three defects the review found, each reproducible:

- `afterPack` compared the bundled runtime against the product version,
  which broke installed-update qualification: that flow passes a runtime
  whose version was deliberately rewritten. The expected version is now
  a parameter the preparer supplies, and `verifyDesktopRuntime` says
  "bundled X is not the expected Y" rather than naming Electron.
- Upload could only learn the published version from a shell variable,
  conflicting with "release fields come only from the target file". It
  reads the completion record packaging wrote, and a mismatch now prints
  the version that record holds.
- Automatic numbering read one listing page and one fixed directory. It
  now follows every page, discards a listing it could not finish rather
  than reusing an index that would overwrite a published installer,
  bounds the request through the client's own timeout, and reads the
  directory an unsigned build actually writes.

Also: `npm run` and `yarn run` set `npm_execpath` too, so the pnpm
resolution checks the path names pnpm; the argument separator can arrive
after a run script's preset arguments, not only first; and the toolchain
probe, parser, build commit, and tarball readers now have specs.
2026-09-21 16:04:08 +08:00
winewill 766eee63eb fix(release): run pnpm and tar portably on Windows
spawnSync cannot start the pnpm .cmd shim without a shell, so the bump
step's lockfile refresh failed with ENOENT on Windows after rewriting
every manifest. Resolve pnpm to a JavaScript entry executed by the
current Node: the run-script's npm_execpath when present, otherwise the
workspace's own pnpm dependency (located on disk because pnpm's manifest
does not export its bin entry).

GNU tar parses the colon in an absolute Windows path as a remote-host
separator and aborts, so the tarball readers now run tar in the
tarball's directory and pass only its file name.
2026-09-21 13:30:12 +08:00
Yichen Jiang c6bc1a2fab Merge remote-tracking branch 'origin/master' into worktree/experimental-voice-input
# Conflicts:
#	apps/desktop/electron-builder.config.mjs
#	apps/desktop/tests/macos-signature.spec.ts
#	apps/desktop/tests/main-startup.spec.ts
#	apps/web/tests/expected/plugin-config/official.expected.md
#	apps/web/tests/expected/plugin-manager/live-enabled.expected.md
#	apps/web/tests/expected/plugin-manager/manager.expected.md
#	apps/web/tests/plugin-config.e2e.ts
#	apps/web/tests/plugin-manager.e2e.ts
#	apps/web/tsconfig.json
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
#	packages/client/ui-plugin-manager/src/client/locales.ts
#	packages/client/ui-plugin-manager/src/client/presentation.ts
#	packages/client/ui-plugin-manager/tests/components.client.spec.tsx
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-primitives/src/StateDot.tsx
#	packages/client/ui-primitives/src/icons/index.tsx
#	packages/client/ui-primitives/tests/icons.client.spec.tsx
#	packages/experimental/README.i18n.yaml
#	packages/experimental/README.md
#	packages/experimental/README.zh.md
#	packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
#	pnpm-lock.yaml
#	scripts/gen-cordis-catalog.ts
#	tsconfig.host.json
2026-09-20 13:22:11 +08:00
Yichen Jiang 9f21d7842a fix(agent-team): enable tools and Web UI with one bundle 2026-09-17 20:41:39 +08:00
Yichen Jiang 5ccf1c57d2 fix(voice-input): align CI fixtures and source-only coverage 2026-09-17 14:23:25 +08:00
Yichen Jiang fa320209ab refactor(plugins): name the optional bundles in the launcher, not the installation manifest
OPTIONAL_BUNDLES in app-boot lists the bundles the installation ships
switched off; the plugin manager, the default-product isolation gate,
the workspace constraints, and the packed-install check read that one
list instead of a dsh.optionalBundles field in apps/cli/package.json.
2026-09-15 22:22:22 +08:00
Yichen Jiang bc0ecae21f feat(plugins): ship optional bundles switched off and guide the install dialog
The dsh installation lists under `dsh.optionalBundles` the bundles it
ships for a person to switch on. The plugin manager reports them as
`optional`, and the Web plugin page shows them first, in a built-in
group with an official tag, off until selected and never removable.
Agent Teams ships this way, so a blank profile offers both of its
layers. Default-product isolation, the workspace constraints, and the
packed-install check accept that one dependency edge and nothing else
experimental.

A bundle's title and one-liner come from `dsh.title` and the new
`dsh.description`, else from the package name and `description`. A
dependency without a bundle patch is no longer listed unless the
profile selects it. The install dialog asks for a package name or
address; a guide under the field shows the three accepted forms with
an example each and ends in a security warning, and the copy no longer
speaks of a plugin ID.
2026-09-15 20:51:12 +08:00
Tianyi Cui e1612c2fdc feat(browser-use): add per-Session experimental browser backends 2026-09-13 22:39:16 +08:00
Tianyi Cui 42c5b65643 feat(release): publish all experimental packages 2026-09-12 20:56:26 +08:00
Tianyi Cui f34dd86285 ci(release): keep experimental packages out of the default product 2026-09-12 20:56:26 +08:00
Tianyi Cui 6e30e1a300 feat(release): use a private denylist for experimental packages 2026-09-12 20:56:26 +08:00
Tianyi Cui af4ad05845 feat: add computer use with Cua Driver providers 2026-09-12 16:41:12 +08:00
imccyu 63187de80f release: publish experimental Agent Teams packages 2026-09-09 18:54:14 +08:00
fz 887c1efd7a ci(npm): expose failed install HTTP diagnostics 2026-09-09 01:48:54 +08:00
07akioni 31b3f3bc44 Merge remote-tracking branch 'origin/master' into feat/electron
# Conflicts:
#	.agents/notes/archived/manifest.json
#	.agents/notes/archived/simplification/2026-07-31-drop-user-message-edit-stub.i18n.yaml
#	.agents/notes/archived/simplification/2026-07-31-drop-user-message-edit-stub.md
#	.agents/notes/archived/simplification/2026-07-31-drop-user-message-edit-stub.zh.md
#	.agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.i18n.yaml
#	.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.zh.md
#	packages/boot/app-boot/README.i18n.yaml
#	packages/boot/app-boot/README.md
#	packages/boot/app-boot/README.zh.md
#	packages/client/connection/src/index.ts
#	packages/client/connection/tests/node-half.host.spec.ts
#	packages/shell/tool-pwsh-persistent/README.i18n.yaml
#	packages/shell/tool-pwsh-persistent/README.md
#	packages/shell/tool-pwsh-persistent/README.zh.md
#	pnpm-lock.yaml
#	tsconfig.host.json
2026-09-07 11:10:46 +08:00
Tianyi Cui c9cd76464a fix(release): isolate packed-install npm cache 2026-09-06 21:40:21 +08:00