Commit Graph
18711 Commits
Author SHA1 Message Date
Yichen Jiang d0da8ccf40 fix(web): decorate slash tokens in bubbles from logged skill and command facts 2026-09-04 14:38:30 +08:00
Turtle 2099 645c68daf2 Merge pull request #3530 from deepseek-harness/turtle/pr-3520-review-followup
docs(fs): record normalized unread diagnostics
2026-09-04 14:35:52 +08:00
Yichen Jiang 46d20f8bee feat(web): rank skill candidates with the shared fuzzy name ranker 2026-09-04 14:31:54 +08:00
07akioni 1553862ac1 Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-04 14:26:23 +08:00
Dudu-0223 3b95586626 Merge branch 'master' into fix/fork-resume-system-prompt 2026-09-04 14:21:42 +08:00
Turtle fa40d90023 refactor: simplify issue templates and policy 2026-09-04 14:20:20 +08:00
Yichen Jiang 8866b37604 Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web 2026-09-04 14:12:41 +08:00
Yichen Jiang 53e4d1c0f8 Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings 2026-09-04 14:12:40 +08:00
Yichen Jiang b876a499b2 Merge branch 'feat/plugin-mgmt-1-boot' into feat/plugin-mgmt-2-manager 2026-09-04 14:12:39 +08:00
Yichen Jiang e234dc75fd fix(boot): re-probe records an older probe format wrote 2026-09-04 14:12:38 +08:00
Turtle c58097a826 feat(session-persistence-jsonl): cross-process write-ownership lease
Write handles now hold a durable lease (session.lock.json beside the
log): a random owner token, diagnostic pid, and an expiry. Acquisition
wins by exclusive create; a second process's create or write open rejects
while the record is unrenewed for less than leaseTtlMs (default 5 min),
and takes over after that — a crashed holder is waited out, never
reclaimed by pid. The holder renews every leaseRenewIntervalMs (default
4 min); a renewal that finds a foreign, vanished, or expired record — or
fails outright — marks the lease lost permanently, so every later
append/flush rejects with SessionOwnershipLostError while reads continue.
Close releases the record; read handles never touch it. Takeover of an
expired record is eventually exclusive: a replaced holder stops within
one renewal interval.

Refs #3245
2026-09-04 14:12:14 +08:00
Yichen Jiang 8a96a7ea6a Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web 2026-09-04 14:11:27 +08:00
Yichen Jiang c75e8bce12 Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings 2026-09-04 14:11:01 +08:00
Yichen Jiang db2e34dd02 Merge branch 'feat/plugin-mgmt-1-boot' into feat/plugin-mgmt-2-manager 2026-09-04 14:10:59 +08:00
Yichen Jiang 1ef796fcf9 fix(boot): a plugin is a package that declares itself to dsh
The probe called any package whose main export is a function a `plugin`,
so `lodash` installed as an addable plugin module. A `plugin` now needs a
`dsh` section in its manifest or a dependency on `@deepseek-ai/cordis` as
well as a plugin-shaped export; a bare function export is a `library`.
2026-09-04 14:10:58 +08:00
Yichen Jiang 59a64adde7 Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web 2026-09-04 13:52:44 +08:00
Yichen Jiang 1b3dee9c46 Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings 2026-09-04 13:52:42 +08:00
Yichen Jiang b1a1b1a7ab chore(docs): bring the Chinese event catalog along with the regenerated source links 2026-09-04 13:52:41 +08:00
Yichen Jiang 6b8ae2b721 Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web 2026-09-04 13:50:57 +08:00
Yichen Jiang 90d185b785 Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings 2026-09-04 13:50:55 +08:00
Yichen Jiang 3dd4a9a873 chore(docs): regenerate the module graph and event catalog for the plugin manager's agent dependency 2026-09-04 13:50:54 +08:00
Yichen Jiang ac517078ca feat(web): show what an install removed and why the Host refused a change
The install dialog lists the packages the Host removed again after
`pnpm add` with the Host's reason, and every action renders the two
refusals any mutation can meet — another change still running, a session
still running — in the Host's words instead of a generic failure line.
2026-09-04 13:49:04 +08:00
Yichen Jiang 368379e870 Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web
Carry the install verdict, manifest rollback, and the one-mutation and
running-session guards under the `add` verb this branch uses.
2026-09-04 13:44:09 +08:00
Yichen Jiang 9862f16a40 Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings 2026-09-04 13:41:45 +08:00
Yichen Jiang e3386d1105 feat(plugins): judge an install after pnpm, restore the manifest on failure, run one mutation at a time
A successful `pnpm add` is no longer the end of `plugins/install`: a new
package that declares neither a bundle nor a plugin module, or a bundle
whose row id a composed layer already owns, is removed again and reported
under `removed` with its reason, while a package the probe refused stays
for the view to explain. The profile manifest is snapshotted before the run
and restored when pnpm fails. The manager refuses a second mutation while
one runs (`plugins/busy`) instead of racing on the manifest and user
layers, and `install`/`uninstall` refuse while a session is running
(`plugins/agents-running`), because pnpm rewrites the directory those
sessions import from.

`resolveProfileLayer` factors one bundle's layer out of `loadProfile` so the
manager can judge a candidate against the composed layers.
2026-09-04 13:41:20 +08:00
pku-xht 91b504e63e ci(e2e): isolate auto certification 2026-09-04 13:20:05 +08:00
creatixchu 268cf0101e Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload 2026-09-04 13:08:41 +08:00
creatixchu f0e52c2731 refactor(file-upload): tighten service boundaries 2026-09-04 13:08:25 +08:00
pku-xht e6863256f7 ci(e2e): serialize shared-key real-model tests 2026-09-04 13:01:31 +08:00
pku-xht 8481e02b36 fix(auto-review): reinforce reviewer output contract 2026-09-04 12:46:25 +08:00
pku-xht 11c4fa1b0a fix(permissions): harden auto disposal migration 2026-09-04 12:21:56 +08:00
_Kerman 891f07a2d0 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/api/session-controller/tests/session-projections.host.spec.ts
#	packages/bundle/headless/tests/headless.spec.ts
#	packages/core/agent-loop/README.i18n.yaml
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/README.zh.md
#	packages/core/agent/src/runtime-types.ts
#	packages/fs/tool-str-replace-editor/tests/tools.spec.ts
#	packages/llm/llm-retry/tests/retry.spec.ts
#	packages/llm/llm-retry/tests/transport-recovery.spec.ts
#	packages/shell/tool-bash-persistent/tests/loader-composition.spec.ts
#	packages/shell/tool-bash-persistent/tests/tools.spec.ts
#	packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts
#	packages/shell/tool-pwsh-persistent/tests/tools.spec.ts
#	packages/terminal/terminal-bash/tests/index.spec.ts
#	packages/test-support/agent-loop-testkit/package.json
2026-09-04 12:18:37 +08:00
Dudu-0223 b6b2ec4a90 Merge pull request #3480 from deepseek-harness/fix/search-result-reveal-session
Fix session search result navigation
2026-09-04 12:18:21 +08:00
Yichen Jiang f0af64fb50 Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web 2026-09-04 12:18:20 +08:00
Yichen Jiang 4810cfa071 Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings 2026-09-04 12:18:19 +08:00
Yichen Jiang d926d39a1b chore(docs): regenerate the config catalog after the plugin manager import change 2026-09-04 12:18:18 +08:00
Yichen Jiang d4e69cd399 Merge branch 'feat/plugin-mgmt-3-settings' into feat/plugin-mgmt-4-web
Adopt owned row ids in the browser: the plugin manager tab shows `rowId`,
the web scaffold's profile runtime composes a stack, and the inventory spec
covers provenance and conflict attribution. Widen the install-result alias
the store spec had narrowed to `never[]`.
2026-09-04 12:15:20 +08:00
Chinesezjc bee0c13f28 Merge pull request #3513 from deepseek-harness/fix/test-tmp-teardown-self-clean
test: remove dsh-* temp dirs created by unit tests at teardown
2026-09-04 12:11:53 +08:00
Yichen Jiang 4903d1a6cb Merge branch 'feat/plugin-mgmt-2-manager' into feat/plugin-mgmt-3-settings 2026-09-04 12:10:11 +08:00
pku-xht dae5844f93 fix(auto-review): scope logged calls by step 2026-09-04 12:10:10 +08:00
Yichen Jiang 3b0a07e029 Merge branch 'feat/plugin-mgmt-1-boot' into feat/plugin-mgmt-2-manager
Adopt owned row ids in the plugin manager and inventory: a row view carries
`rowId` (the declared id a patch or row action targets) instead of the
withdrawn `originalId`, probe rows are listed under their declared ids, a
conflict record is attributed to the bundle it names, and the manager's
test boot records conflicts the way the launcher does.
2026-09-04 12:10:02 +08:00
Dudu-0223 01a4cba942 docs(web): describe client-only resume handling 2026-09-04 12:09:45 +08:00
Dudu-0223 8ea0cc0445 Merge remote-tracking branch 'origin/master' into fix/fork-resume-system-prompt
# Conflicts:
#	apps/web/tests/message-actions.e2e.ts
2026-09-04 12:08:54 +08:00
Dudu-0223 f1e7dbce55 fix(web): keep resume prompt dedupe client-side 2026-09-04 12:08:16 +08:00
Yichen Jiang 5d742503ea feat(boot): own row ids across the stack instead of prefixing external bundles
An external bundle keeps the ids its patch declares. composeProfileStack
decides ownership before anything mounts: built-in and boot-staged layers
claim first and a duplicate among them fails the boot, a contained bundle
that collides is left out whole, a user-layer insert of a taken id is
dropped, and every row left out is a `conflict` record in pluginFailures,
printed at boot and replaced on each recomposition. Boot, live reloads, and
--dump-config compose through the same function, so the dump shows the
contained groups the tree mounts.

The prefix made a user patch, a third-party manager's disabled rows, and a
bundle's own `!!js` id comparison miss silently; the note records both cases.
2026-09-04 12:02:11 +08:00
Chinesezjc 1f0a87eb06 Merge remote-tracking branch 'origin/master' into fix/test-tmp-teardown-self-clean
# Conflicts:
#	packages/subprocess/subprocess-local/tests/spawn.spec.ts
2026-09-04 11:58:16 +08:00
Dudu-0223 470ea85286 Merge origin/master into fix/search-result-reveal-session 2026-09-04 11:57:07 +08:00
Chinesezjc d8a995e00e docs: align the changed-spec count with the merged-base diff (36) 2026-09-04 11:56:31 +08:00
Turtle df07f37827 Merge pull request #3516 from deepseek-harness/turtle/issue-2390-windows-hide-subprocess
fix(subprocess): hide Windows child windows
2026-09-04 11:52:34 +08:00
Chinesezjc 3f07443702 Merge branch 'master' into fix/test-tmp-teardown-self-clean 2026-09-04 11:15:31 +08:00