Hypatia May
3cccecee0a
Merge remote-tracking branch 'origin/master' into compact-tool-pairing
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-16 09:55:02 +08:00
Hypatia May
63330ac638
Merge origin/master into compact-tool-pairing
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-15 15:24:59 +08:00
Yichen Jiang
3285b77d3c
Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-15 13:30:39 +08:00
Hypatia May
c9efdf68f9
Merge remote-tracking branch 'origin/master' into codex/compact-tool-pairing
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-15 13:26:57 +08:00
Hypatia May
cc546c4580
feat(compact): move pairing helpers (PR1 round 1)
2026-07-15 13:22:44 +08:00
imccyu
517964fe84
Merge branch 'master' into refactor/agent-leaf-dependencies
2026-07-15 13:09:33 +08:00
Yichen Jiang
df8fe3bde4
Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/permission-switching/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# packages/README.md
2026-07-15 11:17:55 +08:00
imccyu
80fbeefbd6
refactor(ui): extract stdio plugin package
...
Move the readline front door from stdio-agent into @deepseek-ai/dsh-stdio, keeping the loader shape and the stdio coverage with the new package.
2026-07-15 10:04:40 +08:00
Tianyi Cui
77de6497b4
Merge remote-tracking branch 'origin/master' into codex/simp-drop-skill-provider-events
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-15 01:49:41 +08:00
imccyu
c67c3d9413
refactor: derive event graphs and scope invariants from TypeScript
2026-07-14 23:37:56 +08:00
Yichen Jiang
9956528495
Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/bash.md
# docs/event-producer-consumer.md
# docs/rfc/implemented/feature/2026-07-06-sandbox.md
# docs/rfc/proposed/architecture/2026-06-20-generic-long-running-tool-runtime.md
# examples/AGENTS.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/code-mode-turn/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/permission-switching/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/system-prompt.golden.md
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/system-prompt.golden.md
# examples/coding-agent/cordis.yml
# examples/sandbox-acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/mode-switching/session.jsonl
# packages/bash/bash-local/README.md
# packages/bash/bash-local/src/index.ts
# packages/bash/bash-local/tests/executor.spec.ts
# packages/bash/bash-sandbox/README.md
# packages/bash/bash-sandbox/src/index.ts
# packages/bash/bash/README.md
# packages/bash/bash/src/index.ts
# packages/bash/bash/src/types.ts
# packages/bash/tool-bash/README.md
# packages/bash/tool-bash/src/index.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-core/README.md
# packages/core/agent-core/src/index.ts
# packages/subagent/subagent/README.md
# packages/subagent/tool-subagent/README.md
# packages/subagent/tool-subagent/src/index.ts
# packages/ui/acp-agent/README.md
# packages/ui/acp/README.md
# packages/ui/stdio-agent/README.md
# packages/util/brand/src/index.ts
# scripts/doc-budgets.manifest.json
2026-07-14 18:05:46 +08:00
Tianyi Cui
2df64c22ad
Merge remote-tracking branch 'origin/master' into codex/simp-drop-skill-provider-events
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-14 18:00:41 +08:00
Tianyi Cui
f0fc20ca42
docs: align prose with runtime contracts
2026-07-14 16:21:41 +08:00
Yichen Jiang
cb78634bf2
Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/bash/tool-bash/tests/tools.spec.ts
2026-07-14 09:59:21 +08:00
Tianyi Cui
582a8ba288
refactor: drop unconsumed skill provider events
2026-07-14 04:32:40 +08:00
Tianyi Cui
972e7cc77d
Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
...
# Conflicts:
# docs/config-catalog.md
# docs/event-producer-consumer.md
# docs/rfc/implemented/feature/2026-07-05-dynamic-workflows.md
# examples/acp-agent/tests/acp.snapshot.ts
# packages/code-runtime/code-runtime-worker/tests/built-lib.e2e.ts
# packages/code-runtime/code-runtime-worker/tsdown.config.ts
2026-07-14 00:40:36 +08:00
Tianyi Cui
20402b637c
Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/rfc/proposed/feature/2026-07-08-interactive-side-sessions.md
# docs/rfc/proposed/simplification/2026-06-20-unify-agent-and-session-id.md
# examples/coding-agent/tests/keyless-smoke.e2e.ts
# packages/ui/acp/src/index.ts
2026-07-13 23:44:44 +08:00
Tianyi Cui
148046b9c8
docs: rebalance prose cleanup and add trimming skill
2026-07-13 23:27:00 +08:00
Tianyi Cui
c45d7927cf
docs: tighten prose audit after master retarget
2026-07-13 16:24:32 +08:00
Yichen Jiang
e2bc79a0ef
Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/tool-catalog.md
# packages/bash/tool-bash/tests/integration.spec.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/core/agent-core/tests/agent-core.spec.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/index.ts
# packages/core/agent/README.md
# packages/core/agent/src/index.ts
# packages/core/agent/tests/agent.spec.ts
# packages/subagent/subagent/README.md
# packages/subagent/subagent/src/index.ts
# packages/subagent/tool-subagent/README.md
# packages/subagent/tool-subagent/src/index.ts
# pnpm-lock.yaml
# scripts/doc-budgets.manifest.json
2026-07-13 15:57:17 +08:00
imccyu
67fe6c10b6
jsonrpc: SDK serving surface as plugins (dsh-jsonrpc + dsh-jsonrpc-agent)
2026-07-13 15:50:09 +08:00
Tianyi Cui
7c84611e38
Merge remote-tracking branch 'origin/worktree-agent-scope-design' into codex/trim-ai-prose
2026-07-13 13:22:22 +08:00
Tianyi Cui
e04ec07345
refactor(core): remove owner-final assembly machinery
2026-07-13 13:09:41 +08:00
Tianyi Cui
4ded5a32f6
Merge remote-tracking branch 'origin/worktree-agent-scope-design' into codex/trim-ai-prose
2026-07-13 12:07:23 +08:00
Tianyi Cui
f32cfafa1a
refactor: narrow synchronous extension contracts
2026-07-13 11:58:55 +08:00
Tianyi Cui
74ada5777c
Merge PR #224 updates into prose cleanup
2026-07-12 23:36:49 +08:00
Tianyi Cui
ed5304fb6d
docs(rfc): align scoped runtime contracts
2026-07-12 22:49:46 +08:00
Tianyi Cui
e8fed4fb66
fix(session): contain post-commit observers
2026-07-12 18:57:42 +08:00
Tianyi Cui
a34801df4b
fix(agent-loop): own queued message input
2026-07-12 16:54:37 +08:00
Tianyi Cui
d427478c44
fix(subagent): validate direct depth boundaries
2026-07-12 10:48:20 +08:00
Tianyi Cui
c5b1a7941f
fix(scope): harden lifecycle ownership foundation
...
Make Cordis construction and teardown ownership reentrancy-safe, then carry caller and provider ownership through reservation, setup, publication, quiescence, and sentinel retirement.
Stabilize registry carriers and factory/workflow boundaries, add adversarial lifecycle regressions, and align the rewritten RFC plus generated contracts with the enforced behavior.
2026-07-12 08:57:05 +08:00
Tianyi Cui
a9cb70d896
fix(scope): harden final ownership boundaries
2026-07-12 05:13:17 +08:00
Tianyi Cui
36b8370027
fix(scope): close remaining ownership boundaries
2026-07-12 03:51:55 +08:00
Tianyi Cui
75838e10b5
docs: trim generated prose
2026-07-12 03:36:43 +08:00
Tianyi Cui
35715423f8
fix(workflow): honor subagent readiness boundary
2026-07-12 01:35:09 +08:00
Tianyi Cui
3529b3c166
fix(scope): close final ownership races
...
Drain idle injection flushes before agent teardown, snapshot approval and subagent provider inputs, and gate subagent lifecycle events on real child readiness. Align the RFCs and generated contracts with the hardened behavior.
2026-07-12 00:31:46 +08:00
Tianyi Cui
06e42f439c
docs: regenerate merged catalogs
2026-07-11 23:42:52 +08:00
Tianyi Cui
56e34619d7
Merge remote-tracking branch 'origin/master' into codex/pr224-rfc-rewrite
...
# Conflicts:
# docs/architecture.md
# docs/capability-seams.md
# docs/config-catalog.md
# docs/cookbook/extension-cookbook.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/rfc/implemented/feature/2026-06-30-interception-seams.md
# docs/rfc/proposed/feature/2026-06-14-acp-agent-client-protocol.md
# docs/tool-execution-pipeline.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-core/README.md
# packages/core/agent-loop/README.md
# packages/core/tools/README.md
# packages/core/tools/src/index.ts
# packages/core/tools/tests/tools.spec.ts
# packages/core/tools/tsconfig.json
# packages/ui/acp/src/index.ts
# scripts/doc-budgets.manifest.json
# scripts/gen-cordis-catalog.ts
# scripts/gen-doc-graphs.ts
2026-07-11 23:14:09 +08:00
Yichen Jiang
740106a51a
Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/bash.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/tool-catalog.md
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# packages/README.md
# packages/bash/README.md
# packages/bash/bash-local/src/index.ts
# packages/bash/bash/README.md
# packages/bash/bash/package.json
# packages/bash/bash/src/index.ts
# packages/bash/bash/src/types.ts
# packages/bash/bash/tests/service.spec.ts
# packages/bash/bash/tsconfig.json
# packages/bash/tool-bash/README.md
# packages/bash/tool-bash/src/index.ts
# packages/bash/tool-bash/tests/tools.spec.ts
# packages/bash/tool-bash/tsconfig.json
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-core/README.md
# packages/core/agent-core/package.json
# packages/core/agent-core/src/index.ts
# packages/core/agent-core/tests/agent-core.spec.ts
# packages/core/tools/tests/gen-tool-catalog.spec.ts
# packages/hooks/hook-protocol/tests/runner.spec.ts
# packages/ui/acp-agent/tests/acp-agent.spec.ts
# packages/ui/stdio-agent/tests/stdio-agent.spec.ts
# pnpm-lock.yaml
# scripts/doc-budgets.manifest.json
# scripts/gen-tool-catalog.ts
2026-07-11 23:04:27 +08:00
Tianyi Cui
36c94fbe3e
docs: align the agent-scope contracts
2026-07-11 22:55:40 +08:00
Tianyi Cui
3baaecc078
Merge remote-tracking branch 'origin/master' into codex/skill-system
...
# Conflicts:
# docs/rfc/INDEX.md
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# packages/README.md
2026-07-11 22:31:28 +08:00
Tianyi Cui
b29a8eca71
fix(review): reconcile sandbox and approval contracts
2026-07-11 21:37:38 +08:00
Tianyi Cui
fc0357a100
Merge remote-tracking branch 'origin/master' into codex/pr224-rfc-rewrite
...
# Conflicts:
# docs/architecture.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# scripts/doc-budgets.manifest.json
# scripts/gen-doc-graphs.ts
2026-07-11 20:38:25 +08:00
kingwl
ca39fd89b0
feat(example): sandbox-acp-agent — the live composition; RFCs to implemented
...
The three-entry cordis.yml (dsh-sandbox-local + dsh-bash-sandbox at a
read-only default + dsh-approval) served over ACP: the first live approval
composition. Recorded snapshot scenarios pin the wire end to end —
config-options advertisement, the mode-switching arc as the suite pinned
header (both switches, the prompt-section delta, one changed-by-the-user
notice per knob, a confined write landing under the switched mode), and
both escalation branches over scripted permissionAnswers (a grant runs
confined under workspace-write; a rejection executes nothing and pins the
fail-closed text). The with-key escalation e2e drives a real model +
real runner + the real bridge answerer, world-verified; ci.yml snapshot
lane and e2e.yml install bubblewrap so the confined replays actually
execute.
Both RFCs move to implemented/ (Decision/Consequences form, deferred
phases tracked in their own sections), with every cross-reference flipped.
2026-07-10 15:44:38 +08:00
kingwl
3f663c9154
feat(modes): per-session sandbox/approval switching — the session log as the store, ACP config options
...
effective(session) = findLast(the session own knob events)?.value ?? the
composition-config default. One log-only event per knob, owned by its
domain (bash/sandbox-mode in dsh-bash, approval/policy in dsh-approval),
each exporting the same three-piece kit: the event declaration, a pure
fold, and THE write path — a switch IS its event; no owner service, no
facts map. Restart immunity and multi-session isolation fall out of the
log replay by construction.
Execution follows the fold on both sides: the bash tool stamps
escalation grant > session override > executor default, and the approval
seam prepends the never-gate that auto-rejects before any interactive
answerer. Visibility is two layers per knob: a per-agent prompt section
states the effective value on every request (logged through
request/header*, so what-the-model-was-told replays from the log), and an
agent/pre-step narrator injects at most one coalesced delta notice with
positional attribution (user switch vs operator/config drift). The ACP
bridge advertises one capability-gated select per composable knob with
currentValue folded per session, validates set_config_option against the
closed vocabularies, and anchors idle switches at the next turn
prompt-submit under the turn-enclosure contract.
2026-07-10 15:44:38 +08:00
kingwl
80d8726601
feat(acp): the bridge approval answerer + scripted permission answers
...
The ACP bridge registers the first real approval answerer: an ask for an
agent it owns becomes session/request_permission attached to the already-
streamed tool call (one-shot allow_once/reject_once only), outcomes map
conservatively (unknown optionId never grants, client cancel → cancelled),
and foreign or call-less requests delegate down the waterfall. The snapshot
harness accepts scripted permissionAnswers (FIFO; an unscripted prompt
answers cancelled, fail closed) so recorded scenarios can drive the wire
keylessly.
2026-07-10 15:43:02 +08:00
kingwl
ef35007d75
feat(approval): the approval seam — one-shot permission decisions over a waterfall of answerers
...
ctx.approval (dsh-approval): request() dispatches the approval/request
waterfall and always resolves a closed outcome — allowed-once / rejected /
cancelled / unavailable — never rejects; zero listeners fall through to
fail-closed unavailable; abort settles cancelled and discards late answers;
throwing or rogue answerers are contained as unavailable; every ask lands
the log-only approval/asked / approval/decided audit pair. dsh-tools routes
a pre-execute ask through the seam opportunistically (ctx.get) with three
distinct deny reasons, keeping the historical ask→deny degrade when the
seam is absent.
The per-session policy tier, the ACP bridge answerer, and the sandbox
escalation asker are staged follow-ups of the approval-seam RFC.
2026-07-10 15:43:02 +08:00
Yichen Jiang
680ae53bb6
Merge remote-tracking branch 'origin/master' into codex/skill-system
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/module-graph.md
# docs/rfc/INDEX.md
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# packages/core/agent-core/src/index.ts
# packages/core/tools/tests/gen-tool-catalog.spec.ts
# packages/support/acp-snapshot/src/suite.ts
# packages/ui/acp-agent/src/index.ts
2026-07-10 14:43:33 +08:00
Yichen Jiang
6292d52236
feat(skill): move catalogs into session prefixes
2026-07-10 14:19:06 +08:00
Yichen Jiang
f42cd49337
Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
...
# Conflicts:
# docs/architecture.md
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/code-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# packages/README.md
# packages/core/tools/tests/gen-tool-catalog.spec.ts
# scripts/doc-budgets.manifest.json
# tsconfig.base.json
# tsconfig.build.json
# tsconfig.json
2026-07-10 10:13:13 +08:00