Commit Graph

4394 Commits

Author SHA1 Message Date
Tianyi Cui
045e8462ee fix(pty): drain public signals during close 2026-08-08 21:27:58 +08:00
Tianyi Cui
7eedfda961 fix(pty): fence delayed signal prompts 2026-08-08 21:27:57 +08:00
Tianyi Cui
277870dac2 Revert "fix(pty): fence delayed signal prompts"
This reverts commit a78958eeeaf04a3acdf22ef8a26dec370661a51d.
2026-08-08 21:27:57 +08:00
Tianyi Cui
d6b3de6e0d fix(pty): fence delayed signal prompts 2026-08-08 21:27:57 +08:00
Tianyi Cui
0fec058a48 fix(pty): retain send ownership through cancellation 2026-08-08 21:27:57 +08:00
Tianyi Cui
4d96ff40af docs(lsp): align canonical output field 2026-08-08 21:27:57 +08:00
Tianyi Cui
f5f40c7403 fix(pty): discard pre-write readiness evidence 2026-08-08 21:27:56 +08:00
Tianyi Cui
4997fb219e fix(lsp): preserve execution-world URI semantics 2026-08-08 21:27:56 +08:00
Tianyi Cui
65264f6c80 refactor(subprocess): share terminal lifecycle 2026-08-08 21:27:56 +08:00
Tianyi Cui
32bce339da fix(runtime): close lifecycle teardown races 2026-08-08 21:27:56 +08:00
Tianyi Cui
e5f3a67363 fix(runtime): publish completion before pipe cleanup 2026-08-08 21:27:56 +08:00
Tianyi Cui
ac81165662 fix(runtime): close async cleanup and framing races 2026-08-08 21:27:56 +08:00
Tianyi Cui
16cac3b5af fix(runtime): close remote cleanup and readiness races 2026-08-08 21:27:56 +08:00
Tianyi Cui
8917ff8ef4 refactor(runtime): compose consumers over fs and subprocess 2026-08-08 21:27:55 +08:00
Tianyi Cui
72efc6f522 Merge remote-tracking branch 'origin/master' into worktree/ci-native-windows-20260808 2026-08-08 21:27:25 +08:00
Tianyi Cui
b1ccca71ef fix(windows): stabilize native coverage watchers 2026-08-08 21:26:38 +08:00
Tianyi Cui
3abe813fd3 docs(i18n): document automatic pairing merges 2026-08-08 21:12:00 +08:00
Tianyi Cui
d21917f4cf refactor(subagent): resolve list tool inputs explicitly 2026-08-08 21:05:58 +08:00
Tianyi Cui
07fbc2cda8 test(subagent): execute control tools in ACP replay 2026-08-08 21:05:58 +08:00
Tianyi Cui
ce16cf1b3b test(web): exercise interrupt with parent offline 2026-08-08 21:05:58 +08:00
Tianyi Cui
5f755d5717 fix(web): keep Send beside subagent Stop 2026-08-08 21:05:58 +08:00
Tianyi Cui
ded7f8ffd1 Merge latest native Windows CI base into coverage follow-up 2026-08-08 20:44:36 +08:00
Tianyi Cui
0ad10e0f9d Merge latest master into native Windows CI 2026-08-08 20:41:54 +08:00
Ziya
05cbc185f0 Merge pull request #1661 from deepseek-harness/agent/task-surface-rfc
docs: propose Task Surface for structured session interaction
2026-08-08 05:37:01 -07:00
Tianyi Cui
f96be1db13 test(windows): make native coverage fixtures portable 2026-08-08 20:36:31 +08:00
ZiyaZhang
3a05ddec79 docs: compile the self-contained Task Surface model sketches
The doc-typecheck opt-out ratio gate now fails at 74/146 after merging
master. The model and branded-ID blocks are self-contained, so check
them as ordinary ts fences (72/146 remain opted out); re-record the
pairing sidecar.
2026-08-08 05:28:14 -07:00
Huanqi Cao
7eadde5c58 Merge remote-tracking branch 'origin/feat/windows-pwsh-default' into feat/windows-acl-sandbox
# Conflicts:
#	apps/cli/reference/README.i18n.yaml
2026-08-08 20:18:56 +08:00
Huanqi Cao
03cf9caba2 Merge remote-tracking branch 'origin/master' into HEAD 2026-08-08 20:15:08 +08:00
Huanqi Cao
83f835e4cb feat(pwsh): mirror the bash sandbox surface — denial rendering, escalation, and the ConstrainedLanguage contract
tool-pwsh now renders sandbox denial facts (denial marker + same-turn escalation hint, runner-failed notice on background reads) and advertises the sandbox_permissions/justification escalation pair resolved through ctx.approval before execution — the shared fail-closed sequence from dsh-sandbox, with the tool name 'pwsh'. The description teaches the ConstrainedLanguage contract under the Windows sandbox (both confined modes run pwsh in CLM: Add-Type, non-core .NET statics, COM, and reflection fail; the mode cannot be lifted — probe-verified, pinned by LANGMODE assertions in the runner suite and description assertions in the tool suite). The stale pwsh-sandbox JSDoc ('the tool owns approval') and the parity notes' superseded 'minus sandbox' claims are corrected.
2026-08-08 20:11:21 +08:00
Huanqi Cao
2dd9af6f4b fix(sandbox): keep read-only strictly zero-grant by dropping the write-allowlist SID from list I
A session that materialized its workspace-write grant and then switched to read-only (or crashed and resumed under read-only) kept a writable workspace for the server lifetime: the standing orphan-SID ACE survived the downgrade and list I still carried the orphan, so the write-restricted pass-2 check granted it. List I is now [logon SID, EVERYONE] only — the standing ACE stays inert under read-only while the unrevoked ACE keeps the re-upgrade free (map hit, no re-propagation). Pinned by the runner's real-token mode-downgrade regression (standing ACE denied under read-only, effective again on re-upgrade), the acl-session mode-switch cycle (nothing under read-only, one materialization on upgrade, no revoke on downgrade), and ConstrainedLanguage pins in both modes.
2026-08-08 20:11:01 +08:00
Tianyi Cui
85e9f3b7cb Merge latest native Windows CI base into coverage follow-up 2026-08-08 20:07:25 +08:00
Tianyi Cui
f91305ef5c Merge latest master into native Windows CI 2026-08-08 20:06:38 +08:00
Tianyi Cui
279e51a84c Merge native Windows CI lifecycle fixes into coverage follow-up
# Conflicts:
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.md
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.zh.md
2026-08-08 20:05:46 +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
Hypatia May
5793614b86 feat(web): expose continuable subagent interrupt
The composer's single primary action now stops a running continuable
child: Session.cancel() routes a continuable address through
subagent.interrupt (ordinary sessions keep session.cancel; one-shot
addresses stay uncancellable), and InputBar switches the same Send button
to Stop while a continuable child runs. A running parent-offline child
keeps the default composer with disabled input so that Stop stays
reachable; the read-only takeover returns once it stops.

Refs #1535
2026-08-08 20:02:36 +08:00
Hypatia May
336c84baf0 docs(subagent): clarify interrupt edge cases 2026-08-08 20:02:36 +08:00
Hypatia May
57e9e6977c docs(subagent): record the public interrupt in the continuation contract docs
The continuable-subagent core-data page and the continuation lifecycle
Agent Note claimed no public subagent cancellation existed; interrupt()
is now that one public stop. Both pages and their Chinese counterparts
state the shipped contract and link the owning interrupt note.

Refs #1535
2026-08-08 20:02:36 +08:00
Hypatia May
66a21a38b1 feat(subagent): add current-turn interrupt RPC
ctx.subagents.interrupt() stops one live continuable child's current turn
via Agent.cancel(cause, { keepInbox: true }) under either a human durable
parent address or an exact live ancestor Agent. Fire-and-return: admission
is synchronous, quiescence is not awaited. Pending inbox work, the
Activation, and published descendants are preserved; only a later waking
send resumes the parked FIFO queue. Absent, one-shot, and disposing
targets are accepted no-ops.

The new Host RPC subagent.interrupt calls only that primitive with user
authority — no catalog, history, persistence, or parent-registry lookup —
so a live child stays stoppable while its parent Agent is offline.

Refs #1535
2026-08-08 20:02:36 +08:00
Tianyi Cui
ed1ea95176 fix(windows): normalize native coverage tests 2026-08-08 20:01:46 +08:00
Ziya
5f9456c24f Merge pull request #1807 from deepseek-harness/feat/web-inline-file-mentions
feat(web): a prose mention of a produced file opens it
2026-08-08 04:59:16 -07:00
Tianyi Cui
95c1577b5f Merge latest master into native Windows CI 2026-08-08 19:58:01 +08:00
Tianyi Cui
bdbc6c3da4 fix(windows): preserve graceful CLI shutdown 2026-08-08 19:57:31 +08:00
Ziya
df2018b3df Merge branch 'master' into agent/task-surface-rfc 2026-08-08 04:49:46 -07:00
ZiyaZhang
4db962ecbb Merge remote-tracking branch 'origin/master' into feat/web-inline-file-mentions 2026-08-08 04:46:48 -07:00
ZiyaZhang
3f3c8e31e9 Merge remote-tracking branch 'upstream/master' into fs-overwrite-diff-bound-v2 2026-08-08 04:44:12 -07:00
_Kerman
df30c62e2b fix(agent-loop): latch wakes landing in the cancel-convergence window 2026-08-08 19:42:42 +08:00
Tianyi Cui
331ffd8381 Merge native Windows CI fixes into coverage follow-up
# Conflicts:
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.i18n.yaml
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.md
#	.agents/notes/implemented/process/2026-08-08-native-windows-pull-request-ci.zh.md
2026-08-08 19:35:29 +08:00
Yichen Jiang
78238a3248 Merge remote-tracking branch 'origin/master' into worktree/web-theme-settings-integration-fde706
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/src/client/index.ts
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/package.json
#	packages/client/ui-conversation/src/client/apply.ts
#	packages/client/ui-conversation/tests/coverage-tails.spec.tsx
#	vitest.config.ts
2026-08-08 19:34:10 +08:00
Tianyi Cui
702e2d024a fix(windows): canonicalize native watch paths 2026-08-08 19:29:43 +08:00
Yichen Jiang
cacc8fbca7 Merge branch 'stack/agent-profiles-5-web-ui' into stack/agent-profiles-8-authoring
Authoring meets standing mounts: write() and remove() drop the standing
pointer so the NEXT session composes the edited roster, while every session
already joined keeps the generation it runs on — a superseded generation is
never disposed while the process lives. The settings-dialog golden re-records
with this layer's Agent Preset nav entry, which the incoming layer-3 record
had overwritten.
2026-08-08 19:09:32 +08:00