imccyu
f19c25123d
style(apiproxy): remove stale spacing
2026-08-27 03:08:53 +08:00
imccyu
fd7f2065b2
refactor(apiproxy)!: remove settings and credentials RPCs
2026-08-27 03:01:29 +08:00
imccyu
0a9a9ee686
docs(api): record settings Remote migration
2026-08-27 03:00:25 +08:00
imccyu
54d77eff00
docs(directory-picker): record the Remote transport
2026-08-27 02:20:40 +08:00
imccyu
6e4087626d
refactor(apiproxy)!: remove directory-picker RPCs
2026-08-27 02:20:39 +08:00
imccyu
64575de655
docs(subagent): regenerate Remote references
2026-08-26 14:52:53 +08:00
imccyu
91fea67745
test(subagent): cover Remote control migration
2026-08-26 14:52:53 +08:00
imccyu
377f3b4f1d
feat(subagent): migrate browser control to Remote
2026-08-26 14:52:53 +08:00
imccyu
c5be99838c
test(agent-presets): cover the Remote migration
2026-08-26 11:18:28 +08:00
imccyu
306419cc84
refactor(agent-presets): expose browser operations through Remote
2026-08-26 11:18:28 +08:00
imccyu
f18f2215b6
Merge pull request #3073 from deepseek-harness/worktree-apire-a
...
refactor(apiproxy): delete the goal unary domain
2026-08-25 23:54:01 +08:00
Magolor
0b5eba0c8d
docs: rebuild the documentation skill and standards ( #2983 )
2026-08-25 23:47:20 +08:00
imccyu
f04e2fe44a
build(apiproxy): drop the now-unused goal dependency
...
Nothing under packages/host/apiproxy imports @deepseek-ai/dsh-goal after the
unary domain deletion, so the dependency and its project reference go too.
2026-08-25 20:55:03 +08:00
imccyu
243f6629ef
refactor(apiproxy): delete the goal unary domain
...
The goal domain has been served by GoalService's @Remote namespace since it
shipped; the API Proxy copy was a second implementation of the same six
mutations. Remove the goals contract, schemas, route rows, IApiClient stub,
host implementation, and the fixture's compatibility face, leaving
ctx.remote.goals as the only path.
The fixture's goal fold keeps its coverage through the Goal Remotes: its
lifecycle case moves out of the unary-dispatch test, which no longer has
goal rows to cover.
2026-08-25 20:52:46 +08:00
07akioni
61b65d3147
fix(web): show system prompts in chat
...
Render reconstructable system prompts at each request-series boundary, preserve series declarations through pre-step wrappers, and keep the presentation and replay snapshots aligned across clients.
2026-08-25 14:44:08 +08:00
Tianyi Cui
5595d593d1
docs(web): state authentication contracts directly
2026-08-25 14:23:47 +08:00
Tianyi Cui
3e24087bfa
fix(web): authenticate the browser Host API
2026-08-25 14:23:45 +08:00
imccyu
f5f0448bee
refactor(subagent): consume shared session observations
2026-08-25 06:09:25 +08:00
imccyu
54d739cf53
chore(api): align controller assembly and package graph
2026-08-23 16:16:02 +08:00
imccyu
dcddaa1a6e
refactor(client): replace legacy Host event carriers
2026-08-23 16:16:02 +08:00
imccyu
ae25df3ac6
refactor(workspace): move APIs into Workspace Controller
2026-08-23 16:16:02 +08:00
imccyu
d26acfa2e3
refactor(session): move APIs into Session Controller
2026-08-23 16:16:02 +08:00
Tianyi Cui
934976732d
docs: purge residual chain-of-thought leakage
2026-08-22 13:10:23 +08:00
imccyu
0bee546177
feat(util): mint UUIDs without crypto.randomUUID in every context
2026-08-21 20:35:34 +08:00
imccyu
aa6c361a97
release(dsh): 0.1.1-rc.2
2026-08-21 19:48:58 +08:00
creatixchu
d4b24b5148
Merge remote-tracking branch 'origin/master' into worktree/image-management-strategy
2026-08-21 16:55:00 +08:00
imccyu
7ce85283b5
Revert "Merge pull request #2608 from deepseek-harness/fix/permission-copy-and-default"
...
This reverts commit d51f4106a2b0669d33e0f5dc1d5dcf21a764d313, reversing
changes made to 69ace51625b6ac665b2f2ec1e81005d5b055f152.
2026-08-21 16:21:13 +08:00
creatixchu
2491e12fd8
refactor(attachment): normalize image storage API
2026-08-21 15:06:24 +08:00
creatixchu
48a58b9090
fix(images): address unified pipeline review
2026-08-21 15:06:10 +08:00
creatixchu
d29855f97c
feat(images): unify master and Files request pipeline
2026-08-21 15:05:54 +08:00
creatixchu
8f83853b60
refactor(attachment): saveImage returns the canonical ref beside source facts
...
AttachmentStore.saveImage now resolves SavedImageAttachment: the durable
reference paired with the submitted raster's intrinsic facts, so a store may
persist a canonical re-encoding while callers keep the source dimensions for
coordinate mapping. saveImages keeps returning refs; every fake store and the
cordis API catalog follow the new signature.
2026-08-21 15:01:45 +08:00
imccyu
3ec5e8f8c4
release(dsh): 0.1.1-rc.1
2026-08-21 14:11:09 +08:00
pku-xht
84cbec28e9
Merge remote-tracking branch 'origin/master' into codex/localized-chinese-doc-links
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md
# .agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md
# .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.zh.md
# .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.zh.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# .agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml
# .agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md
# .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml
# .agents/notes/implemented/feature/2026-07-31-permission-default-for-new-sessions.i18n.yaml
# .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml
# .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.zh.md
# .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml
# .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md
# .agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml
# .agents/notes/implemented/feature/2026-08-05-agent-teams.zh.md
# .agents/notes/implemented/feature/2026-08-11-workspace-sidebar-order-and-folding.i18n.yaml
# .agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml
# .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml
# .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.zh.md
# .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.i18n.yaml
# .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.zh.md
# .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.i18n.yaml
# .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.zh.md
# .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml
# .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.zh.md
# .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml
# .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md
# .agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml
# README.i18n.yaml
# README.zh.md
# docs/architecture.i18n.yaml
# docs/architecture.zh.md
# docs/development.i18n.yaml
# docs/development.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.zh.md
# docs/subsystems/README.i18n.yaml
# docs/subsystems/README.zh.md
# docs/subsystems/agent-team.i18n.yaml
# docs/subsystems/agent-team.zh.md
# docs/subsystems/client-modules.i18n.yaml
# docs/subsystems/client-modules.zh.md
# docs/subsystems/commands.i18n.yaml
# docs/subsystems/commands.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.zh.md
# docs/subsystems/session-reference.i18n.yaml
# docs/tool-catalog.i18n.yaml
# docs/tool-catalog.zh.md
# docs/user/guide/providers.i18n.yaml
# docs/user/guide/providers.zh.md
# packages/README.i18n.yaml
# packages/README.zh.md
# packages/bundle/web-app/README.i18n.yaml
# packages/bundle/web-app/README.zh.md
# packages/client/README.i18n.yaml
# packages/client/README.zh.md
# packages/client/connection/README.i18n.yaml
# packages/client/connection/README.zh.md
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/README.zh.md
# packages/client/ui-primitives/README.i18n.yaml
# packages/client/ui-primitives/README.zh.md
# packages/client/ui-sidebar/README.i18n.yaml
# packages/client/ui-sidebar/README.zh.md
# packages/client/ui-workspace/README.i18n.yaml
# packages/client/ui-workspace/README.zh.md
# packages/context/README.i18n.yaml
# packages/context/README.zh.md
# packages/core/agent-loop/README.i18n.yaml
# packages/credentials/README.i18n.yaml
# packages/credentials/README.zh.md
# packages/experimental/agent-team/README.i18n.yaml
# packages/experimental/agent-team/README.zh.md
# packages/experimental/tool-agent-team/README.i18n.yaml
# packages/experimental/tool-agent-team/README.zh.md
# packages/host/frontend-static/README.i18n.yaml
# packages/host/frontend-static/README.zh.md
# packages/host/webserver/README.i18n.yaml
# packages/host/webserver/README.zh.md
# packages/interaction/commands/README.i18n.yaml
# packages/interaction/commands/README.zh.md
# packages/plan/plan-mode/README.i18n.yaml
# packages/plan/plan-mode/README.zh.md
# packages/sandbox/sandbox-local/README.i18n.yaml
# packages/sandbox/sandbox-local/README.zh.md
# packages/session/README.i18n.yaml
# packages/session/README.zh.md
# packages/session/session-persistence-sqlite/README.i18n.yaml
# packages/session/session-persistence-sqlite/README.zh.md
# packages/session/session-projection-cache/README.i18n.yaml
# packages/session/session-projection-cache/README.zh.md
# packages/shell/tool-pwsh/README.i18n.yaml
# packages/shell/tool-pwsh/README.zh.md
# packages/subagent/subagent-codex/README.i18n.yaml
# packages/subagent/subagent-codex/README.zh.md
# packages/subagent/subagent/README.i18n.yaml
# packages/subagent/subagent/README.zh.md
# packages/web/tool-web/README.i18n.yaml
# packages/web/tool-web/README.zh.md
# scripts/snapshots/translation-prompt-v4/request-response.expected.json
2026-08-20 19:15:33 +08:00
Yichen Jiang
fecfabcac4
fix(credentials): name reference update event explicitly
2026-08-20 17:58:39 +08:00
Yichen Jiang
86a9f8c862
feat(credentials): store durable credential records beside references
...
The seam answered one question — what is behind this environment-variable
name — and that shape cannot hold what an authorization grant is: a
multi-field, rotating value keyed by a provider id rather than by a POSIX
identifier. The Models page already works around the gap by inventing a
synthetic environment name (`MINIMAX_CN_API_KEY`) for a route the user added
by hand, because the store's key must look like one.
`CredentialKey` is `<scope>/<id>`, where the scope is the owning plugin's
registered name. The owner is in the key because a `grant` payload is written
in its owner's format: two plugins serving the same provider name would
otherwise read each other's payload, and a record left by an uninstalled
plugin could not be told from a live one. The `/` also keeps the grammar
disjoint from `CredentialRef`, so the key spaces cannot collide.
`CredentialRecord` is `api-key` (key and/or provider environment values) or
`grant` (an opaque, owner-owned payload). The asymmetry is deliberate: an api
key is the harness's own data, a grant is a package it carries for someone
else. `modifyRecord` is the only write path because a correct write depends
on the current value — a token refresh is read-decide-replace under one
cross-process lock, without which two processes rotating one refresh token
lose whichever wrote first.
`.credentials.yaml` becomes a versioned two-section document. The pre-release
flat layout is refused by name, with the entry count and the one edit needed,
rather than read as an empty store — which would surface as an authentication
failure on the first request instead of at load. A grant payload is admitted
in both directions, so a value the document could not read back exactly as
written is refused rather than stored lossily.
2026-08-20 17:58:38 +08:00
Yichen Jiang
4562616c9b
docs(apiproxy): record that a pending question dies with the host
...
The pending-question registry holds the awaiting tool call's own
resolve/reject, so it is host-process memory. events.mux replays every
still-pending question on reopen, which covers a browser reload or a
reconnect, but a host restart takes the awaiting turn with it and the
reopened Session offers no composer for that question.
2026-08-20 15:29:14 +08:00
_Kerman
f9cd580a33
Merge remote-tracking branch 'origin/master' into xtr/projection-state-schema
2026-08-20 13:21:03 +08:00
_Kerman
83a3457b4a
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2730
2026-08-20 10:04:04 +08:00
Kaige-Gao
027b1d579f
Merge remote-tracking branch 'origin/master' into fix/permission-copy-and-default
2026-08-19 23:23:54 +08:00
imccyu
f1f7dc36fa
release(dsh): 0.1.0-rc.8
2026-08-19 23:00:28 +08:00
Kaige-Gao
8304a25d8a
Merge remote-tracking branch 'origin/master' into fix/permission-copy-and-default
...
# Conflicts:
# packages/subagent/subagent-codex/tests/subagent-codex.spec.ts
2026-08-19 22:50:35 +08:00
Kaige-Gao
35778ec2ff
fix(web): address permission preset review feedback
2026-08-19 22:45:54 +08:00
_Kerman
571dba37cb
Merge remote-tracking branch 'origin/master' into xtr/projection-state-schema
2026-08-19 14:50:24 +08:00
_Kerman
9127d7e8b7
fix(session-projection): keep host state off wire
2026-08-19 14:32:48 +08:00
_Kerman
4c421ec882
refactor(session-projection): separate state from client views
2026-08-19 13:11:05 +08:00
07akioni
149d4ba01c
Merge remote-tracking branch 'origin/master' into feat/home-path-abbr
2026-08-19 12:24:40 +08:00
07akioni
bd41b3cbc7
Merge remote-tracking branch 'origin/master' into feat/home-path-abbr
2026-08-18 19:42:01 +08:00
07akioni
20a5f5a3ee
feat(ui-tool): integrate connection handling for POSIX home path abbreviation
2026-08-18 19:25:13 +08:00
pku-xht
8d3674695b
docs(i18n): localize Chinese internal links
2026-08-18 19:00:37 +08:00
creatixchu
1492b0cfee
Merge remote-tracking branch 'origin/master' into worktree/command-attachment-envelope
...
# Conflicts:
# apps/web/tests/assembled-boot.ts
2026-08-18 12:00:46 +08:00