Commit Graph
2546 Commits
Author SHA1 Message Date
Tianyi Cui c9d3d5d557 fix(jsonl): reject unusable roots at plugin load
A configured root that already exists as a file or unreadable directory cannot host cwd buckets, but the backend previously mounted and deferred that deterministic configuration error until a later list or write.

Probe the resolved root while the plugin loads, surface every error except ENOENT, and keep an absent root valid for lazy first materialization. Document the timing contract, regenerate the config catalog, and pin the non-directory case at the load boundary.
2026-07-20 17:42:44 +08:00
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
Tianyi Cui b668d67dc9 Merge remote-tracking branch 'origin/master' into codex/pr270-retarget-20260720
# Conflicts:
#	website/.vitepress/config/api-sidebar.json
2026-07-20 17:38:27 +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
Tianyi Cui 60ecdbc88b Merge remote-tracking branch 'origin/master' into codex/pr353-retarget-master-20260719 2026-07-20 17:23:17 +08:00
Turtle 85fbf122a9 docs: regenerate event-producer matrix after master merge 2026-07-20 17:22:50 +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
Yichen Jiang 8fd38974d9 Merge branch 'master' into fix/acp-subagent-cwd 2026-07-20 17:20:07 +08:00
Tianyi Cui 0b42b2524c Merge remote-tracking branch 'origin/master' into codex/pr270-retarget-20260720
# Conflicts:
#	website/zh-CN/api/harness/events.md
#	website/zh-CN/api/harness/sessions.md
2026-07-20 17:15: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 1a1ff56ab7 fix(tool-subagent): default maxDepth to 3 2026-07-20 17:12:14 +08:00
Tianyi Cui 45aa46e924 Merge branch 'master' into fetch-failed-diagnostics 2026-07-20 17:03:49 +08:00
Tianyi Cui 7aee299bda docs(compact): correct pruning surface contracts 2026-07-20 17:02:28 +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 15640ca697 fix(goal): require explained model blockers 2026-07-20 16:53:10 +08:00
Tianyi Cui 97e144fff6 Merge branch 'codex/goal-domain' into codex/goal-tools 2026-07-20 16:50:40 +08:00
Tianyi Cui 63d1f7679c docs(goal): refresh generated service references 2026-07-20 16:50:29 +08:00
Tianyi Cui e9d9791501 Merge branch 'codex/goal-domain' into codex/goal-tools 2026-07-20 16:42:04 +08:00
Tianyi Cui 6b44d01bc8 Merge master into compact-tool-result-prune 2026-07-20 16:41:59 +08:00
Yichen Jiang dc4b7de817 Merge remote-tracking branch 'origin/master' into worktree/docs-website
# Conflicts:
#	website/.vitepress/config/api-sidebar.json
#	website/zh-CN/api/harness/bash-env.md
#	website/zh-CN/api/harness/bash.md
#	website/zh-CN/api/harness/events.md
#	website/zh-CN/api/harness/fs.md
#	website/zh-CN/api/harness/permission.md
#	website/zh-CN/api/harness/sandbox.md
2026-07-20 16:41:21 +08:00
Tianyi Cui 1468773dcd fix(goal): simplify blockers into one durable phase 2026-07-20 16:39:40 +08:00
Yichen Jiang 2b1b598467 docs: restore generated Cordis core API 2026-07-20 16:33:44 +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
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 d919e1b813 Merge remote-tracking branch 'origin/master' into fix/acp-subagent-cwd
# Conflicts:
#	packages/subagent/subagent-acp/README.md
2026-07-20 15:19:25 +08:00
Yichen Jiang f2a813b791 Merge remote-tracking branch 'origin/master' into fix/subagent-depth-budget 2026-07-20 15:15:31 +08:00
Yichen Jiang fdd5791325 Merge branch 'master' into worktree/docs-website 2026-07-20 15:10:28 +08:00
pku-xht c16e1078f5 docs(agent): clarify late steering timing 2026-07-20 14:42:55 +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
Tianyi Cui 725acb76ec Merge remote-tracking branch 'origin/codex/goal-tools' into codex/goal-session 2026-07-20 14:18:42 +08:00
Tianyi Cui ad3708645a Merge remote-tracking branch 'origin/codex/goal-domain' into codex/goal-tools
# Conflicts:
#	docs/tool-catalog.md
2026-07-20 14:14:26 +08:00
Tianyi Cui 6e876e497a Merge remote-tracking branch 'origin/rfc/loop' into codex/goal-domain 2026-07-20 14:10:00 +08:00
kingwl 994eaedc02 review pass: purge stale enforcement language after the axis decoupling
Self-review findings, all prose/metadata (no behavior change): the
package description still claimed hard (execution) enforcement; the RFC
Problem framing still defined plan mode as a read-only tool policy;
integration/mode/snapshot-suite comments still referenced the removed
sandbox clamp and cap; the header-fallback explanation said
'front-of-list insertion' where the actual mechanism is a non-tail
insertion the append-only tools delta cannot express (exit_plan_mode
sits mid-list alphabetically); AGENTS.md's layout line and the RFC's
'policy state/listener' phrasing move to collaboration-state wording.
2026-07-20 14:01:53 +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
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
Tianyi Cui 60eea35df5 fix(ralph): harden execution boundaries 2026-07-20 12:56:09 +08:00
pku-xht d9a9c223e4 Merge remote-tracking branch 'origin/master' into codex/send-one-turn 2026-07-20 12:52:17 +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
Tianyi Cui c6f8247ac1 Merge codex/goal-commands into codex/ralph-tool
# Conflicts:
#	docs/glossary.md
2026-07-20 12:23:57 +08:00