Commit Graph

1523 Commits

Author SHA1 Message Date
Yichen Jiang
2ebe078ad9 Merge remote-tracking branch 'origin/stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire 2026-08-09 13:16:14 +08:00
xjt
acf75a8af3 Merge origin/master into xjt/incremental-proofreading-275-apply 2026-08-09 12:17:59 +08:00
Tianyi Cui
c8e0b0f3a7 test(repository-plugin): update keyless prepare fixture 2026-08-09 11:41:40 +08:00
Tianyi Cui
e00ec8e2aa test(repository-plugin): refresh prepared wrapper fixture 2026-08-09 11:41:40 +08:00
Tianyi Cui
033fa4b0b1 feat(repository-plugin): load trusted package code 2026-08-09 11:41:40 +08:00
Tianyi Cui
a9af1a33f0 test(repository-plugin): update prepared fixture metadata 2026-08-09 11:41:40 +08:00
xjt
a7af54a8d3 docs(i18n): standardize contract terminology 2026-08-09 11:33:14 +08:00
xjt
5d46c11784 docs(i18n): reconcile source-drifted translations 2026-08-09 10:24:11 +08:00
xjt
bd659179f6 docs(i18n): reproofread updated Chinese documentation 2026-08-09 03:20:17 +08:00
Yichen Jiang
4952afe5c0 Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire
# Conflicts:
#	docs/cordis-catalog/services.md
#	docs/module-graph.md
#	docs/subsystems/persistence.i18n.yaml
#	packages/client/ui-question/tsconfig.json
#	pnpm-lock.yaml
2026-08-09 03:05:10 +08:00
Tianyi Cui
36cf4f32f4 docs(agent-note): flip the regrouping note to implemented
Move the triplet to implemented/architecture/, rewrite Proposal into a
present-tense Decision, fold Acceptance criteria and Risks into
Consequences (recording what pins the result), retitle the migration
section to what the move actually touched, and repoint the seven
inbound FIXME/README links.
2026-08-09 01:25:24 +08:00
Yichen Jiang
7507697c92 Merge branch 'mergefwd-1-seam' into mergefwd-3-wire 2026-08-09 00:27:40 +08:00
Yichen Jiang
bcfab57318 Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire 2026-08-08 22:47:15 +08:00
Tianyi Cui
10fc9405c7 docs(e2b): re-home the overlay section on master's README
Master rewrote the headless README around the profile CLI and removed
cli-demo; the replay had resurrected the old body. The branch's claim is
the E2B overlay section alone, now inserted into master's text with the
credential-gated live composition e2e as the runnable instruction (the
config-file demo runner no longer exists).
2026-08-08 22:19:14 +08:00
Tianyi Cui
d488330ba4 fix(rebase): migrate the replayed E2B branch onto the rebased parent
The linear replay carried old-lineage content over parent-owned files;
this checkpoint restores them and adapts the branch to the parent's
post-rebase seam:

- restore all pty/lsp/subprocess/code-runtime surfaces to the parent's
  exact content (this branch claims none of them) and drop the net-zero
  code-runtime-e2b/pty-e2b/lsp-e2b residue and its registrations
- widen serializeRemoteEnvironment to the seam's NodeJS.ProcessEnv
  tombstone contract: an explicit undefined removes an ambient entry
- migrate the two E2B fixture Agent stubs to the Inbox-model interface
  and Session.create
- re-apply the branch's gen-doc-graphs roles, THIRD_PARTY_NOTICES e2b
  row, and packages/README group row (trimmed to the doc budget);
  regenerate catalogs and re-record bilingual pairings
2026-08-08 22:19:13 +08:00
Tianyi Cui
6e1ae76c9b test(e2b): satisfy the steer() receipt signature in Agent stubs
Master's steering-receipt API (agent.steer returns SteeringReceipt) reached
this branch through the parent sync; the two E2B live-fixture Agent stubs
return the same rejected-outcome receipt the pty test stubs use.
2026-08-08 22:19:13 +08:00
Tianyi Cui
f5866fc202 fix(e2b): address review round on cadence config, disposal, and SDK edge cases
- subprocess-e2b: the 20 ms remote poll cadence becomes a validated pollMs
  Config field (each tick is one control-plane request); the README documents
  the latency-versus-request-count trade.
- subprocess-e2b: extract src/remote.ts owning asError, signalOpts,
  commandOpts, delay, waitTick, and one tolerant signalRemoteGroups shared by
  the pgid-keyed process ladder and sid-keyed terminal ladder, so the two
  teardown paths keep identical error tolerance.
- subprocess-e2b: service disposal aggregates sibling cleanup failures into
  one AggregateError instead of discarding all but the first.
- subprocess-e2b: waitForProcessGroupId refuses published group ids <= 1, so
  a same-UID rewrite of the pid file cannot aim termination at kill -- -1;
  README documents the same-UID control-state limitation.
- subprocess-e2b: drain-grace expiry now releases an inherited-output E2B
  callback blocked on host backpressure before disconnecting, so the SDK
  settlement cannot stay pinned behind an unread host stream.
- subprocess-e2b: spawn/spawnTerminal stop validating typed spec fields
  (trust-TypeScript rule; pty-local validates its config before specs exist);
  resolveExecutable rejects separator-containing relative paths per the seam
  contract; terminal setups tracked as a Set of records.
- subprocess-e2b: PTY output push-without-backpressure is a documented
  contract (flowing consumer folds bytes; paused consumer buffers).
- fs-e2b: streamText normalizes the pinned SDK's empty-file '' return into an
  empty stream instead of throwing on getReader().
- e2b overlays: comment the one-world cwd invariant across e2b.cwd,
  workspaceRoot, and bash-local's implicit default workdir.
2026-08-08 22:19:13 +08:00
Tianyi Cui
26b18ba189 refactor(e2b): keep code runtime host-local 2026-08-08 22:19:13 +08:00
Tianyi Cui
de77310c6f refactor(e2b): narrow the sandbox POC 2026-08-08 22:19:13 +08:00
Tianyi Cui
bb0be75d85 refactor(e2b): drop obsolete host sandbox overlay 2026-08-08 22:19:12 +08:00
Tianyi Cui
917a7493f7 refactor(e2b): keep provider layer substrate-only 2026-08-08 22:19:12 +08:00
Tianyi Cui
65b345c96a test(e2b): tolerate real-provider runtime latency 2026-08-08 22:19:12 +08:00
Tianyi Cui
ca79f4364c test(e2b): prove stale interrupt isolation 2026-08-08 22:19:12 +08:00
Tianyi Cui
cf4b721a8d test(e2b): snapshot provider-neutral overlay surface 2026-08-08 22:19:12 +08:00
Tianyi Cui
ec0310ca1b fix(e2b): harden remote teardown transactions 2026-08-08 22:19:11 +08:00
Tianyi Cui
fd78d9bc58 fix(e2b): harden remote process lifecycle 2026-08-08 22:19:11 +08:00
Tianyi Cui
2abc9823e7 refactor(e2b): compose portable runtime consumers 2026-08-08 22:19:11 +08:00
Tianyi Cui
97496c3d00 fix(e2b): close remaining remote lifecycle races 2026-08-08 22:19:11 +08:00
Tianyi Cui
3e343b4477 fix(e2b): harden remote adapter boundaries 2026-08-08 22:19:11 +08:00
Tianyi Cui
3dea36f1ce fix(e2b): close remote lifecycle gaps 2026-08-08 22:19:10 +08:00
Tianyi Cui
6667102890 Add E2B PTY, LSP, and code runtime providers 2026-08-08 22:19:10 +08:00
Tianyi Cui
e7b682f1f6 feat(e2b): add remote runtime providers 2026-08-08 22:19:10 +08:00
Tianyi Cui
6e4bdbf0df fix(pty): wire persistent Bash through subprocess 2026-08-08 21:27:59 +08:00
Tianyi Cui
07fbc2cda8 test(subagent): execute control tools in ACP replay 2026-08-08 21:05:58 +08:00
Tianyi Cui
582fafee5a test(snapshot): refresh subagent control schema pin 2026-08-08 20:25:41 +08:00
Hypatia May
5e1ec10d5a fix(subagent): address descendant listing review 2026-08-08 20:02:37 +08:00
Hypatia May
d769d3cbb7 feat(subagent): let ancestors interrupt descendants
interrupt_agent(agent_id) passes the calling agent as the ancestor
authority for ctx.subagents.interrupt(); the service verifies live
registry identity and recorded lineage, so a direct child or deeper
descendant stops with the same generic parameter while send_message keeps
its exact-direct-parent authority.

Discovery: list_agents gains an optional scope. descendants walks the new
SubagentService.listDescendants() — one lineage trace flattened in stable
pre-order across ordinary and one-shot intermediates, each entry carrying
its verified parentId and depth — and every status now comes from the
live Agent registry (running/idle/complete).

Refs #1535
2026-08-08 20:02:37 +08:00
Tianyi Cui
74a8e2e776 Merge remote-tracking branch 'origin/master' into worktree/fix-pr1145-revised-guard-20260808 2026-08-08 16:00:25 +08:00
Tianyi Cui
ed808adef3 Merge remote-tracking branch 'refs/remotes/origin/master' into worktree/fix-pr1145-revised-guard-20260808 2026-08-08 15:30:59 +08:00
Tianyi Cui
dc64c5f1c2 fix: guard human interaction by runtime ownership 2026-08-08 15:30:08 +08:00
Tianyi Cui
8dcfe5c406 fix(replay): mark local compaction calls 2026-08-08 15:28:35 +08:00
Tianyi Cui
be3e4ac455 fix(test): address cli demo cleanup review feedback 2026-08-08 15:08:07 +08:00
Tianyi Cui
dc57f7d854 cleanup(cli): remove dsh-cli-demo 2026-08-08 15:08:07 +08:00
Yichen Jiang
c5ca12eabd Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire
master extracted this layer's inline cold-resume resolver into
@deepseek-ai/dsh-api-remotes, whose `setup` was a fixed AgentSetup. A resumed
session composes the preset ITS header recorded, so the option becomes a
function of that header; the resolver builds the setup before the published
re-checks so those stay adjacent to `resume`.

Conflicts:
	docs/cordis-catalog/services.md
	docs/module-graph.md
	packages/host/apiproxy/package.json
	packages/host/apiproxy/src/api-proxy.ts
	pnpm-lock.yaml
2026-08-08 14:26:38 +08:00
Tianyi Cui
33a7b1284e test(snapshot): keep dsh run plugin metadata static 2026-08-08 14:21:42 +08:00
Tianyi Cui
f32aa54aeb feat(cli)!: make dsh run the headless entrypoint 2026-08-08 14:21:42 +08:00
Yichen Jiang
f50521ac4c Merge pull request #2002 from deepseek-harness/feature/issue-1470-skill-invoke
feat(skill): deterministic user-explicit skill invocation at the pre-step gesture boundary
2026-08-08 14:17:52 +08:00
Tianyi Cui
02d81f8178 Merge pull request #1974 from deepseek-harness/worktree/retire-fixmes-20260807
cleanup: retire FIXMEs without private repository links
2026-08-08 14:14:14 +08:00
Yichen Jiang
18dee248a6 Merge remote-tracking branch 'origin/master' into feature/issue-1470-skill-invoke
# Conflicts:
#	docs/module-graph.md
2026-08-08 14:03:29 +08:00
Tianyi Cui
8982d714cb fix(snapshot): harden message id retention 2026-08-08 02:15:44 +08:00