Tianyi Cui
27f37942df
Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget
2026-07-20 17:02:25 +08:00
Tianyi Cui
bd99e8d04a
Merge branch 'master' into steering-unwrap
2026-07-20 17:02:18 +08:00
Turtle
f593ef5ab5
fix(session): drop the <context> envelope and project context verbatim
...
context/message previously defaulted to a <context source="…">…</context>
wrapper. No model is trained on a <context> tag either, and message
framing does not belong on the session surface: the surface projects the
durable log, and a caller that wants a frame formats its own content —
which the one heavy producer (workspace-context) already does with its own
<system-reminder> frame, opting out via 'raw'. The tag only added
machinery — ContextEnvelope plus an envelope field threaded through
InjectOptions, HookContext, the context/message event, and the agent-loop
inject/additionalContexts plumbing.
context/message now projects its content verbatim as a user-role message,
sharing one deriveEventMessage case with user/message and steering/message.
ContextEnvelope and every envelope field are removed; context/message.meta
still carries durable, model-hidden JSON state. Regenerated catalogs and
website API; refreshed the three affected keyless snapshots (envelope field
only; timestamps unchanged).
Broadens and renames the steering Agent Note to cover both envelope
removals as one decision.
Agent Note: .agents/notes/implemented/simplification/2026-07-20-unwrap-injected-content-envelopes.md
2026-07-20 16:22:20 +08:00
Turtle
b25b78fd02
fix(session): project steering messages as plain user content
...
steering/message previously rendered inside a <steering source="…">
envelope like context/message. No model is trained on a <steering> tag,
so the framing is arbitrary markup the model was never taught to read;
recorded transcripts show it treating the instruction as third-party
metadata and refusing it. Framing also does not belong on the session
surface — a caller that wants a frame formats its own content. It now
projects verbatim as a plain user-role message; the <context> envelope is
untouched and renderTagged becomes context-only.
Agent Note: .agents/notes/implemented/simplification/2026-07-20-unwrap-steering-message-projection.md
2026-07-20 15:51:27 +08:00
Yichen Jiang
cfa180c127
Resolve compaction policy per routed model
2026-07-20 15:34:00 +08:00
Yichen Jiang
512c8d2d04
Merge branch 'master' into worktree/acp-default-fs-suite
2026-07-20 15:18:22 +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
2f13acd2b9
Merge remote-tracking branch 'origin/codex/goal-commands' into codex/ralph-tool
2026-07-20 14:32:20 +08:00
Tianyi Cui
7c0c819bcf
Merge remote-tracking branch 'origin/codex/commands' into codex/goal-commands
2026-07-20 14:27:16 +08:00
Tianyi Cui
09a75ef6a2
Merge remote-tracking branch 'origin/codex/goal-session' into codex/commands
2026-07-20 14:23:02 +08:00
kingwl
2530bf8aa3
fix(sandbox): address PR #309 review — TOCTOU direction, denial metadata, shared roots, docs
...
- fs-sandbox: delegate the mutation with the freshly re-canonicalized target
(not the stale one), so the checked identity is the mutated identity — a
symlink swapped in after resolve() can no longer escape workspace-write.
- tool-fs: map a denial to an FsError carrying FS_SANDBOX_DENIED (not a plain
Error), so ToolRegistry keeps the structured code on result.error for
retry/observers while the message stays the shared marker.
- sandbox-local: derive the Seatbelt writable set from the shared
writableRoots() helper, so the profile and the fs fence cannot drift.
- gen-doc-graphs: ctx.sandboxPolicy is owned by dsh-sandbox-policy and read only
by the sandboxed executor/provider (the tool layers use the pure fold).
- docs: bash-sandbox/bash/permission READMEs and bash.md reflect the relocated
policy home and the sandbox/mode rename; drop the stale stdout.golden.jsonl.
2026-07-20 13:59:18 +08:00
Dudu-0223
ca1cc61dfb
Merge origin/master into lsp
2026-07-20 13:54:38 +08:00
kingwl
1dd5757897
Merge remote-tracking branch 'origin/master' into cross-family-fs-sandbox
...
# Conflicts:
# packages/fs/README.md
2026-07-20 13:38:51 +08:00
Tianyi Cui
60eea35df5
fix(ralph): harden execution boundaries
2026-07-20 12:56:09 +08:00
Tianyi Cui
c6f8247ac1
Merge codex/goal-commands into codex/ralph-tool
...
# Conflicts:
# docs/glossary.md
2026-07-20 12:23:57 +08:00
Tianyi Cui
247526d4ca
fix(acp): adapt compaction wiring to token meter
2026-07-20 11:47:17 +08:00
Tianyi Cui
80cdcce085
Merge origin/master into codex/acp-agent-auto-compaction
2026-07-20 11:45:13 +08:00
kingwl
2e7cdddb89
Merge remote-tracking branch 'origin/master' into cross-family-fs-sandbox
...
# 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
# docs/capability-seams.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/persistence-catalog.md
# docs/rfc/INDEX.md
# examples/acp-agent/README.md
# examples/acp-agent/fs.cordis.snapshot.yml
# examples/acp-agent/fs.cordis.yml
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/session.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/system-prompt.expected.md
# examples/acp-agent/tests/snapshots/workspace-context/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
# packages/bash/bash/src/index.ts
# packages/bash/tool-bash/package.json
# packages/bash/tool-bash/src/index.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/fs/README.md
# packages/fs/tool-fs/src/edit.ts
# packages/fs/tool-fs/src/write.ts
# packages/sandbox/README.md
# pnpm-lock.yaml
2026-07-20 11:44:37 +08:00
Yichen Jiang
58a8612118
Merge branch 'master' into worktree/acp-default-fs-suite
2026-07-20 11:43:11 +08:00
Tianyi Cui
884c168edc
Merge codex/commands into codex/goal-commands
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.md
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.zh.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-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-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/goal/tool-goal/README.md
2026-07-20 11:41:53 +08:00
Tianyi Cui
ee1af10c52
docs(acp): note per-model compaction config
2026-07-20 11:38:55 +08:00
Tianyi Cui
2dd3b1dfba
fix(commands): harden registry and UI ordering
2026-07-20 11:27:10 +08:00
Tianyi Cui
3b0b0cefeb
feat: implement bounded LLM request recovery
2026-07-20 03:34:19 +08:00
Tianyi Cui
e2b8e2b1eb
Merge codex/goal-commands into codex/ralph-tool
2026-07-20 01:52:57 +08:00
Tianyi Cui
fdce57cf4a
Merge codex/commands into codex/goal-commands
2026-07-20 01:43:32 +08:00
Tianyi Cui
4f1a0fe015
Merge codex/goal-session into codex/commands
2026-07-20 01:30:43 +08:00
Tianyi Cui
b808026859
feat(workflow): add fresh-agent Ralph tool
2026-07-20 00:51:19 +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
207692bc16
feat(goal): add human goal command
2026-07-19 23:55:33 +08:00
Tianyi Cui
a9a44fea96
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.md
# .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.zh.md
# .agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.i18n.yaml
# .agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.md
# .agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.zh.md
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/rfc/INDEX.md
# packages/AGENTS.md
2026-07-19 23:43:36 +08:00
Tianyi Cui
e8b95c8754
feat(tools): require cancellation signal on every invocation
2026-07-19 23:38:54 +08:00
Tianyi Cui
e8eddc7ef8
Rename RFCs to Agent Notes
2026-07-19 22:52:03 +08:00
Tianyi Cui
4cb9c7ada2
Merge remote-tracking branch 'origin/codex/goal-session' into codex/commands
...
# Conflicts:
# packages/examples/stdio-demo/README.md
# packages/ui/tui/README.md
2026-07-19 22:40:13 +08:00
Tianyi Cui
247a18fd59
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
2026-07-19 22:37:35 +08:00
Tianyi Cui
2850c22b7a
feat(ui): add plugin command registry
2026-07-19 22:11:59 +08:00
Yichen Jiang
4c0bdc7180
Merge remote-tracking branch 'origin/master' into worktree/acp-default-fs-suite
2026-07-19 21:49:06 +08:00
Tianyi Cui
54aef60685
fix(tools): complete cancellation boundary
2026-07-19 21:13:41 +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
Yichen Jiang
1cb63c7a18
fix(acp-agent): enable default filesystem suite
2026-07-19 18:27:44 +08:00
Tianyi Cui
5cc18ea7db
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# packages/core/agent-loop/tests/tool-calls.spec.ts
2026-07-19 18:12:13 +08:00
Tianyi Cui
2bc4e05a08
fix(tools): enforce cooperative cancellation
2026-07-19 18:05:54 +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
d614374ac6
Merge branch 'master' into fix/subagent-depth-budget
2026-07-19 17:24:24 +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
fd54b5c848
Merge latest master into post-step recovery
...
Combine agent initiator scoping and exact Cordis JSDoc inspection with post-step compaction and bounded request recovery.
Regenerate the Cordis and website API catalogs, and classify the recovery and compaction types required by the current catalog link-coverage gate.
2026-07-19 16:46:01 +08:00
Tianyi Cui
36dbe68631
test(cordis): snapshot targeted JSDoc inspection
2026-07-19 16:22:09 +08:00
Tianyi Cui
1663eff819
Merge remote-tracking branch 'origin/master' into codex/cordis-inspect-jsdoc
2026-07-19 15:12:34 +08:00