_Kerman
a53ecb2f3a
Merge origin/master into xtr/tool-executor-plugins
2026-10-21 15:56:44 +08:00
_Kerman
a9c006f9c3
refactor(agent): own model selection on each agent
2026-10-20 21:09:09 +08:00
_Kerman
7d0301fe05
Merge master into scoped tool executors
2026-10-19 21:53:41 +08:00
_Kerman
455686626d
refactor(tools): separate scoped executors from tool registration
2026-10-19 14:49:55 +08:00
_Kerman
e39b5f58c2
refactor(agent): persist model selection in session state
2026-10-15 19:05:09 +08:00
_Kerman
c3efd4bff8
refactor(session-projection): keep state reads inside owning services
2026-10-15 18:18:58 +08:00
Tianyi Cui
79bd3d8da7
feat(session): centralize working directories and directory context
2026-10-06 01:27:54 +08:00
mektpoy
223ad4c373
docs(output-retention): address review feedback on the surrogate cap
...
- State the contract precisely: the cut never introduces a lone high
surrogate, and an unpaired surrogate the input already carries is not
repaired.
- Document the new export in the package README: a character-budget preview
section naming the persistent bash and pwsh shells and str_replace_editor,
plus a Known Limitations bullet that no longer contradicts it.
- Drop the assertion restatement from the two shell test comments.
- Let the str-replace test helper reuse a root so the clipped context reads
its file inside its own working directory.
2026-09-24 18:15:52 +08:00
mektpoy
dc07e5a50d
fix(tools): keep surrogate pairs intact when capping tool output
...
Three tools capped the preview text they return with String.prototype.slice
at a UTF-16 code-unit budget. A cut that lands inside a surrogate pair
leaves a lone high surrogate, which is not well-formed text: a strict JSON
reader rejects the durable Session log carrying it, and the preview shows a
broken glyph. A lone surrogate retained in history has already blocked every
later Messages request for one session.
Centralize the cap in output-retention as
truncateWithoutSplittingSurrogatePair, and use it from the persistent bash
and pwsh shells and the string-replace editor. The cut drops the unpaired
half instead of keeping it, so the retained text stays a prefix and is at
most one code unit shorter than before.
The new dependency edges and the shifted Config sources regenerate
docs/module-graph and docs/config-catalog, including the committed
translation pair.
Refs #4817
2026-09-21 18:51:19 +08:00
imccyu
d8c993a622
docs(shell): clarify queued cancellation regression coverage
2026-09-19 23:31:31 +08:00
imccyu
8771607f8b
test: cover sidebar fork and persistent shell cancellation regressions
2026-09-19 23:05:40 +08:00
_Kerman
0a382becb3
Merge latest origin/master into xtr/agent-setup-hook
2026-09-14 13:57:18 +08:00
Tianyi Cui
caa69608fb
refactor(sandbox): await cancellable preparation in process consumers
2026-09-12 15:03:02 +08:00
_Kerman
9b7a8ccc9f
feat(agent): await initialization through agent/created
2026-09-09 16:20:00 +08:00
fz
1f1537914f
feat(minimal): align persistent bash output with the one-shot shell contract
...
The minimal compositions serve the same models that trained against a
one-shot `bash` tool; three surface differences remained visible to them.
- Every settled command now appends `[Command finished with exit code N]`,
including exit code 0, instead of `[exit code: N]` only on failure. A
timeout appends `[Command timed out or OOM]` after the partial output.
- Trailing newlines are all dropped before the status trailer rather than
only the last one.
- The `bash` description in the `minimal` preset and the `sdk-minimal`
bundle replaces the two fixed network lines with a single environment-
dependent line; the pwsh description is unchanged.
Tests, READMEs, the web minimal-preset schema snapshot, and the packaged
Python minimal model-visible snapshot follow the new wording. The
standalone `persistent-tools` SDK replay fixture keeps its own copy of the
old description since it is a per-launch customization, not the profile.
2026-09-08 19:48:21 +08:00
_Kerman
891f07a2d0
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/bundle/headless/tests/headless.spec.ts
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.md
# packages/core/agent-loop/README.zh.md
# packages/core/agent/src/runtime-types.ts
# packages/fs/tool-str-replace-editor/tests/tools.spec.ts
# packages/llm/llm-retry/tests/retry.spec.ts
# packages/llm/llm-retry/tests/transport-recovery.spec.ts
# packages/shell/tool-bash-persistent/tests/loader-composition.spec.ts
# packages/shell/tool-bash-persistent/tests/tools.spec.ts
# packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts
# packages/shell/tool-pwsh-persistent/tests/tools.spec.ts
# packages/terminal/terminal-bash/tests/index.spec.ts
# packages/test-support/agent-loop-testkit/package.json
2026-09-04 12:18:37 +08:00
Tianyi Cui
d1521ea783
feat(session)!: add released format migration
2026-09-01 22:12:21 +08:00
_Kerman
ec51b7651f
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/context/agent-instructions/tests/agent-instructions.spec.ts
# packages/core/agent/src/inbox.ts
# packages/goal/tool-goal/tests/tool-goal.spec.ts
# packages/skill/tool-skill/tests/tool-skill.spec.ts
# packages/terminal/terminal-bash/tests/index.spec.ts
2026-09-01 21:46:31 +08:00
Tianyi Cui
27bf1039db
refactor(session)!: distinguish event seqs from log offsets
2026-09-01 20:36:00 +08:00
_Kerman
2aeb9920ee
test(agent-loop): remove duplicated Inbox fixture
2026-08-31 13:37:23 +08:00
_Kerman
b9b2a37528
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
...
# Conflicts:
# apps/cli/tests/fixtures/dsh-badge/snapshot.ts
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/persistence-catalog.zh.md
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/context/agent-instructions/tests/agent-instructions.e2e.ts
# packages/context/agent-instructions/tests/agent-instructions.spec.ts
# packages/context/tmux-context/tests/tmux-context.spec.ts
# packages/core/agent-loop/package.json
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/index.ts
# packages/core/agent/src/index.ts
# packages/core/agent/src/types.ts
# packages/goal/goal/tests/goal.spec.ts
# packages/goal/tool-goal/package.json
# packages/llm/llm-retry/tests/retry.spec.ts
# packages/session-query/session-query/tests/observation.spec.ts
# packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts
# packages/test-support/agent-loop-testkit/package.json
# packages/workflow/workflow-worker-thread/tests/workflow-worker-thread.e2e.ts
# pnpm-lock.yaml
2026-08-31 13:37:06 +08:00
_Kerman
1101422362
refactor(agent): keep concrete inbox loop-internal
2026-08-31 13:36:49 +08:00
_Kerman
37c5dc4b35
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
...
# Conflicts:
# docs/subsystems/session-projection.i18n.yaml
# docs/subsystems/session-projection.md
# docs/subsystems/session-projection.zh.md
# packages/context/agent-instructions/tests/agent-instructions.spec.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/tests/cancel.spec.ts
# packages/core/agent/README.i18n.yaml
# packages/core/agent/README.md
# packages/core/agent/README.zh.md
# packages/llm/llm-retry/tests/retry.spec.ts
# packages/session/session-projection/README.i18n.yaml
# packages/session/session-projection/README.md
# packages/session/session-projection/README.zh.md
2026-08-31 13:36:28 +08:00
_Kerman
a20c5ad0a3
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
2026-08-31 13:35:39 +08:00
_Kerman
bd3b651ea8
refactor(agent): remove inbox service
2026-08-31 13:34:22 +08:00
_Kerman
df2bae9639
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
2026-08-31 13:34:09 +08:00
_Kerman
aaf50dc39a
refactor(agent): back Inbox with a durable projection
2026-08-31 13:32:59 +08:00
_Kerman
737691054a
Merge remote-tracking branch 'origin/master' into xtr/session-projection-migrations
...
# Conflicts:
# packages/core/agent-loop/tests/agent-initiator.spec.ts
# packages/core/tools/tests/tools.spec.ts
# packages/fs/tool-fs/tests/tools.spec.ts
# packages/schedule/schedule/tests/plugin.spec.ts
# packages/session/session-checkpoint-policy/tests/fixtures/crash-child.ts
2026-08-26 13:36:05 +08:00
_Kerman
4e6a1f8d21
Merge origin/xtr/projection-per-session-cache into xtr/session-projection-migrations
2026-08-25 21:42:06 +08:00
_Kerman
9365ef496d
Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id
...
# Conflicts:
# packages/acp/acp/tests/approval.spec.ts
# packages/acp/acp/tests/edges.spec.ts
# packages/api/session-controller/tests/event-script.client.ts
# packages/client/connection/src/client/fixture.ts
# packages/client/ui-conversation/src/client/contract/slots.ts
# packages/client/ui-conversation/src/client/contract/views.ts
# packages/client/ui-conversation/src/client/index.ts
# packages/client/ui-conversation/src/client/stores.ts
# packages/core/agent-loop/tests/loop.spec.ts
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/events.ts
# packages/host/apiproxy/tests/api-proxy-view.spec.ts
# packages/interaction/user-approval/src/index.ts
# packages/llm/llm-deepseek/tests/adapter.e2e.ts
# packages/llm/llm-pi-ai/src/context.ts
# packages/llm/llm-pi-ai/tests/context.spec.ts
# packages/llm/llm/tests/content.spec.ts
# packages/subagent/subagent/tests/continuation.spec.ts
# packages/subagent/tool-subagent/tests/tool-subagent.spec.ts
# packages/test-support/llm-replay/tests/llm-replay.spec.ts
# packages/todo/tool-todo/tests/tool-todo.spec.ts
# scripts/gen-persistence-catalog.ts
2026-08-25 14:37:44 +08:00
Yichen Jiang
9a12505f86
fix(pty): distinguish pipeline reads from terminal input
2026-08-25 12:54:55 +08:00
_Kerman
a789637db6
refactor(llm): rename CallId to ToolCallId
2026-08-21 16:10:24 +08:00
_Kerman
1a72ae202a
refactor(session): migrate host state reads to projections
2026-08-19 13:57:58 +08:00
_Kerman
b72bd6f5be
merge: bring master into feat/pwsh-persistent-pty
2026-08-18 13:36:46 +08:00
Yichen Jiang
a8dc6f9776
fix(pty): keep the controlled prompt so persistent bash settles fast
...
tool-bash-persistent overwrote the backend's PS1, so terminal-bash prompt
readiness never matched and every send degraded to the 3.5s silence tier
(idleSilenceMs + handoffGraceMs) under production defaults.
The controlled PROMPT_COMMAND now re-asserts PS1 before every prompt, so an
in-shell override never survives to the next prompt. The tool initializes
with stty -echo alone and detects the no-end-marker fallback through the
seam's stdin_read wait reason instead of matching its own prompt text.
Tool calls drop from 7180/3560/3566 ms to 355/88/91 ms (spawn+init+echo,
echo, pwd; darwin, production defaults). The loader composition suite now
pins the fast path by pushing idleSilenceMs beyond the send bound, and a
real-PTY case proves PS1 self-healing.
Fixes #2585
2026-08-15 11:06:57 +08:00
Huanqi Cao
1ae9df33eb
merge: bring master's naming-contract refactor into feat/pwsh-persistent-pty
2026-08-13 01:52:47 +08:00
Tianyi Cui
a2d0f7f411
refactor: apply repository naming contract
...
Apply the accepted pre-release package, service, type, directory, and role renames as one repository-wide change.
2026-08-13 00:54:38 +08:00