Tianyi Cui
c4647a8609
test: adopt execa for hand-rolled subprocess plumbing, parseArgs for llm-mock-server CLI, vi.waitFor for poll loops
...
Implements the execa Agent Note's four sub-changes:
- execa (root devDep + loader-smoke dep) replaces the hand-rolled
spawn-collect-timeout choreography in loader-smoke, apps/cli and
cli-demo/acp-demo built-bin e2e, lsp-local and code-runtime-worker
built-lib e2e, the tui pty-harness outer collector, the jsonrpc
keyless smoke, and crash-recovery's child spawn. Genuinely custom
parts stay custom: cli-demo's interrupt-on-marker, jsonrpc's
line-predicate protocol driving, crash-recovery's SIGKILL-at-failpoint.
The two loader-smoke /* v8 ignore */ OS-error branches are gone.
- llm-mock-server CLI tokenizes via node:util parseArgs; numeric
coercion/bounds/cross-option constraints stay manual; pinned
error-message tests updated to the parseArgs texts.
- both loadRootEnv copies in apps/web/tests are deleted: the owning
vitest configs (web unconditionally, snapshot in record mode)
already load the repo-root .env before these files run.
- the four poll loops (acp-snapshot harness waits + crash-recovery
waitForFile) ride vi.waitFor with explicit {interval, timeout}.
2026-07-26 22:29:41 +08:00
Tianyi Cui
226dc7a249
docs: translate remaining READMEs
2026-07-26 05:06:39 +08:00
imccyu
22875a6c9d
fix(build): clean stale workspace residue
2026-07-25 20:06:01 +08:00
Turtle
b02b438667
refactor(agent): align delivery method names
2026-07-24 15:08:36 +08:00
Turtle
d5f88f1221
Merge remote-tracking branch 'origin/master' into feat/send-unify
...
# Conflicts:
# 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/pty/pty-local/tests/index.spec.ts
# packages/session-query/session-query/tests/tracing.spec.ts
2026-07-23 22:41:45 +08:00
Turtle
a3ad5241ba
Merge remote-tracking branch 'origin/master' into feat/send-unify
...
# Conflicts:
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/context/time-context/tests/time-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
2026-07-23 20:54:48 +08:00
Tianyi Cui
eb0cc4eb18
refactor: drop obsolete expose-internals flag
2026-07-23 20:35:09 +08:00
Turtle
44fd93fd06
feat(agent): unify send(target × wakeup), coalesce context/message into user/message
...
Replace send/steer/inject with one Agent.send primitive over the
(target × wakeup) matrix; followup/steer/inject become fixed-preset
alias methods on the now-abstract Agent class. Coalesce context/message
into user/message (injected context is a non-user source). Replace
agent/queued with agent/inbox/enqueue/dequeue/discard, add cancel
keepInbox, and add a FIFO-conservation invariant.
2026-07-23 19:15:45 +08:00
Tianyi Cui
8930a63b18
Merge refreshed schema DSL into canonical tool outputs
...
# Conflicts:
# docs/event-producer-consumer.md
2026-07-22 22:28:50 +08:00
Tianyi Cui
3679b4d829
Merge master into worktree/semantic-session-checkpoints
2026-07-22 21:49:24 +08:00
Tianyi Cui
54bc084e5d
Merge refreshed schema DSL into canonical tool output
...
# Conflicts:
# docs/config-catalog.md
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/headless-agent/tests/snapshots/advanced-toolchain/session.jsonl
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/core/tools/tests/tools.spec.ts
# packages/ui/tui/src/index.ts
# packages/ui/tui/tests/tui.snapshot.ts
2026-07-22 21:31:16 +08:00
Turtle
0c9a4d7c28
Retire the readline front door and the repl-agent example
...
Delete packages/ui/stdio and examples/repl-agent; rename stdio-demo to
@deepseek-ai/dsh-tui-demo (TUI-only, refuses pipes before Loader boot).
tui-agent owns the coding composition inline; echo-agent and the CI demo
smoke move to the one-shot cli-demo bin, which gains -p/--prompt. The
UI-independent with-key e2es move verbatim to tui-agent. SDK wizard's
'stdio' interface becomes 'tui'. PTY testing stays confined to TUI
surfaces; all other subprocess tests ride pipes.
See .agents/notes/implemented/simplification/2026-07-20-retire-readline-front-door.md
2026-07-22 14:29:27 +08:00
Yichen Jiang
28b358650b
Merge remote-tracking branch 'origin/master' into worktree/semantic-session-checkpoints
...
# Conflicts:
# docs/architecture.md
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/cancel.spec.ts
2026-07-22 10:29:09 +08:00
Tianyi Cui
0dfd9545a6
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/fs-write/session.jsonl
# packages/ui/tui/src/index.ts
# scripts/type-equiv.manifest.json
2026-07-22 00:23:00 +08:00
Tianyi Cui
7d3cb39047
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-30-interception-seams.md
# docs/config-catalog.md
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/cookbook/adding-a-tool.md
# docs/cookbook/adding-a-tool.zh.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/tools.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/bash/tool-bash/src/index.ts
# packages/core/agent-loop/src/tool-calls.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/tool-calls.spec.ts
# packages/core/tools/README.md
# packages/core/tools/src/index.ts
# packages/core/tools/tests/code-mode.spec.ts
# packages/core/tools/tests/tools.spec.ts
# packages/fs/tool-fs-search/tests/integration.spec.ts
# packages/fs/tool-fs-search/tests/tools.spec.ts
# packages/fs/tool-fs/tests/integration.spec.ts
# packages/mcp/mcp-client/src/tools.ts
# packages/timeout/timeout-policy/tests/timeout-policy.spec.ts
# packages/web/tool-web/tests/integration.spec.ts
# packages/web/tool-web/tests/tool-web.spec.ts
2026-07-21 23:39:03 +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
Yichen Jiang
8ce5989ffb
Merge remote-tracking branch 'origin/master' into worktree/semantic-session-checkpoints
...
# Conflicts:
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/tui-agent/tests/tui-keyless-smoke.e2e.ts
# packages/examples/acp-demo/package.json
# packages/examples/cli-demo/tsconfig.json
# packages/support/invariants/src/index.ts
# packages/support/invariants/tests/invariants.spec.ts
# pnpm-lock.yaml
2026-07-21 20:09:37 +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
72a48fede6
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/context/time-context/tests/time-context.spec.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
2026-07-21 19:56:43 +08:00
Yichen Jiang
6d12e3ab41
fix(session): add semantic crash checkpoints
2026-07-21 14:50:06 +08:00
Tianyi Cui
b3ba4345f5
fix(session-title): respect request and config boundaries
2026-07-21 14:09:17 +08:00
Tianyi Cui
66c36e7325
feat: add canonical typed tool outputs
2026-07-21 03:22:14 +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
Tianyi Cui
023cde5d82
Merge latest master into invariant service seam
2026-07-20 22:49:27 +08:00
Yichen Jiang
a92d2e5f34
Merge origin/master into worktree/explicit-turn-signal
2026-07-20 21:38:49 +08:00
Tianyi Cui
4910cc79d0
Merge latest invariant registration gate
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/examples/stdio-demo/tests/stdio-agent.spec.ts
# packages/examples/tui-demo/src/invariant.ts
2026-07-20 21:06:09 +08:00
Tianyi Cui
7345a68845
Merge latest invariant service seam
...
# Conflicts:
# docs/module-graph.md
# package.json
# packages/examples/tui-demo/package.json
# packages/examples/tui-demo/src/invariant.ts
# packages/ui/stdio/package.json
# packages/ui/stdio/tests/stdio.spec.ts
# packages/ui/stdio/tsconfig.json
# pnpm-lock.yaml
2026-07-20 21:02:52 +08:00
Tianyi Cui
8c12f8945e
Merge latest master into codex/llm-error-recovery-rfc
...
# Conflicts:
# docs/architecture.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/persistence-catalog.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent/src/types.ts
# packages/examples/agent-spine-demo/README.md
# packages/examples/stdio-demo/README.md
# packages/examples/stdio-demo/src/index.ts
# packages/llm/llm-deepseek/README.md
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-deepseek/tests/adapter.spec.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/error.ts
# packages/llm/llm/tests/service.spec.ts
# packages/sandbox/sandbox-policy/tsconfig.json
# packages/ui/stdio/README.md
# packages/ui/stdio/src/index.ts
# packages/ui/stdio/tests/stdio.spec.ts
# packages/ui/tui/src/index.ts
# pnpm-lock.yaml
# website/zh-CN/api/harness/events.md
# website/zh-CN/api/harness/llm.md
2026-07-20 20:59:11 +08:00
Tianyi Cui
e5ac87454b
Merge remote-tracking branch 'origin/master' into codex/remove-stdio-agent
...
# Conflicts:
# AGENTS.md
# docs/config-catalog.md
# examples/echo-agent/README.md
# packages/examples/stdio-demo/README.md
# packages/examples/stdio-demo/src/index.ts
# packages/examples/stdio-demo/tests/built-bin.e2e.ts
# packages/examples/stdio-demo/tests/stdio-agent.spec.ts
# scripts/run-gates.ts
2026-07-20 20:20:21 +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
1145ee5fc3
fix(invariants): assert runtime relationships, not API shapes
2026-07-20 19:34:19 +08:00
Tianyi Cui
4cadf096ce
Remove the stdio agent
2026-07-20 19:26:04 +08:00
Tianyi Cui
3b7ce2e682
fix(invariants): require justified empty companions
2026-07-20 18:39:37 +08:00
Tianyi Cui
3b0b0cefeb
feat: implement bounded LLM request recovery
2026-07-20 03:34:19 +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
d139948ed2
feat(persistence): compress JSONL logs with Zstandard
2026-07-20 00:06:21 +08:00
Tianyi Cui
e8b95c8754
feat(tools): require cancellation signal on every invocation
2026-07-19 23:38:54 +08:00
Tianyi Cui
433670a754
feat(invariants): require package-owned companions
2026-07-19 22:13:50 +08:00
Yichen Jiang
43d036ca41
Merge remote-tracking branch 'origin/master' into worktree/dsbench-patch
2026-07-19 21:46:17 +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
d2672460fe
fix(cli-demo): accept disabled task controls
2026-07-19 15:36:48 +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