deepseek-harness/docs/core-data-structures
Tianyi Cui f81fcccd93 refactor(subprocess): keep terminate() as the seam's only termination verb
Delete kill(signal?) from SubprocessHandle: consumers stop a process only
through terminate()'s tree-scoped SIGTERM→graceMs→SIGKILL escalation
(idempotent, also driven by the spec's abort signal, a no-op once the tree
is gone). The single-signal verb had exactly one consumer family —
lsp-local — and what it bought there was a private re-implementation of
the same escalation. The internal kill closure stays in spawn.ts as the
dispose ladder's tier primitive; terminate() now routes through it too.

lsp-local collapses onto the seam's escalation:
- LspConnection replaces its terminate()/kill() pair with one terminate()
  that delegates to handle.terminate(). Behavior change: the
  framing-failure path terminates instead of instant SIGKILL, so a
  misbehaving server now gets SIGTERM plus the killGraceMs window to
  flush before SIGKILL.
- ConnectionSpec.pipeDrainGraceMs becomes killGraceMs: one grace, the
  spawn spec's graceMs, drives both the escalation window and post-exit
  pipe draining (the provider already passed killGraceMs for it).
- LspInstance.forceTerminate() drops its hand-rolled bounded first wait
  (LSP_KILL_GRACE) and escalateProcessTree (deleted with its export and
  unit test): the seam's escalation already commits to SIGKILL after
  killGraceMs, so only the unbounded quiescence awaits stay load-bearing.

Tests: kill()-shaped spawn specs become terminate()-shaped or fold into
the terminate() suites (group-wide delivery; the settled no-op case was
already pinned by 'terminate() after the tree died'); tree-survivor
coverage is intact. A stderr-'inherit' disposition test completes the
stdout/stderr symmetry so the scoped subprocess+lsp coverage gate stands
alone instead of leaning on subagent-acp's cross-package runs.

Docs: SubprocessHandle type-equiv block, seam/impl/group READMEs, and the
consumer-migration Agent Note lose the kill(signal?) vocabulary (zh pairs
re-recorded); cordis api/services catalogs regenerated.
2026-07-27 04:41:04 +08:00
..
approval.i18n.yaml docs(i18n): mirror ACP-automation edits into the zh pairs from master 2026-07-25 01:58:42 +08:00
approval.md Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol 2026-07-24 23:43:10 +08:00
approval.zh.md docs(i18n): mirror ACP-automation edits into the zh pairs from master 2026-07-25 01:58:42 +08:00
bash.i18n.yaml refactor(subprocess): rename the process seam to subprocess and address review 2026-07-26 12:43:59 +08:00
bash.md refactor(subprocess): rename the process seam to subprocess and address review 2026-07-26 12:43:59 +08:00
bash.zh.md refactor(subprocess): rename the process seam to subprocess and address review 2026-07-26 12:43:59 +08:00
code-runtime.i18n.yaml docs(i18n): refresh core translations for latest master 2026-07-23 19:29:01 +08:00
code-runtime.md Merge branch 'worktree/pr343-retarget-latest-master' into worktree/pr344-retarget-stack 2026-07-23 19:10:25 +08:00
code-runtime.zh.md docs(i18n): refresh core translations for latest master 2026-07-23 19:29:01 +08:00
commands.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
commands.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
commands.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
compaction.i18n.yaml docs(i18n): address final core-data review 2026-07-24 16:21:48 +08:00
compaction.md Merge branch 'worktree/pr343-retarget-latest-master' into worktree/pr344-retarget-stack 2026-07-23 00:19:53 +08:00
compaction.zh.md docs(i18n): address final core-data review 2026-07-24 16:21:48 +08:00
core.i18n.yaml refactor(subprocess): rename the process seam to subprocess and address review 2026-07-26 12:43:59 +08:00
core.md refactor(subprocess): rename the process seam to subprocess and address review 2026-07-26 12:43:59 +08:00
core.zh.md refactor(subprocess): rename the process seam to subprocess and address review 2026-07-26 12:43:59 +08:00
filesystem.i18n.yaml docs(i18n): refresh core translations for latest master 2026-07-23 19:29:01 +08:00
filesystem.md Merge branch 'worktree/pr343-retarget-latest-master' into worktree/pr344-retarget-stack 2026-07-23 19:10:25 +08:00
filesystem.zh.md docs(i18n): refresh core translations for latest master 2026-07-23 19:29:01 +08:00
goal.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
goal.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
goal.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
llm-streaming.i18n.yaml fix: align empty-response retry with current master 2026-07-25 14:39:57 +08:00
llm-streaming.md Merge branch 'master' into feat/llm-empty-response-retry 2026-07-25 13:05:55 +08:00
llm-streaming.zh.md fix: align empty-response retry with current master 2026-07-25 14:39:57 +08:00
lsp.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
lsp.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
lsp.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
persistence.i18n.yaml Merge remote-tracking branch 'origin/master' into session-query-tool 2026-07-25 15:43:45 +08:00
persistence.md Merge remote-tracking branch 'origin/master' into session-query-tool 2026-07-25 15:43:45 +08:00
persistence.zh.md fix(persistence): reconcile project session layout 2026-07-25 15:11:17 +08:00
pty.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
pty.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
pty.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
sandbox.i18n.yaml docs(i18n): address core translation review 2026-07-24 14:56:48 +08:00
sandbox.md Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-22 22:26:24 +08:00
sandbox.zh.md docs(i18n): address core translation review 2026-07-24 14:56:48 +08:00
scope.i18n.yaml docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00
scope.md Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-22 22:26:24 +08:00
scope.zh.md docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00
session-query.i18n.yaml Merge remote-tracking branch 'origin/master' into session-query-tool 2026-07-25 14:17:24 +08:00
session-query.md Merge remote-tracking branch 'origin/master' into session-query-tool 2026-07-25 14:17:24 +08:00
session-query.zh.md Merge remote-tracking branch 'origin/master' into session-query-tool 2026-07-25 14:17:24 +08:00
session-reference.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
session-reference.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
session-reference.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
session-title.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
session-title.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
session-title.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
session.i18n.yaml docs(i18n): mirror ACP-automation edits into the zh pairs from master 2026-07-25 01:58:42 +08:00
session.md Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol 2026-07-24 23:43:10 +08:00
session.zh.md docs(i18n): mirror ACP-automation edits into the zh pairs from master 2026-07-25 01:58:42 +08:00
skills.i18n.yaml docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00
skills.md Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-22 22:26:24 +08:00
skills.zh.md docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00
spill.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
spill.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
spill.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
subagent.i18n.yaml docs(subagent): restore refusal contract comment 2026-07-25 15:25:52 +08:00
subagent.md docs(subagent): restore refusal contract comment 2026-07-25 15:25:52 +08:00
subagent.zh.md docs(subagent): restore refusal contract comment 2026-07-25 15:25:52 +08:00
subprocess.i18n.yaml refactor(subprocess): keep terminate() as the seam's only termination verb 2026-07-27 04:41:04 +08:00
subprocess.md refactor(subprocess): keep terminate() as the seam's only termination verb 2026-07-27 04:41:04 +08:00
subprocess.zh.md refactor(subprocess): keep terminate() as the seam's only termination verb 2026-07-27 04:41:04 +08:00
system-prompt.i18n.yaml docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00
system-prompt.md Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-22 22:26:24 +08:00
system-prompt.zh.md docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00
tasks.i18n.yaml docs(tasks): bring the zh side of the tasks pairs along after the master merge 2026-07-26 20:59:05 +08:00
tasks.md Merge remote-tracking branch 'origin/master' into worktree-tasks-service-seam 2026-07-26 20:28:37 +08:00
tasks.zh.md docs(tasks): bring the zh side of the tasks pairs along after the master merge 2026-07-26 20:59:05 +08:00
token-meter.i18n.yaml docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
token-meter.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
token-meter.zh.md docs: translate remaining non-README documentation 2026-07-26 02:33:29 +08:00
tools.i18n.yaml fix(tools): bound the shaped-append side channel; total error containment; recorded spill snapshot 2026-07-26 18:29:09 +08:00
tools.md fix(tools): bound the shaped-append side channel; total error containment; recorded spill snapshot 2026-07-26 18:29:09 +08:00
tools.zh.md fix(tools): bound the shaped-append side channel; total error containment; recorded spill snapshot 2026-07-26 18:29:09 +08:00
user-interaction.i18n.yaml docs(i18n): mirror ACP-automation edits into the zh pairs from master 2026-07-25 01:58:42 +08:00
user-interaction.md Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol 2026-07-24 23:43:10 +08:00
user-interaction.zh.md Merge remote-tracking branch 'origin/master' into worktree/acp-automation-protocol 2026-07-24 23:43:10 +08:00
web.i18n.yaml docs(i18n): clarify review terminology 2026-07-24 14:21:36 +08:00
web.md Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-22 22:26:24 +08:00
web.zh.md docs(i18n): clarify review terminology 2026-07-24 14:21:36 +08:00
workflow.i18n.yaml docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00
workflow.md Merge refreshed docs/i18n-batch-core into docs/i18n-batch-cds-postmortem 2026-07-22 22:26:24 +08:00
workflow.zh.md docs(i18n): normalize core terminology 2026-07-23 18:45:56 +08:00