@zq-silk/yui 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/cli/commandCatalog.js +34 -7
- package/dist/cli/updateCommand.js +3 -0
- package/dist/commands/configCommands.js +1 -0
- package/dist/commands/globalRoleCommands.js +62 -35
- package/dist/commands/inboxCommands.js +372 -0
- package/dist/commands/roleSkillValidation.js +2 -0
- package/dist/commands/taskCommands.js +39 -7
- package/dist/commands/taskRoleRuntimeStatus.js +2 -0
- package/dist/context/currentSkills.js +48 -0
- package/dist/context/roleSessionContext.js +13 -16
- package/dist/context/runContextPack.js +50 -3
- package/dist/context/runInputContract.js +1 -1
- package/dist/context/sessionBootstrapManifest.js +27 -4
- package/dist/context/skillCatalog.js +2 -3
- package/dist/context/taskContext.js +38 -12
- package/dist/controlPlaneCli.js +58 -7
- package/dist/controller/controller.js +8 -2
- package/dist/controller/fileSchedulerStoreAdapter.js +26 -6
- package/dist/controller/globalInputDelivery.js +86 -16
- package/dist/controller/globalRuntimeAttention.js +136 -6
- package/dist/controller/operatorNotification.js +6 -1
- package/dist/controller/providerRetryDelivery.js +3 -5
- package/dist/controller/runtime.js +6 -2
- package/dist/controller/structuredProviderObservation.js +51 -15
- package/dist/controller/taskHostTerminalRecovery.js +33 -0
- package/dist/doctor/doctor.js +25 -2
- package/dist/executor/effectiveLaunch.js +2 -2
- package/dist/executor/fileRoleLaunchPlanner.js +8 -15
- package/dist/interaction/notificationPresentation.js +2 -2
- package/dist/interaction/operatorPresentation.js +1 -1
- package/dist/message/globalInputBacklog.js +69 -0
- package/dist/message/globalMessageQuery.js +1 -0
- package/dist/message/inboxReceipt.js +62 -0
- package/dist/message/message.js +6 -1
- package/dist/message/messageContinuation.js +34 -13
- package/dist/message/taskInboxOwnership.js +43 -0
- package/dist/models/modelManagement.js +469 -0
- package/dist/models/modelManagementConfig.js +46 -0
- package/dist/models/modelManagementFiles.js +90 -0
- package/dist/models/modelManagementHttp.js +90 -0
- package/dist/models/modelManagementTypes.js +1 -0
- package/dist/nativeAgent/session/backends.js +1 -1
- package/dist/observability/runtimeIdentity.js +1 -1
- package/dist/output/boundedRead.js +43 -14
- package/dist/resources/sqliteResourceRegistry.js +1 -1
- package/dist/runtime/agentEndpointIdentity.js +8 -4
- package/dist/runtime/agentEndpointOwnership.js +5 -6
- package/dist/runtime/agentHost.js +165 -24
- package/dist/runtime/agentHostImplementation.js +18 -0
- package/dist/runtime/managedCaller.js +25 -1
- package/dist/runtime/managedIdentity.js +1 -1
- package/dist/runtime/providerRetry.js +19 -1
- package/dist/runtime/sessionCaller.js +53 -0
- package/dist/scheduler/operatorEvent.js +49 -0
- package/dist/scheduler/operatorInputNotificationProcessor.js +5 -4
- package/dist/scheduler/taskWake.js +5 -0
- package/dist/sqlite/driver.js +108 -0
- package/dist/storage/contextRecords.js +28 -0
- package/dist/storage/sqliteSchema.js +21 -1
- package/dist/storage/sqliteStore.js +64 -1
- package/dist/storage/storageSchema.js +1 -1
- package/dist/storage/storageVersions.js +1 -1
- package/dist/storage/storeRpc.js +1 -0
- package/dist/storage/taskStore.js +4 -0
- package/dist/storage/upgrade/upgradeOrchestrator.js +1 -1
- package/dist/task/completionReadiness.js +13 -6
- package/dist/telemetry/sqliteTelemetryStore.js +1 -1
- package/dist/web/assets/assetManifest.js +28 -2
- package/dist/web/assets/client/app/manage.js +6 -0
- package/dist/web/assets/client/app/models.js +20 -0
- package/dist/web/assets/client/app/settings.js +41 -9
- package/dist/web/assets/client/i18n/en.js +180 -2
- package/dist/web/assets/client/i18n/zh-CN.js +178 -2
- package/dist/web/assets/client/index.js +8 -0
- package/dist/web/assets/client/layout/manageShell.js +94 -0
- package/dist/web/assets/client/lib/api.js +13 -1
- package/dist/web/assets/client/lib/i18n.js +5 -3
- package/dist/web/assets/client/views/dock/conversation.js +231 -80
- package/dist/web/assets/client/views/models.js +777 -0
- package/dist/web/assets/client/views/skills.js +22 -15
- package/dist/web/assets/shared/icons.js +2 -0
- package/dist/web/assets/shared/manageNav.js +13 -0
- package/dist/web/assets/shell/manage.js +54 -0
- package/dist/web/assets/shell/models.js +7 -0
- package/dist/web/assets/shell/settings.js +1 -35
- package/dist/web/assets/shell/settingsContent.js +30 -0
- package/dist/web/assets/shell/sidebar.js +1 -0
- package/dist/web/assets/styles/index.js +6 -0
- package/dist/web/assets/styles/views/conversation.js +133 -0
- package/dist/web/assets/styles/views/manage.js +71 -0
- package/dist/web/assets/styles/views/models.js +129 -0
- package/dist/web/assets/styles/views/settings.js +28 -14
- package/dist/web/assets/styles/views/sidebar.js +1 -0
- package/dist/web/webServer.js +59 -9
- package/docs/cli-information-contract.md +42 -11
- package/docs/cli-information-contract.zh-CN.md +28 -7
- package/docs/managed-turn-and-session-runtime.md +127 -5
- package/docs/managed-turn-and-session-runtime.zh-CN.md +83 -3
- package/docs/release-workflow.md +105 -9
- package/docs/release-workflow.zh-CN.md +73 -5
- package/docs/storage-baseline.md +22 -7
- package/docs/storage-baseline.zh-CN.md +14 -5
- package/docs/task-delivery.md +17 -8
- package/docs/task-delivery.zh-CN.md +11 -5
- package/docs/testing/review-evaluation.md +148 -0
- package/docs/testing/review-evaluation.zh-CN.md +117 -0
- package/docs/testing/verification-levels.md +26 -4
- package/docs/testing/verification-levels.zh-CN.md +11 -1
- package/i18n/README.zh-CN.md +19 -0
- package/package.json +5 -2
- package/skills/yui-leader/SKILL.md +28 -11
- package/skills/yui-leader/VERSION +1 -0
- package/skills/yui-leader/references/execution.md +29 -0
- package/skills/yui-leader/references/replicated-execution.md +7 -0
- package/skills/yui-operator/SKILL.md +15 -3
- package/skills/yui-operator/VERSION +1 -0
- package/skills/yui-operator/references/task-delivery.md +2 -0
- package/skills/yui-reviewer/SKILL.md +43 -1
- package/skills/yui-reviewer/VERSION +1 -0
- package/skills/yui-runtime/SKILL.md +144 -15
- package/skills/yui-runtime/VERSION +1 -0
- package/skills/yui-runtime/references/publication.md +16 -5
- package/skills/yui-runtime/references/recovery.md +24 -5
- package/skills/yui-worker/SKILL.md +8 -1
- package/skills/yui-worker/VERSION +1 -0
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
# Session、AgentRun 与通知
|
|
4
4
|
|
|
5
|
+
## 当前身份与持久处理回执
|
|
6
|
+
|
|
7
|
+
桌面与 TUI 使用相同的当前 Session 授权。只有 `CODEX_THREAD_ID` 的桌面命令
|
|
8
|
+
先在所选 Home 的现有活动 Session 索引中定位角色,再校验当前绑定、撤销状态、
|
|
9
|
+
工作域和 Assignment。Codex 原生线程 ID 优先于继承的 transport ID,原生子
|
|
10
|
+
Agent 不能借用父身份。错误 Home、未知线程和冲突提示会明确拒绝,不降为公共
|
|
11
|
+
用户;只有不带受管或原生身份的终端才是普通用户。环境变量和 Manifest 是
|
|
12
|
+
定位提示,不是持续授权。旧 Session 仅保留限定的自身诊断读取。
|
|
13
|
+
|
|
14
|
+
`yui inbox list` 分别返回当前身份、投递事实、处理状态和阻断原因。自动接受的
|
|
15
|
+
Global 消息、已投递的 Leader 窗口及当前 Assignment 续接消息仍须显式 claim,
|
|
16
|
+
核对原文和既有副作用,完成处理后再 `ack --reason`。这不会重新投递输入;
|
|
17
|
+
pending/unknown 不能借 claim 接管。合法继任者可以核对并结清已接受的 Global
|
|
18
|
+
输入或 Leader 窗口,保留原投递目标。说明中可引用结果和外部操作回执。
|
|
19
|
+
native terminal 不能替代用户输入处理,也不能单独满足 Task 完成条件。
|
|
20
|
+
|
|
21
|
+
回执继续保存在现有 Message/TaskWake 中。自动通知和主动领取都以既有
|
|
22
|
+
`message.updated` 事件 ID 绑定可变 Draft 修订,同时间戳的修改也不会沿用旧
|
|
23
|
+
ack。已领取消息的原文和固定窗口引用不能被悄悄替换,重复通知不会重新提交
|
|
24
|
+
已投递修订。处理崩溃或副作用完成后 ack 失败时,先读回 claim 和外部回执,
|
|
25
|
+
只完成未完成工作,再重试相同确认。上下文压缩、Session 续接和升级不清空回执。
|
|
26
|
+
实现复用 storage 1.7 的现有字段,不新增消息系统或 schema 迁移,也不承诺
|
|
27
|
+
任意外部系统的天然 exactly-once。
|
|
28
|
+
|
|
5
29
|
Global Session 停止/替换与 Task Session 共用精确的原生执行静止确认边界。
|
|
6
30
|
Host 消失或 Session 已入历史不代表已接受输入结束:须先检查并停止保留的
|
|
7
31
|
Provider binding,再结算执行占用。Global 停止证据保存为仅记录的 system Message,
|
|
@@ -55,9 +79,19 @@ Run Context 冻结 Assignment、来源引用、生效配置和工作区边界。
|
|
|
55
79
|
和消息正文,而不是把加载成功当成交付物。规划 Pack 不暴露 Project 写范围或 Task 完成
|
|
56
80
|
权限。
|
|
57
81
|
|
|
58
|
-
Manifest
|
|
59
|
-
|
|
60
|
-
|
|
82
|
+
Manifest 指针是恢复定位入口,不是已读凭据。每轮开始通过本 Session 的 CLI/Home 执行
|
|
83
|
+
`yui session skills --json`,轻量检查当前路径、内部 `VERSION` 和文件可读性,不读取
|
|
84
|
+
正文或遍历/冻结资源。内置入口是当前安装目录的 `skills/<id>`,自定义入口是
|
|
85
|
+
`YUI_HOME/skills/<id>`,不包含 Session/内容摘要;安装位置变化后由检查重新解析当前入口。
|
|
86
|
+
Global Manifest 的 `skillCheckCommand` 使用自包含的 `session context <role>`,
|
|
87
|
+
同时返回 Skill 元数据,因此切换到 Desktop 后不依赖启动 shell 的环境;
|
|
88
|
+
旧 Global Manifest 的 `loadCommand` 也能执行相同检查。
|
|
89
|
+
首次进入、版本变化、恢复,以及压缩后全文缺失或可用性不确定时,读取当前 Runtime、
|
|
90
|
+
Role/custom Skills 全文及必要引用、Manifest 的 profile。只有版本未变且全文仍在当前
|
|
91
|
+
上下文时才复用。系统不保存“已经读过”状态,也不声称检查了模型上下文。
|
|
92
|
+
历史冻结包仅作审计:缺失或损坏不阻止合法 Session 恢复与消息投递;当前文件缺失则
|
|
93
|
+
报告具体路径和修复动作。身份、作用域、writer fence 与实际 CLI/Home 不兼容仍会拒绝。
|
|
94
|
+
动态事实仍须刷新:
|
|
61
95
|
Leader 通知使用 `currentCommand`,显式 AgentRun 使用真实 Run ID 的
|
|
62
96
|
`loadCommand`/`expandCommand`,不可直接执行占位模板。
|
|
63
97
|
|
|
@@ -110,6 +144,52 @@ Leader 本地编辑保留持久事件,但不创建自唤醒。当 Leader 忙
|
|
|
110
144
|
Task 叙述。人工输入、显式执行进入和激活失败通过既有唤醒机制及时投递。Worker 结果
|
|
111
145
|
保留其聚合窗口。忙碌的原生输入仍保留待处理的消息。
|
|
112
146
|
|
|
147
|
+
### Operator 积压与周期恢复
|
|
148
|
+
|
|
149
|
+
Task 完成/取消/退役、Publication 记录/采用及 InputRequest 与持久事件在同一事务中
|
|
150
|
+
进入 Operator 邮箱;Run 失败继续遵守既有重试和监督路由。邮箱自身就是增量恢复源:
|
|
151
|
+
通知信号遗漏或 Controller 重启后,既有周期协调读取尚未处理的引用,不依赖 Leader
|
|
152
|
+
主动报告,也不遍历历史 Task。已结算且无变化的邮箱不会生成消息或调用模型。
|
|
153
|
+
|
|
154
|
+
最多保留一条未发送的工程通知,后续事实在原邮箱中合并,直到该通知已接受或明确未投递。
|
|
155
|
+
每次认领最多 64 个来源信号,读取精确记录并保留未认领后缀。Global 投递每个 Role 每轮
|
|
156
|
+
最多读取 64 条待处理消息;已证明失效的原始消息保留未投递证据,后续页由下一轮处理。
|
|
157
|
+
interrupt-then 的预留输入不会因超出普通页而被跳过,用户输入顺序和未知效果围栏保持不变。
|
|
158
|
+
SQL 聚合仍检查匹配的存储行;这些上界约束物化记录和每轮投递工作,不限制持久邮箱或数据库大小。
|
|
159
|
+
|
|
160
|
+
完整周期协调可要求原 Host 重发它已经观察到的精确终态,严格绑定 Session、
|
|
161
|
+
authority、attempt 和 native Turn。Desktop direct 回合还要求该 Host 保留同一 writer 围栏下
|
|
162
|
+
精确匹配的开始和结束,同时核对 `direct:<nativeTurnId>` 与 native Turn;只保留最近一次
|
|
163
|
+
观察,不把 direct 输入改为 client-owned。通过原 Inbox 和规范观察器处理完整结果;不提交新输入、
|
|
164
|
+
另开原生客户端查询、重启 Host,也不凭时间或 idle 推定静止。正常终态在释放 Host 占用后
|
|
165
|
+
再次发出队列信号。未知接受只有精确证据才能结算,显式停止/替换及外部 writer 仍是硬边界。
|
|
166
|
+
|
|
167
|
+
`yui session context <role> --json` 的 `backlog` 提供有界待投递数量、最老时间、
|
|
168
|
+
目标与尝试身份、阻塞原因和恢复指引;实时年龄位于分页摘要外的 `backlogObservation`,
|
|
169
|
+
不会令分页游标因时间流逝失效。`in-flight-or-unobserved-terminal` 不把长期 accepted
|
|
170
|
+
误报为卡死。Host 不可达、不支持重观察或缺少保留终态时,每个精确尝试只留下一个 record-only
|
|
171
|
+
runtime-attention Message,可通过既有 message list/show 查看,不自动唤醒恢复 Agent。
|
|
172
|
+
如果 Provider 从未报告终态,或原 Host 已失去证据,则不能自动证明完成;须恢复兼容观察路径,
|
|
173
|
+
或在取得原生静止证据后显式停止/替换。不新增私有定时器、迁移或 ack 状态,不猜补任意旧历史、
|
|
174
|
+
收养旧 Host,也不授权生产升级/重启。
|
|
175
|
+
|
|
176
|
+
Controller 重启保留存活 Host,不替换它们已加载的代码。支持当前协议的原 Host 在 Controller
|
|
177
|
+
停机期间仍把原始观察写入不可变 Inbox,重启后由 Controller 按当前 Session 围栏应用。
|
|
178
|
+
Inbox 写入故障时,Host 保留尚未持久化的原始 start 与完整终态,不能被后续直接 Turn
|
|
179
|
+
覆盖;修复后按原始观察顺序补收。Task 与 Global 完整协调也覆盖没有后续输入的最后
|
|
180
|
+
一个未结算 Turn。补收不重执行;落盘前进程丢失仍是明确的恢复缺口。
|
|
181
|
+
冻结 Manifest 的旧 CLI/storage 不匹配是 Context 读取失败,不足以证明 Host 发布失败:
|
|
182
|
+
发布器使用 Inbox/RPC,不执行该 CLI。Endpoint 的 checkout generation 也不是完整 Host
|
|
183
|
+
构建身份。runtime-attention 区分控制通道不可达、控制被拒绝(包括实现不支持协调)和
|
|
184
|
+
精确终态未保留,并附已报告的 Endpoint/eventDelivery 观察;缺少诊断表示未报告,而非健康。
|
|
185
|
+
status 的 `controlCapabilities` 决定可用的 v1 增量命令,未声明 `reconcile-turn` 时
|
|
186
|
+
直接返回 unsupported,不发送已知无效请求,仍可消费原始 Inbox。
|
|
187
|
+
`hostImplementation` 在 Host 加载时捕获,不借磁盘当前安装或 Endpoint generation
|
|
188
|
+
冒充运行代码。兼容构建差异不阻止安全释放后的同一原生 Session 恢复,
|
|
189
|
+
不改变模型、账号、原生权限或工作域。
|
|
190
|
+
再次重启 Controller 或猜测 adoption 不能修复不支持的存活代码;须检查原证据,并为必要的
|
|
191
|
+
生命周期恢复另行取得明确授权。
|
|
192
|
+
|
|
113
193
|
| 证据 | 处置 |
|
|
114
194
|
| --- | --- |
|
|
115
195
|
| 忙碌且已证明未接受 | 保留输入;新的传输尝试可以使用同一 Session |
|
package/docs/release-workflow.md
CHANGED
|
@@ -51,6 +51,80 @@ merely to avoid a version decision. Package versions remain distinct from protoc
|
|
|
51
51
|
and persistent-storage contracts: their compatibility checks and required migrations
|
|
52
52
|
are unchanged, and the storage rules below do not authorize a package release.
|
|
53
53
|
|
|
54
|
+
### 2.8.0 compatibility and migration notes
|
|
55
|
+
|
|
56
|
+
This minor adds native metabridge model management: provider configuration,
|
|
57
|
+
cached model catalogs, and manual subscription-quota observations through the
|
|
58
|
+
supported CPA extensions. Models and Settings share navigation, canonical
|
|
59
|
+
section URLs, browser history, locale and theme handling. Content-versioned
|
|
60
|
+
static assets improve repeat navigation; HTML and account APIs remain uncached.
|
|
61
|
+
The release also includes the chat-style Conversation dock, bounded runtime
|
|
62
|
+
diagnostics, native caller/inbox corrections, and review-context improvements
|
|
63
|
+
merged since 2.7.1.
|
|
64
|
+
|
|
65
|
+
Storage advances from **1.7 to 1.8** through the centralized additive transition
|
|
66
|
+
for optional, non-secret model connection references. Existing Homes remain
|
|
67
|
+
unconfigured. A separately authorized upgrade can use
|
|
68
|
+
`yui update --version 2.8.0`; the updater owns preflight, backup, migration and
|
|
69
|
+
Controller replacement. Do not open an upgraded Home with an older binary or
|
|
70
|
+
edit its storage manually.
|
|
71
|
+
|
|
72
|
+
metabridge and CPA remain separately operated services; installing Yui does not
|
|
73
|
+
start, reload or adopt them. Configure their connection references explicitly.
|
|
74
|
+
Saving provider configuration does not prove it is applied or validate inference.
|
|
75
|
+
CPA still owns its upstream OAuth/account pool. Quota refresh may query billing
|
|
76
|
+
services but does not renew credentials, reset quota or run inference. Unknown,
|
|
77
|
+
partial and stale observations remain distinct.
|
|
78
|
+
|
|
79
|
+
Release evidence is deterministic core CI and isolated, fresh-install package
|
|
80
|
+
smoke on supported Linux/macOS and Node versions, not real-model validation.
|
|
81
|
+
Publishing this package alone does not authorize a global CLI update, a Home
|
|
82
|
+
migration, or any production-service restart.
|
|
83
|
+
|
|
84
|
+
### 2.7.1 compatibility and migration notes
|
|
85
|
+
|
|
86
|
+
This release delivers the intended 2.7 feature line. The `v2.7.0` attempt stopped
|
|
87
|
+
before npm publication because package smoke compared a macOS temporary path
|
|
88
|
+
with its physical alias. The smoke now uses the physical package root; its
|
|
89
|
+
assertions and the cross-platform release gate remain intact.
|
|
90
|
+
|
|
91
|
+
This minor adds own-scope Agent inbox discovery, full reads, claims and
|
|
92
|
+
acknowledgements for GlobalRoles and Task Leaders, Workers and Reviewers.
|
|
93
|
+
Use `yui inbox list/show/claim/ack` from the current managed Session; reads do
|
|
94
|
+
not consume input, claims do not grant additional authority, and an
|
|
95
|
+
acknowledgement is not execution-result acceptance. Durable receipts arbitrate
|
|
96
|
+
with automatic delivery without replaying unknown native input.
|
|
97
|
+
|
|
98
|
+
Storage advances from **1.6 to 1.7** through the centralized additive migration
|
|
99
|
+
for Message and Leader-wake inbox receipts. Use `yui update --version 2.7.1`
|
|
100
|
+
for an exact upgrade; the updater preflights the target Home, takes a backup
|
|
101
|
+
when migration is required, and coordinates the exact Controller replacement.
|
|
102
|
+
Do not edit stored records manually. Task, Session and original input history
|
|
103
|
+
remain authoritative.
|
|
104
|
+
|
|
105
|
+
Runtime and Role instructions now use stable current source paths and independent
|
|
106
|
+
integer `VERSION` files. Every managed turn checks `yui session skills --json`;
|
|
107
|
+
only unchanged full instructions still present in context may be reused.
|
|
108
|
+
Recovery, version changes and missing/uncertain context require full reload.
|
|
109
|
+
Configured Skills must supply `VERSION` beside `SKILL.md`.
|
|
110
|
+
|
|
111
|
+
Frozen packages remain historical audit, not a Session admission condition.
|
|
112
|
+
Valid pre-1.5 Sessions may resume without that evidence; no historical read,
|
|
113
|
+
native acceptance or input consumption is fabricated. Identity, scope, writer,
|
|
114
|
+
lifecycle, protocol/storage and unknown-input fences are unchanged. The Skill
|
|
115
|
+
loading change itself adds no storage migration.
|
|
116
|
+
|
|
117
|
+
This release also recovers Operator notification backlogs and Desktop-direct
|
|
118
|
+
terminal facts across Controller replacement, retaining exact input and Turn
|
|
119
|
+
identities. SQLite prefers the pinned modern N-API driver, with a bounded
|
|
120
|
+
compatibility fallback when that optional native candidate is unavailable;
|
|
121
|
+
this fixes the reproduced Node 24 native GC abort.
|
|
122
|
+
|
|
123
|
+
Deterministic core checks and isolated assembled/fresh-install package smoke
|
|
124
|
+
are the release evidence; they do not establish real-model behavior.
|
|
125
|
+
Publishing this package alone does not authorize a global CLI update, Home
|
|
126
|
+
migration or Controller replacement.
|
|
127
|
+
|
|
54
128
|
### 2.6.0 compatibility and migration notes
|
|
55
129
|
|
|
56
130
|
This minor includes Task111's paged current activity and parallel execution
|
|
@@ -118,8 +192,9 @@ fixes are included; Task110's unmerged work is not part of this release.
|
|
|
118
192
|
Storage is now **1.6**. Use the supported centralized, contiguous same-major
|
|
119
193
|
upgrade path for older supported Homes; do not edit stored records manually.
|
|
120
194
|
Historical missing cost remains unknown. Old Skill provenance is not rebuilt
|
|
121
|
-
from today's files
|
|
122
|
-
|
|
195
|
+
from today's files. The original 2.4 restoration restriction for missing packages
|
|
196
|
+
is superseded by the current Skill-loading contract above; preserve old history
|
|
197
|
+
without making that audit evidence a Session admission condition.
|
|
123
198
|
Current model adoption is connection-local and does not change future defaults;
|
|
124
199
|
exit the Host-owned native TUI before changing its model (closing a viewer only
|
|
125
200
|
detaches it). Unknown sends must be inspected by their original request ID,
|
|
@@ -306,13 +381,27 @@ Home database, including for process custody, native account locations, or
|
|
|
306
381
|
execution-environment checks. Only the Controller owns storage and resolves
|
|
307
382
|
durable facts; malformed current input fails at its normal protocol boundary.
|
|
308
383
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
384
|
+
Compatible upgrades retain logical Sessions and live Hosts. A build generation
|
|
385
|
+
is diagnostic provenance, not a native-resume gate: after a safe authorized Host
|
|
386
|
+
release, the current built-in adapter may resume the same native identity.
|
|
387
|
+
Model, account, permissions, workspace and current authority are not relaxed.
|
|
388
|
+
No module hot-replacement or old-code installation is used.
|
|
389
|
+
|
|
390
|
+
The supported interoperability range is the existing control/event v1 and RPC
|
|
391
|
+
version 1, not arbitrary historical processes. Host status now advertises
|
|
392
|
+
`controlCapabilities` and `hostImplementation` captured at process load, separate
|
|
393
|
+
from the Endpoint build. Controllers request `reconcile-turn` only when
|
|
394
|
+
advertised. Pre-advertisement v1 Hosts still support status and raw Inbox
|
|
395
|
+
consumption; exact terminal republication is unavailable, not guessed from a
|
|
396
|
+
package version. Unknown protocols remain refused.
|
|
397
|
+
|
|
398
|
+
`update` reports program/storage completion separately from retained Host state.
|
|
399
|
+
It neither interrupts compatible busy Hosts nor automatically replaces an
|
|
400
|
+
unsupported one. A required refresh uses the existing explicit lifecycle, with
|
|
401
|
+
exact Turn, background execution and writer-release evidence before reattachment.
|
|
402
|
+
Idle status alone is insufficient; uncertain state blocks refresh rather than
|
|
403
|
+
authorizing force-kill, input replay or a new native identity. Controller
|
|
404
|
+
handover locks, process-generation fences and Session authority remain enforced.
|
|
316
405
|
|
|
317
406
|
Storage upgrades are limited to the current major's explicit minor steps.
|
|
318
407
|
Cross-major conversion is independently authorized and is not a runtime fallback.
|
|
@@ -330,6 +419,13 @@ reporting alongside durable Run state. Pending native results or known reporting
|
|
|
330
419
|
failures require attention; they do not mean the Provider failed, the Run ended,
|
|
331
420
|
or the work was accepted. The Host's live diagnostics inspect only its own event
|
|
332
421
|
file identities and never parse or quarantine another producer's newer payload.
|
|
422
|
+
Missing event delivery is unreported, not healthy. `unpersisted` counts original
|
|
423
|
+
facts still held in the Host after an Inbox write failure. Reconciliation first
|
|
424
|
+
retries those exact bytes in observation order, then republishes retained exact
|
|
425
|
+
terminal evidence; it does not execute input. Keep this Host alive until its
|
|
426
|
+
bytes are durable. A filesystem fault followed by process loss cannot be
|
|
427
|
+
repaired by inventing a result. Task and Global full reconciliation use the
|
|
428
|
+
same capability-gated operation, including a final input with no queued successor.
|
|
333
429
|
|
|
334
430
|
## CLI and Controller release boundary
|
|
335
431
|
|
|
@@ -36,6 +36,59 @@ Agent 选择一个预先声明的计划,设施从持久状态驱动该计划
|
|
|
36
36
|
不能将不兼容冒称为兼容,也不为回避版本选择新增历史兼容机制。包版本与协议、
|
|
37
37
|
持久存储契约仍然独立:兼容性检查和必要迁移要求不变,下文存储规则不授予发版权限。
|
|
38
38
|
|
|
39
|
+
### 2.8.0 兼容性及迁移说明
|
|
40
|
+
|
|
41
|
+
本 minor 新增原生 metabridge 模型管理:提供商配置、模型目录缓存,以及经受支持
|
|
42
|
+
CPA 扩展手动查询的订阅额度。模型和设置共用导航、规范分区 URL、浏览器前后退、
|
|
43
|
+
语言和主题处理;带内容版本的静态资源改善重复访问,HTML 与账号 API 仍不缓存。
|
|
44
|
+
同时包含 2.7.1 之后合入的聊天式 Conversation 面板、有界运行诊断、原生调用者/
|
|
45
|
+
收件箱修正,以及评审上下文改进。
|
|
46
|
+
|
|
47
|
+
存储通过集中式增量迁移从 **1.7 升至 1.8**,新增可选、非密钥的模型连接引用;
|
|
48
|
+
已有 Home 保持未配置。另行授权升级时可使用 `yui update --version 2.8.0`,
|
|
49
|
+
由更新器负责预检、备份、迁移与 Controller 替换。不要使用旧程序打开升级后的
|
|
50
|
+
Home,也不要手工修改存储。
|
|
51
|
+
|
|
52
|
+
metabridge 与 CPA 仍为单独运维的服务,安装 Yui 不会启动、重载或自动接管它们,
|
|
53
|
+
需显式配置连接引用。保存提供商配置不代表已生效,也不验证推理;CPA 继续负责其
|
|
54
|
+
上游 OAuth/账号池。额度刷新可能查询计费服务,但不续期凭据、不重置额度、
|
|
55
|
+
不执行推理;未知、部分成功和过期观测保持区分。
|
|
56
|
+
|
|
57
|
+
发布证据为确定性核心 CI 与受支持 Linux/macOS、Node 版本上的隔离全新安装冒烟,
|
|
58
|
+
不代表真实模型验证。仅发布本包不授予全局 CLI 更新、实际 Home 迁移或生产服务重启权限。
|
|
59
|
+
|
|
60
|
+
### 2.7.1 兼容性及迁移说明
|
|
61
|
+
|
|
62
|
+
本版交付原定的 2.7 功能。`v2.7.0` 的运行包冒烟将 macOS 临时路径与其物理别名
|
|
63
|
+
直接比较,在 npm 发布前停止;现改用物理包根路径,原有断言和跨平台发布门禁
|
|
64
|
+
保持不变。
|
|
65
|
+
|
|
66
|
+
本 minor 增加 GlobalRole 及 Task Leader、Worker、Reviewer 自身作用域的 Agent
|
|
67
|
+
收件箱发现、全文读取、领取与确认。在当前受管理 Session 中使用
|
|
68
|
+
`yui inbox list/show/claim/ack`;读取不消费输入,claim 不增加权限,ack 不是执行结果
|
|
69
|
+
验收。持久回执与自动投递仲裁,不重放结果未知的原生输入。
|
|
70
|
+
|
|
71
|
+
存储通过集中式增量迁移从 **1.6 升至 1.7**,为 Message 和 Leader wake 增加收件箱
|
|
72
|
+
回执。确切升级使用 `yui update --version 2.7.1`;更新器预检目标 Home,在需要迁移
|
|
73
|
+
时备份,并协调确切 Controller 的替换。不要手工编辑存储记录,Task、Session
|
|
74
|
+
及原始输入历史仍为权威。
|
|
75
|
+
|
|
76
|
+
Runtime/Role Skill 使用稳定源入口和独立的整数 `VERSION` 文件。每轮执行
|
|
77
|
+
`yui session skills --json`;只有版本未变且全文仍在当前上下文时才复用,版本变化、
|
|
78
|
+
恢复或上下文缺失/不确定时全文重读。自定义 Skill 须在 `SKILL.md` 旁提供 `VERSION`。
|
|
79
|
+
|
|
80
|
+
冻结包仅作历史审计,不再是 Session 准入条件;合法 1.5 以前的 Session 可在缺少
|
|
81
|
+
该证据时恢复,不补造已读、原生接受或输入消费回执。身份、作用域、writer、
|
|
82
|
+
生命周期、协议/存储兼容与未知输入不重放边界保持不变。Skill 加载变更本身不增加
|
|
83
|
+
存储迁移。
|
|
84
|
+
|
|
85
|
+
本版还恢复 Controller 替换期间积压的 Operator 通知和 Desktop 直连终态事实,
|
|
86
|
+
保留精确输入与 Turn 身份。SQLite 优先使用固定版本的现代 N-API 驱动,在可选原生
|
|
87
|
+
候选不可用时有界回退至兼容候选,修复已复现的 Node 24 原生 GC 崩溃。
|
|
88
|
+
|
|
89
|
+
发版证据为确定性核心检查及隔离的组装/全新安装运行包冒烟,不代表真实模型行为
|
|
90
|
+
验证。仅发布本包不授予全局 CLI 更新、Home 迁移或 Controller 替换权限。
|
|
91
|
+
|
|
39
92
|
### 2.6.0 兼容性及迁移说明
|
|
40
93
|
|
|
41
94
|
本 minor 包含 Task111 的当前活动分页与并行执行摘要。任务运行列表可发现超出
|
|
@@ -87,7 +140,8 @@ Task110 尚未合入的工作不属于本版本。
|
|
|
87
140
|
|
|
88
141
|
存储版本现为 **1.6**。旧的受支持 Home 应走集中、连续的同主版本升级路径,
|
|
89
142
|
不要手工修改存储记录。历史缺失费用仍为未知;旧 Skill 来源不会从今天的文件
|
|
90
|
-
|
|
143
|
+
补造。2.4 原有“恢复需要冻结包”的限制已由上述当前加载契约取代;
|
|
144
|
+
保留旧历史,不再将缺少冻结包作为 Session 准入门槛。
|
|
91
145
|
当前模型操作只作用于本次连接,不修改未来默认值;切换模型前须退出 Host 持有的
|
|
92
146
|
原生 TUI,关闭浏览器查看器仅断开查看。未知发送必须查询原 request-id,
|
|
93
147
|
不能通过新标签页重放。这些是明确的行为边界,不是一般向后兼容承诺。
|
|
@@ -232,10 +286,20 @@ Controller RPC 版本 1。Host 不打开 Home 数据库,包括进程归属、
|
|
|
232
286
|
执行环境校验。只有 Controller 拥有存储并解析持久事实;非法当前输入在正常协议
|
|
233
287
|
边界得到明确错误。
|
|
234
288
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
289
|
+
兼容升级保留逻辑 Session 和存活 Host。构建 generation 仅作历史诊断,不再作为
|
|
290
|
+
原生恢复门槛;通过已有获授权生命周期安全释放旧 Host 后,当前内置 adapter 可恢复
|
|
291
|
+
同一原生身份,不改变模型、账号、权限或工作区,也不热替换模块或安装旧实现。
|
|
292
|
+
|
|
293
|
+
支持范围明确为现有 control/event v1 与 RPC 版本 1,不承诺任意历史进程兼容。
|
|
294
|
+
Host status 用 `controlCapabilities` 声明控制能力,并用进程加载时捕获的
|
|
295
|
+
`hostImplementation` 区别于 Endpoint 构建。Controller 仅在明确声明时发送
|
|
296
|
+
`reconcile-turn`。没有能力字段的 v1 Host 仍可读取 status、消费原始 Inbox;
|
|
297
|
+
精确终态重发能力不可用,不根据包版本猜测。未知协议仍拒绝。
|
|
298
|
+
|
|
299
|
+
`update` 区分程序/存储完成与保留 Host 的状态,不打断兼容的忙碌 Host,也不自动
|
|
300
|
+
替换不支持的 Host。必要刷新沿用显式生命周期:先证明精确 Turn、后台执行与写入者
|
|
301
|
+
已释放,再重新附着。仅 idle 不足以证明安全;状态未知时保留现场,不能强杀、
|
|
302
|
+
重放输入或静默新建原生身份。Controller 交接锁、进程身份围栏与 Session 权限继续有效。
|
|
239
303
|
|
|
240
304
|
存储升级仅包含同主版本内明确的小版本步骤。跨主版本转换独立授权,
|
|
241
305
|
不构成运行时回退。
|
|
@@ -249,6 +313,10 @@ Global Context 命令保持自足,供远端 TUI/Desktop 使用。必须正确
|
|
|
249
313
|
显示 Host 上报观测。原生结果待落库或已知上报故障需要关注,但不代表 Provider 失败、
|
|
250
314
|
Run 已结束或业务已验收。Host 诊断只检查自己已投递文件的身份是否存在,不解析或隔离
|
|
251
315
|
其他生产者的新格式事件。
|
|
316
|
+
缺少 eventDelivery 表示未报告而非健康。`unpersisted` 是 Inbox 写入失败后仍保留在
|
|
317
|
+
原 Host 内的原始事实数;协调先按观察顺序重试这些字节,再补发保留的精确终态,
|
|
318
|
+
不重新执行输入。必须保留该 Host 直至落盘,不能在文件系统故障又进程丢失后编造结果。
|
|
319
|
+
Task 与 Global 的完整协调都使用同一能力检查,包括没有后续排队输入的最后一个 Turn。
|
|
252
320
|
|
|
253
321
|
## CLI 与 Controller 发布边界
|
|
254
322
|
|
package/docs/storage-baseline.md
CHANGED
|
@@ -2,7 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
# Storage baseline 1.0
|
|
4
4
|
|
|
5
|
-
Current storage is 1.
|
|
5
|
+
Current storage is 1.8. The declared 1.7 → 1.8 transition permits an optional
|
|
6
|
+
Model management connection in Yui configuration. Only service addresses and
|
|
7
|
+
file references are stored; no credentials are imported. Existing Homes remain
|
|
8
|
+
unconfigured, and the SQL layout is unchanged.
|
|
9
|
+
|
|
10
|
+
The declared 1.6 → 1.7 transition adds optional Agent
|
|
11
|
+
inbox claim and acknowledgement receipts to canonical Messages and Leader
|
|
12
|
+
wakes, including the exact pending-window identity. Historical records and
|
|
13
|
+
frozen Context digests remain unchanged; missing handling evidence is never
|
|
14
|
+
backfilled as delivery or consumption. The SQL layout is unchanged.
|
|
15
|
+
|
|
16
|
+
The declared 1.5 → 1.6 transition adds optional
|
|
6
17
|
source-attributed monetary evidence to canonical runtime observations. Existing
|
|
7
18
|
observations remain unchanged: absent amounts and prices stay unknown. The SQL
|
|
8
19
|
layout is unchanged.
|
|
@@ -28,9 +39,10 @@ The 1.4 → 1.5 transition introduces complete Skill package references in
|
|
|
28
39
|
effective launch snapshots and Session Manifests. Historical records and their
|
|
29
40
|
digests are preserved byte-for-byte; missing package metadata explicitly means
|
|
30
41
|
legacy entrypoint-only/unrecorded evidence. Migration cannot recover resources
|
|
31
|
-
that were never captured. Existing running Hosts keep their original inputs
|
|
32
|
-
|
|
33
|
-
|
|
42
|
+
that were never captured. Existing running Hosts keep their original inputs.
|
|
43
|
+
Current loading uses stable source paths and internal versions; restoring a
|
|
44
|
+
valid legacy Session does not require frozen-package evidence or replacement.
|
|
45
|
+
No ordinary reader backfills historical versions from mutable sources.
|
|
34
46
|
|
|
35
47
|
New launches snapshot raw resources under `runtime/skill-packages/<digest>`.
|
|
36
48
|
The version covers sorted relative paths, SHA-256 byte digests, sizes and
|
|
@@ -40,9 +52,12 @@ Symlinks and special files are rejected, as are packages exceeding 2,048 files,
|
|
|
40
52
|
8 MiB per file, 32 MiB total or 32 directory levels. Scripts are retained,
|
|
41
53
|
never run on import. Sources must be readable and physically rooted.
|
|
42
54
|
Sessions and AgentRuns retain the compact source/version/inventory pointers;
|
|
43
|
-
file bodies stay in the package.
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
file bodies stay in the package. These records describe captured source, not
|
|
56
|
+
proof of model loading. Source changes apply to current Skill loading after the
|
|
57
|
+
per-turn version check, including existing Sessions. Lost or corrupted audit
|
|
58
|
+
packages fail explicit historical reads, not current Session admission, and are
|
|
59
|
+
never rebuilt from current sources. The loading change adds no persisted DB
|
|
60
|
+
fields or storage migration; storage remains 1.6.
|
|
46
61
|
|
|
47
62
|
Yui 1.0.0 starts from one clean persistent contract. The package version,
|
|
48
63
|
storage schema, record envelopes and Controller protocol are separate
|
|
@@ -2,7 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
# 存储基线 1.0
|
|
4
4
|
|
|
5
|
-
当前存储为 1.
|
|
5
|
+
当前存储为 1.8。1.7 → 1.8 允许在 Yui 配置中保存可选的 Model 管理连接,
|
|
6
|
+
仅保存服务地址及文件引用,不导入凭据;已有 Home 保持未配置,SQL 布局不变。
|
|
7
|
+
|
|
8
|
+
1.6 → 1.7 为规范 Message 和 Leader wake 增加可选的 Agent
|
|
9
|
+
信箱领取、确认消费回执及精确待处理窗口身份;不改写历史原文或冻结 Context 摘要,
|
|
10
|
+
不将缺失的处理证据补写成投递或消费。物理 SQL 结构不变。
|
|
11
|
+
|
|
12
|
+
1.5 → 1.6 增加可选的来源归属费用证据,缺失费用仍保持未知。
|
|
13
|
+
已声明的 1.3 → 1.4 迁移为正式项目知识增加适用信息和精确版本历史,
|
|
6
14
|
并将提案指纹扩展到适用范围、失效条件及替代意图。仅从精确匹配的已接受提案恢复
|
|
7
15
|
`scope`/`expiresWhen`;存量知识以已观察到的当前内容建立版本 1,不臆造缺失的修改历史。
|
|
8
16
|
已有提案的身份、审批和来源保留,冻结的 Context 快照及摘要不改写。物理 SQL 结构不变。
|
|
@@ -13,16 +21,17 @@
|
|
|
13
21
|
1.4 → 1.5 在现有 effective launch 和 Session
|
|
14
22
|
Manifest 中新增完整 Skill 包引用,不改 SQL 布局。历史记录与摘要原样保留;
|
|
15
23
|
缺少包元数据明确表示旧版只记录入口正文或没有装载证据,不能拿当前源目录
|
|
16
|
-
补造历史版本。运行中的旧 Host
|
|
17
|
-
|
|
24
|
+
补造历史版本。运行中的旧 Host 保留原输入;当前加载使用稳定源入口与内部版本,
|
|
25
|
+
合法旧 Session 恢复不再要求历史冻结包或更换 Session,不在普通读取中迁移或回填。
|
|
18
26
|
|
|
19
27
|
新 Session 将资源保存到 `runtime/skill-packages/<digest>`,摘要覆盖排序后的
|
|
20
28
|
相对路径、原始文件字节摘要、大小与可执行标志。内置 Skills 共享完整兄弟目录,
|
|
21
29
|
保留跨 Role 相对引用;自定义 Skill 限于其自身目录。拒绝符号链接、特殊文件,
|
|
22
30
|
以及超过 2,048 个文件、单文件 8 MiB、总计 32 MiB 或 32 层目录的包。
|
|
23
31
|
脚本只保存,不因装载而执行。Session、AgentRun、CLI 和 Web 复用精简来源、
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
版本与资源清单引用,不复制大文件正文。这些是源快照而非模型已读证明。源更新可在
|
|
33
|
+
现有 Session 的每轮版本检查后采用。快照丢失或损坏只使历史读取明确报错,不再作为
|
|
34
|
+
当前会话准入门槛,也不从当前源目录重建。本次加载契约不改 DB 字段,存储仍为 1.6。
|
|
26
35
|
|
|
27
36
|
Yui 1.0.0 从唯一、纯净的持久化契约开始。软件包版本、存储结构、记录封装和
|
|
28
37
|
Controller 协议是相互独立的身份,不能从其中一个推断另一个。
|
package/docs/task-delivery.md
CHANGED
|
@@ -253,10 +253,11 @@ External-effect authorization must be explicit: development does not grant
|
|
|
253
253
|
push/PR/merge, and merge does not grant release, production update or archive.
|
|
254
254
|
|
|
255
255
|
When the user explicitly requests further implementation or delivery of the same
|
|
256
|
-
completed, unarchived result, the
|
|
257
|
-
`task reopen <task>`
|
|
258
|
-
|
|
259
|
-
|
|
256
|
+
completed, unarchived result, the current matching Leader may perform the necessary
|
|
257
|
+
`task reopen <task>` for its own Task and continue that bounded request; Operator
|
|
258
|
+
handoff is not mandatory. The Operator may still reopen before routing new input.
|
|
259
|
+
Neither path needs a mechanical “reopen” confirmation. These existing operations
|
|
260
|
+
suffice; no auto-reopen option or post-completion execution protocol is needed. Ordinary
|
|
260
261
|
send/queue/submit, including `--intent develop`, still refuses a completed Task
|
|
261
262
|
before saving new input. Queries, record-only input and discussion do not grant
|
|
262
263
|
reopening authority.
|
|
@@ -266,10 +267,14 @@ preserving original events, fixed heads/reports and Publication history. The
|
|
|
266
267
|
Leader separately verifies and accepts the new result; old validation does not
|
|
267
268
|
automatically cover it. Reopen preserves an independent execution stop: only the
|
|
268
269
|
authorized `task execution start` path can lift that gate after cleanup.
|
|
269
|
-
Cancelled intent requires separate
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
270
|
+
Cancelled/retired intent requires separate explicit user/Operator restoration
|
|
271
|
+
authority and cannot be restored by the Leader; archived Tasks cannot reopen,
|
|
272
|
+
and retained workspaces or Session replacement do not bypass lifecycle.
|
|
273
|
+
Delivery still requires the current Session's delivery authority and legal
|
|
274
|
+
workspace; reopening does not promote a planning Session or expand write scope.
|
|
275
|
+
|
|
276
|
+
For routed input, reopening and submitting are two atomic operations with
|
|
277
|
+
separate outcomes.
|
|
273
278
|
Inspect the lifecycle result and saved/queued receipt; if submission fails,
|
|
274
279
|
read current state and continue only the unapplied step within the same authority.
|
|
275
280
|
Keep the same key for a matching submission retry, never replay unknown effects,
|
|
@@ -277,6 +282,10 @@ and do not reopen again merely to retry after another completion or cancellation
|
|
|
277
282
|
The reopen notification can arrive before the new Message: the Leader waits for
|
|
278
283
|
the actual request, without rerunning accepted work or immediately completing
|
|
279
284
|
again. Once the request arrives, it proceeds without another “continue.”
|
|
285
|
+
When the Leader already has the new request, it uses that original input after
|
|
286
|
+
reopening rather than resubmitting or creating a self-wake. Preserve a direct
|
|
287
|
+
conversation's request and boundaries in Task records without impersonating
|
|
288
|
+
user/Operator input.
|
|
280
289
|
|
|
281
290
|
Publication upsert, diff/adopt and verify remain separate, authorized atomic
|
|
282
291
|
operations for completed, unarchived results. They need no reopening when no new
|
|
@@ -194,8 +194,10 @@ CLI、当前 Leader Context 和 Web 从同一组事实推导覆盖,不联网
|
|
|
194
194
|
WorkItem/ReviewRound Assignment。外部效果必须明确获授权:开发不授予
|
|
195
195
|
push/PR/merge,合并不授予发版、生产升级或归档。
|
|
196
196
|
|
|
197
|
-
|
|
198
|
-
`task reopen <task
|
|
197
|
+
用户明确要求继续同一个已完成、未归档成果的实现或交付时,当前有效且匹配该 Task 的
|
|
198
|
+
Leader 可以自行执行 `task reopen <task>`,重开自己的任务并继续这次有界请求,
|
|
199
|
+
不必转交 Operator。Operator 仍可在路由新输入前重开。两条路径都无需用户机械地
|
|
200
|
+
额外确认“重开”。
|
|
199
201
|
现有两步即可满足目标,不需要自动重开开关或后完成执行协议。普通 send/queue/submit
|
|
200
202
|
(包括 `--intent develop`)仍会在保存新输入前拒绝 completed Task;只读查询、
|
|
201
203
|
record-only 输入和讨论本身不授予重开权限。
|
|
@@ -203,14 +205,18 @@ record-only 输入和讨论本身不授予重开权限。
|
|
|
203
205
|
重开回到 active,撤下当前完成元数据,同时保留原事件、固定 head/报告和 Publication
|
|
204
206
|
历史。Leader 对新结果单独验证与验收,不能把旧验证直接宣称为新结果的证据。
|
|
205
207
|
重开保留独立的执行停止决定;只有获授权且完成清理的 `task execution start` 路径
|
|
206
|
-
可以解除 gate。恢复 cancelled
|
|
207
|
-
|
|
208
|
+
可以解除 gate。恢复 cancelled/retired 意图需要单独明确授权并由 user/Operator 执行,
|
|
209
|
+
Leader 不能自行恢复;archived Task 不能重开,保留工作区或 Session 替换都不能绕过生命周期。
|
|
210
|
+
交付仍要求当前 Session 的 delivery 权限和合法工作区;重开不会把 planning Session
|
|
211
|
+
升级为交付 Session,也不扩大写入范围。
|
|
208
212
|
|
|
209
|
-
|
|
213
|
+
路由新输入时,重开与提交是两个有独立结果的原子操作。分别检查生命周期结果和 saved/queued 回执;
|
|
210
214
|
提交失败时读取当前状态,仅在权限未变时继续尚未生效的那一步。相同提交重试保留原 key,
|
|
211
215
|
不重放效果未知的操作,也不因重试而再次重开已经重新完成或取消的 Task。
|
|
212
216
|
重开通知可能先于新 Message 到达:Leader 等待具体新请求,不重跑已验收工作,
|
|
213
217
|
也不立即再次 complete;请求到达后不再要求额外“继续”。
|
|
218
|
+
Leader 已收到新请求时,重开后使用该原始输入,不重新提交或制造 self-wake。
|
|
219
|
+
直接对话中的请求及边界按需保存在 Task 记录中,不冒充 user/Operator 输入。
|
|
214
220
|
|
|
215
221
|
Publication upsert、diff/adopt、verify 仍是未归档已完成成果的独立授权原子操作,
|
|
216
222
|
没有新执行请求时不必重开。重开后的工作记录自己的新完成证据,不改写旧基线,
|