Tianyi Cui
ee956c720d
refactor(session): represent the system prompt as surface node zero
...
Consolidate the representation-change PR and its rebase reconciliations into one baseline. Preserve the exact tree and keep the in-history feature in the dependent PR. Follow-up fixes remain separate.
2026-09-06 20:42:43 +08:00
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
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
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
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
Tianyi Cui
3bdc1b37e5
Merge master into session format migration
2026-09-02 17:43:06 +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
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
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
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
Tianyi Cui
27bf1039db
refactor(session)!: distinguish event seqs from log offsets
2026-09-01 20:36:00 +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
Dudu-0223
4093ce465b
Merge remote-tracking branch 'origin/master' into feat/3220-steer-service
2026-09-01 13:46:35 +08:00
fz
cf7b0bd5a4
feat(headless): expose web fetch by default
2026-09-01 11:40:10 +08:00
fz
b5c61b613a
Merge remote-tracking branch 'origin/master' into feat/sdk-default-web-fetch
2026-09-01 11:13:00 +08:00
fz
ca723d9273
feat(sdk): expose web fetch by default
2026-08-31 20:18:50 +08:00
_Kerman
687ae5c9c0
Merge remote-tracking branch 'github/master' into xtr/session-log-read-api
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.md
# .agents/notes/implemented/architecture/2026-07-25-web-client-session-scope-and-provide-channel.zh.md
# .agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.i18n.yaml
# .agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.md
# .agents/notes/implemented/feature/2026-08-05-context-form-vocabulary.zh.md
# packages/examples/agent-spine-demo/tests/agent-core.spec.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
2026-08-31 17:19:59 +08:00
Turtle
4c69dc3fed
test(loader): budget production profile startup
2026-08-31 11:23:46 +08:00
Turtle
8528e4039d
chore(cli): trim test-only profile dependencies
2026-08-31 11:23:46 +08:00
Turtle
287651fd89
test(cli): replay the session title separately
2026-08-31 11:23:30 +08:00
Turtle
244de7c18a
refactor(bundle): remove the agent spine demo
2026-08-31 11:23:30 +08:00
_Kerman
6c63e708b8
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2907
...
# Conflicts:
# docs/config-catalog.i18n.yaml
# docs/persistence-catalog.i18n.yaml
# docs/subsystems/session.i18n.yaml
# packages/api/session-controller/tests/transport.host.spec.ts
# packages/bundle/headless/src/index.ts
# packages/core/session/README.i18n.yaml
# packages/schedule/schedule/README.i18n.yaml
# packages/schedule/schedule/README.md
# packages/schedule/schedule/README.zh.md
# packages/session-query/tool-session-query/src/workspace-access.ts
# packages/session/session-log-deepseek/src/index.ts
2026-08-31 10:56:53 +08:00
Dudu-0223
5b91cdbf8b
Merge remote-tracking branch 'origin/master' into feat/3220-steer-service
2026-08-30 16:08:31 +08:00
Dudu-0223
4fce895468
test(subagent): cover unified messaging setup
2026-08-30 14:27:37 +08:00
Dudu-0223
b91e7ce366
Unify adjacent Agent messaging
2026-08-30 14:14:46 +08:00
Tianyi Cui
2c6ff296af
Revert "Merge pull request #3087 from deepseek-harness/worktree/remove-ignorable-session-events"
...
This reverts commit 2123b2f418b1c8fbb86dc327b598fb11423da226, reversing
changes made to 3c0b5c68ce697537a21084f9135663017474a2e1.
2026-08-30 12:26:20 +08:00
imccyu
9135a13a8b
refactor(consumers): remove cross-package runtime relays
2026-08-30 02:29:52 +08:00
_Kerman
bcfec8d1c3
perf(session): reuse immutable event snapshots
2026-08-28 13:43:16 +08:00
_Kerman
5660f44d29
perf(session): separate indexed and snapshot log reads
2026-08-28 13:25:58 +08:00
_Kerman
25b0c943ce
Merge remote-tracking branch 'github/master' into xtr/session-projection-migrations
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.md
# .agents/notes/implemented/architecture/2026-08-04-draft-provider-endpoint-interrogation.zh.md
# .agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.i18n.yaml
# .agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.md
# .agents/notes/implemented/feature/2026-08-06-continuable-subagent-interrupt.zh.md
# .agents/notes/implemented/process/2026-07-20-gui-testing-system.i18n.yaml
# .agents/notes/implemented/process/2026-07-20-gui-testing-system.md
# .agents/notes/implemented/process/2026-07-20-gui-testing-system.zh.md
2026-08-28 10:59:30 +08:00
_Kerman
13c1541c63
Merge remote-tracking branch 'github/master' into xtr/session-projection-migrations
...
# Conflicts:
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# pnpm-lock.yaml
2026-08-27 23:18:55 +08:00
Tianyi Cui
45c514a42b
fix: align mode-value prose and stale persistent mentions with the split
...
The split kept the session-persistent vocabulary (tool/code-dispatch*,
tools-code-mode, :code:) on this PR, but several prose surfaces still named
the new values: the zh persistence/tool catalogs, the renamed Agent Notes'
event mentions, spill-policy comments, and a garbled 're-enPTC mode'
replacement. Also rename the mode value to ptc in the places the rename
missed (tools and agent-tool-presentation READMEs, the Config JSDoc, note
mode unions) and the codeModeHarness* e2e helpers.
2026-08-27 23:14:32 +08:00
Tianyi Cui
3ca9c7d489
rename code-mode to ptc (PTC mode), except session-persistent vocabulary
...
Rename the tool-presentation transport from code-mode to ptc everywhere
that is not written into session logs: the mode config value becomes 'ptc',
the preset directory/id becomes ptc, the demo becomes demo:ptc, the
dispatch waterfall becomes tools/ptc-dispatch-log (types PtcDispatch*), the
prompt rule becomes tools:ptc-only, source/test files become ptc.ts etc.,
and prose says PTC mode / PTC 模式. The session-persistent vocabulary
(durable events tool/code-dispatch*, logged plugin name tools-code-mode,
sub-call id segment :code:) intentionally stays and moves in the stacked
persistence PR, which is blocked until the SESSION_FORMAT_VERSION v0→v1
migration lands with it. run_code, its code parameter, CodeSdkLanguage,
CodeRunFailedError, the dsh-code-runtime family, third-party codex names,
and frozen archived notes keep their names.
2026-08-27 23:14:31 +08:00
imccyu
e14d354e83
refactor(connection): own RPC transport contracts
2026-08-27 22:26:29 +08:00
imccyu
3b40a14555
test(session-export): assign Host compiler face
2026-08-27 22:26:29 +08:00