Commit Graph

3018 Commits

Author SHA1 Message Date
Yichen Jiang
4a26ccb6f5 Merge branch 'fix/subagent-depth-budget' of github.com:deepseek-harness/deepseek-harness into fix/subagent-depth-budget 2026-07-19 17:34:40 +08:00
Yichen Jiang
d231f30024 test(acp-snapshot): cover the child-omission branches synthetically
The childToolOmissions comparison arms ran only through the examples
snapshot suites, which the unit coverage gate does not count. Add an
authored child-omission scenario to the synthetic replay suite: one
scripted child omits the declared tool (header pin minus the omission,
prompt pin skipped), one keeps the full set (pin and prompt compared
verbatim), restoring 100% branch coverage on suite.ts.
2026-07-19 17:34:10 +08:00
Yichen Jiang
d614374ac6 Merge branch 'master' into fix/subagent-depth-budget 2026-07-19 17:24:24 +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
Tianyi Cui
b6858a5ce1 Merge pull request #384 from deepseek-harness/codex/simplify-agent-identity-plumbing
refactor(core): simplify AgentLoop identity plumbing with ctx.agents
2026-07-19 16:58:10 +08:00
Tianyi Cui
a1de4d0071 docs: codify initiator-owned identity plumbing 2026-07-19 16:52:40 +08:00
Tianyi Cui
f0d6637972 Merge latest origin/master into codex/simplify-agent-identity-plumbing 2026-07-19 16:52:40 +08:00
Tianyi Cui
bebbbbb7f0 Merge pull request #387 from deepseek-harness/codex/cordis-inspect-jsdoc
feat: inspect exact Cordis API JSDoc
2026-07-19 16:39:16 +08:00
Tianyi Cui
5e2607df8c refactor(core): capture session inside loop operations 2026-07-19 16:28:31 +08:00
Tianyi Cui
36dbe68631 test(cordis): snapshot targeted JSDoc inspection 2026-07-19 16:22:09 +08:00
Tianyi Cui
3cd73ec4b8 Merge latest origin/master into codex/simplify-agent-identity-plumbing 2026-07-19 16:19:19 +08:00
Tianyi Cui
77ba01b175 Merge remote-tracking branch 'origin/master' into codex/cordis-inspect-jsdoc
# Conflicts:
#	packages/cordis/tool-cordis/src/api-catalog.ts
2026-07-19 16:14:46 +08:00
Tianyi Cui
e05e7a0870 Merge pull request #388 from deepseek-harness/codex/cordis-catalog-type-links
docs: verify Cordis signature type links
2026-07-19 16:13:07 +08:00
Tianyi Cui
18d7df1d36 Merge latest origin/master into codex/simplify-agent-identity-plumbing 2026-07-19 16:02:16 +08:00
Tianyi Cui
5a4ea6c08d Merge latest PR #340 into codex/simplify-agent-identity-plumbing 2026-07-19 15:57:48 +08:00
Tianyi Cui
fcc5245e8b Merge remote-tracking branch 'origin/master' into codex/cordis-catalog-type-links 2026-07-19 15:56:47 +08:00
Tianyi Cui
ae26adfda8 Merge pull request #385 from deepseek-harness/codex/website-api-jsdoc
docs: render source JSDoc in website API references
2026-07-19 15:56:20 +08:00
Tianyi Cui
b7234319c6 Merge remote-tracking branch 'origin/master' into worktree/agent-execution-context-rfc 2026-07-19 15:55:12 +08:00
Tianyi Cui
cf749d59d6 Merge remote-tracking branch 'origin/master' into codex/website-api-jsdoc 2026-07-19 15:48:39 +08:00
Tianyi Cui
ab4d350517 Merge pull request #383 from deepseek-harness/codex/catalog-verbs-jsdoc
docs: drift-check public class APIs
2026-07-19 15:48:20 +08:00
Tianyi Cui
e1a4a2963d docs(core): document initiator API scenarios 2026-07-19 15:34:08 +08:00
Tianyi Cui
2397059fe3 Merge PR #340 into codex/website-api-jsdoc 2026-07-19 15:29:42 +08:00
Tianyi Cui
7a7cea1a05 Merge PR #340 fixes into codex/simplify-agent-identity-plumbing
# Conflicts:
#	docs/rfc/implemented/architecture/2026-07-15-agent-initiator-scope.i18n.yaml
#	docs/rfc/implemented/architecture/2026-07-15-agent-initiator-scope.md
#	docs/rfc/implemented/architecture/2026-07-15-agent-initiator-scope.zh.md
2026-07-19 15:27:02 +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
1663eff819 Merge remote-tracking branch 'origin/master' into codex/cordis-inspect-jsdoc 2026-07-19 15:12:34 +08:00
Tianyi Cui
ee1a44793a fix(core): make initiator teardown reentrant-safe 2026-07-19 15:12:18 +08:00
Tianyi Cui
f946d47031 Merge remote-tracking branch 'origin/master' into codex/website-api-jsdoc 2026-07-19 15:08:54 +08:00
Tianyi Cui
169afe41c1 Merge remote-tracking branch 'origin/master' into codex/catalog-verbs-jsdoc 2026-07-19 15:05:08 +08:00
Tianyi Cui
b4081dea83 Merge remote-tracking branch 'origin/master' into codex/cordis-catalog-type-links 2026-07-19 14:58:15 +08:00
Tianyi Cui
350d1b2688 docs: verify Cordis signature type links 2026-07-19 14:57:52 +08:00
Tianyi Cui
97336c32ce Merge pull request #337 from deepseek-harness/codex/cli-one-shot-demo
feat(examples): add one-shot headless agent demo
2026-07-19 14:53:40 +08:00
Tianyi Cui
306dd2b1fe fix(cli-demo): make failure rendering total
Contain arbitrary plugin and runtime failures even when a thrown Proxy traps instanceof checks or its string coercion throws. Fall back to a stable diagnostic instead of letting executeCli reject outside its exit-code contract.

Route abort reasons through the same total renderer so cancellation cannot escape containment through an exotic reason value.

Add a focused regression that exercises both hostile inspection paths and verifies stdout remains empty, stderr remains labelled, and the CLI resolves with exit code 1.
2026-07-19 14:41:55 +08:00
Tianyi Cui
1698f0baa6 fix(cli-demo): preserve disposal diagnostics
Report context-disposal failure as an independent outcome even when argument, boot, task, or output handling has already produced a primary diagnostic.

Keep the primary error first, append the cleanup error, and retain the nonzero exit status so operators can see both the initiating failure and the possibility that teardown or persistence did not complete.

Add a regression that combines an invalid app composition with a failing disposer and asserts both ordered stderr lines.
2026-07-19 14:41:55 +08:00
Tianyi Cui
ba693f0355 fix(cli-demo): forward the complete spine config
Align the one-shot app with the shared agent-spine contract that landed on master after this branch began. Expose maxParallelToolCalls, dshHome, toolBash, and toolTasks through the Loader schema and route them with pickSpineConfig().

This restores deployment control over tool-call concurrency, the shared Harness home, background bash, and task_output wait bounds instead of silently retaining owner defaults.

Exercise all four fields through the composed runtime, document the package-level contract, and regenerate the config catalog from the owning interface.
2026-07-19 14:41:55 +08:00
Tianyi Cui
62fc876318 feat: inspect exact Cordis API JSDoc 2026-07-19 14:39:49 +08:00
Tianyi Cui
ae419fb692 fix(cli-demo): interrupt Loader boot on signals
Race Loader startup with the process abort signal so SIGINT and SIGTERM can settle the one-shot CLI even when initialization has not returned a Context.

If boot settles after cancellation, dispose the late context asynchronously instead of recreating the wait. Contain late boot rejection and report a late disposal failure on stderr.

Cover prompt interruption, late context disposal, late boot rejection, and cleanup failure with focused CLI regressions.
2026-07-19 14:37:47 +08:00
Tianyi Cui
e572139396 docs: shorten public API fence marker 2026-07-19 14:23:59 +08:00
Tianyi Cui
7a9c2ef473 docs(core): state loop initiator precondition 2026-07-19 14:20:27 +08:00
Tianyi Cui
4284cf70e4 Merge remote-tracking branch 'origin/worktree/agent-execution-context-rfc' into codex/simplify-agent-identity-plumbing
# Conflicts:
#	docs/rfc/implemented/architecture/2026-07-15-agent-initiator-scope.i18n.yaml
#	docs/rfc/implemented/architecture/2026-07-15-agent-initiator-scope.md
#	docs/rfc/implemented/architecture/2026-07-15-agent-initiator-scope.zh.md
2026-07-19 14:18:58 +08:00
Tianyi Cui
f66cde41d1 docs(core): clarify initiator restoration timing 2026-07-19 14:16:07 +08:00
Tianyi Cui
9163f61299 docs: include JSDoc in website API markers 2026-07-19 14:14:02 +08:00
Tianyi Cui
f21ed1bfa0 refactor(core): use initiator in loop internals 2026-07-19 14:06:47 +08:00
Tianyi Cui
bfc4bf9660 Merge remote-tracking branch 'origin/master' into codex/catalog-verbs-jsdoc
# Conflicts:
#	docs/development.i18n.yaml
2026-07-19 14:00:48 +08:00
Tianyi Cui
3ceccc87a0 docs: drift-check public class APIs 2026-07-19 13:59:05 +08:00
Tianyi Cui
2ef9590f33 test(loader-smoke): declare argv lib fixture 2026-07-19 13:51:41 +08:00
Tianyi Cui
595d9acd7a Merge remote-tracking branch 'origin/master' into codex/cli-one-shot-demo
# Conflicts:
#	docs/cookbook/extension-cookbook.i18n.yaml
#	docs/cookbook/extension-cookbook.md
#	docs/cookbook/extension-cookbook.zh.md
#	examples/README.md
#	examples/repl-agent/README.md
#	package.json
#	scripts/gen-doc-graphs.ts
2026-07-19 13:44:34 +08:00
Tianyi Cui
692ef8e61f test: align headless replay with model routing 2026-07-19 13:37:27 +08:00
Tianyi Cui
e0b5cadd2a chore(core): align merged initiator changes 2026-07-19 13:37:11 +08:00
Tianyi Cui
9828892742 Merge latest origin/master into worktree/agent-execution-context-rfc 2026-07-19 13:34:48 +08:00