_Kerman
6b4c26a1b9
fix(acp-snapshot): stabilize /private prefix and spill paths in snapshots
...
macOS symlinks /tmp → /private/tmp; when the session header cwd lacks
the /private prefix but fs tools resolve symlinks, tool result paths
get the prefix and the cwd replacement never matches. Strip the prefix
before cwd→{{cwd}} replacement so both forms normalize identically.
Also extend refreshFixtureReplacements to match spill paths by filename
suffix, preventing raw fixture churn when a refresh runs from a
different session directory.
2026-07-24 23:00:17 +08:00
_Kerman
992cf894af
refactor(agent): unify sourced message delivery
2026-07-24 22:38:50 +08:00
Tianyi Cui
b0f5d9e313
Merge commit 'refs/codex-unblock/20260722-pr338-master' into HEAD
...
# Conflicts:
# docs/event-producer-consumer.md
# examples/acp-agent/tests/acp.snapshot.ts
# packages/core/session/src/index.ts
# packages/examples/acp-demo/src/index.ts
# packages/session-persistence/session-persistence-jsonl/src/format.ts
# vitest.config.ts
2026-07-22 22:37:16 +08:00
Tianyi Cui
ecb77f5e0c
test(ci): stabilize cancellation and crash checkpoints
2026-07-22 22:14:14 +08:00
Tianyi Cui
ad4c37013a
test(snapshot): await cancelled turn durability
2026-07-22 22:00:48 +08:00
Tianyi Cui
10a55d7a27
Merge remote-tracking branch 'origin/master' into codex/session-scoped-sandbox-roots
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.md
# .agents/notes/implemented/feature/2026-07-14-cross-family-fs-sandbox.zh.md
# examples/acp-agent/README.md
# packages/examples/agent-spine-demo/package.json
# packages/fs/fs-sandbox/src/index.ts
# packages/fs/tool-fs-search/tests/tools.spec.ts
# packages/support/acp-snapshot/README.md
# packages/support/acp-snapshot/src/suite.ts
# pnpm-lock.yaml
# scripts/type-equiv.manifest.json
2026-07-22 21:37:30 +08:00
Tianyi Cui
479e590029
fix(snapshot): align packed refresh by logical event
2026-07-22 21:28:38 +08:00
Tianyi Cui
4529a22e85
fix(snapshot): preserve packed chunk timing on refresh
2026-07-22 20:56:27 +08:00
kingwl
3922e956db
Merge remote-tracking branch 'origin/master' into jsonl-packed-chunk-rows
...
Master removed the stdio demo (#702c8cc30) — accept the deletion; this
branch's packChunks passthrough survives in acp-demo (auto-merged), and
cli-demo/tui-demo arrived from master without one (the follow-up snapshot
PR decides which demos expose the switch). Generated catalogs regenerated
over merged sources; the hand-written session.md durability paragraph
re-weaves this branch's lossless-encoding wording with master's invariant-
companion sentence.
2026-07-22 15:46:12 +08:00
Tianyi Cui
c1f259bd0d
Merge branch 'master' into feat/plan-mode
2026-07-22 11:29:58 +08:00
kingwl
5d04213445
Merge remote-tracking branch 'origin/master' into feat/plan-mode
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/module-graph.md
# examples/acp-agent/tests/goal-snapshots/goal-session/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/bash-spill/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cancel-tool-calls/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cancel/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/error-finish/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-edit/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-read/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-terminal-card/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-write/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/lsp-definition/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/model-switching/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/parallel-tool-calls/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/skill-load/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/text-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/todo-plan/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/stdout.expected.jsonl
2026-07-22 02:28:47 +08:00
Tianyi Cui
53615c91e7
Merge master into worktree-windows-runtime
2026-07-21 23:39:14 +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
Tianyi Cui
bb7db52941
Merge remote-tracking branch 'origin/master' into codex/session-title
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/bash-spill/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cancel-tool-calls/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cancel/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/error-finish/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-edit/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-read/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-terminal-card/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-write/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/model-switching/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/parallel-tool-calls/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/skill-load/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/text-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/todo-plan/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/stdout.expected.jsonl
# examples/headless-agent/tests/headless.snapshot.ts
# packages/examples/README.md
# packages/examples/agent-spine-demo/README.md
# packages/examples/agent-spine-demo/package.json
# packages/ui/README.md
# packages/ui/acp/README.md
2026-07-21 02:13:10 +08:00
Tianyi Cui
f71f96d292
feat(session-title): integrate queries ACP and TUI
2026-07-21 01:53:37 +08:00
Tianyi Cui
7677d49c93
test(snapshot): cover session-scoped sandbox roots
2026-07-21 01:16:29 +08:00
Tianyi Cui
3947312432
Merge remote-tracking branch 'origin/master' into codex/pr239-parent-retarget-publish
...
# Conflicts:
# packages/core/tools/tests/gen-tool-catalog.spec.ts
2026-07-21 00:58:16 +08:00
Tianyi Cui
962c43aa9e
Merge remote-tracking branch 'origin/master' into codex/pr239-parent-retarget-publish
...
# Conflicts:
# docs/capability-seams.md
# docs/config-catalog.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/bash-spill/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cancel-tool-calls/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cancel/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/config-options/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/error-finish/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-edit/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-policy-reject/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-read-window/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-read/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-terminal-card/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-write-overwrite/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/fs-write/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/handshake/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-posttool-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-deny/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-promptsubmit-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-stop-continue/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-posttool-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-pretool-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-block/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-promptsubmit-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/hook-codex-stop-continue/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/model-switching/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/multi-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/parallel-tool-calls/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/repeat-tool-guard/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/skill-load/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/text-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/todo-plan/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/tool-call-turn/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/stdout.expected.jsonl
# examples/acp-agent/tests/snapshots/workspace-edit/stdout.expected.jsonl
# packages/core/tools/tests/gen-tool-catalog.spec.ts
# packages/ui/acp/acp-feature-support.md
# packages/ui/acp/src/index.ts
# scripts/gen-doc-graphs.ts
2026-07-21 00:50:00 +08:00
Tianyi Cui
0246806fec
Merge origin/master into feat/plan-mode
2026-07-20 23:28:07 +08:00
Tianyi Cui
30d2ec4a95
Merge branch 'codex/goal-commands' into codex/ralph-tool
...
# Conflicts:
# examples/acp-agent/tests/snapshots/advanced-toolchain/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/tool-schemas.expected.json
# examples/acp-agent/tests/snapshots/both-mode-turn/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/both-mode-turn/tool-schemas.expected.json
# examples/acp-agent/tests/snapshots/code-mode-turn/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/model-switching/tool-schemas.expected.json
# examples/acp-agent/tests/snapshots/permission-switching/tool-schemas.expected.json
# examples/acp-agent/tests/snapshots/skill-load/tool-schemas.expected.json
# examples/acp-agent/tests/snapshots/text-turn/tool-schemas.expected.json
# examples/acp-agent/tests/snapshots/workspace-edit/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/workspace-edit/tool-schemas.expected.json
# scripts/gen-tool-catalog.ts
2026-07-20 21:05:05 +08:00
Tianyi Cui
78eb93f7e6
Merge branch 'master' into worktree-windows-runtime
2026-07-20 20:39:13 +08:00
Tianyi Cui
eb5ae54a79
Merge branch 'codex/goal-tools' into codex/goal-session
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml
# docs/cordis-catalog/events.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/package.json
# packages/core/agent/README.md
# packages/core/agent/src/types.ts
# website/zh-CN/api/harness/events.md
2026-07-20 20:35:15 +08:00
kingwl
936f2fabb5
Merge remote-tracking branch 'origin/master' into jsonl-packed-chunk-rows
...
Conflicts: the two generated catalog docs (regenerated over merged sources)
and the jsonl backend README storage-layout bullets — master's required
delegationDepth header field weaves with this branch's storage-record/packed
row wording.
2026-07-20 20:04:13 +08:00
Tianyi Cui
3d3c44f538
Merge branch 'codex/goal-commands' into codex/ralph-tool
2026-07-20 19:37:37 +08:00
Tianyi Cui
df7be480e1
test(snapshot): cover invalid delayed prompt ordering
2026-07-20 19:28:49 +08:00
Tianyi Cui
07058e527c
fix(snapshot): isolate concurrent spill roots
2026-07-20 18:32:21 +08:00
Tianyi Cui
9b28ad785f
test(acp-snapshot): emit current session headers
2026-07-20 18:17:25 +08:00
Tianyi Cui
41d3e78d3a
test(snapshots): require explicit delegation depth
2026-07-20 17:59:13 +08:00
Tianyi Cui
46d60d6d90
fix(tool-subagent): enforce depth only at runtime
2026-07-20 17:58:57 +08:00
Tianyi Cui
77ab5516a9
Merge goal tool fixes and align same-session blockers
2026-07-20 17:23:55 +08:00
kingwl
d85d2a4be3
Merge remote-tracking branch 'origin/master' into jsonl-packed-chunk-rows
...
Conflicts: the four generated catalog docs (regenerated over merged sources),
session index.ts exports (keep chunk-rows exports + master's SessionSurface
re-export), stdio/acp demo config schema and persistence wiring (thread
packChunks through master's DEFAULT_PERSISTENCE_ROOT/UI shape), stdio README
config table, and the jsonl spec import line. The packed-chunk fixture also
gains the provenance field master made required on assistant/message.
2026-07-20 15:24:58 +08:00
Yichen Jiang
f2a813b791
Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget
2026-07-20 15:15:31 +08:00
imccyu
5faf8d1200
test(acp-snapshot): skip POSIX-cancel scenarios on Windows
...
The cancel-tool-calls scenario cancels a live bash call, which relies on
POSIX detached-process-group termination; bash has no Windows process-tree
kill yet (deferred with the Bash execution domain), so the hung call times
the scenario out on the native Windows snapshot lane.
Add a posixOnly scenario declaration that skips the run test on win32
while the fixture guards keep covering committed files on every platform,
and mark cancel-tool-calls with it.
2026-07-19 19:02:06 +08:00
imccyu
3e9cb70c78
Merge remote-tracking branch 'origin/master' into worktree-windows-runtime
...
# Conflicts:
# packages/session-persistence/session-persistence-jsonl/README.md
# packages/session-persistence/session-persistence-jsonl/src/index.ts
# packages/session-persistence/session-persistence-jsonl/tests/jsonl.spec.ts
# packages/support/loader-smoke/tests/loader-smoke.spec.ts
2026-07-19 17:52:36 +08:00
Tianyi Cui
0893aaa7cb
test: rename golden snapshot files to expected
2026-07-19 17:45:49 +08:00
Yichen Jiang
b0dc299508
Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget
...
# Conflicts:
# examples/acp-agent/tests/acp.snapshot.ts
2026-07-19 17:42:52 +08:00
Yichen Jiang
d231f30024
test(acp-snapshot): cover the child-omission branches synthetically
...
The childToolOmissions comparison arms ran only through the examples
snapshot suites, which the unit coverage gate does not count. Add an
authored child-omission scenario to the synthetic replay suite: one
scripted child omits the declared tool (header pin minus the omission,
prompt pin skipped), one keeps the full set (pin and prompt compared
verbatim), restoring 100% branch coverage on suite.ts.
2026-07-19 17:34:10 +08:00
Yichen Jiang
cb74477d42
feat(tool-subagent): default maxDepth 1 with at-cap schema hiding
...
An omitted maxDepth meant unbounded recursion, and the shipped examples
shipped that default. maxDepth now defaults to 1; a numeric cap requires
the provider's depthLimit capability (the mount fails loud and points to
the explicit 'provider-managed' opt-out for out-of-process providers),
and a child AT the cap loses the delegating tool from its own schema via
the child toolFilter — prompt-face hiding on top of the execution-face
depth check. Examples pin maxDepth explicitly. The ACP snapshot harness
gains Scenario.childToolOmissions so a child session may legitimately
omit declared delegation tools from its pinned header and prompt;
affected subagent/workflow goldens are re-recorded.
2026-07-19 17:20:49 +08:00
Tianyi Cui
a246afa33a
test(acp-snapshot): detach the inherited-stdio fixture
...
Windows does not guarantee that an ordinary child process will continue after its parent exits. The fake ACP agent exited immediately after spawning its late-output descendant, so Windows could tear down that descendant and close the protocol stream before the delayed ACP update was written.
Launch the descendant in detached mode while continuing to inherit stdout and stderr, then unref it as before. This preserves the intended regression boundary: launcher shutdown must wait for descendant-held stdio and parse the final buffered frame after the direct ACP parent exits.
2026-07-19 14:14:00 +08:00
Tianyi Cui
b1b076f993
test(acp-snapshot): cover accepted fallback termination
...
Drive the shutdown path where the requested signal reports a child error without exiting, the bounded marker grace expires, and fallback SIGKILL is accepted.
Assert that both signals are attempted and that close drains the successful fallback exit before preserving the original child error, restoring per-file 100% branch and line coverage for the launcher.
2026-07-19 13:49:48 +08:00
Tianyi Cui
97f9ec7c19
test(acp-snapshot): inherit descendant pipes portably
...
Use Node's explicit inherit stdio mode for the fake descendant instead of passing the parent process stream objects as child descriptors.
This keeps the grandchild's stdout and stderr handles open across the fake ACP parent's exit on Windows, so launcher shutdown must drain the late buffered update and stderr bytes just as it does on POSIX.
2026-07-19 13:29:31 +08:00
Tianyi Cui
5d6b589922
fix(acp-snapshot): await delayed Windows exit markers
...
A successful Windows termination request can end the process before Node publishes exitCode or signalCode. If a child error wins the shutdown race, give that accepted exit a bounded observation window before escalating or reporting fallback refusal.
Cover a delayed real exit edge, preserve prompt refusal behavior for a genuinely live child, and document the launcher grace without weakening the complete stdio and parser drain boundary.
2026-07-19 13:28:19 +08:00
Tianyi Cui
d709a8a1a4
test(acp): await cancelled tool updates
2026-07-19 13:09:16 +08:00
Tianyi Cui
edaaa50fe3
test(acp): snapshot cancelled queued tool calls
2026-07-19 13:03:31 +08:00
Tianyi Cui
e9aac53fde
test(acp-snapshot): cover pre-fallback Windows exit state
...
Model the requested signal setting a child termination marker before the launcher begins fallback handling. The regression proves close drains inherited stdio and propagates the original process error without sending a redundant SIGKILL.
This complements the post-check fallback-refusal race and restores the launcher's required 100% per-file statement and branch coverage.
2026-07-19 12:53:41 +08:00
Tianyi Cui
0f4bc645da
test(acp-snapshot): inherit descendant stdio portably
...
Pass the fake descendant the parent process's stdout and stderr stream handles instead of Unix-style numeric file descriptors. This lets Windows duplicate the live ACP and diagnostic pipes so launcher shutdown can prove that inherited handles, buffered frames, and stderr all drain after the parent exits.
Observe the pending update promise before initiating shutdown as well, preventing a missing late frame from becoming a transient unhandled rejection before the assertion reports the fixture failure.
2026-07-19 12:42:59 +08:00
Tianyi Cui
f110c5e083
fix(acp-snapshot): accept Windows termination exit races
...
Treat a fallback kill refusal as successful termination when the child already carries an OS exit marker. Windows maps Node's supported signal names to forced termination, so the requested signal can end the process between the launcher error race and its fallback SIGKILL.
Drain inherited stdio, the ACP parser, and in-flight callbacks before propagating the original child error in either exit-race path. Preserve AggregateError reporting only for a refused fallback while the process is still live, and add a deterministic cross-platform regression for that ordering.
2026-07-19 12:41:46 +08:00
Tianyi Cui
39c1c3df4f
Merge remote-tracking branch 'origin/master' into codex/pr335-merge-master-20260719
...
# Conflicts:
# packages/support/acp-snapshot/README.md
# packages/support/acp-snapshot/src/harness.ts
# packages/support/acp-snapshot/src/suite.ts
# packages/support/acp-snapshot/tests/harness.spec.ts
# packages/support/acp-snapshot/tests/suite.spec.ts
2026-07-19 11:41:10 +08:00
Tianyi Cui
e846a115f2
test(acp-snapshot): cover pre-spawn launch failure
2026-07-18 13:51:44 +08:00
Tianyi Cui
9e1975b080
Merge branch 'codex/simp-snapshot-fixture-inventory' into codex/simp-shared-acp-test-launcher
...
# Conflicts:
# examples/acp-agent/tests/acp.e2e.ts
# examples/acp-agent/tests/escalation.e2e.ts
# examples/acp-agent/tests/hooks.e2e.ts
# packages/support/acp-snapshot/src/harness.ts
2026-07-18 13:47:53 +08:00