Commit Graph
5219 Commits
Author SHA1 Message Date
Yichen Jiang d6bebc5783 feat(shell): converge on execute() and promote timed-out commands to jobs
The executor seam collapses run()/start() (and the planned begin()) into one
resolve() + execute(): the handle IS the live process, and the foreground
result, the background cursor, and the deadline's promotion offer are
projections over the same spawn. ShellExecSpec.onExpiry ('kill' default /
'offer' / 'none') replaces the implicit method split; one stdout budget applies
everywhere, the 'start ignores timeoutMs' wart dies, and sync spawn throws are
contained into the same settled-killed handle as async rejections (result()
rejects with the original error, identity preserved for the sandbox
classification).

The promotion offer settles exactly once and never rejects — offer at an
'offer' deadline while running, undefined when the process settles first — so
'await execution.promotion' alone distinguishes the outcomes. An offer must be
answered synchronously; an unanswered one auto-declines back to the
kill-on-timeout behavior. accept() ends the deadline and detaches the caller's
abort signal; decline() kills and classifies timedOut.

tool-bash and tool-pwsh promote on timeout by default (promoteOnTimeout: true,
inert without run_in_background or a job registry): at the offer the running
handle registers as a job with the same hooks as run_in_background, mirrors
into ctx.activities (the web task list streams it, stop control included), and
the call returns { kind: 'promoted', jobId, timeoutMs, output } carrying the
output so far — the job cursor continues exactly after it. Any promotion
failure declines and falls back to the plain timeout kill. Descriptions and
the timeoutMs schema text advertise the semantics only when they hold;
recorded-session and web snapshot fixtures re-recorded with them.

Also repairs the four CI failures from the human-kill push: ui-activity's
missing dsh-session peer declaration (static + windows observational), the
observe owner-arm/outer-catch and killJob-stub coverage gaps, tool-workflow's
owned-run arm, and the timing-dependent projection-cache interval flush test
(now poll-based for coarse Windows timers).

Peer evidence and rejected alternatives (Codex's session model, a third seam
method, a second threshold knob) in the Agent Note
2026-08-26-shell-execute-timeout-promotion.
2026-08-26 16:11:01 +08:00
Yichen Jiang 5661b7a972 Merge pull request #3110 from deepseek-harness/worktree/fix-question-drafts-session-switch
fix(web): preserve ask_user_question drafts across Sessions
2026-08-26 16:10:37 +08:00
Magolor df76bc695b feat(session): reduce persistence storage size (#3048) 2026-08-26 08:01:07 +00:00
Yichen Jiang e5d39b6076 Merge origin/master into worktree/fix-question-drafts-session-switch 2026-08-26 15:51:15 +08:00
pku-xht 20f04373c8 Merge commit 'bd88d2ee9f08b3c3aba8c06df527a91d8b76b51d' into codex/subprocess-native-containment
# Conflicts:
#	packages/e2b/subprocess-e2b/README.i18n.yaml
#	packages/e2b/subprocess-e2b/README.md
#	packages/e2b/subprocess-e2b/README.zh.md
#	packages/subprocess/README.i18n.yaml
#	packages/subprocess/README.md
#	packages/subprocess/README.zh.md
#	packages/subprocess/subprocess-local/README.i18n.yaml
#	packages/subprocess/subprocess-local/README.md
#	packages/subprocess/subprocess-local/README.zh.md
#	packages/subprocess/subprocess/README.i18n.yaml
#	packages/subprocess/subprocess/README.md
#	packages/subprocess/subprocess/README.zh.md
#	packages/subprocess/win32-process/README.i18n.yaml
#	packages/subprocess/win32-process/README.md
#	packages/subprocess/win32-process/README.zh.md
2026-08-26 15:25:12 +08:00
_Kerman 81e07e3935 Merge remote-tracking branch 'origin/master' into xtr/session-projection-migrations 2026-08-26 15:15:04 +08:00
_Kerman c3468623ea test(python-sdk): accept explanatory live responses 2026-08-26 15:14:49 +08:00
imccyu 64575de655 docs(subagent): regenerate Remote references 2026-08-26 14:52:53 +08:00
pku-xht 9cd9c7f634 test(web): complete schedule catalog validation 2026-08-26 14:40:12 +08:00
Yichen Jiang 308d1b21cb Merge remote-tracking branch 'origin/master' into worktree/3116-docs-mpa-idempotence 2026-08-26 14:33:23 +08:00
Yichen Jiang 1d09a4c877 fix(docs): harden build output cleanup 2026-08-26 14:33:17 +08:00
Yichen Jiang 4e1c87b1a2 fix(ci): bound Windows process contention 2026-08-26 14:24:24 +08:00
Yichen Jiang 51f74910ae feat(jobs): human job kill with an unclaimed terminal report
The web task list gains a two-press stop control on running job rows, built on
one seam change: JobRegistry.kill now takes { reason?, reported? } instead of a
positional reason. reported defaults to true (the model's job_kill claims the
terminal report exactly as before); the web path passes reported: false because
a human kill has no model-visible channel, so the settlement flows through the
existing tool-jobs completion notice (wakeup/inject, budgets, truncation all
unchanged). A recorded kill reason merges into a killed settlement's detail
(producer facts first: 'signal: SIGTERM; cancelled by the user'), so the notice
and the web row both say who stopped the work.

- session-controller: session.killJob Remote beside cancel, live-only Agent
  lookup, job-not-found/jobs-unavailable rejections joined to the closed RPC
  error table; ClientSession.killJob and the ISession face carry it to the UI.
- ui-activity: arm/confirm stop button (3s disarm, pending disable, failure
  hint), rendered only on running job rows; standalone activities keep no kill
  handle and the README limitation now says so.
- The background-job-list web e2e now drives the whole human path through the
  button; goldens show the merged killed detail end to end.
- Agent Note 2026-08-26-human-job-kill records the decision against Kimi's
  suppress-own-notification precedent and Claude Code's silent-kill failure;
  the 2026-08-08 blocker note and the unified-task-list note point at it.
2026-08-26 14:15:44 +08:00
pku-xht cf6f25d283 fix(subprocess): keep native runner private 2026-08-26 14:10:08 +08:00
_Kerman df0e0960c2 Merge remote-tracking branch 'origin/master' into xtr/session-projection-migrations 2026-08-26 13:51:57 +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
imccyu b342b09401 chore(release): drop the unused synchronous runner 2026-08-26 13:23:41 +08:00
Yichen Jiang d6a1031cfa Merge remote-tracking branch 'origin/master' into worktree/3116-docs-mpa-idempotence 2026-08-26 13:10:09 +08:00
Yichen Jiang 3275365489 fix(docs): make site builds idempotent 2026-08-26 13:09:53 +08:00
imccyu f18ab429e4 ci(release): pack rehearsal tarballs concurrently 2026-08-26 12:46:17 +08:00
imccyu 8793cd477b test(webworker-runtime): keep the corpus gate as a Node import sweep 2026-08-26 12:35:05 +08:00
imccyu 6d9cc6ab96 test(webworker-runtime): drop coverage requirement and compile transform suites 2026-08-26 12:35:04 +08:00
imccyu 75428c7f47 perf(ci) 2026-08-26 12:35:04 +08:00
_Kerman 4325672ad6 Merge origin/master into xtr/session-projection-migrations 2026-08-26 11:48:52 +08:00
_Kerman bf83f0889b Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2731 2026-08-26 11:40:56 +08:00
imccyu 5752b1dc3c docs(agent-presets): refresh @Remote migration references 2026-08-26 11:18:36 +08:00
_Kerman 6a311f0638 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2731 2026-08-26 11:17:50 +08:00
fengsy eadd5df82b fix(team): preserve current Client architecture after rebase 2026-08-26 10:56:57 +08:00
Dudu-0223 61dea35bd2 refactor: let Team own browser remotes 2026-08-26 10:56:57 +08:00
Dudu-0223 36588ade22 fix(team): isolate browser remote adapter 2026-08-26 10:56:57 +08:00
Dudu-0223 806642b064 feat(team): add experimental Agent Teams Web profile 2026-08-26 10:56:57 +08:00
_Kerman d3dd816d67 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2731
# Conflicts:
#	packages/util/brand/README.i18n.yaml
#	packages/util/brand/README.md
#	packages/util/brand/README.zh.md
2026-08-26 10:35:38 +08:00
Yichen Jiang c8c3540f15 Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
# Conflicts:
#	docs/capability-seams.i18n.yaml
#	docs/capability-seams.md
#	docs/capability-seams.zh.md
#	packages/bundle/web-app/package.json
#	packages/client/README.i18n.yaml
#	packages/client/README.md
#	packages/client/README.zh.md
#	packages/client/ui-activity/README.i18n.yaml
#	packages/client/ui-chat/src/client/conversation-nodes/retry.ts
#	packages/client/ui-jobs/README.md
#	packages/client/ui-jobs/README.zh.md
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-subagent/README.i18n.yaml
#	packages/client/ui-subagent/README.md
#	packages/client/ui-subagent/README.zh.md
#	packages/jobs/jobs/README.i18n.yaml
#	packages/jobs/jobs/README.md
#	packages/jobs/jobs/README.zh.md
#	packages/shell/shell/README.i18n.yaml
#	packages/shell/shell/README.md
#	packages/shell/shell/README.zh.md
#	packages/shell/tool-bash/README.i18n.yaml
#	packages/shell/tool-bash/README.md
#	packages/shell/tool-bash/README.zh.md
#	packages/shell/tool-pwsh/README.i18n.yaml
#	packages/shell/tool-pwsh/README.md
#	packages/shell/tool-pwsh/README.zh.md
#	packages/workflow/tool-workflow/README.i18n.yaml
#	packages/workflow/tool-workflow/README.md
#	packages/workflow/tool-workflow/README.zh.md
2026-08-26 10:17:30 +08:00
Tianyi Cui 035ac85f42 Merge branch 'master' into worktree/remove-ignorable-session-events 2026-08-26 02:44:26 +08:00
pku-xht 673aeb65af Merge commit 'a75a281deadcd90a3841bdd2efebbbbfd68696fc' into schedule-web-catalog
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/subsystems/session-projection.i18n.yaml
#	docs/subsystems/session-projection.md
#	docs/subsystems/session-projection.zh.md
#	packages/client/README.i18n.yaml
#	packages/client/README.md
#	packages/client/README.zh.md
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	packages/schedule/README.i18n.yaml
#	packages/schedule/README.md
#	packages/schedule/README.zh.md
#	packages/schedule/schedule/README.i18n.yaml
#	packages/schedule/schedule/README.md
#	packages/schedule/schedule/README.zh.md
#	packages/session/session-projection-cache/README.i18n.yaml
#	packages/session/session-projection-cache/README.md
#	packages/session/session-projection-cache/README.zh.md
#	packages/session/session-projection-cache/src/index.ts
#	packages/session/session-projection-cache/src/spec.ts
#	packages/session/session-projection-cache/tests/cache.spec.ts
#	packages/session/session-projection/README.i18n.yaml
#	packages/session/session-projection/README.md
#	packages/session/session-projection/README.zh.md
2026-08-26 00:51:57 +08:00
Tianyi Cui 42dc2a46c2 refactor(session): require known event types on read 2026-08-26 00:22:31 +08:00
Dudu-0223 a6c274e250 feat(team): add experimental Agent Teams CLI profile 2026-08-26 00:13:35 +08:00
Magolor 0b5eba0c8d docs: rebuild the documentation skill and standards (#2983) 2026-08-25 23:47:20 +08:00
pku-xht 678cfdfdb4 Merge commit '0c177e17a23692d018a79bae59ac9a2db6eba59c' into codex/subprocess-native-containment
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/input.json
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/bundle/acp-app/package.json
#	packages/examples/jsonrpc-demo/src/packaged-bin.ts
#	packages/subagent/subagent-acp/src/run.ts
#	packages/subagent/subagent-acp/tests/subagent-acp.spec.ts
#	packages/subprocess/subprocess-local/README.i18n.yaml
#	packages/subprocess/subprocess-local/README.md
#	packages/subprocess/subprocess-local/README.zh.md
#	pnpm-lock.yaml
#	scripts/smoke-python-runtime.py
2026-08-25 23:22:25 +08:00
Chinesezjc 9bf6f4b43c perf(ci): move the transform corpus out of coverage partitions
The full-corpus transform gate spawns one child that transforms and imports
every built bundle, so it runs for 8-25 minutes as a single case and
dominates one native Windows coverage partition, blowing its 900s budget
under load. Move it to the coverage-exempt heavy gate, which runs it with
its own worker budget instead of competing with the instrumented
partitions. The package's src is threshold-excluded in vitest.config.ts, so
the exemption carries no coverage; the exempt-heavy roster note records the
entry.
2026-08-25 22:11:11 +08:00
07akioni 79fd46b98e Merge pull request #3025 from deepseek-harness/ihsiangzhang/content-width-font-size
feat(ui): adaptive content width and settings font-size control
2026-08-25 21:54:15 +08:00
_Kerman 248d22f2c6 Merge remote-tracking branch 'origin/master' into xtr/message-tool-call-id 2026-08-25 21:44:26 +08:00
_Kerman 4e6a1f8d21 Merge origin/xtr/projection-per-session-cache into xtr/session-projection-migrations 2026-08-25 21:42:06 +08:00
ihsiang be994a9270 Merge branch 'master' into ihsiangzhang/content-width-font-size 2026-08-25 21:27:28 +08:00
_Kerman cef391487a Merge remote-tracking branch 'origin/master' into xtr/projection-per-session-cache 2026-08-25 21:23:28 +08:00
pku-xht a47535ceab Merge pull request #2871 from deepseek-harness/codex/dsh-sdk-minimal-diagnostics
fix(subagent): preserve actionable DSH SDK failure facts
2026-08-25 21:16:02 +08:00
pku-xht 446a632c58 Merge commit '882fb242ad930f15617e95cfb04e5c2225d70772' into codex/dsh-sdk-minimal-diagnostics 2026-08-25 20:57:46 +08:00
pku-xht abebdb1eaa Merge origin/master into schedule-web-catalog 2026-08-25 20:52:51 +08:00
pku-xht 907457580f Merge origin/master into schedule-web-catalog 2026-08-25 20:46:07 +08:00
ihsiang 6d6f8f044c feat(ui): adaptive content width and font-size control
Add conversation adaptive content width and a Settings font-size control,
with theme presenter, font-size row, snapshots, tests, and agent notes.
2026-08-25 20:42:03 +08:00