Tianyi Cui
8a9767c25e
feat(plugin): validate optional bundle lifecycles and session output
2026-10-06 23:48:58 +08:00
Tianyi Cui
582c9ab7b7
fix(experimental): retain published names and centralize identity policy
2026-10-06 16:42:25 +08:00
Tianyi Cui
b48384223a
refactor(experimental)!: classify optional packages and move prototypes
2026-10-06 16:41:04 +08:00
Tianyi Cui
9c679b21f4
fix(agent-loop): refresh provider context at actual request admission
2026-10-06 01:31:52 +08:00
Tianyi Cui
df655fd11e
fix(agent-loop): restore runtime context after compaction before request admission
2026-10-06 01:31:51 +08:00
Tianyi Cui
0c6b1ef7bb
fix(session): port directory consumers and fixtures to current runtime
2026-10-06 01:31:51 +08:00
Tianyi Cui
3f35ca7b5b
test(session): align fixtures with awaited agent creation
2026-10-06 01:27:55 +08:00
Tianyi Cui
6f23c5dfd1
fix(session): align rebased documentation and SDK series output
2026-10-06 01:27:55 +08:00
Tianyi Cui
79bd3d8da7
feat(session): centralize working directories and directory context
2026-10-06 01:27:54 +08:00
Turtle
c130868430
Merge pull request #5567 from deepseek-harness/turtle/port-auto-assign-fe24bf6ef1d1
...
fix(desktop): listen on an OS-assigned port by default
2026-10-02 12:28:03 +08:00
Turtle
ecd9bf9273
fix(desktop): listen on an OS-assigned port by default
...
The fixed 19387 listener fails when Windows (Hyper-V/WinNAT) reserves a dynamic
port range covering it, even though no process uses the port. Electron already
reads the bound port from the Host's ready message.
2026-09-30 21:04:32 +08:00
Turtle
f028f25667
refactor: remove runtime invariant plugins
...
Delete @deepseek-ai/dsh-invariants, every package's ./invariant companion
and its tests, the invariant gates and Vitest setup, the scoped-event
resolver generator, and the INVARIANT-coded listener rethrow paths.
Update docs, READMEs, Agent Notes, and add an upgrade guide.
2026-09-30 12:52:18 +08:00
Tianyi Cui
0e5ab65758
fix(desktop): simplify bundled CLI and manage Desktop plugins
2026-09-29 13:15:00 +08:00
Tianyi Cui
6a6f350b94
fix(agent-loop): settle pending tool results before failed steps close
2026-09-25 23:48:44 +08:00
Tianyi Cui
f6848ee921
fix(agent-loop): preserve prompt history during supported tool updates
...
Tool changes previously forced prompt consolidation even when the prepared
route could activate new tools through history. Rewriting the first system
message, or clearing an earlier appended prompt, reset the declaration
series and turned additions into immediate declarations.
Only routes without toolUpdate need that tool-triggered consolidation.
Capable routes append the full changed prompt and keep existing messages.
Explicit series starts, surface replacements, and unsupported prompt
routes still consolidate; retained-name definition changes still rebuild
tool declarations in Session.
Cover both update modes and reset paths, and pin the combined prompt/tool
transition through the shipped headless profile with shared schema goldens.
2026-09-23 22:40:40 +08:00
Yixiang Tu
1321345c84
docs: keep architecture within its word budget
2026-09-23 22:40:36 +08:00
Yixiang Tu
bc8c0dbf40
feat(llm): emit dynamic tool updates and project them per route
...
Log tool changes as developer messages independently of model capability,
fold committed headers and updates into Session.toolHistory(), and let the
LLM runtime construct deferred and retained declarations for routes that
declare a toolUpdate mode. DeepSeek serializes updates as system-role
tool_addition/tool_removal blocks with defer_loading and the tool-changes
beta header. An unchanged restored tool continues the series and is
re-offered through its recorded blocks instead of rewriting declarations.
Replace the obsolete rejection tests with wire assertions and add coverage
for the session fold, loop emission, route projection, config validation,
and the beta header. Chat and Trajectory changes land separately.
2026-09-23 22:39:26 +08:00
lsdsjy
40da69ff75
refactor(account): isolate provider authentication and preserve model selections
2026-09-23 14:43:47 +08:00
lsdsjy
6ef32577a3
fix(account,models): reconcile provider lifecycle with master
2026-09-22 15:06:16 +08:00
Yichen Jiang
ecb66a3497
Merge remote-tracking branch 'origin/master' into feat/plugin-detail-slots
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.i18n.yaml
# .agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.md
# .agents/notes/implemented/architecture/2026-09-16-plugin-configuration-on-the-plugins-page.zh.md
# apps/web/tests/expected/plugin-config/row.expected.md
# apps/web/tests/fixtures/plugins/fixture-live-client/client.js
# apps/web/tests/plugin-config.e2e.ts
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# packages/bundle/web-app/package.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.tsx
# packages/client/ui-plugin-manager/src/client/index.ts
# packages/client/ui-plugin-manager/src/client/slot-contract.ts
# packages/client/ui-plugin-manager/tests/components.client.spec.tsx
# packages/client/ui-settings-plugins/README.i18n.yaml
# packages/client/ui-settings-plugins/README.md
# packages/client/ui-settings-plugins/README.zh.md
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
# pnpm-lock.yaml
2026-09-21 16:59:17 +08:00
lsdsjy
0d2fbaad67
fix(session-controller,ui-model-selection,ui-settings): handle catalog and account setup failures
2026-09-21 14:55:08 +08:00
lsdsjy
17825ee8c0
feat(agent,llm-deepseek,ui-settings-account): separate account routing and confirm sign-out
2026-09-21 14:54:50 +08:00
_Kerman
2e99e6021d
Merge remote-tracking branch 'origin/master' into xtr/normalize-agent-cancel-cause
2026-09-21 12:45:05 +08:00
_Kerman
35f3abf1fa
fix(agent-loop): copy the cancel cause before logging turn/end
...
Node's fetch assigns an enumerable `stack` string onto the abort reason
object it receives, and the loop logged that same object into `turn/end`.
The undici trace became durable session data under a field no reader
declares. A transport adding a property JSON discards instead made
`Session.append` reject the ending, leaving a turn with no close.
`abortedCancelCause()` narrows the untyped `AbortSignal.reason` once and
copies the declared fields, replacing the three `as AgentCancelCause`
assertions at the two read sites and the log write.
2026-09-21 11:45:03 +08:00
Yichen Jiang
61719629fc
Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
...
# Conflicts:
# apps/web/tests/expected/agent-preset-selection/header.expected.md
# docs/architecture.i18n.yaml
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# 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
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/persistence-catalog.zh.md
# docs/persistence-schema.json
# docs/subsystems/web-client.i18n.yaml
# packages/api/README.i18n.yaml
# packages/api/README.md
# packages/api/README.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/src/client/sessions/manager.ts
# packages/api/session-controller/src/client/sessions/service.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/client/locale/tests/language-row.client.spec.tsx
# packages/client/ui-chat/tests/chat-view.client.spec.tsx
# packages/client/ui-chat/tests/transcript-view-row.client.spec.tsx
# packages/client/ui-conversation/tests/conversation-registry.client.spec.ts
# packages/client/ui-conversation/tests/enter-behavior-row.client.spec.tsx
# packages/client/ui-conversation/tests/input-bar.client.spec.tsx
# packages/client/ui-conversation/tests/input-matrix.client.spec.tsx
# packages/client/ui-conversation/tests/input-scenarios.client.spec.tsx
# packages/client/ui-conversation/tests/skeleton.client.spec.tsx
# packages/client/ui-deliverables/tests/deliverables.client.spec.tsx
# packages/client/ui-jobs/tests/job-list-action.client.spec.tsx
# packages/client/ui-layout/tests/app-frame.client.spec.tsx
# packages/client/ui-layout/tests/document-title.client.spec.tsx
# packages/client/ui-open-in-app/tests/open-in-app-action.client.spec.tsx
# packages/client/ui-primitives/README.i18n.yaml
# packages/client/ui-session/tests/ui-session.client.spec.ts
# packages/client/ui-settings-general/tests/settings-root.client.spec.tsx
# packages/client/ui-settings-unarchive-sessions/tests/components.client.spec.tsx
# packages/client/ui-subagent/README.i18n.yaml
# packages/client/ui-subagent/README.md
# packages/client/ui-subagent/README.zh.md
# packages/client/ui-subagent/src/client/SubagentHeaderLineage.tsx
# packages/client/ui-subagent/tests/conversation-ui.client.spec.tsx
# packages/client/ui-theme/tests/appearance-row.client.spec.tsx
# packages/client/ui-theme/tests/font-size-row.client.spec.tsx
# packages/client/ui-tool/tests/coverage-tails.client.spec.tsx
# packages/client/ui-tool/tests/diff-card.client.spec.tsx
# packages/client/ui-tool/tests/image-card.client.spec.tsx
# packages/client/ui-tool/tests/read-card.client.spec.tsx
# packages/client/ui-tool/tests/terminal-card.client.spec.tsx
# packages/client/ui-trajectory/tests/views.client.spec.tsx
# packages/client/ui-user-questions/tests/plan-review-panel.client.spec.tsx
# packages/client/ui-user-questions/tests/user-questions-composer.client.spec.tsx
# packages/client/ui-workflow-run/tests/workflow-run.client.spec.tsx
# packages/client/ui-workspace/tests/apply.client.spec.ts
# packages/client/ui-workspace/tests/tree.client.spec.ts
# packages/client/ui-workspace/tests/workspace-browser.client.spec.tsx
# packages/client/ui-workspace/tests/workspace-picker.client.spec.tsx
# packages/client/ui-workspace/tests/workspaces-service.client.spec.ts
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
# packages/jobs/tool-jobs/src/index.ts
# packages/shell/tool-bash/README.i18n.yaml
# packages/test-support/client-runtime/src/sessions.ts
2026-09-21 11:34:20 +08:00
Yichen Jiang
78dcbc8587
feat(infra): unify Web and Desktop launch commands
...
Web and Desktop now share one command pair: start:* launches the artifacts
of a prior complete build and dev:* builds first, then launches. start:web
is new and spells out the same source launch vector as `pnpm dsh web`;
dev:web runs `pnpm run build`, the three rebuild watchers, and `dsh web` in
one terminal, with --skip-build and --no-serve for the previous two-terminal
flow. The launcher gate pins both scripts to the dsh CLI, and a root
Makefile names the same commands as make web|dev-web|desktop|dev-desktop|build.
The dev-web stage supervisor waits for stages the terminal already
interrupted, escalates only survivors, forwards SIGTERM once, and reports a
stage that exits on its own. Signal listeners are persistent because the
tsdown watchers bundle signal-exit, which re-raises a signal when it finds
no other listener.
2026-09-20 15:50:41 +08:00
Yichen Jiang
3135e4d612
Merge remote-tracking branch 'origin/master' into feat/plugin-detail-slots
...
# Conflicts:
# apps/web/tests/expected/plugin-config/row.expected.md
# packages/client/ui-plugin-manager/src/client/PluginManagerPage.tsx
# packages/client/ui-primitives/src/index.ts
# packages/client/ui-primitives/src/settings-form/fields.tsx
# packages/client/ui-settings-plugins/package.json
# packages/client/ui-settings-plugins/src/client/locales.ts
2026-09-19 10:36:07 +08:00
Yichen Jiang
5c10701df2
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# apps/web/tests/expected/agent-preset-selection/header.expected.md
# packages/client/ui-chat/src/client/chat/ContextInjectionRow.tsx
# packages/client/ui-jobs/package.json
# packages/client/ui-jobs/src/client/JobListAction.module.css
# packages/client/ui-jobs/src/client/JobListAction.tsx
# packages/client/ui-jobs/tests/job-list-action.client.spec.tsx
# packages/client/ui-subagent/README.i18n.yaml
# packages/client/ui-subagent/README.md
# packages/client/ui-subagent/README.zh.md
# packages/client/ui-subagent/src/client/SubagentHeaderLineage.tsx
2026-09-19 10:35:09 +08:00
imccyu
0ea890044f
test(cli): cover runtime profile defaults and sync docs
2026-09-17 20:23:14 +08:00
Yichen Jiang
caa0c99be1
docs(web): follow up the review on the companion move and detail slots
...
The maintained docs now name the four companion packages where they
still credited `ui-settings-plugins`: the web-app row comment, the
Plugins page README, the ui-settings README, and the client group
README, which gains a row per companion. The ui-settings README states
the `whileServed` lifetime and disposer ownership beside `bind`, and the
JSDoc says the caller owns the disposer. The settings-page cookbook
keeps the one home of the lazy-CJS build limitation for packages outside
this repository, its JSX example is a tsx fence, and the architecture
index and website label follow the page's title. The Agent Note records
the shell page's `plugins.item` id, the two companions that use
`ctx.remote` list api-remotes in `dsh.client.inject`, and the moved form
model test speaks of the form.
2026-09-17 20:13:26 +08:00
Yichen Jiang
6e41857b2e
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# packages/api/remotes/src/client/index.ts
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/api/session-controller/src/client/sessions/manager.ts
# packages/api/session-controller/src/control.ts
# packages/api/session-controller/src/types.ts
# packages/api/session-controller/tests/client-apply.client.spec.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/api/session-controller/tests/projection-store.client.spec.ts
# packages/api/session-controller/tests/queue-store.client.spec.ts
# packages/api/session-controller/tests/sessions-service.client.spec.ts
# packages/api/session-controller/tests/transport.client.spec.ts
# packages/client/ui-jobs/package.json
# packages/client/ui-primitives/src/TerminalBlock.module.css
# packages/client/ui-primitives/src/TerminalBlock.tsx
# packages/client/ui-primitives/tests/terminal-block.client.spec.tsx
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/test-support/client-runtime/src/assembly/remote-default-responses.ts
2026-09-16 16:05:59 +08:00
Yichen Jiang
1596097147
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# apps/web/tsconfig.json
# 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/remotes/package.json
# packages/api/remotes/src/client/index.ts
# packages/api/session-controller/tests/client-apply.client.spec.ts
# packages/api/session-controller/tests/control-jobs.host.spec.ts
# packages/api/session-controller/tests/fake-api.client.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/client/ui-jobs/package.json
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
# packages/jobs/jobs-local/README.i18n.yaml
# packages/jobs/jobs-local/README.md
# packages/jobs/jobs-local/README.zh.md
# packages/jobs/jobs-local/src/index.ts
# packages/jobs/jobs-local/tests/jobs.spec.ts
# packages/jobs/tool-jobs/tests/tool-jobs.spec.ts
# packages/shell/shell/README.i18n.yaml
# packages/shell/shell/README.md
# packages/shell/shell/README.zh.md
# packages/shell/tool-bash/README.i18n.yaml
# packages/shell/tool-bash/README.md
# packages/shell/tool-bash/README.zh.md
# packages/shell/tool-bash/src/background.ts
# packages/shell/tool-bash/src/index.ts
# packages/shell/tool-pwsh/src/background.ts
# packages/shell/tool-pwsh/src/index.ts
2026-09-16 15:53:02 +08:00
_Kerman
4d306deb0a
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-web-recovery
2026-09-15 17:22:59 +08:00
_Kerman
992a932a16
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-web-recovery
...
# Conflicts:
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/README.md
# packages/client/ui-conversation/README.zh.md
# packages/client/ui-conversation/src/client/contract/input.ts
# packages/client/ui-conversation/src/client/input/facade.ts
2026-09-15 16:52:24 +08:00
Turtle
7d4188b450
fix(cli): address profile shorthand review feedback
2026-09-15 16:49:03 +08:00
Turtle
311156b1c2
Merge master and preserve profile-managed HMR
2026-09-15 16:20:47 +08:00
07akioni
4feb87da34
feat(desktop): load bundled Web UI before backend readiness
2026-09-15 13:43:27 +08:00
Turtle
abd765a600
refactor(hmr): own profile reload lifecycle through YAML
2026-09-15 13:01: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
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
_Kerman
cf4ba60b47
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-web-recovery
...
# Conflicts:
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
2026-09-14 15:01:03 +08:00
_Kerman
49f601e902
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-web-recovery
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.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/client-apply.client.spec.ts
# packages/api/session-controller/tests/fake-api.client.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/api/session-controller/tests/projection-store.client.spec.ts
# packages/api/session-controller/tests/queue-store.client.spec.ts
# packages/api/session-controller/tests/session-pending-submissions.client.spec.ts
# packages/client/connection/src/client/fixture.ts
# packages/client/connection/tests/fixture.client.spec.ts
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.md
# packages/core/agent-loop/README.zh.md
# packages/extensions/tool-cordis/src/api-catalog.ts
2026-09-14 14:12:25 +08:00
_Kerman
0a382becb3
Merge latest origin/master into xtr/agent-setup-hook
2026-09-14 13:57:18 +08:00
07akioni
9187c3662e
Merge master and fix desktop editing and Windows lock contention
2026-09-14 12:16:33 +08:00
creatixchu
a7070008e7
Merge master and integrate image offload with both DeepSeek protocols
2026-09-14 10:19:11 +08:00
Turtle
71d50b4a84
refactor: ban ambiguous origin label
2026-09-11 17:45:28 +08:00
creatixchu
413ac14b16
refactor: move image offload projection into its plugin
2026-09-11 15:24:45 +08:00
07akioni
8c2fa73ceb
refactor(desktop): share profile initialization and plugin management
2026-09-10 22:44:52 +08:00
creatixchu
4b1408e1df
Merge origin/master into worktree/3041-image-offload-log-design
2026-09-10 17:20:54 +08:00