Tianyi Cui
53615c91e7
Merge master into worktree-windows-runtime
2026-07-21 23:39:14 +08:00
Tianyi Cui
3a895ce815
Merge master into codex/session-title
2026-07-21 21:11:32 +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
77df80359a
docs(session-title): record contracts and generated catalogs
2026-07-21 01:54:00 +08:00
Tianyi Cui
f71f96d292
feat(session-title): integrate queries ACP and TUI
2026-07-21 01:53:37 +08:00
Tianyi Cui
d3ae708384
Merge origin/master into codex/invariant-service-seam
...
# Conflicts:
# docs/module-graph.md
2026-07-21 01:23:19 +08:00
Tianyi Cui
55ef21d9d5
Merge origin/master into codex/invariant-service-seam
...
# Conflicts:
# docs/config-catalog.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# packages/examples/agent-spine-demo/README.md
# packages/examples/agent-spine-demo/package.json
# packages/examples/agent-spine-demo/src/index.ts
# packages/examples/tui-demo/package.json
# packages/support/invariants/src/scoped-events.generated.ts
# packages/ui/acp/package.json
# packages/ui/tui/package.json
# packages/ui/tui/tests/tui.spec.ts
# pnpm-lock.yaml
2026-07-21 01:13:28 +08:00
Tianyi Cui
1b04e8eb2b
Merge branch 'codex/goal-commands' into codex/ralph-tool
...
# Conflicts:
# examples/repl-agent/README.md
# examples/repl-agent/composition.md
# examples/repl-agent/cordis.yml
2026-07-20 22:25:16 +08:00
Tianyi Cui
41196b7e4f
Merge branch 'codex/goal-tools' into codex/goal-session
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-20 21:55:13 +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
Tianyi Cui
8ee54bcb22
Merge latest invariant registration gate
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-20 20:20:10 +08:00
Tianyi Cui
5f806b96f0
Merge latest invariant service seam
2026-07-20 20:19:14 +08:00
Tianyi Cui
153e4b47bd
Merge branch 'master' into codex/jsonl-zstd-persistence
2026-07-20 19:58:41 +08:00
Tianyi Cui
3d3c44f538
Merge branch 'codex/goal-commands' into codex/ralph-tool
2026-07-20 19:37:37 +08:00
Tianyi Cui
1145ee5fc3
fix(invariants): assert runtime relationships, not API shapes
2026-07-20 19:34:19 +08:00
Tianyi Cui
df7be480e1
test(snapshot): cover invalid delayed prompt ordering
2026-07-20 19:28:49 +08:00
Tianyi Cui
3b7ce2e682
fix(invariants): require justified empty companions
2026-07-20 18:39:37 +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
Yichen Jiang
f2a813b791
Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget
2026-07-20 15:15:31 +08:00
Tianyi Cui
e80fc3e61b
fix(invariants): join package checks at startup
2026-07-20 01:53:09 +08:00
Tianyi Cui
684fcf3357
Merge branch 'codex/invariant-package-registration-gate' into codex/package-invariant-checks
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# docs/rfc/INDEX.md
# packages/AGENTS.md
2026-07-20 00:54:28 +08:00
Tianyi Cui
941b0411d8
feat(invariants): implement package runtime checks
2026-07-20 00:38:37 +08:00
Tianyi Cui
6520f71f94
Merge remote-tracking branch 'origin/codex/invariant-service-seam' into codex/invariant-package-registration-gate
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# docs/core-data-structures/session.md
# docs/module-graph.md
# package.json
# packages/sdk/scripts/tsconfig.json
2026-07-20 00:35:06 +08:00
Tianyi Cui
7a4909f221
Merge remote-tracking branch 'origin/master' into codex/jsonl-zstd-persistence
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.md
# .agents/notes/implemented/architecture/2026-07-19-zstandard-jsonl-session-logs.zh.md
# docs/rfc/INDEX.md
# packages/session-persistence/session-persistence-jsonl/README.md
2026-07-20 00:15:32 +08:00
Tianyi Cui
d139948ed2
feat(persistence): compress JSONL logs with Zstandard
2026-07-20 00:06:21 +08:00
Tianyi Cui
e8eddc7ef8
Rename RFCs to Agent Notes
2026-07-19 22:52:03 +08:00
Tianyi Cui
433670a754
feat(invariants): require package-owned companions
2026-07-19 22:13:50 +08:00
Tianyi Cui
546f2ae478
Merge remote-tracking branch 'origin/master' into codex/rename-golden-files-to-expected
2026-07-19 21:09:20 +08:00
imccyu
6eabba8021
Merge branch 'master' into worktree-windows-runtime
2026-07-19 21:08:12 +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
Tianyi Cui
a278374e8f
docs: structure model experience fields
2026-07-19 18:08:42 +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
Tianyi Cui
bcc920369c
docs: document package KV cache effects
2026-07-19 17:39:50 +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