Commit Graph

433 Commits

Author SHA1 Message Date
Tianyi Cui 4e7a2c732f fix(commands): remove adapter surface filtering 2026-07-20 17:41:22 +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
kingwl 5869a46d94 Merge remote-tracking branch 'origin/master' into jsonl-packed-chunk-rows
Conflicts: generated docs only (cordis services catalog and the website
sessions API page) — resolved by regenerating both over the merged sources.
2026-07-20 17:37:30 +08:00
Tianyi Cui a87d3e7e55 Merge branch 'codex/goal-session' into codex/commands 2026-07-20 17:24:39 +08:00
Tianyi Cui 77ab5516a9 Merge goal tool fixes and align same-session blockers 2026-07-20 17:23:55 +08:00
Turtle 85fbf122a9 docs: regenerate event-producer matrix after master merge 2026-07-20 17:22:50 +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
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
Tianyi Cui e9d9791501 Merge branch 'codex/goal-domain' into codex/goal-tools 2026-07-20 16:42:04 +08:00
Tianyi Cui 1468773dcd fix(goal): simplify blockers into one durable phase 2026-07-20 16:39:40 +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 cfa180c127 Resolve compaction policy per routed model 2026-07-20 15:34:00 +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
pku-xht c16e1078f5 docs(agent): clarify late steering timing 2026-07-20 14:42:55 +08:00
kingwl c0146b9c4a refactor(mode): modes are collaboration states — drop the access cap; enforcement axes stay independent
Review follow-up (tianyicui): plan mode and the sandbox are orthogonal
AXES, not just orthogonal state — entering plan must not change what the
sandbox enforces, matching Codex's separation of Plan/Default
collaboration presets from sandbox and approval settings.

ModeDefinition.access, the bash/resolve-mode clamp, and both cap-derived
guards are removed; a ModeDefinition is exactly { section }, and a mode
now carries only its guidance section plus the exit_plan_mode review.
The bash seam's resolveMode + waterfall go with their only listener:
dsh-bash and dsh-tool-bash revert to master byte-for-byte, and the
dsh-mode → dsh-bash dependency edge is gone. A deployment that wants
kernel-enforced read-only planning pairs the mode picker with the
independent sandbox-mode option, in either order.

The RFC archives this as the second removed enforcement shape (after
the interim allowlist) with the same restart trigger — effects
self-declaration; the orthogonality FAQ now answers with the two-axis
rule. The plan example demonstrates the axes side by side, and the
re-recorded fixtures pin the guidance-only section.
2026-07-20 13:34:30 +08:00
pku-xht a6e96c47f3 review fix: pin ordinary-send batching removal 2026-07-20 11:53:49 +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
Tianyi Cui 2dd3b1dfba fix(commands): harden registry and UI ordering 2026-07-20 11:27:10 +08:00
Tianyi Cui cf05624b9f Merge codex/goal-session into codex/commands 2026-07-20 09:11:50 +08:00
Tianyi Cui 69daf1c147 Merge codex/goal-tools into codex/goal-session
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.md
#	.agents/notes/implemented/feature/2026-07-19-persisted-same-session-goal-domain.zh.md
#	docs/cordis-catalog/events.md
#	docs/event-producer-consumer.md
#	packages/goal/goal/tests/goal.spec.ts
#	website/zh-CN/api/harness/events.md
#	website/zh-CN/api/harness/goals.md
2026-07-20 08:58:37 +08:00
Tianyi Cui 89f9900be1 fix(goal): preserve interactive human turns 2026-07-20 08:50:51 +08:00
Tianyi Cui 3b0b0cefeb feat: implement bounded LLM request recovery 2026-07-20 03:34:19 +08:00
Tianyi Cui 941b0411d8 feat(invariants): implement package runtime checks 2026-07-20 00:38:37 +08:00
Tianyi Cui e8b95c8754 feat(tools): require cancellation signal on every invocation 2026-07-19 23:38:54 +08:00
Tianyi Cui 2850c22b7a feat(ui): add plugin command registry 2026-07-19 22:11:59 +08:00
Tianyi Cui 54aef60685 fix(tools): complete cancellation boundary 2026-07-19 21:13:41 +08:00
Tianyi Cui 25555c9cfc feat(goal): drive same-session goal rounds 2026-07-19 20:30:43 +08:00
Tianyi Cui fbefc1d65b fix(goal): stop terminal goal tool turns 2026-07-19 19:42:17 +08:00
Tianyi Cui 9d310ecc27 feat(invariants): add package-owned service seam 2026-07-19 19:19:57 +08:00
Tianyi Cui a525776015 feat(goal): add persisted same-session goal domain 2026-07-19 18:47:34 +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
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 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 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 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 49bd666a26 Merge remote-tracking branch 'origin/master' into worktree/agent-execution-context-rfc
# Conflicts:
#	docs/capability-seams.md
#	scripts/gen-doc-graphs.ts
2026-07-19 15:18:35 +08:00
Tianyi Cui ee1a44793a fix(core): make initiator teardown reentrant-safe 2026-07-19 15:12:18 +08:00
Tianyi Cui 3e4e3aa865 Merge remote-tracking branch 'origin/master' into codex/pr332-merge-master-20260719
# Conflicts:
#	docs/cookbook/extension-cookbook.i18n.yaml
2026-07-19 15:07:58 +08:00
Tianyi Cui dbe9e307b0 Merge remote-tracking branch 'origin/master' into codex/cli-one-shot-demo
# Conflicts:
#	AGENTS.md
#	README.i18n.yaml
#	README.md
#	README.zh.md
#	docs/architecture.md
#	docs/cookbook/extension-cookbook.i18n.yaml
#	docs/cookbook/extension-cookbook.md
#	docs/cookbook/extension-cookbook.zh.md
#	docs/event-producer-consumer.md
#	docs/graph-atlas.md
#	docs/module-graph.md
#	docs/testing.md
#	examples/README.md
#	examples/coding-agent/README.md
#	package.json
#	packages/examples/README.md
#	scripts/gen-doc-graphs.ts
2026-07-19 13:17:53 +08:00
Tianyi Cui 53c729e00b Merge remote-tracking branch 'origin/master' into codex/cli-one-shot-demo
# Conflicts:
#	AGENTS.md
#	docs/architecture.md
#	docs/capability-seams.md
#	docs/cookbook/extension-cookbook.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	knip.json
#	packages/README.md
#	packages/support/loader-smoke/README.md
#	packages/support/loader-smoke/src/index.ts
#	vitest.snapshot.config.ts
2026-07-19 13:11:50 +08:00
Tianyi Cui b99008221e Merge remote-tracking branch 'origin/master' into compact-post-step-overflow-recovery
# Conflicts:
#	docs/cookbook/extension-cookbook.i18n.yaml
#	docs/event-producer-consumer.md
2026-07-19 13:06:34 +08:00
Tianyi Cui 7538cef967 docs(agent): describe cancelled post-step checkpoint 2026-07-19 12:35:43 +08:00
Tianyi Cui 78d03cd21f Merge latest origin/master into compact-post-step-overflow-recovery
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-19 12:16:34 +08:00
Tianyi Cui 14542b2503 Merge latest origin/master into feat/tui-package
Bring in the one-session surface manager landed through #376 after master advanced beyond the prior merge base.

Resolve the generated event-matrix overlap by regenerating from the merged TypeScript tree, preserving master's updated session declaration locations together with the TUI listener edges. Regenerate and verify the RFC index so both lifecycle updates remain represented.
2026-07-19 12:14:07 +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 c06e6bea0b Merge origin/master into feat/tui-package
Master unifies every live agent with its exact SessionId and moves declarative startup failures to agent-loop/config-start-failed. Keeping the branch’s AgentId label binding would let the TUI target the wrong lifecycle after reload and would miss asynchronous resume failures.

Resolve that contract migration by giving the selected terminal front door the same generated or resumed SessionId as agent-core, mounting the front door first, and entering fullscreen only after the matching root appears. Refresh the source-derived catalogs and keyless terminal goldens so Code Mode, workflow, Cordis-tool, and transient UI scenarios all exercise the merged identity model.
2026-07-19 11:37:14 +08:00
Tianyi Cui 765dfb2174 refactor(session): use one surface manager 2026-07-19 11:36:07 +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