imccyu
4f00a8b82a
refactor(api): remove ApiProxy package
2026-08-27 22:26:29 +08:00
imccyu
160706be60
test(api): refresh Remote migration artifacts
2026-08-27 21:57:56 +08:00
imccyu
28cc3e930b
feat(inspector): expose Cordis trees through CDP DOM
2026-08-27 16:15:18 +08:00
Dudu-0223
7c626fb5d2
fix(subagent): gate model selection with explicit allowlist
2026-08-27 12:00:02 +08:00
Dudu-0223
aefc083be7
feat(subagent): authorize selectable child models
2026-08-27 12:00:01 +08:00
imccyu
dd70c0c88d
feat(api): serve settings through Remote controllers
2026-08-27 03:00:49 +08:00
imccyu
54d77eff00
docs(directory-picker): record the Remote transport
2026-08-27 02:20:40 +08:00
imccyu
64575de655
docs(subagent): regenerate Remote references
2026-08-26 14:52:53 +08:00
imccyu
5752b1dc3c
docs(agent-presets): refresh @Remote migration references
2026-08-26 11:18:36 +08:00
Dudu-0223
806642b064
feat(team): add experimental Agent Teams Web profile
2026-08-26 10:56:57 +08:00
Magolor
0b5eba0c8d
docs: rebuild the documentation skill and standards ( #2983 )
2026-08-25 23:47:20 +08:00
creatixchu
1c065f3cd4
Merge remote-tracking branch 'origin/master' into worktree/2848-image-token-pressure
...
# Conflicts:
# apps/cli/tests/profiles/acp/image-compaction.cordis.snapshot.yml
# apps/cli/tests/profiles/acp/image-compaction.cordis.yml
# apps/cli/tests/profiles/acp/tests/snapshots/image-compaction/input.json
# apps/cli/tests/profiles/acp/tests/snapshots/image-compaction/session.jsonl
# apps/cli/tests/profiles/acp/tests/snapshots/image-compaction/stdout.expected.jsonl
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# examples/acp-agent/tests/acp.snapshot.ts
# packages/llm/token-meter/README.i18n.yaml
# packages/llm/token-meter/README.md
# packages/llm/token-meter/README.zh.md
# packages/llm/token-meter/src/index.ts
# packages/llm/token-meter/src/surface-fold.ts
2026-08-25 11:15:35 +08:00
imccyu
1229292497
docs(session): refresh architecture and generated contracts
2026-08-25 06:10:25 +08:00
imccyu
9c3a0893f6
perf(client-modules): defer per-plugin revision hashing
...
Preserve sourcemaps through the production Client build and verify batched loading across Host, HMR, and Web Worker paths.
2026-08-24 20:49:13 +08:00
creatixchu
9f2ba9f5aa
Merge origin/master (regenerate config catalog)
2026-08-24 19:51:16 +08:00
creatixchu
42164508c8
feat(llm): 在 compaction 中按路由为图片请求压力计价
...
Closes #2848 .
- dsh-llm 新增 LlmAdapter.imageRequestPricing 同步钩子与 LlmImageRequestPricing/LlmImageRequestPrice 词汇,ctx.llm 按路由解析
- llm-deepseek 用官方公布的 v4 视觉计算器逐句移植(14px patch、3:1 降采样、384 上限、最坏对齐 pad)实现该钩子,复现请求投影的最旧优先 offload 与像素预算缩放;纯几何 requestImageDimensions 上移到 dsh-attachment
- token-meter 表层 fold 存储与路由无关的节点事实,measure() 按生效 envelope 的路由为图片出现处定价;锚点存快照并按同一路由重定价;TokenSurfaceNode 同时携带路由价 tokens 与固定启发式 heuristicTokens
- compaction 触发、保留与选段读取同一套路由价,记录的 shadowedTokenCount 保持启发式以维持 O(1) 投影 fold 一致
- llm-replay 支持按模型的 imageRequestTokens 声明;新增 keyless 的 image-compaction ACP 快照场景端到端验证装配应用
2026-08-24 19:15:30 +08:00
Dudu-0223
f76a225a7d
Merge pull request #2663 from deepseek-harness/feat/subagent-provider
...
让 subagent 按需发现并选择子 Agent 模型
2026-08-24 18:23:42 +08:00
creatixchu
558f08780c
refactor(attachment): 分离宿主位置与模型访问路径
2026-08-24 14:51:03 +08:00
creatixchu
bd4e4173e7
feat(attachment): expose model-readable image paths
2026-08-24 12:08:26 +08:00
imccyu
dc92793f10
fix(client): align domain split with repository gates
2026-08-23 16:28:19 +08:00
imccyu
3a23185edb
chore(client): align split package graph
2026-08-23 16:28:18 +08:00
imccyu
a49b265f88
docs: synchronize controller transport documentation
2026-08-23 16:16:04 +08:00
imccyu
9b1069c234
docs: document controller Remote transport
2026-08-23 16:16:03 +08:00
Tianyi Cui
a16822944b
feat(profiles): add the SDK application bundle
...
Introduce @deepseek-ai/dsh-sdk-app as the thin application layer for the built-in sdk profile. The bundle contributes the JSON-RPC server and startup-only profile metadata, while dsh-base continues to own the shared agent, provider, persistence, and tool composition.
Publish ctx.appReady from the launcher only after the Loader tree and launcher-owned setup succeed. The stdio lifetime binding leaves stdin unread until the protocol transport claims it and defers EOF exit 0 until readiness commits, so early protocol frames remain buffered and a racing startup failure remains the nonzero process outcome. Fiber disposal cancels both pending lifecycle listeners.
Register the bundle in the CLI resolver closure, generated configuration catalog, workspace graph, and built-bin smoke. Startup tests prove that base plus sdk-app exposes the SDK server without taking ownership of shared runtime plugins; focused and built-bin regressions cover early input, EOF readiness, and startup-error precedence.
2026-08-23 10:59:00 +08:00
Tianyi Cui
5f60e50d71
feat(webhook): create workspace sessions from GitHub events
2026-08-23 01:48:35 +08:00
Tianyi Cui
ea6f61f144
feat(deepseek): upload plugin package metadata ( #2916 )
...
* feat(deepseek): upload plugin package metadata
* feat(deepseek): apply metadata review feedback
* docs(deepseek): specify request wire extensions
* docs(notes): record inventory cache benchmark
* docs(site): keep DeepSeek wire spec repository-only
2026-08-22 20:03:23 +08:00
Turtle
6b3e971805
docs: remove implementation narration from prose
2026-08-21 22:22:23 +08:00
creatixchu
2491e12fd8
refactor(attachment): normalize image storage API
2026-08-21 15:06:24 +08:00
creatixchu
724783b024
refactor(image): remove region reads
2026-08-21 15:06:24 +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
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
732a7361f5
feat(authorization): obtain a credential by asking the human
...
Some credentials cannot be configured, only obtained: getting one means
a conversation — open this page, paste that code, pick an account. The
new seam owns that conversation and the one-attempt-per-key lifecycle,
and never the protocol, so a second authorization protocol arrives as
another flow rather than as another seam.
A flow is registered under the CredentialKey it writes, which is also
how the seam knows which plugin answers for the format inside that
record. The flow owns the write: run() resolving means the record is
already committed through ctx.credentials, and the seam confirms it.
That keeps a library persisting through its own store adapter the
single writer instead of being copied back out and written twice.
The interaction travels with the request rather than a registry,
because whoever starts an authorization is the one who can talk to the
human about it. A request already withdrawn never claims the key and
never starts the flow — relying on each flow to check its signal before
the first await would let one that does not hang holding the key.
2026-08-20 17:58:38 +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
imccyu
d4fd03ae53
chore(docs): classify IndexInjection and regenerate the catalog surfaces
2026-08-20 16:13:04 +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
imccyu
70a3bf4554
docs: refresh Agent Teams catalogs
2026-08-19 22:44:23 +08:00
imccyu
4dd1be1a1f
refactor: rename agent teams service key
2026-08-19 22:30:36 +08:00
creatixchu
e7a668906a
Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references
...
# Conflicts:
# packages/client/connection/src/client/fixture.ts
# packages/client/ui-conversation/src/client/input/facade.ts
# packages/client/ui-conversation/src/client/input/hub.ts
# 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
2026-08-19 14:49:57 +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
Yichen Jiang
67a7c79004
Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# packages/context/agent-instructions/tests/agent-instructions.spec.ts
2026-08-19 11:01:27 +08:00
pku-xht
8a334c4d49
fix(i18n): bind localized links to active pairs
2026-08-19 02:26:57 +08:00
pku-xht
8d3674695b
docs(i18n): localize Chinese internal links
2026-08-18 19:00:37 +08:00
creatixchu
d007f437cc
Merge remote-tracking branch 'origin/master' into worktree/command-attachment-envelope
2026-08-18 16:25:11 +08:00
creatixchu
35a10ec41a
Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references
...
# Conflicts:
# 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/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/client/ui-conversation/tests/input-bar.client.spec.tsx
# packages/client/ui-subagent/package.json
# pnpm-lock.yaml
2026-08-18 15:22:32 +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
Dudu-0223
3546f595b9
feat(team): add durable Agent Teams runtime
2026-08-18 11:58:11 +08:00
imccyu
cf5e686408
refactor(client): merge React bindings into UI renderer
2026-08-18 01:34:23 +08:00
imccyu
f37bc082c5
refactor(client): move web rendering into a dynamic plugin
2026-08-18 01:34:21 +08:00