Tianyi Cui
72f0019c4e
Merge remote-tracking branch 'origin/codex/enforce-tool-cancellation' into worktree/explicit-turn-signal
...
# Conflicts:
# docs/architecture.md
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/README.md
# packages/examples/cli-demo/src/cli.ts
# packages/ui/tui/tests/tui.spec.ts
2026-07-21 00:02:17 +08:00
Tianyi Cui
4311aaabb0
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# docs/cookbook/adding-a-tool.i18n.yaml
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/bash/tool-bash/src/index.ts
# packages/core/agent-loop/README.md
# packages/core/tools/README.md
# packages/core/tools/tests/scoped.spec.ts
# packages/fs/tool-fs-search/tests/tools.spec.ts
# website/zh-CN/api/harness/events.md
# website/zh-CN/api/harness/tools.md
2026-07-20 23:00:21 +08:00
Tianyi Cui
cc2e14f76e
fix: close recovery review gaps
2026-07-20 22:11:26 +08:00
Yichen Jiang
a92d2e5f34
Merge origin/master into worktree/explicit-turn-signal
2026-07-20 21:38:49 +08:00
Tianyi Cui
8c12f8945e
Merge latest master into codex/llm-error-recovery-rfc
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/persistence-catalog.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/src/types.ts
# packages/examples/agent-spine-demo/README.md
# packages/examples/stdio-demo/README.md
# packages/examples/stdio-demo/src/index.ts
# packages/llm/llm-deepseek/README.md
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-deepseek/tests/adapter.spec.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/error.ts
# packages/llm/llm/tests/service.spec.ts
# packages/sandbox/sandbox-policy/tsconfig.json
# packages/ui/stdio/README.md
# packages/ui/stdio/src/index.ts
# packages/ui/stdio/tests/stdio.spec.ts
# packages/ui/tui/src/index.ts
# pnpm-lock.yaml
# website/zh-CN/api/harness/events.md
# website/zh-CN/api/harness/llm.md
2026-07-20 20:59:11 +08:00
Tianyi Cui
710c62474a
Merge branch 'master' into fetch-failed-diagnostics
2026-07-20 20:10:57 +08:00
Tianyi Cui
3293d56a06
fix: clarify provider retry delay contract
2026-07-20 18:38:22 +08:00
Tianyi Cui
8e95f305b0
refactor(agent-loop): reuse loaded session metadata
2026-07-20 18:26:19 +08:00
Tianyi Cui
51ba53766e
Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget
...
# Conflicts:
# docs/persistence-catalog.md
2026-07-20 18:11:59 +08:00
Tianyi Cui
ec0a2bb623
Merge origin/master into codex/send-one-turn
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/README.md
# website/zh-CN/api/harness/events.md
2026-07-20 17:41:06 +08:00
Turtle
ccb1d09850
Merge remote-tracking branch 'origin/master' into fetch-failed-diagnostics
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-20 17:21:43 +08:00
Tianyi Cui
2d345b5882
Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/persistence-catalog.md
# website/zh-CN/api/harness/sessions.md
2026-07-20 17:14:24 +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
Yichen Jiang
f2a813b791
Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget
2026-07-20 15:15:31 +08:00
pku-xht
7d7d69e225
review fix: cover post-cancel replacement
2026-07-20 13:20:51 +08:00
pku-xht
da70e47048
review fix: preserve idle waiter quiescence
2026-07-20 13:15:11 +08:00
pku-xht
d59149a221
review fix: restore idle after between-turn cancellation
2026-07-20 12:51:44 +08:00
Turtle
aeb48cc5f3
Render error cause chains at every diagnostic seam
...
A TUI run against an unreachable endpoint failed with only 'fetch failed':
undici wraps transport failures in a bare TypeError whose diagnosis lives
on .cause, and every diagnostic seam rendered only error.message. The
readline front door additionally rendered failed turns as pure silence.
- dsh-llm: new errorChain(value) renders the full cause chain and
AggregateError members with circular/hostile-coercion containment.
- llm-deepseek: pre-response transport failures throw LlmError('NETWORK')
naming the endpoint and chaining the fetch TypeError; aborts keep their
DOMException so the loop still classifies them as cancellation.
- agent-loop: durable turn/end error messages and logger warnings render
through errorChain; local renderThrown copies removed.
- ui-stdio: failure turn/end reasons now render ([turn failed <code>],
[turn aborted], [turn rejected], output-token-limit); startup-failure
logs use errorChain.
- ui-tui: agent/error notices and the startup-failure line use errorChain.
2026-07-20 12:35:10 +08:00
pku-xht
a6e96c47f3
review fix: pin ordinary-send batching removal
2026-07-20 11:53:49 +08:00
pku-xht
0891465ee0
Merge origin/master into codex/send-one-turn
2026-07-20 11:52:30 +08:00
Tianyi Cui
3b0b0cefeb
feat: implement bounded LLM request recovery
2026-07-20 03:34:19 +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
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
0d00106fa8
fix(session): persist the delegation depth in the session header
...
A subagent child's recursion depth lived only in runtime AgentOptions,
so a persisted child came back from resume counted as top-level and
maxDepth stopped binding after every restart. Add
SessionHeader.delegationDepth, round-trip it through the JSONL and
SQLite backends (SQLite schema v5), restore it on agent-loop resume,
and write it when the in-process backends create a child. The seam now
owns the shared depth vocabulary (delegationDepthOf): the persisted
header is authoritative and monotone — runtime options may deepen it
but never lower it.
2026-07-19 17:20:36 +08:00
Tianyi Cui
20fd7133a0
Merge latest master into post-step recovery
...
Adopt initiator-derived private loop and session plumbing while preserving post-step recovery and balanced synthetic tool-call results after cancellation.
Keep the architecture map within its existing budget while documenting ambient Agent ownership and explicit cross-boundary identities.
2026-07-19 17:02:55 +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
5e2607df8c
refactor(core): capture session inside loop operations
2026-07-19 16:28:31 +08:00
Tianyi Cui
ee6b9d081a
fix(llm): scope adapter failures to model calls
...
Replace the process-wide adapter-failure WeakSet with a per-call scope bound to the exact AsyncIterable returned by LlmService.stream(). Give every call a unique wrapper so waterfall middleware can reuse an iterable without sharing provenance.
Move agent-loop recovery classification to the model-stream boundary. Only the final adapter behind that exact call can become an agent/request-error; nested llm/stream calls remain ordinary outer middleware failures while preserving the original Error.
Cover nested calls, reused middleware iterables, and end-to-end agent-loop recovery. Update the package and RFC contracts, bilingual pairing record, and generated API and catalog references.
2026-07-19 16:14:58 +08:00
Tianyi Cui
98e224e45e
refactor(agent): exhaust recovery and compaction decisions
...
Dispatch RequestErrorDecision and CompactionTrigger through explicit discriminant switches. End each closed union with assertNever so new variants fail compilation instead of silently inheriting fail or pressure behavior.
This preserves the current retry, fail, pressure, and overflow semantics while aligning the new recovery seams with the repository closed-union contract.
2026-07-19 15:02:11 +08:00
Tianyi Cui
7a9c2ef473
docs(core): state loop initiator precondition
2026-07-19 14:20:27 +08:00
Tianyi Cui
f21ed1bfa0
refactor(core): use initiator in loop internals
2026-07-19 14:06:47 +08:00
Tianyi Cui
c23214be56
refactor(core): fold initiator scope into agents
2026-07-19 13:30:45 +08:00
Tianyi Cui
86d97845dc
docs(agent): remove stale pre-step contracts
2026-07-19 12:14:37 +08:00
Tianyi Cui
7be78c7d4c
Merge latest origin/master into compact-post-step-overflow-recovery
...
# Conflicts:
# docs/agent-lifecycle.md
# docs/architecture.md
# docs/cookbook/extension-cookbook.i18n.yaml
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/rfc/INDEX.md
# docs/rfc/implemented/architecture/2026-07-05-reconstructable-requests.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.i18n.yaml
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.zh.md
# docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md
# docs/rfc/implemented/feature/2026-07-07-session-prefix.md
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/config.ts
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/src/summarizer.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
# packages/compact/compact/README.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-pi-ai/README.md
# packages/llm/llm-pi-ai/src/stream.ts
# packages/llm/llm-pi-ai/tests/convert.spec.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/index.ts
# packages/llm/llm/tests/service.spec.ts
# scripts/gen-doc-graphs.ts
2026-07-19 12:06:23 +08:00
Tianyi Cui
cfe9b9617d
Merge remote-tracking branch 'origin/master' into worktree/agent-execution-context-rfc
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/module-graph.md
# examples/coding-agent/tests/code-mode.e2e.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/core/README.md
# packages/core/agent-loop/README.md
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/core/agent-loop/tests/config-session-id.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/coverage-edges.spec.ts
# packages/core/agent-loop/tests/interception.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent-loop/tests/properties.spec.ts
# packages/core/agent-loop/tests/request-cache.e2e.ts
# packages/core/agent-loop/tests/request-reconstruction.spec.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/core/agent-loop/tests/scope-lifecycle.spec.ts
# packages/core/agent-loop/tests/tool-calls.spec.ts
# packages/core/agent-loop/tests/tool-order.spec.ts
# packages/core/agent-loop/tests/turn-stop.spec.ts
# packages/workflow/workflow-workerthread/tests/workflow-workerthread.e2e.ts
# website/zh-CN/api/harness/agent-loop.md
2026-07-19 11:44:50 +08:00
Tianyi Cui
18653a9ff7
Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# website/zh-CN/api/harness/agent-loop.md
# website/zh-CN/api/harness/events.md
2026-07-19 01:57:18 +08:00
Tianyi Cui
f65f4b82d7
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/index.ts
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# website/zh-CN/api/harness/agent-loop.md
2026-07-19 01:54:03 +08:00
Yichen Jiang
5190e10d27
Merge latest agent execution context base
2026-07-18 21:42:38 +08:00
Yichen Jiang
cddb79e844
Merge branch 'worktree/agent-execution-context-rfc' into worktree/explicit-turn-signal
2026-07-18 21:33:17 +08:00
Yichen Jiang
0e4785cdb7
Merge origin/master into worktree/agent-execution-context-rfc
2026-07-18 21:20:30 +08:00
Tianyi Cui
78f68dbbb9
docs(agent-loop): track scheduler drain follow-up
2026-07-18 20:35:58 +08:00
Tianyi Cui
50f0291b93
Merge latest origin/master into parallel-tool-call
...
# Conflicts:
# docs/architecture.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/hook-cc-pretool-ask/session.jsonl
# packages/core/agent-loop/src/loop.ts
2026-07-18 15:09:39 +08:00
Tianyi Cui
21ec178841
docs: tighten parallel tool-call prose
2026-07-18 14:59:26 +08:00
Tianyi Cui
2db38ecf05
Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/core/agent-loop/README.md
# packages/core/agent-loop/tests/contract-regressions.spec.ts
2026-07-18 14:52:34 +08:00
Tianyi Cui
d2426fed5d
Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# website/zh-CN/api/harness/events.md
2026-07-18 14:50:55 +08:00
Tianyi Cui
aacedf2700
Merge current master into debug-pangwenjie
...
# Conflicts:
# docs/cordis-catalog/events.md
# docs/core-data-structures/core.md
# docs/core-data-structures/tools.md
# docs/event-producer-consumer.md
# docs/rfc/implemented/feature/2026-06-30-interception-seams.md
# docs/tool-execution-pipeline.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent/README.md
# packages/core/tools/src/index.ts
# scripts/gen-doc-graphs.ts
2026-07-18 13:39:12 +08:00
Tianyi Cui
6f01d4d099
Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop
...
# Conflicts:
# docs/event-producer-consumer.md
# examples/coding-agent/tests/code-mode.e2e.ts
# examples/coding-agent/tests/harness.ts
# examples/coding-agent/tests/resume.e2e.ts
# examples/cordis-agent/tests/harness.ts
# packages/bash/tool-bash/tests/integration.spec.ts
# packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
# packages/cordis/tool-cordis/tests/integration.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/guard/repeat-tool-guard/tests/repeat-tool-guard.spec.ts
# packages/hooks/hooks-claude/tests/bridge.spec.ts
# packages/hooks/hooks-claude/tests/coverage.spec.ts
# packages/hooks/hooks-codex/tests/bridge.spec.ts
# packages/hooks/hooks-codex/tests/coverage.spec.ts
# packages/todo/tool-todo/tests/integration.spec.ts
2026-07-18 12:33:49 +08:00