Yichen Jiang
8c6e28cef8
fix(session): simplify reference byte limits
2026-07-21 20:16:18 +08:00
Tianyi Cui
b34a43cf7e
Merge branch 'codex/canonical-tool-output' into codex/code-mode-typed-results
2026-07-21 20:11:07 +08:00
Tianyi Cui
779d8f112a
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
2026-07-21 20:11:04 +08:00
Tianyi Cui
911abf73c8
Merge remote-tracking branch 'origin/master' into codex/tool-json-schema-dsl
2026-07-21 20:10:57 +08:00
Yichen Jiang
8ce5989ffb
Merge remote-tracking branch 'origin/master' into worktree/semantic-session-checkpoints
...
# Conflicts:
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/tui-agent/tests/tui-keyless-smoke.e2e.ts
# packages/examples/acp-demo/package.json
# packages/examples/cli-demo/tsconfig.json
# packages/support/invariants/src/index.ts
# packages/support/invariants/tests/invariants.spec.ts
# pnpm-lock.yaml
2026-07-21 20:09:37 +08:00
Tianyi Cui
eed5ff4dcf
Merge branch 'codex/canonical-tool-output' into codex/code-mode-typed-results
...
# Conflicts:
# docs/event-producer-consumer.md
# docs/module-graph.md
# packages/code-runtime/code-runtime-worker/package.json
# packages/spill/spill-policy/package.json
# pnpm-lock.yaml
2026-07-21 20:06:02 +08:00
Tianyi Cui
73ccb67469
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
2026-07-21 20:03:47 +08:00
Tianyi Cui
0004b8675f
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/core/agent/src/index.ts
# packages/support/invariants/tests/invariants.spec.ts
# packages/ui/acp/src/index.ts
# packages/ui/tui/tests/harness.ts
# packages/ui/tui/tests/tui.spec.ts
2026-07-21 20:03:00 +08:00
Tianyi Cui
c1d3036274
Merge remote-tracking branch 'origin/master' into codex/session-scoped-sandbox-roots
...
# Conflicts:
# examples/acp-agent/tests/acp.snapshot.ts
# packages/examples/agent-spine-demo/package.json
# pnpm-lock.yaml
2026-07-21 20:00:55 +08:00
Tianyi Cui
8ae6e1ffbd
docs(architecture): retain canonical output budget
2026-07-21 20:00:09 +08:00
Tianyi Cui
72a48fede6
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/context/time-context/tests/time-context.spec.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
2026-07-21 19:56:43 +08:00
Tianyi Cui
ae98294ec5
fix(sandbox): preserve filesystem cwd semantics
2026-07-21 19:53:02 +08:00
Tianyi Cui
21721bf3b1
Merge branch 'master' into fix/compaction-kv-cache-reuse
...
# Conflicts:
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/src/summarizer.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
2026-07-21 19:45:43 +08:00
Tianyi Cui
6a45e6e16b
Merge remote-tracking branch 'origin/master' into codex/tool-json-schema-dsl
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/cordis/tool-cordis/src/api-catalog.ts
2026-07-21 19:44:49 +08:00
NI0317
a7bfade7eb
refactor(pty): rename model-facing tools to terminal_* and harden teardown
...
Rename the six model-facing tools pty_* -> terminal_* and align every
description, guidance section, ACP card title, and rendered result to
terminal terminology. Package and service internals keep their technical
PTY names (PtyService, "unknown PTY session", node-pty).
Harden the local backend teardown:
- a failed close is retryable: drop the memoized rejection so a later
terminal_close re-runs against the live process table
- service disposal clears the backend, reservation, and owner-cleanup
registries even when a close fails
- stop readiness polling before teardown so an in-flight send settles as
session_exit instead of a mis-inferred wait reason
- bound the sanitizer's pending buffer against unterminated escape runs
Update the tool catalog, package READMEs, the bilingual Agent Note, and the
acp/headless pty-tools snapshots to match.
2026-07-21 19:29:56 +08:00
Tianyi Cui
1ff0332ea0
Merge branch 'codex/canonical-tool-output' into codex/code-mode-typed-results
2026-07-21 19:28:23 +08:00
Tianyi Cui
5b36be339d
docs(architecture): keep canonical output map concise
2026-07-21 19:26:52 +08:00
Tianyi Cui
72c6696e4f
Merge branch 'master' into worktree/routed-model-compaction-policy
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-21 19:23:54 +08:00
Tianyi Cui
650a9cd82c
Merge branch 'codex/canonical-tool-output' into codex/code-mode-typed-results
...
# Conflicts:
# docs/module-graph.md
2026-07-21 19:16:10 +08:00
Tianyi Cui
0cc5009f58
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# docs/config-catalog.md
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
2026-07-21 19:15:18 +08:00
Tianyi Cui
373bf333ac
docs: refresh config catalog for replay capacity
2026-07-21 19:05:40 +08:00
Tianyi Cui
7d9ed9f70a
Merge remote-tracking branch 'origin/master' into codex/tool-json-schema-dsl
2026-07-21 19:03:15 +08:00
Tianyi Cui
9a96d7c341
docs(code-runtime): refresh config catalog
2026-07-21 18:50:15 +08:00
Tianyi Cui
39eb6e21cd
Merge current master into invariant service seam
2026-07-21 18:35:24 +08:00
Tianyi Cui
78f8a3f5d9
Merge branch 'master' into worktree/routed-model-compaction-policy
2026-07-21 18:30:57 +08:00
Tianyi Cui
071fe76755
Merge latest master into invariant service seam
2026-07-21 18:27:46 +08:00
Yichen Jiang
f03b01d8bc
Merge remote-tracking branch 'origin/worktree/session-reference' into worktree/session-reference
2026-07-21 18:20:56 +08:00
Yichen Jiang
70b67bd559
fix(acp): preserve command reference arguments
2026-07-21 18:19:42 +08:00
Tianyi Cui
8a93072537
Merge origin/master into worktree/tui-session-controls
2026-07-21 18:12:11 +08:00
Tianyi Cui
9e01fb060e
Merge branch 'codex/canonical-tool-output' into codex/code-mode-typed-results
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/both-mode-turn/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/code-mode-turn/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/system-prompt.expected.md
# packages/core/tools/README.md
2026-07-21 18:08:56 +08:00
Yichen Jiang
927c37ad1e
Merge branch 'master' into worktree/session-reference
2026-07-21 18:03:47 +08:00
Tianyi Cui
e1633fbc3f
fix(tools): preserve canonical output boundaries
2026-07-21 18:03:01 +08:00
Tianyi Cui
c9a8c58467
Merge origin/master into lsp
2026-07-21 17:58:46 +08:00
Yichen Jiang
380a94febb
fix(session): close checkpoint cancellation races
2026-07-21 17:58:34 +08:00
Yichen Jiang
ebb62c482c
fix(session): harden cross-session references
2026-07-21 17:54:44 +08:00
Tianyi Cui
504fbf59f3
fix(invariants): replay histories and pack companions
2026-07-21 17:46:43 +08:00
Tianyi Cui
8f3aca4128
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
2026-07-21 17:45:00 +08:00
Tianyi Cui
4574340d7a
fix(tools): harden unified JSON value boundaries
2026-07-21 17:44:46 +08:00
Tianyi Cui
b024ebabed
Merge origin/master into worktree-windows-runtime
...
# Conflicts:
# .agents/notes/implemented/simplification/2026-07-04-fold-stdio-ui-helper.md
# packages/support/acp-snapshot/src/harness.ts
# packages/support/acp-snapshot/src/normalize.ts
# packages/support/acp-snapshot/tests/harness.spec.ts
# packages/support/acp-snapshot/tests/normalize.spec.ts
2026-07-21 17:14:44 +08:00
Yichen Jiang
6fe8cfb5d1
Merge branch 'fix/acp-subagent-cwd' of github.com:deepseek-harness/deepseek-harness into fix/acp-subagent-cwd
2026-07-21 16:53:46 +08:00
Yichen Jiang
04117b58bd
docs(subagent): align the parent contract with ACP cwd inheritance
...
SubagentStartRequest.parent, its core-data type-equiv mirror, and the
ACP backend Agent Note still said the out-of-process backend ignores
request.parent — no longer true: with cwd unconfigured it reads exactly
the session header's cwd, and a parent session without one now rejects
at start. State the one-field read at each owning contract, record the
workspace-resolution decision in the Agent Note, and align the README's
accessibility wording with the search-permission guard.
2026-07-21 16:51:49 +08:00
Yichen Jiang
32d786c439
feat(session): add cross-session references
2026-07-21 16:46:48 +08:00
NI0317
58cde5103a
feat: add persistent PTY sessions
2026-07-21 16:01:00 +08:00
Tianyi Cui
5d411f9c4e
fix(session-title): preserve agent turn outcomes
2026-07-21 15:49:37 +08:00
Tianyi Cui
c622a2881d
fix(session-title): deduplicate fallback creation
2026-07-21 15:23:27 +08:00
Yichen Jiang
6d12e3ab41
fix(session): add semantic crash checkpoints
2026-07-21 14:50:06 +08:00
Yichen Jiang
49a9bca9f6
fix: validate compaction config pairs
2026-07-21 14:49:57 +08:00
Tianyi Cui
d9557fa5e0
fix(session-title): serialize provider request writes
2026-07-21 14:39:09 +08:00
Tianyi Cui
b3ba4345f5
fix(session-title): respect request and config boundaries
2026-07-21 14:09:17 +08:00
Turtle
a0268d2509
fix(compact-basic): replay conversation prefix so summarization reuses KV cache
...
Automatic compaction fires mid-conversation, right after the loop warmed
the provider's KV cache with the last routed request. The default
summarizer then issued a separate request whose prefix shared nothing
with that warm request — a bespoke summarizer system prompt followed by
the older history flattened to one rendered transcript string — so a
differing first token invalidated the entire cached prefix and every
compaction re-processed the whole replayed history twice.
Move the compaction directive from the FRONT (a fresh system prompt) to
the END (a trailing user message), and replay the last routed request's
own system prompt, tools, message prefix, and shadowed-region messages
verbatim via session.requestHeader() + deriveEventMessage. The auxiliary
call is now a genuine prefix-extension of the warm request, so the
provider reuses the cached tokens up to the trailing instruction.
SummarizationInput carries the replayed prefix instead of a flat string;
the now-unused renderTranscript/renderContentBlocks path is removed with
its spec. Cache reuse is best-effort (head compaction guarantees a hit;
a mid-range compaction or a differently-routed summarizer forgoes it),
correctness is not.
2026-07-21 13:55:22 +08:00