Tianyi Cui
57885bd73d
Merge latest master prompt placement through V3 integration
...
Preserve system/message persistence while adopting named persona prefix/suffix and environment facts after reusable instructions. Resolve the Web assertion against the logged system message, not retired header.system. Keep the existing protected V3 integration PR as the root publication path; no rules are bypassed.
2026-09-07 13:34:43 +08:00
Tianyi Cui
74a6d30aba
test(cli): seed resumed native V3 sessions with protected system heads
2026-09-07 13:15:38 +08:00
Tianyi Cui
cbbbb30214
Merge remote-tracking branch 'origin/master' into release/session-log-v3
2026-09-07 13:15:00 +08:00
Tianyi Cui
6ad0799419
test(cli): seed diagnostic parent with native system head
2026-09-06 21:35:03 +08:00
Tianyi Cui
71b0d83822
Merge current V3 PTC vocabulary into system-prompt representation
...
Compose the shared release branch PTC rename with the structural system-head migration in the existing V2-to-V3 stage. Audit source payloads and remap local coordinates before renaming dispatch vocabulary and owned plugin attribution; retain original message identities and generation-qualified references. Native V3 validation combines the same system and PTC lifecycle semantics through a private released-validation view.
Reuse the V3 row-admission owner in current JSONL scanning before recoverable-tail suppression, so malformed rows cannot hide retired required PTC tags or header.system. The new corruption-prefix regressions and all173 existing JSONL scanner tests pass. Combined migration/catalog/persistence suite:300 tests; executable V3 migration source has100% coverage. No released generation, prior migration implementation, shared release branch, benchmark or CI workflow is modified by this integration.
2026-09-06 21:33:35 +08:00
Tianyi Cui
5f2c676581
test(cli): author native v3 inheritance replay fixture
2026-09-06 21:19:41 +08:00
Tianyi Cui
b47bfa711b
test(session): pin structural v3 chain expectations
2026-09-06 21:12:50 +08:00
Tianyi Cui
ab74a93ed3
test: compare current notification outputs without legacy migration shim
2026-09-06 21:11:39 +08:00
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
Tianyi Cui
40792330c0
fix(system-prompt): keep model persona prefix and place cwd in suffix
2026-09-06 20:35:42 +08:00
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
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
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
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
_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