Tianyi Cui
c3fb3de64f
Merge PR #500 into codex/tool-json-schema-dsl
...
# Conflicts:
# docs/cordis-catalog/services.md
# scripts/type-equiv.manifest.json
2026-07-22 16:57:45 +08:00
Tianyi Cui
4643e0de10
test(windows): make coverage fixtures portable
2026-07-22 13:10:48 +08:00
Tianyi Cui
4072673c03
Merge remote-tracking branch 'origin/master' into codex/tool-json-schema-dsl
...
# Conflicts:
# packages/cordis/tool-cordis/src/api-catalog.ts
2026-07-22 00:05:23 +08:00
Tianyi Cui
53615c91e7
Merge master into worktree-windows-runtime
2026-07-21 23:39:14 +08:00
Tianyi Cui
5d514ccdb2
Merge remote-tracking branch 'origin/master' into codex/tool-json-schema-dsl
...
# Conflicts:
# docs/config-catalog.md
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# packages/core/tools/tests/tools.spec.ts
2026-07-21 23:04:32 +08:00
Tianyi Cui
3176d232b8
Merge master into codex/session-title
2026-07-21 22:59:41 +08:00
Tianyi Cui
3a895ce815
Merge master into codex/session-title
2026-07-21 21:11:32 +08:00
Tianyi Cui
0004b8675f
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# docs/event-producer-consumer.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/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/core/agent/src/index.ts
# packages/support/invariants/tests/invariants.spec.ts
# packages/ui/acp/src/index.ts
# packages/ui/tui/tests/harness.ts
# packages/ui/tui/tests/tui.spec.ts
2026-07-21 20:03:00 +08:00
Tianyi Cui
6a45e6e16b
Merge remote-tracking branch 'origin/master' into codex/tool-json-schema-dsl
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/cordis/tool-cordis/src/api-catalog.ts
2026-07-21 19:44:49 +08:00
Tianyi Cui
7d9ed9f70a
Merge remote-tracking branch 'origin/master' into codex/tool-json-schema-dsl
2026-07-21 19:03:15 +08:00
Tianyi Cui
071fe76755
Merge latest master into invariant service seam
2026-07-21 18:27:46 +08:00
Yichen Jiang
c0d7ef22ec
fix(subagent-acp): repair the composition fixture for the merged depth budget
...
Master landed the tool-subagent depth budget while this branch was in
flight: the numeric default maxDepth now fails the mount against the
ACP provider's depthLimit: false, so the composition fixture must state
maxDepth: 'provider-managed' — the documented opt-out for a provider
whose recursion budget lives in the child harness. The fixture also
moves off the retired stdio-demo REPL onto the current app-boot driver
pattern (runLoaderSmoke + one-shot cli), and the split isDirectory
statements gain the file-not-a-directory case the single-expression
form used to cover implicitly.
2026-07-21 17:14:10 +08:00
Yichen Jiang
6fe8cfb5d1
Merge branch 'fix/acp-subagent-cwd' of github.com:deepseek-harness/deepseek-harness into fix/acp-subagent-cwd
2026-07-21 16:53:46 +08:00
Yichen Jiang
822651a2c7
test(subagent-acp): cover inherited cwd through a Loader composition
...
The inheritance branch ran only under hand-mounted plugin tests, and
the with-key e2e always configures an explicit cwd. Add a test-only
cordis.yml (scripted delegating model + the scripted mock ACP child)
booting the stdio app through the real Loader with cwd omitted: the
child proves it ran in — and was announced — the parent session's
workspace, keylessly.
2026-07-21 16:53:26 +08:00
Yichen Jiang
04117b58bd
docs(subagent): align the parent contract with ACP cwd inheritance
...
SubagentStartRequest.parent, its core-data type-equiv mirror, and the
ACP backend Agent Note still said the out-of-process backend ignores
request.parent — no longer true: with cwd unconfigured it reads exactly
the session header's cwd, and a parent session without one now rejects
at start. State the one-field read at each owning contract, record the
workspace-resolution decision in the Agent Note, and align the README's
accessibility wording with the search-permission guard.
2026-07-21 16:51:49 +08:00
Yichen Jiang
fcbbd22af7
fix(subagent-acp): require search permission on the child cwd
...
statSync().isDirectory() is true for a mode-600 directory, but a
subprocess cwd needs X_OK — spawn would fail EACCES, deferring a
self-contained configuration error past the load/start boundary the
resolution owns. Probe accessSync(X_OK) alongside the type check so
"not an accessible directory" is literally what the guard verifies.
2026-07-21 16:51:32 +08:00
Tianyi Cui
5d411f9c4e
fix(session-title): preserve agent turn outcomes
2026-07-21 15:49:37 +08:00
Tianyi Cui
8500974fd4
feat: unify JSON value schema DSL
2026-07-21 01:11:55 +08:00
Tianyi Cui
9848fdf93e
refactor: remove unrelated helper extractions
2026-07-21 00:25:51 +08:00
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
Yichen Jiang
a92d2e5f34
Merge origin/master into worktree/explicit-turn-signal
2026-07-20 21:38:49 +08:00
Yichen Jiang
e7220ccef4
Merge branch 'master' into fix/acp-subagent-cwd
2026-07-20 21:11:13 +08:00
Tianyi Cui
78eb93f7e6
Merge branch 'master' into worktree-windows-runtime
2026-07-20 20:39:13 +08:00
Tianyi Cui
8ee54bcb22
Merge latest invariant registration gate
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-20 20:20:10 +08:00
Tianyi Cui
5f806b96f0
Merge latest invariant service seam
2026-07-20 20:19:14 +08:00
Tianyi Cui
2c04056348
Merge latest master into invariant service seam
2026-07-20 20:19:01 +08:00
Tianyi Cui
1145ee5fc3
fix(invariants): assert runtime relationships, not API shapes
2026-07-20 19:34:19 +08:00
Tianyi Cui
3b7ce2e682
fix(invariants): require justified empty companions
2026-07-20 18:39:37 +08:00
Tianyi Cui
ff6359a0cd
docs(subagent): close review contract gaps
2026-07-20 18:10:31 +08:00
Tianyi Cui
46d60d6d90
fix(tool-subagent): enforce depth only at runtime
2026-07-20 17:58:57 +08:00
Tianyi Cui
1a1ff56ab7
fix(tool-subagent): default maxDepth to 3
2026-07-20 17:12:14 +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
Tianyi Cui
e80fc3e61b
fix(invariants): join package checks at startup
2026-07-20 01:53:09 +08:00
Tianyi Cui
684fcf3357
Merge branch 'codex/invariant-package-registration-gate' into codex/package-invariant-checks
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# docs/rfc/INDEX.md
# packages/AGENTS.md
2026-07-20 00:54:28 +08:00
Tianyi Cui
941b0411d8
feat(invariants): implement package runtime checks
2026-07-20 00:38:37 +08:00
Tianyi Cui
6520f71f94
Merge remote-tracking branch 'origin/codex/invariant-service-seam' into codex/invariant-package-registration-gate
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# docs/core-data-structures/session.md
# docs/module-graph.md
# package.json
# packages/sdk/scripts/tsconfig.json
2026-07-20 00:35:06 +08:00
Tianyi Cui
b46dfe08a2
Merge remote-tracking branch 'origin/master' into codex/invariant-service-seam
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.md
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.zh.md
# .agents/notes/implemented/feature/2026-06-18-compaction-capability-seam.md
# .agents/notes/implemented/feature/2026-07-07-session-prefix.md
# .agents/notes/implemented/process/2026-07-14-typescript-program-backed-semantic-gates.i18n.yaml
# docs/architecture.md
# docs/config-catalog.md
# docs/core-data-structures/session.md
# docs/rfc/INDEX.md
# packages/examples/agent-spine-demo/README.md
# packages/examples/agent-spine-demo/src/index.ts
# packages/examples/agent-spine-demo/tests/agent-core.spec.ts
# packages/support/invariants/README.md
# packages/support/invariants/src/index.ts
# packages/support/invariants/tests/invariants.spec.ts
2026-07-20 00:25:31 +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
433670a754
feat(invariants): require package-owned companions
2026-07-19 22:13:50 +08:00
imccyu
6eabba8021
Merge branch 'master' into worktree-windows-runtime
2026-07-19 21:08:12 +08:00
Tianyi Cui
9d310ecc27
feat(invariants): add package-owned service seam
2026-07-19 19:19:57 +08:00
Tianyi Cui
a278374e8f
docs: structure model experience fields
2026-07-19 18:08:42 +08:00
Tianyi Cui
bcc920369c
docs: document package KV cache effects
2026-07-19 17:39:50 +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
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
Yichen Jiang
b758a7496b
fix(subagent-acp): reject an empty config cwd at load
...
path.resolve('') is the process cwd, so an empty configured cwd would
silently reintroduce the launch-directory fallback the parent-session
cwd resolution removed. Fail at plugin load with an actionable message
instead.
2026-07-19 15:56:32 +08:00