Commit Graph
100 Commits
Author SHA1 Message Date
Tianyi Cui 2850c22b7a feat(ui): add plugin command registry 2026-07-19 22:11:59 +08:00
Tianyi Cui 25555c9cfc feat(goal): drive same-session goal rounds 2026-07-19 20:30:43 +08:00
Tianyi Cui 76da93b847 Merge updated goal tools into goal session 2026-07-19 19:43:22 +08:00
Tianyi Cui fbefc1d65b fix(goal): stop terminal goal tool turns 2026-07-19 19:42:17 +08:00
Tianyi Cui 0129063ae7 feat(goal): add model-facing goal tools 2026-07-19 19:22:10 +08:00
Tianyi Cui e9940d35cf fix(goal): preserve structured domain error codes 2026-07-19 18:56:11 +08:00
Tianyi Cui a525776015 feat(goal): add persisted same-session goal domain 2026-07-19 18:47:34 +08:00
Tianyi Cui 2b39ac3209 Merge latest master into rfc/loop 2026-07-19 18:26:56 +08:00
Tianyi Cui f756fcb7d3 Merge pull request #395 from deepseek-harness/codex/code-review-prevention
docs(agents): promote review principles
2026-07-19 18:00:09 +08:00
Tianyi Cui 8733f365a4 Merge remote-tracking branch 'origin/master' into codex/code-review-prevention 2026-07-19 17:54:35 +08:00
Tianyi Cui 38b7275eb1 Merge pull request #393 from deepseek-harness/codex/code-review-human-principles
docs(review): distill human review principles
2026-07-19 17:53:10 +08:00
Tianyi Cui 2db4061861 Merge remote-tracking branch 'origin/master' into codex/code-review-human-principles 2026-07-19 17:47:06 +08:00
Tianyi Cui 4ab5a76317 docs(agents): promote review principles 2026-07-19 17:35:43 +08:00
Tianyi Cui ed50d13845 Merge remote-tracking branch 'origin/master' into rfc/loop 2026-07-19 17:31:15 +08:00
Tianyi Cui b3c4b732d8 Merge pull request #332 from deepseek-harness/compact-post-step-overflow-recovery
feat(agent): add post-step compaction and bounded overflow recovery
2026-07-19 17:26:50 +08:00
Tianyi Cui d5350cd42e docs(review): distill human review principles 2026-07-19 17:08:00 +08:00
Tianyi Cui 20fd7133a0 Merge latest master into post-step recovery
Adopt initiator-derived private loop and session plumbing while preserving post-step recovery and balanced synthetic tool-call results after cancellation.

Keep the architecture map within its existing budget while documenting ambient Agent ownership and explicit cross-boundary identities.
2026-07-19 17:02:55 +08:00
Tianyi Cui 8f540797b8 Merge latest master into rfc/loop 2026-07-19 17:02:00 +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 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 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 a72b86f82c Merge pull request #391 from deepseek-harness/codex/pr332-adapter-failure-provenance
fix(llm): scope adapter failures to model calls
2026-07-19 16:26:28 +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 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 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 bf93605f8c docs: keep architecture within its budget
Condense the app-bundle sentence after combining the current-master CLI wiring with the recovery architecture changes. The text still identifies the TUI, line-oriented, headless, and ACP front doors and their output contracts.

This restores the enforced architecture.md word ceiling without raising the budget or relocating an architecture-level seam fact.
2026-07-19 15:12:29 +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 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 169afe41c1 Merge remote-tracking branch 'origin/master' into codex/catalog-verbs-jsdoc 2026-07-19 15:05:08 +08:00
Tianyi Cui 7617963474 docs(llm-pi-ai): describe usage overflow mapping
Document every context-window path returned by mapStopReason: recognized provider error wording, successful stop usage beyond the resolved window, and zero-output length stops that fill the window.

This keeps the public return contract aligned with usage-based overflow classification without duplicating the provider-specific detection table owned by pi-ai.
2026-07-19 15:04:51 +08:00
Tianyi Cui 8eb9beb319 docs(rfc): correct recovery translation
Use the repository-mandated 回放 terminology for replayable pressure and replace the literal cancellation-owned rendering with idiomatic Chinese that preserves boundedness, cancellation authority, and monotonic retry behavior.

The corresponding English clauses remain accurate. Re-record the English and Chinese pair after checking the corrected text against the implemented recovery contract.
2026-07-19 15:03:15 +08:00
Tianyi Cui 98e224e45e refactor(agent): exhaust recovery and compaction decisions
Dispatch RequestErrorDecision and CompactionTrigger through explicit discriminant switches. End each closed union with assertNever so new variants fail compilation instead of silently inheriting fail or pressure behavior.

This preserves the current retry, fail, pressure, and overflow semantics while aligning the new recovery seams with the repository closed-union contract.
2026-07-19 15:02:11 +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 1d43472b35 Merge pull request #386 from deepseek-harness/codex/pi-ai-context-overflow-classification
fix(llm-pi-ai): classify usage-based context overflow
2026-07-19 14:29:23 +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 4791b40b26 fix(llm-pi-ai): classify usage-based context overflow
Pass each resolved catalog model capacity into pi-ai stream conversion so the upstream full-message classifier can recognize provider-specific, silent, and length-stop overflow signals. Retain the harness text fallback for legacy provider wording and cover the catalog-resolution path with a mock-provider regression.
2026-07-19 14:18:13 +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 4108c9be18 Merge branch 'master' into rfc/loop 2026-07-19 13:48:29 +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 44d9fbcd6d Merge remote-tracking branch 'origin/master' into codex/pr332-merge-master-20260719
# Conflicts:
#	docs/cookbook/extension-cookbook.i18n.yaml
2026-07-19 13:36:08 +08:00
Tianyi Cui 9828892742 Merge latest origin/master into worktree/agent-execution-context-rfc 2026-07-19 13:34:48 +08:00
Tianyi Cui fda72637d5 Merge latest origin/master into worktree/agent-execution-context-rfc
# Conflicts:
#	docs/cordis-catalog/services.md
2026-07-19 13:34:17 +08:00
Tianyi Cui 7747aa450c Merge pull request #380 from deepseek-harness/codex/rename-repl-agent
refactor(examples): rename coding-agent leaf to repl-agent
2026-07-19 13:33:19 +08:00
Tianyi Cui f4a30da10d chore: align one-shot demo workspace metadata 2026-07-19 13:32:04 +08:00
Tianyi Cui c23214be56 refactor(core): fold initiator scope into agents 2026-07-19 13:30:45 +08:00
Tianyi Cui b0ab117748 Merge remote-tracking branch 'origin/master' into codex/pr332-merge-master-20260719 2026-07-19 13:28:35 +08:00
Tianyi Cui b2f3d73c1c Merge latest origin/master into codex/rename-repl-agent
Refresh PR #380 against master at ab96fdb63 immediately before landing so the admin merge is evaluated against the current repository contracts rather than the branch's earlier base.

Take the merged SQLite owner-only permission hardening and its regenerated config catalog while preserving the examples/repl-agent rename. The merge leaves examples/coding-agent absent and keeps demo:repl wired to the renamed leaf.
2026-07-19 13:27:44 +08:00
Tianyi Cui 89987f0ad4 docs: align one-shot demo prose 2026-07-19 13:25:30 +08:00
Tianyi Cui e4709d078b Merge pull request #357 from deepseek-harness/worktree/fix-sqlite-file-permissions
fix(session-persistence): create SQLite databases owner-only
2026-07-19 13:23:08 +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 024b5e38b8 Merge remote-tracking branch 'origin/master' into compact-post-step-overflow-recovery
# Conflicts:
#	docs/cordis-catalog/events.md
#	docs/cordis-catalog/services.md
2026-07-19 13:15:14 +08:00
Tianyi Cui b95a9052fb Merge latest origin/master into codex/rename-repl-agent
Bring the follow-up branch onto master after PR #379 landed so the rename is reviewed and validated against the current generated Cordis catalog and JSDoc completeness contract.

The histories merge without a content conflict: master's catalog generator changes remain intact, while the repl-agent move continues to own only example paths, front-door naming, and their documentation derivatives.
2026-07-19 13:13:50 +08:00
Tianyi Cui 40ad78ee0b docs: condense merged architecture contract 2026-07-19 13:13:36 +08:00
Tianyi Cui 2faeabb05a refactor(examples): rename coding-agent leaf to repl-agent
Name the runnable leaf for the line-oriented front door it owns, matching the existing tui-agent and acp-agent organization. Move the complete config, Code Mode overlay, tests, metadata, and generated composition graph together, then update every loader path and repository reference.

Keep the shared model identity independent of its terminal front door by phrasing the persona as a coding-agent role rather than retaining the retired leaf name. Regenerate graph and tool catalogs and re-record each affected bilingual pair so derived documentation cannot point at the removed path.
2026-07-19 13:13:14 +08:00
Tianyi Cui 5510b4ec06 Merge remote-tracking branch 'origin/master' into codex/pr357-merge-review-20260719 2026-07-19 13:12:00 +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 62b91b5893 Merge pull request #379 from deepseek-harness/codex/cordis-catalog-jsdoc
docs: include source JSDoc in Cordis catalog markers
2026-07-19 13:09:17 +08:00
Tianyi Cui d709a8a1a4 test(acp): await cancelled tool updates 2026-07-19 13:09:16 +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 536cb6f985 Merge latest origin/master into worktree/agent-execution-context-rfc
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	packages/examples/README.md
2026-07-19 13:04:29 +08:00
Tianyi Cui edaaa50fe3 test(acp): snapshot cancelled queued tool calls 2026-07-19 13:03:31 +08:00
Tianyi Cui 954c2ad2b5 docs(llm-pi-ai): track overflow classification gap 2026-07-19 13:03:15 +08:00
Tianyi Cui 897dc76d24 Merge remote-tracking branch 'origin/master' into codex/cordis-catalog-jsdoc 2026-07-19 12:59:37 +08:00
Tianyi Cui 3ffc1ce8f5 Merge remote-tracking branch 'origin/master' into codex/pr357-merge-review-20260719 2026-07-19 12:58:57 +08:00
Tianyi Cui 418b2b092b Merge pull request #363 from deepseek-harness/feat/tui-package
feat(ui): add dedicated TUI package
2026-07-19 12:54:20 +08:00
Tianyi Cui dff38cb6fe Merge remote-tracking branch 'origin/master' into codex/pr357-merge-review-20260719 2026-07-19 12:54:11 +08:00