Tianyi Cui
bad4254d71
Rename durable PTC vocabulary with identity-preserving v2 migration
2026-09-06 14:53:16 +08:00
fz
36a4665144
feat(base): remove str_replace_editor from default tools
2026-09-05 23:37:13 +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
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
_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
_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
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
_Kerman
d9c0aa1cd0
Merge remote-tracking branch 'github/master' into xtr/session-projection-migrations
...
# Conflicts:
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# packages/context/session-reference/package.json
# packages/context/session-reference/tests/session-reference.spec.ts
# packages/subagent/tool-subagent/src/index.ts
# packages/subagent/tool-subagent/src/invariant.ts
# packages/subagent/tool-subagent/src/model-selection-state.ts
# packages/subagent/tool-subagent/tests/harness.ts
# packages/subagent/tool-subagent/tests/list-models.spec.ts
# packages/subagent/tool-subagent/tests/model-selection-settings.spec.ts
# packages/subagent/tool-subagent/tests/tool-subagent.spec.ts
# pnpm-lock.yaml
2026-08-27 16:38:06 +08:00
Dudu-0223
7c626fb5d2
fix(subagent): gate model selection with explicit allowlist
2026-08-27 12:00:02 +08:00
_Kerman
737691054a
Merge remote-tracking branch 'origin/master' into xtr/session-projection-migrations
...
# Conflicts:
# packages/core/agent-loop/tests/agent-initiator.spec.ts
# packages/core/tools/tests/tools.spec.ts
# packages/fs/tool-fs/tests/tools.spec.ts
# packages/schedule/schedule/tests/plugin.spec.ts
# packages/session/session-checkpoint-policy/tests/fixtures/crash-child.ts
2026-08-26 13:36:05 +08:00
_Kerman
4325672ad6
Merge origin/master into xtr/session-projection-migrations
2026-08-26 11:48:52 +08:00
_Kerman
d3dd816d67
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2731
...
# Conflicts:
# packages/util/brand/README.i18n.yaml
# packages/util/brand/README.md
# packages/util/brand/README.zh.md
2026-08-26 10:35:38 +08:00
Tianyi Cui
035ac85f42
Merge branch 'master' into worktree/remove-ignorable-session-events
2026-08-26 02:44:26 +08:00
Tianyi Cui
42dc2a46c2
refactor(session): require known event types on read
2026-08-26 00:22:31 +08:00
fengsy
1477d5b9ef
fix(profile): preserve current fallback architecture after rebase
2026-08-26 00:15:18 +08:00
Dudu-0223
6e4fabdc1f
fix(boot): stabilize profile module fallbacks
2026-08-26 00:13:36 +08:00
_Kerman
4e6a1f8d21
Merge origin/xtr/projection-per-session-cache into xtr/session-projection-migrations
2026-08-25 21:42:06 +08:00
_Kerman
f436c888aa
Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id
2026-08-25 20:24:54 +08:00
lsdsjy
937d2b3513
feat(headless): stream reasoning progress to stderr
2026-08-25 18:51:37 +08:00
_Kerman
9365ef496d
Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id
...
# Conflicts:
# packages/acp/acp/tests/approval.spec.ts
# packages/acp/acp/tests/edges.spec.ts
# packages/api/session-controller/tests/event-script.client.ts
# packages/client/connection/src/client/fixture.ts
# packages/client/ui-conversation/src/client/contract/slots.ts
# packages/client/ui-conversation/src/client/contract/views.ts
# packages/client/ui-conversation/src/client/index.ts
# packages/client/ui-conversation/src/client/stores.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/events.ts
# packages/host/apiproxy/tests/api-proxy-view.spec.ts
# packages/interaction/user-approval/src/index.ts
# packages/llm/llm-deepseek/tests/adapter.e2e.ts
# packages/llm/llm-pi-ai/src/context.ts
# packages/llm/llm-pi-ai/tests/context.spec.ts
# packages/llm/llm/tests/content.spec.ts
# packages/subagent/subagent/tests/continuation.spec.ts
# packages/subagent/tool-subagent/tests/tool-subagent.spec.ts
# packages/test-support/llm-replay/tests/llm-replay.spec.ts
# packages/todo/tool-todo/tests/tool-todo.spec.ts
# scripts/gen-persistence-catalog.ts
2026-08-25 14:37:44 +08:00
imccyu
f5f0448bee
refactor(subagent): consume shared session observations
2026-08-25 06:09:25 +08:00
Tianyi Cui
4125514a08
refactor(repo): retire top-level examples
2026-08-24 22:02:44 +08:00