From 46ab745198d84b895462eb1e43a6651512d9ba95 Mon Sep 17 00:00:00 2001
From: Tianyi Cui <53024+tianyicui@users.noreply.github.com>
Date: Fri, 24 Jul 2026 12:10:40 +0800
Subject: [PATCH 1/2] docs: align Goal Round step cardinality
---
docs/glossary.i18n.yaml | 2 +-
docs/glossary.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/glossary.i18n.yaml b/docs/glossary.i18n.yaml
index e49ddd96c6..b63e41b87b 100644
--- a/docs/glossary.i18n.yaml
+++ b/docs/glossary.i18n.yaml
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write
-glossary.md: 414fb5342886ce9fc775c529a7e61f0d760e93c6
+glossary.md: 0270a2d0dba558483e8e458a932a27b0151f2c93
glossary.zh.md: ed3009a054815f1c7165fc322e44cc9521527643
diff --git a/docs/glossary.md b/docs/glossary.md
index 414fb53428..0270a2d0db 100644
--- a/docs/glossary.md
+++ b/docs/glossary.md
@@ -21,7 +21,7 @@ FIXME(glossary-completeness): Expand this glossary before the first release so i
## goal
- **goal** — one durable completion objective attached to an existing session, with a revisioned `active` / `paused` / `blocked` / `complete` phase and a goal-round cap; `blocked` retains a policy code and explanation. A goal is state, not a scheduler or a separate conversation; the session log remains its source of truth.
-- **goal round** — one continuation cycle admitted for the current goal. The same-session driver materializes a goal round as one goal-sourced [turn](#turn), which can contain multiple steps; unrelated human turns in the same session do not consume the goal-round cap.
+- **goal round** — one continuation cycle admitted for the current goal. The same-session driver materializes a goal round as one goal-sourced [turn](#turn), which can contain zero or more steps; unrelated human turns in the same session do not consume the goal-round cap.
- **goal activation** — process-local permission for a continuation consumer to admit another goal round. Activation is either `armed` or `disarmed`; it is deliberately absent from durable replay, so resume and fork require a later human-authorized resume mutation through `/goal` or the model tool before automatic work.
## human command
From 250162a2fca31daa1cea947788ba228ea1232a1b Mon Sep 17 00:00:00 2001
From: Tianyi Cui <53024+tianyicui@users.noreply.github.com>
Date: Fri, 24 Jul 2026 12:11:58 +0800
Subject: [PATCH 2/2] docs: align core catalog translations
---
docs/core-data-structures/core.i18n.yaml | 4 ++--
docs/core-data-structures/core.md | 2 +-
docs/core-data-structures/core.zh.md | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/core-data-structures/core.i18n.yaml b/docs/core-data-structures/core.i18n.yaml
index 7a48092688..4cf6d47d23 100644
--- a/docs/core-data-structures/core.i18n.yaml
+++ b/docs/core-data-structures/core.i18n.yaml
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write
-core.md: 21b7c39ad7b60ab7454452a3830808c041850919
-core.zh.md: 4421d44954111fc471087d13ad7dfc94301257e2
+core.md: b0aa719974c5e5839027a6f958ce08259053da76
+core.zh.md: 12bb477686ad37cce2e98319b8d75ffefc50bbb9
diff --git a/docs/core-data-structures/core.md b/docs/core-data-structures/core.md
index 21b7c39ad7..b0aa719974 100644
--- a/docs/core-data-structures/core.md
+++ b/docs/core-data-structures/core.md
@@ -454,7 +454,7 @@ interface Agent {
`AgentStatus` is `'idle' | 'running' | 'disposed'`, and `SessionId` is branded. `running` describes the driver-wide drain interval, which can span turn close, its durability checkpoint, and consecutive queued turns; it does not prove a turn is still open. `AgentOptions` is merge-extensible: core declares `provider?` and `model?` (dispatch requires both after `agent/request`). Persona belongs to `dsh-system-prompt`: an agent-scoped `deployment:persona` may shadow the global default.
-The cause is a TypeScript-enforced same-process input. An active holder copies its discriminant into the runtime-only `AbortSignal.reason`; it is retired before `turn/end` publication. `agentInterruptReasonOf(signal)` recognizes `user`, `parent`, and lifecycle-only `disposed` without consulting ambient initiator state. Durable `turn/end` retains the coarse `{ kind: 'aborted' }` outcome; request provenance would require a separate durable event rather than overloading the terminal result.
+The cause is a TypeScript-enforced same-process input. An active `TurnCancellation` holder copies its discriminant into the runtime-only `AbortSignal.reason` and is retired before `turn/end` publication; the frozen `AbortSignal.reason` remains readable after that retirement. `agentInterruptReasonOf(signal)` recognizes `user`, `parent`, and lifecycle-only `disposed` without consulting ambient initiator state. Durable `turn/end` retains the coarse `{ kind: 'aborted' }` outcome; request provenance would require a separate durable event rather than overloading the terminal result.
The [event taxonomy](../architecture.md#event) owns the `agent/*` lifecycle, checkpoint, and waterfall contracts. Turn and step boundaries are durable session events rather than agent emits.
diff --git a/docs/core-data-structures/core.zh.md b/docs/core-data-structures/core.zh.md
index 4421d44954..12bb477686 100644
--- a/docs/core-data-structures/core.zh.md
+++ b/docs/core-data-structures/core.zh.md
@@ -11,7 +11,7 @@ harness 是一个微内核:一个极小的核心加上众多插件。大多数
精确地说,一个数据结构是**核心**的,当且仅当满足以下条件之一:
1. 它流经 agent loop 主干——循环在每个轮次中持有、派生、流式输出或记录它(`Message`、`StreamChunk`、`SessionEvent`、`Agent` 句柄本身),与当前加载了哪些插件无关;**或者**
-2. 它是插件作者面向某条流水线编写的唯一标题类型——`ToolDefinition`(每个工具*是什么*)。
+2. 它是插件作者面向某条流水线编写的代表性类型——`ToolDefinition`(每个工具*是什么*)。
其他一切都记录在**子页面**上,而非本页。划线的规则是:*你编写、持有或接收的类型是核心;为它提供类型推导、渲染或持久化的机制是子页面细节*。因此 `ToolDefinition` 是核心,但为它提供类型推导的 `ValueSchemaSpec`/`ParameterSchemaSpec` 机制、为它提供渲染意图的 `ToolCallView`/`ToolResultView` 词汇,以及存储事件日志的 `SessionPersistence` seam 都不是——它们分别在下列子页面中。