fz
17d8507b87
Merge origin/master into feat/sdk-disable-str-replace-editor
2026-09-05 23:57:47 +08:00
fz
36a4665144
feat(base): remove str_replace_editor from default tools
2026-09-05 23:37:13 +08:00
Tianyi Cui
9ffe85a512
OTel uploads explicit feedback for all users by default
2026-09-05 23:21:23 +08:00
Chinesezjc and Tianyi Cui
02a029e679
Feedback is recorded in the session log and delivered through DeepSeek
...
Co-authored-by: Tianyi Cui <53024+tianyicui@users.noreply.github.com >
2026-09-05 23:21:22 +08:00
fz
20ed4aced0
docs(sdk): clarify the default editor selection
2026-09-05 22:28:40 +08:00
fz
965adbb5cf
feat(sdk): disable str_replace_editor by default
2026-09-05 22:11:20 +08:00
Tianyi Cui
c70b30a6fb
test(cli): exercise patch removal without rapid rewrite
2026-09-05 20:25:20 +08:00
Tianyi Cui
15e444e0d7
fix(boot): normalize absolute plugin paths in patches
2026-09-05 20:14:43 +08:00
Tianyi Cui
a7a5be1703
docs(notes): archive low-future-value Agent Notes
...
Run the dsh-archive-agent-notes audit over every active Agent Note on
current master, judging each record by whether its rationale still guides
work rather than by size or age.
- Archive 453 implemented bilingual triplets (417,882 English words):
completed UI chrome, narrow adapters, closed bug fixes, implementation
walkthroughs whose package READMEs, docs pages, generators, or successor
notes now carry the useful behavior, and 51 records fully superseded by
a later active note. Keep 201 implemented notes whose ownership rules,
negative guarantees, durable or wire semantics, security rules,
reintroduction conditions, or still-tempting rejected alternatives
remain useful.
- Reject 7 proposals whose premise is gone or whose work shipped in
amended form under other records; delete 2 rejected notes that no
longer prevent a plausible mistake.
- Retarget every remaining inbound link to the archived path, and repair
active prose that named an archived record as the owner of a live fact:
parenthetical citations drop, ownership sentences redirect to the
README, docs page, or active note that states the fact, and history
citations say so. Chinese files link the English archived path because
the pairing gate treats the frozen tree as outside the bilingual corpus.
- Seal 1,359 new frozen artifacts; existing seals are unchanged and
outbound links from archived notes are neither inspected nor repaired.
- Regenerate docs/config-catalog.md after the hook-bridge comment edits
shifted two source line numbers.
2026-09-05 14:37:32 +08:00
Yichen Jiang
14befe7ff7
Merge branch 'master' into release/dsh-0.1.3-alpha.1
2026-09-04 16:16:15 +08:00
Yichen Jiang
ed67c22496
release(dsh): 0.1.3-alpha.1
2026-09-04 15:38:55 +08:00
creatixchu
b4517feed5
Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
2026-09-04 14:46:36 +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
creatixchu
fb743759a7
Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
...
# Conflicts:
# apps/web/tests/scaffold.ts
# 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
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/llm/token-meter/src/index.ts
# packages/session-query/session-log-export/README.i18n.yaml
# packages/session-query/session-log-export/README.md
# packages/session-query/session-log-export/README.zh.md
# packages/session-query/session-log-export/src/archive.ts
# scripts/package-dependency-policy.ts
2026-09-04 10:12:19 +08:00
creatixchu
0516edb037
test(file-upload): restore host composition fixtures
2026-09-03 21:12:50 +08:00
Tianyi Cui
91904d7c10
Merge commit 'fef079e5c9' into worktree/session-format-06-v2-snapshot-rollout
...
# Conflicts:
# snapshots/session/fs-policy-reject/session.jsonl
2026-09-03 18:51:05 +08:00
Tianyi Cui
28b16c011a
Merge commit 'a123cb0055' into worktree/session-format-05-v1-v2-chunk-migration
...
# Conflicts:
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
2026-09-03 18:39:44 +08:00
Tianyi Cui
3aef64797d
Merge master into session format migration
...
# Conflicts:
# packages/test-support/session-snapshot/src/harness.ts
# scripts/smoke-python-runtime.py
2026-09-03 18:31:54 +08:00
Yichen Jiang
7169660d33
Merge pull request #3198 from deepseek-harness/worktree/deepseek-harness-proxy-config-2f5b4a
...
feat(net): route every outbound request through the configured proxy
2026-09-03 13:19:19 +08:00
imccyu
3225ec2d94
Merge remote-tracking branch 'origin/master' into release/dsh-0.1.2-rc.1-version-to-master
2026-09-03 10:40:28 +08:00
Tianyi Cui
a88ef734cc
Merge remote-tracking branch 'origin/worktree/session-format-04-live-assistant-stream' into worktree/session-format-05-v1-v2-chunk-migration
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-08-31-live-assistant-stream-frames.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-31-live-assistant-stream-frames.md
# .agents/notes/implemented/architecture/2026-08-31-live-assistant-stream-frames.zh.md
# .agents/notes/implemented/simplification/2026-08-06-buffer-free-feedback-telemetry.i18n.yaml
# .agents/notes/implemented/simplification/2026-08-06-buffer-free-feedback-telemetry.md
# .agents/notes/implemented/simplification/2026-08-06-buffer-free-feedback-telemetry.zh.md
# apps/web/tests/scaffold.ts
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.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/assistant-stream.ts
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/assistant-stream.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent/src/runtime-types.ts
# packages/session/session-telemetry/tests/telemetry.spec.ts
# packages/test-support/llm-replay/README.i18n.yaml
# packages/test-support/llm-replay/README.md
# packages/test-support/llm-replay/README.zh.md
# packages/test-support/llm-replay/src/alpha-refusal-fixtures.ts
# packages/test-support/llm-replay/src/index.ts
# packages/test-support/llm-replay/tests/llm-replay.spec.ts
# packages/test-support/session-snapshot/README.i18n.yaml
# packages/test-support/session-snapshot/README.md
# packages/test-support/session-snapshot/README.zh.md
# packages/test-support/session-snapshot/src/suite.ts
# packages/test-support/session-snapshot/tests/suite.spec.ts
# snapshots/sdk/sdk.snapshot.ts
# snapshots/session/headless.snapshot.ts
2026-09-03 03:10:05 +08:00
imccyu
a66e470204
release(dsh): 0.1.2-rc.1
2026-09-03 02:27:19 +08:00
Yichen Jiang
5eb499ed35
Merge remote-tracking branch 'origin/master' into worktree/deepseek-harness-proxy-config-2f5b4a
2026-09-02 21:14:16 +08:00
Tianyi Cui
b5b4ef74a0
Merge embedded stream migration into v2 snapshot rollout
2026-09-02 18:50:56 +08:00
Tianyi Cui
e12258e2b7
Merge live assistant stream into embedded stream migration
2026-09-02 18:49:39 +08:00
Tianyi Cui
2ca559dee3
Merge master into session format migration
2026-09-02 18:46:49 +08:00
Tianyi Cui
8de41bbe99
Merge embedded stream migration into v2 snapshot rollout
...
# Conflicts:
# docs/testing.i18n.yaml
# docs/testing.md
# docs/testing.zh.md
# packages/test-support/session-snapshot/README.i18n.yaml
# packages/test-support/session-snapshot/README.md
# packages/test-support/session-snapshot/README.zh.md
# snapshots/session/read-image-attachment-path/session.v2.jsonl
# snapshots/session/read-image-dimension/session.v2.jsonl
# snapshots/session/read-image-reencode/session.v2.jsonl
# snapshots/session/read-image/session.v2.jsonl
# snapshots/web/navigation-panes/session.jsonl
# snapshots/web/ptc-round/session.v2.jsonl
# snapshots/web/pwsh-terminal/session.jsonl
# snapshots/web/seeded-history/session.jsonl
2026-09-02 18:45:14 +08:00
Tianyi Cui
042bd8d01a
Merge live assistant stream into embedded stream migration
...
# Conflicts:
# packages/session/session-projection-cache/src/spec.ts
2026-09-02 17:52:32 +08:00
imccyu
49a606bc5b
Merge pull request #3456 from deepseek-harness/release/dsh-0.1.2-alpha.5-version-to-master
...
sync: merge 0.1.2-alpha.5 to master
2026-09-02 17:47:12 +08:00
Tianyi Cui
3bdc1b37e5
Merge master into session format migration
2026-09-02 17:43:06 +08:00
imccyu
cf126d8699
Merge remote-tracking branch 'origin/merge/projcache-v6-compat-into-master' into release/dsh-0.1.2-alpha.5-version-to-master
2026-09-02 17:25:23 +08:00
Tianyi Cui
25098647e8
Merge live assistant stream into embedded stream migration
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.md
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md
# .agents/notes/implemented/architecture/2026-08-08-bounded-session-persistence-write-batching.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-08-bounded-session-persistence-write-batching.md
# .agents/notes/implemented/architecture/2026-08-08-bounded-session-persistence-write-batching.zh.md
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.i18n.yaml
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.md
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.zh.md
# apps/cli/tests/profiles/headless/tests/session-format-guard.expected.e2e.ts
# apps/web/tests/message-actions.e2e.ts
# apps/web/tests/scaffold-generation.spec.ts
# apps/web/tests/scaffold.ts
# apps/web/tests/seeded-history.e2e.ts
# apps/web/tests/subagent-conversation.e2e.ts
# 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
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/persistence-catalog.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.md
# docs/subsystems/persistence.zh.md
# docs/subsystems/session.i18n.yaml
# docs/subsystems/session.md
# docs/subsystems/session.zh.md
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/session-query/session-query-sqlite/tests/sqlite.spec.ts
# packages/session-query/session-query/tests/tracing.spec.ts
# packages/session/session-persistence-jsonl/README.i18n.yaml
# packages/session/session-persistence-jsonl/README.md
# packages/session/session-persistence-jsonl/README.zh.md
# packages/session/session-persistence-jsonl/src/index.ts
# packages/session/session-persistence-jsonl/tests/jsonl.spec.ts
# packages/session/session-persistence-jsonl/tests/zstd.spec.ts
# packages/session/session-persistence/tests/contract.ts
# packages/session/session-persistence/tests/coordinator-contract.ts
# packages/session/session-persistence/tests/persistence.spec.ts
# packages/subagent/subagent/src/continuation.ts
# packages/subagent/subagent/tests/list-children.spec.ts
2026-09-02 17:20:51 +08:00
Dudu-0223
1180707084
Merge remote-tracking branch 'origin/master' into feat/3330-team-send-message-steer
...
# Conflicts:
# packages/experimental/agent-team/tests/team.spec.ts
2026-09-02 16:58:09 +08:00
imccyu
db6bdc3576
release(dsh): 0.1.2-alpha.5
2026-09-02 15:48:33 +08:00
Tianyi Cui
7145acfe07
Merge master into session format migration
...
# Conflicts:
# .agents/notes/archived/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.md
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md
# .agents/notes/implemented/architecture/2026-07-24-project-session-directories.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-24-project-session-directories.md
# .agents/notes/implemented/architecture/2026-07-24-project-session-directories.zh.md
# .agents/notes/implemented/architecture/2026-08-05-session-preparation.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-05-session-preparation.md
# .agents/notes/implemented/architecture/2026-08-05-session-preparation.zh.md
# .agents/notes/implemented/architecture/2026-08-10-message-feedback-sidecar.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-10-message-feedback-sidecar.md
# .agents/notes/implemented/architecture/2026-08-10-message-feedback-sidecar.zh.md
# .agents/notes/implemented/architecture/2026-08-27-handle-based-session-persistence.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-07-28-load-pre-identity-session-messages.md
# .agents/notes/implemented/bug-fix/2026-07-28-load-pre-identity-session-messages.zh.md
# .agents/notes/implemented/bug-fix/2026-08-04-load-pre-react-loop-sessions.md
# .agents/notes/implemented/bug-fix/2026-08-04-load-pre-react-loop-sessions.zh.md
# .agents/notes/implemented/bug-fix/2026-09-01-host-goal-pause-aborts-turn.i18n.yaml
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.i18n.yaml
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.md
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.zh.md
# apps/cli/tests/profiles/headless/tests/session-format-guard.expected.e2e.ts
# apps/web/tests/cold-blank-session.e2e.ts
# apps/web/tests/message-actions.e2e.ts
# apps/web/tests/scaffold.ts
# apps/web/tests/workspace-management.e2e.ts
# 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
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/subsystems/feedback.i18n.yaml
# docs/subsystems/feedback.md
# docs/subsystems/feedback.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.md
# docs/subsystems/persistence.zh.md
# packages/acp/acp/src/index.ts
# packages/acp/acp/tests/bridge.spec.ts
# packages/api/session-controller/src/list.ts
# packages/api/session-controller/tests/agent.host.spec.ts
# packages/api/session-controller/tests/session-cold.host.spec.ts
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/api/session-controller/tests/session-search.host.spec.ts
# packages/api/session-controller/tests/test-remote.ts
# packages/api/session-controller/tests/transport.host.spec.ts
# packages/core/agent-loop/src/index.ts
# packages/core/agent-loop/tests/config-session-id.spec.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/feedback/message-feedback/src/index.ts
# packages/feedback/message-feedback/tests/helpers.ts
# packages/feedback/message-feedback/tests/message-feedback.spec.ts
# packages/session-query/session-log-export/src/archive.ts
# packages/session-query/session-log-export/tests/archive.host.spec.ts
# packages/session-query/session-log-export/tests/route.host.spec.ts
# packages/session-query/session-query-sqlite/README.i18n.yaml
# packages/session-query/session-query-sqlite/README.md
# packages/session-query/session-query-sqlite/README.zh.md
# packages/session-query/session-query-sqlite/src/index.ts
# packages/session-query/session-query-sqlite/tests/sqlite.spec.ts
# packages/session-query/session-query/README.i18n.yaml
# packages/session-query/session-query/README.md
# packages/session-query/session-query/README.zh.md
# packages/session-query/session-query/src/corpus.ts
# packages/session-query/session-query/tests/observation.spec.ts
# packages/session-query/session-query/tests/session-query.spec.ts
# packages/session-query/session-query/tests/tracing.spec.ts
# packages/session/session-checkpoint-policy/tests/session-checkpoint-policy.spec.ts
# packages/session/session-persistence-jsonl/README.i18n.yaml
# packages/session/session-persistence-jsonl/README.md
# packages/session/session-persistence-jsonl/README.zh.md
# packages/session/session-persistence-jsonl/src/index.ts
# packages/session/session-persistence-jsonl/tests/jsonl.spec.ts
# packages/session/session-persistence-jsonl/tests/zstd.spec.ts
# packages/session/session-persistence/README.i18n.yaml
# packages/session/session-persistence/README.md
# packages/session/session-persistence/README.zh.md
# packages/session/session-persistence/src/coordinator.ts
# packages/session/session-persistence/src/index.ts
# packages/session/session-persistence/tests/contract.ts
# packages/session/session-persistence/tests/coordinator-contract.ts
# packages/session/session-persistence/tests/persistence.spec.ts
# packages/session/session-telemetry/package.json
# packages/shell/tool-bash/tests/tools.spec.ts
# packages/subagent/subagent/src/continuation.ts
# packages/subagent/subagent/tests/list-children.spec.ts
# packages/workspace/workspace/src/index.ts
# packages/workspace/workspace/tests/workspace.spec.ts
# scripts/gen-cordis-catalog.ts
2026-09-02 13:34:40 +08:00
Yichen Jiang
e7170b05a1
Merge remote-tracking branch 'origin/master' into worktree/deepseek-harness-proxy-config-2f5b4a
2026-09-02 10:28:17 +08:00
Tianyi Cui
343a20fb6f
refactor(snapshot): remove dead fixture path plumbing
2026-09-02 04:46:02 +08:00
Tianyi Cui
f693946509
test(snapshot): roll corpus forward to format v2
2026-09-02 04:18:52 +08:00
Tianyi Cui
f99b06eaed
feat(session)!: embed assistant streams in format v2
2026-09-02 04:00:01 +08:00
Turtle
8b799cd7ac
Merge pull request #3266 from deepseek-harness/refactor/session-persistence-handle-seam
...
refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path
2026-09-02 00:50:53 +08:00
imccyu
a9e185f205
release(dsh): 0.1.2-alpha.4
2026-09-01 23:19:57 +08:00
Turtle
bec6805d6a
refactor(session-persistence)!: handle-based seam with a lifecycle-owned write path
...
The persistence seam is now create/open/stat/list returning per-session
SessionHandles (read/append/flush/close); every log read and write flows
through the owning handle. The seam package exports only the service and
handle contracts, consumer-visible errors, and pure durable-data
validation helpers; each backend owns its complete storage runtime, and
the shared contract suites pin equivalent observable behavior. The
backend routes published sessions' live events by id into the active
write handle; agent-loop only acquires, seeds, and closes the handle.
Resume appends interruptedTurnClosers through its write handle;
session-query owns the revision-keyed cold cache. Legacy-only surfaces
are removed in the same swap: locate/readRaw/supportsRawArtifacts, the
legacy event-shape read migration, zstd torn-frame salvage,
DSH_SESSION_JSONL, and hook transcript_path population; a torn final
zstd frame is discarded whole; the session-list cold blank probe returns
on stat metadata (eventCount derived from the last physical row,
sizeBytes). The WebUI ZIP export serializes the logical log from a read
handle, so both backends export identically.
Refs #3245
2026-09-01 23:19:02 +08:00
Tianyi Cui
d1521ea783
feat(session)!: add released format migration
2026-09-01 22:12:21 +08:00
Yichen Jiang
bdd294dc47
Merge remote-tracking branch 'origin/master' into worktree/deepseek-harness-proxy-config-2f5b4a
2026-09-01 21:21:22 +08:00
Yichen Jiang
8470ddef1d
refactor(http-proxy): converge the proxy API on four functions
...
The package exported six functions, four of them shaped by one SDK's
transport each: a dispatcher factory, a `node:http` agent factory, a
proxy-URL lookup, and a policy accessor. Review asked whether the call
sites could converge instead of the package growing an export per SDK.
They could, and each removal took a whole shape with it:
- The OTLP exporter moves to the SDK's `fetch` delegate, retiring
`createNodeHttpAgent`. Its Node-version floor goes too: `proxyEnv` on
an `http.Agent` needs 22.21 or 24.5, inside the engines range, so
telemetry was direct on 22.19, 22.20, and 24.0-24.4. The cost is
`compression`, a Node-transport option; the plugin now refuses it,
`keepAlive`, and `httpAgentOptions` at load instead of ignoring them.
- `web-fetch-http` builds its own address-pinning agent under an
annotated `proxy-exempt:` exemption, retiring `createDispatcher`.
Pinning is per-request state a process-wide dispatcher cannot hold.
- E2B reads `route.proxy`, retiring `proxyUrlFor`.
What remains is `installProxyFromEnvironment`, `proxyRouteFor`,
`proxyEnvironmentForChild`, and `clearedProxyEnv` — one per way a caller
can need the policy. Installation absorbs resolution and diagnostic
reporting, which no caller needed apart.
`proxyRouteFor` also closes a defect the old accessor made expressible:
`web-fetch-http` read the policy to decide whether to pin, then read it
again to build a transport, so an unmount between the two returned a
direct, unpinned agent for a URL the first read had cleared as proxied.
A route carries the answer and the transport that answer assumed.
Every egress spec now installs through `installProxyFromEnvironment`, so
no test asserts a policy object a real launch could not produce.
2026-09-01 21:15:04 +08:00
Tianyi Cui
27bf1039db
refactor(session)!: distinguish event seqs from log offsets
2026-09-01 20:36:00 +08:00
fz
0a0f9e59ff
feat(base): expose web fetch by default
2026-09-01 15:18:18 +08:00
Dudu-0223
040d73871b
feat(agent-team): unify messages on steer
2026-09-01 14:22:50 +08:00
fz
ab9dcd5a2a
Merge remote-tracking branch 'origin/master' into feat/sdk-default-web-fetch
2026-09-01 14:17:15 +08:00
Dudu-0223
22b08a9b9b
test(subagent): update parent id expectation
2026-09-01 13:46:36 +08:00