fz
dccd6bf79f
Merge remote-tracking branch 'origin/master' into codex/fix-compact-agents-reinjection
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-24-workspace-context.i18n.yaml
# .agents/notes/implemented/feature/2026-06-24-workspace-context.md
# .agents/notes/implemented/feature/2026-06-24-workspace-context.zh.md
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/cordis-catalog/events.md
# docs/core-data-structures/system-prompt.i18n.yaml
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# packages/context/workspace-context/README.i18n.yaml
# packages/context/workspace-context/README.md
# packages/context/workspace-context/README.zh.md
# packages/context/workspace-context/src/index.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/src/agent.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.md
# packages/core/agent/README.zh.md
# packages/core/agent/tests/agent.spec.ts
# packages/core/system-prompt/README.i18n.yaml
2026-08-06 10:16:16 +08:00
_Kerman
bb6e473dd5
test(acp): refresh cordis-inspect snapshot for the claimed Inbox signature
...
The claimed-message refactor changed Inbox.claim(target, turn) and added
InboxNotifications.claimed, so the cordis_inspect tool output embedded in
the cordis-inspect-jsdoc replay fixture now carries the new declarations.
2026-08-05 21:58:09 +08:00
fz
27623f52dc
Merge origin/master into codex/fix-compact-agents-reinjection
2026-08-05 17:42:08 +08:00
_Kerman
7e9fa76bf9
test(spine): fold workspace instructions into the first request
...
The react-loop simplification enters the workspace baseline with the first
request instead of queueing it for a second step, and the acp-agent sandbox
scenarios now replay the branch's inbox event flow. Update the agent-spine-demo
assertions to the single-request shape (workspace rule ahead of the skill
catalog, matching registration order) and refresh the two keyless sandbox
snapshots against the merged runtime.
2026-08-05 16:02:58 +08:00
_Kerman
289a23421d
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.md
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# packages/host/apiproxy/README.i18n.yaml
2026-08-05 15:34:19 +08:00
_Kerman
757adac62d
refactor(workspace-context): fold context into the entering pre-step batch
2026-08-05 14:46:48 +08:00
Wenlu Wang
61e46f077e
Merge pull request #1362 from deepseek-harness/fix/landlock-runner-failure-classification
...
Fix false sandbox failures from Landlock partial-enforcement notices
2026-08-05 13:59:47 +08:00
_Kerman
b76543cc1c
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# apps/web/tests/markdown-images.e2e.ts
# docs/cordis-catalog/services.md
# docs/core-data-structures/session.i18n.yaml
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/context/time-context/tests/invariant.spec.ts
# packages/context/time-context/tests/time-context.spec.ts
# packages/core/agent-loop/src/invariant.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/request-reconstruction.spec.ts
# packages/core/agent/tests/agent.spec.ts
# packages/core/session/README.i18n.yaml
# packages/core/session/src/index.ts
# packages/core/session/tests/derived-cache.spec.ts
# packages/core/session/tests/request-header.spec.ts
# packages/core/session/tests/session.spec.ts
# packages/core/session/tests/surface.spec.ts
# packages/fs/tool-str-replace-editor/tests/tools.spec.ts
# packages/goal/goal/tests/goal.spec.ts
# packages/plan/plan-mode/tests/plan-mode.spec.ts
# packages/pty/pty-local/tests/index.spec.ts
# packages/pty/pty-local/tests/local.spec.ts
# packages/pty/pty/tests/service.spec.ts
# packages/pty/tool-bash-persistent/tests/loader-composition.spec.ts
# packages/pty/tool-bash-persistent/tests/tools.spec.ts
# packages/pty/tool-pty/tests/loader-composition.spec.ts
# packages/pty/tool-pty/tests/tools.spec.ts
# packages/session-title/session-title-all-messages-llm/tests/provider.spec.ts
# packages/tasks/tasks-local/tests/tasks.spec.ts
# packages/ui/user-approval/tests/approval.spec.ts
2026-08-05 13:53:35 +08:00
fz
a0b1ede482
Merge origin/master into codex/fix-compact-agents-reinjection
2026-08-05 13:17:41 +08:00
kingwl
75bd2b8aaa
Merge remote-tracking branch 'origin/master' into fix/landlock-runner-failure-classification
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
# .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md
# docs/core-data-structures/sandbox.i18n.yaml
# docs/core-data-structures/sandbox.zh.md
# docs/postmortem/README.i18n.yaml
# docs/postmortem/README.zh.md
# examples/acp-agent/tests/acp.snapshot.ts
# native/landlock-run/README.i18n.yaml
# packages/sandbox/sandbox-local/README.i18n.yaml
# packages/sandbox/sandbox-local/README.zh.md
# packages/sandbox/sandbox/README.i18n.yaml
2026-08-05 13:17:38 +08:00
imccyu
e61839a6ab
fix(session): refresh Session.create artifacts
2026-08-05 11:57:17 +08:00
_Kerman
86b91f1c4c
test(snapshot): refresh pwsh turn log
2026-08-05 10:54:45 +08:00
_Kerman
97e7d68340
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# examples/acp-agent/tests/snapshots/cancel-tool-calls/session.jsonl
2026-08-05 10:39:18 +08:00
fz
35710d770f
Merge remote-tracking branch 'origin/master' into codex/fix-compact-agents-reinjection
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/event-producer-consumer.md
2026-08-04 15:11:09 +08:00
Hypatia May
96ba98c99e
fix(sandbox): require runner-specific spawn evidence
2026-08-04 14:47:46 +08:00
_Kerman
e874910a76
test(session): align turn-end contract artifacts
2026-08-04 14:09:52 +08:00
_Kerman
d4fa26023d
fix(agent-loop): open turns before pre-step
2026-08-04 13:49:35 +08:00
_Kerman
384c87899c
test(session): cover legacy migration paths
2026-08-04 12:05:53 +08:00
_Kerman
eaa497d735
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# examples/acp-agent/tests/snapshots/fs-glob-sampling/session.jsonl
# packages/ui/tui/README.i18n.yaml
# packages/ui/tui/src/components/dialogs.ts
# packages/ui/tui/tests/tui.spec.ts
2026-08-04 10:52:45 +08:00
Hypatia May
71aafeb858
Merge origin/master into fix/landlock-runner-failure-classification
2026-08-04 09:14:13 +08:00
fz
eff7b758b1
fix(workspace-context): restore baseline after compaction
2026-08-03 21:28:38 +08:00
_Kerman
fa79008c75
test(web): wait on the request marker button, not the hairline row
...
The boundary marker row is a 0-height hairline except at the table tail;
the marker button is absolutely positioned and visible anywhere, so the
terminal-marker e2e waits on the button. Also refresh the
cordis-inspect-jsdoc fixture to the typed error reason (LlmFailure).
2026-08-03 19:37:52 +08:00
Hypatia May
6343d8f6e6
fix(sandbox): evidence-gate runner failures (round 1)
2026-08-03 17:31:08 +08:00
_Kerman
a597763393
fix(session): type turn/end error as one structured failure
...
TurnEndReasonMap.error now carries a single `error: LlmFailure` field:
an LlmError keeps its structured facts, any other error flattens to
errorChain text under the UNKNOWN code. Consumers read message/code
directly instead of defending against an unknown union — this also fixes
errorChain() rendering structured failures as '[object Object]' in the
TUI and ACP error paths. Document the turn-stopping contract: a
concludesTurn result never short-circuits already-submitted next-step
work (same-step additionalContexts or racing steering still runs), data
decides.
2026-08-03 16:33:23 +08:00
_Kerman
cb2f01f48c
refactor(agent-loop): drop the steering/message session event
...
Steer, inject, and followup now land as durable user/message events on the
session surface; the steering/message event type and its ConversationNode
kind are removed from the client projection. Update tests, docs, generated
catalogs, and agent notes to match, and align the steering e2e fixture and
prompt inventory assertions with the durable user/message landing.
2026-08-03 16:04:26 +08:00
_Kerman
f4a2e0d10a
fix(agent): align consumers with inbox lifecycle
2026-08-03 13:14:24 +08:00
_Kerman
49e90695cc
refactor(agent): complete inbox lifecycle migration
2026-08-03 12:25:33 +08:00
_Kerman
dc1d542092
Merge remote-tracking branch 'origin/master' into xtr/react-loop-simplification
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-12-agent-scope-runtime-design.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-31-goal-owned-durable-events.i18n.yaml
# .agents/notes/implemented/feature/2026-07-19-model-facing-goal-tools.i18n.yaml
# .agents/notes/implemented/feature/2026-07-22-docked-web-goal-bar.i18n.yaml
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/core.md
# docs/core-data-structures/core.zh.md
# docs/event-producer-consumer.md
# docs/module-graph.md
# docs/persistence-catalog.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/code-mode-workspace-context/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-depth-two-rejection/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-multi/session.2.jsonl
# examples/acp-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# examples/acp-agent/tests/snapshots/workflow-run/session.1.jsonl
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# 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
# examples/headless-agent/tests/snapshots/pty-tools/session.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/child.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/notifications.expected.jsonl
# examples/jsonrpc-agent/tests/snapshots/subagent-spawn/session.1.jsonl
# packages/acp/acp/README.i18n.yaml
# packages/acp/acp/src/index.ts
# packages/client/connection/src/client/index.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/README.zh.md
# packages/client/runtime/src/client/sessions/conversation.ts
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/runtime/tests/queue-store.spec.ts
# packages/client/ui-conversation/src/client/input/contract.ts
# packages/client/ui-goal/README.i18n.yaml
# packages/compact/compact-basic/src/index.ts
# packages/context/time-context/tests/time-context.spec.ts
# packages/context/tmux-context/tests/tmux-context.spec.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.md
# packages/core/agent-loop/README.zh.md
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/tests/agent.spec.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.md
# packages/core/agent/README.zh.md
# packages/core/agent/src/types.ts
# packages/core/session/README.i18n.yaml
# packages/core/session/README.md
# packages/core/session/README.zh.md
# packages/goal/command-goal/tests/command-goal.spec.ts
# packages/goal/goal/tests/goal.spec.ts
# packages/goal/tool-goal/README.i18n.yaml
# packages/goal/tool-goal/README.md
# packages/goal/tool-goal/README.zh.md
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/events.schema.ts
# packages/host/apiproxy/src/api/events.ts
# packages/host/apiproxy/src/api/rpc.ts
# packages/host/apiproxy/tests/api-proxy-commands.spec.ts
# packages/host/apiproxy/tests/api-proxy-projections.spec.ts
# packages/host/apiproxy/tests/rpc-schemas.spec.ts
# packages/pty/pty-local/tests/index.spec.ts
# packages/pty/pty-local/tests/local.spec.ts
# packages/pty/tool-pty/tests/loader-composition.spec.ts
# packages/pty/tool-pty/tests/tools.spec.ts
# packages/session-persistence/session-checkpoint-policy/src/index.ts
# packages/session-persistence/session-persistence/tests/coordinator-contract.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
# packages/subagent/subagent-inprocess/README.i18n.yaml
# packages/subagent/subagent-inprocess/README.md
# packages/subagent/subagent-inprocess/README.zh.md
# packages/subagent/subagent-inprocess/src/index.ts
# packages/subagent/subagent-inprocess/tests/subagent-inprocess.spec.ts
# packages/support/acp-snapshot/src/harness.ts
# packages/ui/tui/tests/tui.spec.ts
2026-08-03 10:56:09 +08:00
Huanqi Cao
37bceb7dad
Merge branch 'feat/ripgrep-packaged-binary' into feat/pwsh-tool
2026-08-02 22:29:44 +08:00
Huanqi Cao
ffb7d681f4
Merge remote-tracking branch 'origin/master' into feat/ripgrep-packaged-binary
2026-08-02 22:28:21 +08:00
Huanqi Cao
b2838fb2be
fix(pwsh): close the remaining review threads
...
- scrubbedParentEnv folds case before the DSH_ prefix check (Windows env
names are case-insensitive; a parent dsh_* entry read back as \*
in the child) and the service spec pins the lowercase probe.
- The acp.snapshot.ts pwsh probe follows resolvePwshPath() like the package
suites, so a Windows host with only an install-location pwsh still runs
the scenario.
- pwsh-tool-turn is re-recorded around [Console]::Out.Write('PWSH_OK'):
the fixture carries no platform newline, so one recording replays on
Windows and POSIX alike (record + refresh; replay-verified keyless).
- The pwsh-local Known Limitations bullet drops the self-defeating no-op
advice: & { } is scoped to param(...), using/#requires scripts run from a
file (both languages, pairing re-recorded).
- The capability-seams graph moves ctx.bashEnv ownership to bash-env and
lists pwsh-local/tool-pwsh on the ctx.bash seam (source updated,
docs regenerated).
- The tool-bash presenter fixture retires the stale 'command aborted'
literal for the shipped 'tool call aborted' message.
2026-08-02 21:46:53 +08:00
Huanqi Cao
7b7525c091
fix(fixtures): repair the cancel-fixture abort error placement; exempt pwsh-local coverage on pwsh-less hosts
...
The hand-edit in 348ab41151 put the seq-17 abort error inside the tool-result
message and dropped a closing brace, breaking every JSONL consumer; tool-calls.ts
appends 'error' as a data-level sibling of 'message' (the seq-19 shape), so the
fixture now matches the emitter.
Coverage: pwsh-local's executor suites self-skip without a real pwsh, which left
per-file 100% unreachable on pwsh-less contributor hosts (mirror of the existing
windowsCoverageExclusions contract). A PATH-only probe exempts only
pwsh-local/src/index.ts; CI runners ship pwsh and still enforce the full bar.
docs/testing.md (+zh, pairing re-recorded) names the prerequisite; the testing.md
budget rises 1120->1150 because the coverage-gate contract genuinely grew.
2026-08-02 21:28:22 +08:00
Huanqi Cao
6ae0f78c2a
fix(tools): pin the abort error info in the cancel fixture, close the jscpd mirror block, and restore the pwsh binary ignore
2026-08-02 20:27:06 +08:00
Huanqi Cao
ed39ff096f
test(fixtures): pin the TOOL_ABORTED message and keep the pwsh fixture replayable; restore trimmed testing.md clauses
2026-08-02 20:07:26 +08:00
Huanqi Cao
c376802f44
fix(acp-snapshot): skip pwshOnly scenarios without pwsh and mount task tools in the pwsh composition
2026-08-02 19:37:09 +08:00
imccyu
53531b9af2
test(snapshot): refresh Cordis steering API fixture
2026-08-02 17:53:07 +08:00
Huanqi Cao
a79d7c896c
fix(tool-bash): mount bash-env in the sandboxed and HMR-safety harnesses; normalize the pwsh-tool-turn fixture line endings for Linux replay
2026-08-02 16:53:29 +08:00
Huanqi Cao
1361e9718e
Merge remote-tracking branch 'origin/feat/ripgrep-packaged-binary' into feat/pwsh-tool
...
# Conflicts:
# apps/cli/package.json
# packages/core/tools/tests/gen-tool-catalog.spec.ts
2026-08-02 16:22:24 +08:00
Huanqi Cao
782894ff8c
Merge remote-tracking branch 'origin/master' into feat/ripgrep-packaged-binary
2026-08-02 16:18:46 +08:00
Huanqi Cao
64f9e68bd9
test(acp): register and record the keyed pwsh-tool-turn snapshot scenario
2026-08-02 15:31:52 +08:00
Dudu-0223
431fb4b035
feat(subagent): add explicit child reports
2026-08-02 12:51:10 +08:00
imccyu
d950150cdc
fix(persistence): preserve subagent session origin
2026-08-02 12:51:09 +08:00
imccyu
b8be3583e0
test(cordis): refresh session origin API snapshot
2026-08-02 12:51:09 +08:00
Dudu-0223
a977ef30ee
fix(subagent): preserve published run failures
2026-08-02 12:51:09 +08:00
Dudu-0223
8b0a7a5d8d
fix(subagent): close stacked catalog integration gaps
2026-08-02 12:51:09 +08:00
Dudu-0223
a967f5174a
test(snapshot): update unlabeled workflow children
2026-08-02 12:51:09 +08:00
Dudu-0223
774ee34b9a
feat(subagent): catalog one-shot child sessions
2026-08-02 12:51:09 +08:00
Dudu-0223
4bd98407a9
fix: address codex review round 1
...
- listChildren() takes an optional AbortSignal and rechecks it after every
un-signalled session-query await (the cold-resume cooperative-cancellation
boundary); list_agents forwards exec.signal so the registry's drain of
started tool bodies cannot block on a slow or large catalog.
- The list_agents description now presents running/complete as a stored-record
snapshot and defers deliverability to send_message, matching the ownership-
conflict semantics the service tests pin.
2026-08-02 12:51:09 +08:00
Dudu-0223
4240c7dd7b
feat(subagent): durable child catalog and list_agents
...
Implements the durable-subagent-catalog RFC: SubagentControlService.listChildren()
enumerates a parent's direct continuable children from one sessionQuery trace,
validates each child's sole subagent/descriptor event (now carrying the durable
creation label), and returns one ordered SubagentListEntry[] with per-child
corrupt/unsupported/unavailable diagnostics. The list_agents tool ships as a
separately loadable plugin of dsh-tool-subagent-control requiring sessionQuery
at load; send_message stays usable without it.
2026-08-02 12:51:09 +08:00
imccyu
4d0a24d8ed
test(subagent): preserve durability failure after rebase
2026-08-02 12:51:08 +08:00