@zq-silk/yui 2.9.0 → 2.10.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 +5 -3
- package/dist/cli/commandCatalog.js +21 -9
- package/dist/cli/helpRenderer.js +3 -1
- package/dist/commands/globalRoleCommands.js +30 -9
- package/dist/commands/inboxCommands.js +79 -22
- package/dist/commands/taskCommands.js +6 -1
- package/dist/commands/taskProjectDeliveryCommand.js +56 -0
- package/dist/commands/taskRemoteDeliveryCommand.js +5 -3
- package/dist/context/runContextPack.js +1 -0
- package/dist/context/runInputContract.js +1 -0
- package/dist/context/taskContext.js +1 -1
- package/dist/context/taskPhase.js +1 -1
- package/dist/controlPlaneCli.js +32 -17
- package/dist/controller/fileSchedulerStoreAdapter.js +59 -15
- package/dist/controller/globalInputDelivery.js +17 -7
- package/dist/controller/inboxTurnCheck.js +64 -0
- package/dist/controller/providerRetryAdmission.js +2 -0
- package/dist/external/gitlabPublicationVerifier.js +10 -28
- package/dist/grant/taskAuthorization.js +7 -2
- package/dist/interaction/notificationPresentation.js +9 -0
- package/dist/message/globalInboxRecovery.js +44 -0
- package/dist/message/globalInterrupt.js +1 -1
- package/dist/message/inboxReceipt.js +14 -6
- package/dist/message/inboxTurn.js +86 -0
- package/dist/message/message.js +11 -0
- package/dist/message/taskInboxOwnership.js +20 -6
- package/dist/repository/workspaceCleanupInspection.js +6 -1
- package/dist/storage/sqliteSchema.js +21 -0
- package/dist/storage/sqliteStore.js +13 -1
- package/dist/storage/storageVersions.js +1 -1
- package/dist/task/archiveDiagnostics.js +1 -1
- package/dist/task/archivePreflight.js +1 -1
- package/dist/task/projectDeliveryScope.js +20 -0
- package/dist/task/publicationToolObservation.js +4 -6
- package/dist/task/remoteDelivery.js +19 -8
- package/dist/task/remoteDeliveryService.js +5 -4
- package/dist/web/assets/client/i18n/en.js +4 -2
- package/dist/web/assets/client/i18n/zh-CN.js +4 -2
- package/dist/web/assets/client/views/task/deliveryResults.js +6 -2
- package/dist/web/controllerWeb.js +73 -21
- package/dist/web/taskPreviews.js +21 -13
- package/dist/web/webAccess.js +109 -0
- package/dist/web/webServer.js +45 -44
- package/docs/architecture/capabilities-and-resources.md +6 -4
- package/docs/architecture/capabilities-and-resources.zh-CN.md +5 -4
- package/docs/cli-information-contract.md +14 -2
- package/docs/cli-information-contract.zh-CN.md +9 -1
- package/docs/project-delivery-scope.md +59 -0
- package/docs/release-workflow.md +43 -0
- package/docs/release-workflow.zh-CN.md +35 -0
- package/docs/storage-baseline.md +14 -1
- package/docs/storage-baseline.zh-CN.md +11 -1
- package/docs/task-delivery.md +8 -2
- package/docs/task-delivery.zh-CN.md +6 -0
- package/docs/testing/verification-levels.md +2 -2
- package/docs/testing/verification-levels.zh-CN.md +2 -2
- package/i18n/README.zh-CN.md +6 -3
- package/package.json +1 -1
- package/skills/yui-leader/SKILL.md +26 -0
- package/skills/yui-leader/VERSION +1 -1
- package/skills/yui-operator/SKILL.md +31 -0
- package/skills/yui-operator/VERSION +1 -1
- package/skills/yui-runtime/SKILL.md +58 -5
- package/skills/yui-runtime/VERSION +1 -1
- package/skills/yui-runtime/references/recovery.md +21 -0
package/docs/release-workflow.md
CHANGED
|
@@ -51,6 +51,49 @@ 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.10.0 compatibility and migration notes
|
|
55
|
+
|
|
56
|
+
This stable minor includes exact-turn inbox handling and successor recovery
|
|
57
|
+
(Task131 / PR #463 and Task134 / PR #464), plus authenticated trusted-LAN Web
|
|
58
|
+
access and current Operator lifecycle controls (Task135 / PR #465).
|
|
59
|
+
It also includes explicit Task Project delivery scope and safe ordinary archive
|
|
60
|
+
(PR #462), and deployment-specific GitLab publication URLs (PR #461).
|
|
61
|
+
|
|
62
|
+
Web still defaults to loopback. Explicit private/wildcard binding requires
|
|
63
|
+
`--auth-file <absolute-path>` with an owner-only password file; the browser
|
|
64
|
+
username is `yui`. Authentication precedes workbench content, APIs and Terminal,
|
|
65
|
+
while sandbox previews retain their narrower, listener-scoped read tickets.
|
|
66
|
+
HTTP remains unencrypted: use a trusted network, not a public deployment.
|
|
67
|
+
Current Operator starts, `--detach`, and `--json` return Controller-owned
|
|
68
|
+
receipts; inspect with `yui web --status` and stop with `yui web --stop`.
|
|
69
|
+
Credential rotation requires stop/start, and Controller recovery does not
|
|
70
|
+
automatically reopen Web. See [controlled Web access](web-access.md).
|
|
71
|
+
|
|
72
|
+
Inbox consumers should use the current/history views and exact returned
|
|
73
|
+
identities. Missing acknowledgement is not proof that work was never executed.
|
|
74
|
+
A successor inspects original input and prior effects before settling a retained
|
|
75
|
+
claim; it does not replay the input or borrow another Session's authority.
|
|
76
|
+
Exact terminal handling checks remain bounded. Project delivery exclusions
|
|
77
|
+
require original scoped authorization and do not erase bindings or prove a merge.
|
|
78
|
+
See [CLI information contracts](cli-information-contract.md) and
|
|
79
|
+
[Project delivery scope](project-delivery-scope.md).
|
|
80
|
+
|
|
81
|
+
Storage advances from **1.11 to 1.13** through the centralized transitions:
|
|
82
|
+
**1.12** declares Project delivery decisions; **1.13** declares exact inbox
|
|
83
|
+
attempt/target identities, Global input retirement and terminal handling checks.
|
|
84
|
+
Historical messages, claims and acceptance evidence are preserved without
|
|
85
|
+
inventing old Turn ownership or ACKs. Supported **1.0–1.12** Homes use the
|
|
86
|
+
existing same-major update path. With separate update authorization, use
|
|
87
|
+
`yui update --version 2.10.0`; the updater owns preflight, backup, migration and
|
|
88
|
+
Controller handover. Do not open upgraded Homes with an older binary or edit
|
|
89
|
+
storage manually. Package minor numbering is not a blanket compatibility promise.
|
|
90
|
+
|
|
91
|
+
Release gates reuse exact-commit Core CI and test one runtime tarball on
|
|
92
|
+
Linux x64 and macOS x64/arm64 with Node 20/22/24/26 before npm publication.
|
|
93
|
+
These are deterministic and isolated runtime checks, not real-model validation.
|
|
94
|
+
Publishing does not update any global CLI, migrate a production Home, replace
|
|
95
|
+
an Agent Session or start a production Web listener.
|
|
96
|
+
|
|
54
97
|
### 2.9.0 compatibility and migration notes
|
|
55
98
|
|
|
56
99
|
This stable minor includes scoped Job definitions and exact execution Runs,
|
|
@@ -36,6 +36,41 @@ Agent 选择一个预先声明的计划,设施从持久状态驱动该计划
|
|
|
36
36
|
不能将不兼容冒称为兼容,也不为回避版本选择新增历史兼容机制。包版本与协议、
|
|
37
37
|
持久存储契约仍然独立:兼容性检查和必要迁移要求不变,下文存储规则不授予发版权限。
|
|
38
38
|
|
|
39
|
+
### 2.10.0 兼容性及迁移说明
|
|
40
|
+
|
|
41
|
+
本稳定 minor 包含精确 Turn 收件箱处理与继任恢复(Task131 / PR #463、
|
|
42
|
+
Task134 / PR #464),以及受认证保护的可信内网 Web 和当前 Operator 生命周期
|
|
43
|
+
控制(Task135 / PR #465)。同时纳入显式 Task Project 交付范围与安全普通归档
|
|
44
|
+
(PR #462),以及部署特定 GitLab 发布 URL 支持(PR #461)。
|
|
45
|
+
|
|
46
|
+
Web 默认仍为 loopback。显式私网/通配监听要求
|
|
47
|
+
`--auth-file <absolute-path>` 指向仅本用户可访问的密码文件,浏览器用户名为 `yui`。
|
|
48
|
+
工作台页面、API 和 Terminal 之前必须认证;沙箱预览保留仅授权当前监听内特定
|
|
49
|
+
服务读取的窄票据。HTTP 仍不加密,只应在可信网络使用,不用于公网部署。
|
|
50
|
+
当前 Operator、`--detach` 和 `--json` 启动返回 Controller 持有的回执;
|
|
51
|
+
通过 `yui web --status` 查询、`yui web --stop` 停止。轮换密码需停止后重启,
|
|
52
|
+
Controller 恢复不会自动重新开放 Web。详见[受控 Web 访问](web-access.md)。
|
|
53
|
+
|
|
54
|
+
收件箱调用者应使用 current/history 视图及返回的精确身份;缺少 ACK 不代表
|
|
55
|
+
工作未执行。继任 Session 先检查原始输入和既有效果,再处理保留的 claim,
|
|
56
|
+
不重放输入,也不借用另一 Session 的权限。精确 terminal 的处理检查保持有界。
|
|
57
|
+
Project 交付排除须有原始范围授权,不删除 binding,也不证明代码已合并。
|
|
58
|
+
详见 [CLI 信息契约](cli-information-contract.zh-CN.md)和
|
|
59
|
+
[Project 交付范围](project-delivery-scope.md)。
|
|
60
|
+
|
|
61
|
+
存储经集中式连续迁移从 **1.11 升至 1.13**:**1.12** 声明 Project 交付决策;
|
|
62
|
+
**1.13** 声明精确 inbox attempt/target 身份、Global 输入退役及 terminal 处理检查。
|
|
63
|
+
历史消息、claim 和验收证据保留,不猜造旧 Turn 归属或 ACK。受支持的
|
|
64
|
+
**1.0–1.12** Home 沿用同 major 更新路径。另获更新授权后使用
|
|
65
|
+
`yui update --version 2.10.0`,由更新器负责预检、备份、迁移与 Controller 交接;
|
|
66
|
+
不要用旧程序打开升级后的 Home,也不要手工编辑存储。包 minor 编号不代表
|
|
67
|
+
对所有接口作向后兼容承诺。
|
|
68
|
+
|
|
69
|
+
发布门禁复用精确提交的 Core CI,并在 npm 发布前对同一 runtime tarball 执行
|
|
70
|
+
Linux x64、macOS x64/arm64 与 Node 20/22/24/26 的全新安装验证。
|
|
71
|
+
这是确定性和隔离运行时证据,不是真实模型验证。发布不会更新全局 CLI、
|
|
72
|
+
迁移生产 Home、替换 Agent Session 或启动生产 Web。
|
|
73
|
+
|
|
39
74
|
### 2.9.0 兼容性及迁移说明
|
|
40
75
|
|
|
41
76
|
本稳定 minor 包含分作用域的 Job 定义与精确执行 Run、持久 Schedule、受控 Project
|
package/docs/storage-baseline.md
CHANGED
|
@@ -2,7 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
# Storage baseline 1.0
|
|
4
4
|
|
|
5
|
-
Current storage is 1.
|
|
5
|
+
Current storage is 1.13. The 1.12 → 1.13 transition permits exact native attempt
|
|
6
|
+
identity on new inbox claims, exact target identity on new steer controls,
|
|
7
|
+
explicit Global inbox retirement and terminal handling-check evidence.
|
|
8
|
+
It does not rewrite historical messages, infer old turn ownership or synthesize
|
|
9
|
+
ACKs. SQL layout is unchanged. Current inputs and historical missing handling
|
|
10
|
+
evidence have separate bounded discovery views; neither is a second queue.
|
|
11
|
+
|
|
12
|
+
The 1.11 → 1.12 transition admits append-only
|
|
13
|
+
`task.project-delivery-decided` events with Project requirement, reason, actor,
|
|
14
|
+
original Message/digest/quote and the previous decision ID. Existing records and
|
|
15
|
+
SQL layout are unchanged. No historical exclusions are inferred; absent decisions
|
|
16
|
+
retain the required-delivery default. See [Project delivery scope](project-delivery-scope.md).
|
|
17
|
+
|
|
18
|
+
The declared 1.10 → 1.11 transition adds source provenance
|
|
6
19
|
to new activation-request event payloads: an existing Message/body digest or
|
|
7
20
|
exact caller-attributed native input, plus the recorded Message boundary.
|
|
8
21
|
Historical events are preserved without guessed sources or replay. Missing
|
|
@@ -2,7 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
# 存储基线 1.0
|
|
4
4
|
|
|
5
|
-
当前存储为 1.
|
|
5
|
+
当前存储为 1.13。1.12 → 1.13 允许新 inbox claim 记录精确 native attempt、
|
|
6
|
+
新 steer control 记录精确目标,以及 Global 输入显式退役和终态缺回执检查证据。
|
|
7
|
+
不改写历史消息、不推断旧轮次归属、不补造 ACK;SQL 布局不变。
|
|
8
|
+
当前输入和历史处理缺证据通过有界视图分别发现,不新增第二队列。
|
|
9
|
+
|
|
10
|
+
1.11 → 1.12 允许追加 `task.project-delivery-decided` 事件,
|
|
11
|
+
记录 Project 交付要求、原因、actor、原始 Message/digest/引用及前一决定 ID。
|
|
12
|
+
SQL 布局和历史记录不变,不自动推断历史排除;没有决定时仍按需交付处理。
|
|
13
|
+
详见 [Project 交付范围](project-delivery-scope.md)。
|
|
14
|
+
|
|
15
|
+
1.10 → 1.11 为新 activation-request 事件增加来源证据:
|
|
6
16
|
已有 Message 及正文 digest,或带调用者归属的原生输入原文,以及当时的 Message 序号边界。
|
|
7
17
|
历史事件保持原样,不推测缺失来源、不重放输入;缺失来源通过读取诊断明确展示。
|
|
8
18
|
SQL 布局及冻结 digest 不变,集中迁移不改写历史正文。
|
package/docs/task-delivery.md
CHANGED
|
@@ -273,8 +273,14 @@ Once recorded, verification is a fixed observation, not live monitoring or a
|
|
|
273
273
|
unknown results never assert a fresh success. URL/target/candidate changes reset
|
|
274
274
|
verification, while title-only changes can retain it.
|
|
275
275
|
GitHub repository URL comparison respects case-insensitive owner/name identity.
|
|
276
|
-
GitLab
|
|
277
|
-
|
|
276
|
+
GitLab browser routes are deployment-specific: standard `/-/merge_requests/`,
|
|
277
|
+
legacy `/merge_requests/`, and custom service paths are allowed in both entry
|
|
278
|
+
points. Identity comes from structured repository/MR evidence, not a URL path
|
|
279
|
+
template. The complete registered URL must still match after URL parsing and
|
|
280
|
+
removal of one trailing slash; HTTP(S) is required and credentials, query and
|
|
281
|
+
fragment remain forbidden. The provider URL is retained, not rewritten to a
|
|
282
|
+
guessed route. A successful HTTP response is not merge evidence.
|
|
283
|
+
Adapter observations retain the observed target
|
|
278
284
|
branch even when the earlier Publication did not specify one; missing targets
|
|
279
285
|
cannot establish new verification.
|
|
280
286
|
|
|
@@ -182,6 +182,12 @@ ISO 时间戳。`provider` 表示 GitHub/GitLab 服务,不表示工具品牌
|
|
|
182
182
|
完整 JSON 最大 64 KiB。Yui 不执行 `command`,不解析任意自然语言来判定成功。
|
|
183
183
|
Leader 负责实际检查和解释输出,Core 负责身份、服务 URL、目标、候选和时间绑定。
|
|
184
184
|
|
|
185
|
+
GitLab 浏览路径由服务部署决定:两个验证入口均允许标准 `/-/merge_requests/`、
|
|
186
|
+
legacy `/merge_requests/` 和自定义服务路径,不再用 URL 模板推断仓库/MR 身份。
|
|
187
|
+
结构化身份仍须匹配;完整登记 URL 经 URL 解析及移除一个末尾斜杠后仍须一致。
|
|
188
|
+
仅允许 HTTP(S),禁止凭据、query 和 fragment;保留 provider 返回的 URL,
|
|
189
|
+
不改写为猜测的路由。HTTP 访问成功不是合并证据。
|
|
190
|
+
|
|
185
191
|
新证据必须引用当前不可变 Publication,距登记不超过 24 小时且不能在未来。
|
|
186
192
|
观察可以早于首次登记或仅标题更新;只有不可变历史中的候选、对象、目标或远程事实
|
|
187
193
|
发生实质变化,才构成观察时间下界。候选改变后又恢复,也不能复用变化前的证据。
|
|
@@ -50,12 +50,12 @@ is required.
|
|
|
50
50
|
## Permanent core smoke
|
|
51
51
|
|
|
52
52
|
`npm test` and `npm run test:core` build the checkout and run the maintained suite.
|
|
53
|
-
The stable suite owns current storage 1.
|
|
53
|
+
The stable suite owns current storage 1.13 and its declared 1.0 through 1.12 minor
|
|
54
54
|
transition. It contains no undeclared historical format compatibility path.
|
|
55
55
|
|
|
56
56
|
Current coverage includes:
|
|
57
57
|
|
|
58
|
-
1. Fresh storage 1.
|
|
58
|
+
1. Fresh storage 1.13, exact schema/record validation, no initialization over
|
|
59
59
|
unknown data, and rejection of old integer formats without mutation.
|
|
60
60
|
2. Exact-version staging, mismatched-target refusal, same-major contiguous
|
|
61
61
|
minor preflight, explicit maintenance-owner identity across handover, and
|
|
@@ -36,12 +36,12 @@ Yui 是一个单用户本地产品。永久验证保护关键的 happy path 和
|
|
|
36
36
|
## 永久 core smoke
|
|
37
37
|
|
|
38
38
|
`npm test` 和 `npm run test:core` 构建当前 checkout 并运行维护中的套件。
|
|
39
|
-
稳定套件维护当前存储 1.
|
|
39
|
+
稳定套件维护当前存储 1.13 和明确声明的 1.0 至 1.12 连续小版本迁移,
|
|
40
40
|
不包含未声明的历史格式兼容路径。
|
|
41
41
|
|
|
42
42
|
当前覆盖包括:
|
|
43
43
|
|
|
44
|
-
1. 新建存储 1.
|
|
44
|
+
1. 新建存储 1.13、精确结构与记录校验、禁止覆盖未知数据库、无修改拒绝旧整数格式。
|
|
45
45
|
2. 精确版本暂存、目标不匹配拒绝、同主版本连续小版本预检、交接锁显式所有者,
|
|
46
46
|
以及恢复时核对捕获的协议和存储身份,不接受缺失字段。
|
|
47
47
|
3. 持久 Task/Message/Decision 上下文、Draft 激活权威、mailbox 认领、
|
package/i18n/README.zh-CN.md
CHANGED
|
@@ -27,7 +27,7 @@ Yui 是面向编程 Agent 的本地控制面。你只需用自然语言把目标
|
|
|
27
27
|
- **自带 Agent** —— Codex CLI、Claude Code CLI 和 ACP 通过统一边界接入,
|
|
28
28
|
可替换而不丢失 Task。
|
|
29
29
|
- **本地优先、私有** —— 一切运行在你自己的机器上,面向单个受信任用户;
|
|
30
|
-
Web
|
|
30
|
+
Web 默认本地回环,可显式开启带认证的可信内网访问。
|
|
31
31
|
- **默认隔离** —— 仓库改动发生在受管 Git worktree 中,稳定 checkout 保持只读。
|
|
32
32
|
|
|
33
33
|
> **状态:** 1.1.0,当前存储版本为 1.1,已声明从 1.0 基线升级。默认更新只执行同一存储
|
|
@@ -156,6 +156,9 @@ Agent 可以重新读取任务上下文,继续兼容的 Session,或在必要
|
|
|
156
156
|
想直观看进展,可以在另一个终端运行 `yui web`。本地 Web 展示同一份任务与
|
|
157
157
|
待回答问题,也允许发送消息、回答问题,以及显式 queue、steer 或 interrupt Task 输入。
|
|
158
158
|
这些经认证的 Task 控制复用 CLI 的相同操作,不是另一套需要同步的任务系统。
|
|
159
|
+
内网监听要求权限受限的凭证文件;浏览器使用原生认证提示(用户名 `yui`)。
|
|
160
|
+
当前 Operator 可按用户请求启动、查询和停止,不能冒充浏览器用户。HTTP 不加密。
|
|
161
|
+
详见[受控 Web 访问](../docs/web-access.md)的命令、地址发现、凭证轮换及安全边界。
|
|
159
162
|
详情分为四个页签:概览(用户待办、任务进展和关键决定)、交付(工作项、评审、
|
|
160
163
|
集成与远程交付,按需读取)、运行(Role、原生会话活动、进行中的执行和用量)、
|
|
161
164
|
记录(决定、里程碑、执行与问题的时间线)。详见[用户关注与进展](../docs/observability/README.zh-CN.md#web-用户关注与进展)。
|
|
@@ -263,7 +266,7 @@ Yui 为你组织的东西 —— 是持久对象,而不是进程:
|
|
|
263
266
|
它负责搬运工作、记录事实——但从不判断回答好坏
|
|
264
267
|
|
|
265
268
|
Agent 在 Project 中工作:只读 checkout + 隔离 worktree。
|
|
266
|
-
Web(yui web
|
|
269
|
+
Web(yui web):默认本地回环 + 显式认证的内网访问。
|
|
267
270
|
```
|
|
268
271
|
|
|
269
272
|
### 分层设计
|
|
@@ -272,7 +275,7 @@ Yui 为你组织的东西 —— 是持久对象,而不是进程:
|
|
|
272
275
|
|
|
273
276
|
```text
|
|
274
277
|
体验层 Experience — 你如何交互
|
|
275
|
-
CLI(Operator)· Web
|
|
278
|
+
CLI(Operator)· Web(本地 / 经认证内网)· 原生 Agent 会话
|
|
276
279
|
采集输入 · 展示事实 · 确认操作 · 调用能力
|
|
277
280
|
▼
|
|
278
281
|
决策层 Intelligence — 谁来决定
|
package/package.json
CHANGED
|
@@ -142,6 +142,32 @@ heartbeat or unchanged wait. Ordinary fact edits need no self-wake.
|
|
|
142
142
|
|
|
143
143
|
## Close the current turn
|
|
144
144
|
|
|
145
|
+
### Adjust Project delivery scope without erasing work
|
|
146
|
+
|
|
147
|
+
When explicit user intent or an original delegation allows a Project to leave
|
|
148
|
+
the final delivery, read that original Message and `task remote-delivery`.
|
|
149
|
+
Record the bounded decision with
|
|
150
|
+
`task project delivery <task> <project-id> --requirement excluded --reason <reason>
|
|
151
|
+
--source-message <message-id> --purpose <verbatim-authorization>
|
|
152
|
+
--if-current <scopeDecision.id|none>`.
|
|
153
|
+
Interpret whether the original really authorizes this scope change; a matching
|
|
154
|
+
quote alone is not semantic permission. Do not exclude a Project to conceal an
|
|
155
|
+
unmet commitment. Ask only for a genuinely missing scope decision, not a second
|
|
156
|
+
approval when existing user intent or delegated judgment already covers it.
|
|
157
|
+
Use the same operation with `--requirement required` and the latest decision ID
|
|
158
|
+
to restore normal checks. Reconcile a stale guard instead of overwriting newer
|
|
159
|
+
intent. These append-only decisions also work on completed, unarchived Tasks
|
|
160
|
+
without reopening, rewriting acceptance, or rerunning work.
|
|
161
|
+
|
|
162
|
+
Unchanged Projects need no exclusion. Required changed/unknown Projects still
|
|
163
|
+
need exact verified delivery. Excluded Projects retain their binding, code
|
|
164
|
+
changes and Publication facts and are not counted as merged or verified merely
|
|
165
|
+
because they are excluded. Scope is not execution, write, archive or deletion
|
|
166
|
+
authority: open commitments and unknown execution still need settlement, and
|
|
167
|
+
unique commits or dirty resources remain protected. With separate archive
|
|
168
|
+
authorization, use ordinary archive/preflight and report retained resources;
|
|
169
|
+
do not recommend force merely because an authorized Project is excluded.
|
|
170
|
+
|
|
145
171
|
For external delivery, choose any available authorized CLI/API and follow
|
|
146
172
|
[Publication evidence](../yui-runtime/references/publication.md). Record exact
|
|
147
173
|
tool observations through `publication verify --observation`; gh/glab are optional
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
6
|
|
@@ -183,6 +183,23 @@ user-owned configuration and external-effect boundaries.
|
|
|
183
183
|
Escalate only a real product tradeoff, new authority, unavailable external fact,
|
|
184
184
|
credential, irreversible effect, or safety boundary.
|
|
185
185
|
|
|
186
|
+
For user-requested Web lifecycle operations, use `yui web`, `yui web --status`
|
|
187
|
+
and `yui web --stop` with the current Operator identity and intended Home.
|
|
188
|
+
Operator starts return a Controller-owned receipt without holding this turn
|
|
189
|
+
open. Non-loopback binding requires `--auth-file <absolute-path>` containing
|
|
190
|
+
an owner-only (0600) regular file with a unique 32–128 character printable ASCII
|
|
191
|
+
password; browser username is `yui`. There is no default password.
|
|
192
|
+
Honor the user's exact network exposure and credential scope. Never clear
|
|
193
|
+
managed identity, impersonate a browser user, launch a bypass server or restart
|
|
194
|
+
the Controller merely to open Web. Report actual access URLs and failures,
|
|
195
|
+
never a wildcard address or an old snapshot as a working link. Explain that
|
|
196
|
+
HTTP is unencrypted, and keep credentials out of messages, logs and URLs.
|
|
197
|
+
Lifecycle authority does not authenticate visitors. On unknown startup outcome,
|
|
198
|
+
inspect status before retrying; a running listener is not proof of remote reachability.
|
|
199
|
+
Stopping Web closes browser connections without stopping Agents. Password
|
|
200
|
+
rotation requires explicit stop/start; changing the file alone does not revoke
|
|
201
|
+
the running credential. Controller recovery does not automatically reopen Web.
|
|
202
|
+
|
|
186
203
|
## Configure Yui through confirmed conversation
|
|
187
204
|
|
|
188
205
|
Read both effective configuration and the catalog before explaining or changing
|
|
@@ -237,6 +254,10 @@ Apply **yui-runtime**'s own-inbox flow at useful routing boundaries and before
|
|
|
237
254
|
handoff. `yui inbox list/show/claim/ack` processes Operator input in this turn;
|
|
238
255
|
do not wait for another wake or copy pending notices into new input. Read every
|
|
239
256
|
relevant original and finish the authorized routing/disposition before ack.
|
|
257
|
+
Routing to an owning Task, recording a necessary user question, or verifying
|
|
258
|
+
that a later request superseded a notice may settle this input immediately;
|
|
259
|
+
cite the durable reference and do not wait for the downstream Task to finish.
|
|
260
|
+
Use the Runtime current/history split and never replay effects to repair ACK.
|
|
240
261
|
|
|
241
262
|
Use JSON reads and their top-level `data` field.
|
|
242
263
|
Use Global Context's bounded `pending` page to find Messages, then
|
|
@@ -287,6 +308,16 @@ Distinguish settled business and stopped execution from safely retained
|
|
|
287
308
|
physical resources. Ordinary archive may retain the latter; follow the shared
|
|
288
309
|
archive diagnostics and exact cleanup actions instead of requesting force
|
|
289
310
|
merely for old terminal Integration worktrees or preserved diagnostics.
|
|
311
|
+
When only some bound Projects remain in the final delivery, preserve the exact
|
|
312
|
+
user scope decision or delegation in the owning Task and route it to its Leader.
|
|
313
|
+
The Leader can record `task project delivery` with the original Message and
|
|
314
|
+
latest scope-decision guard; this also works for completed, unarchived Tasks
|
|
315
|
+
without reopening them. An unchanged Project already needs no delivery.
|
|
316
|
+
An explicitly excluded Project is not a verified merge and its data is not
|
|
317
|
+
disposable. Use the shared remote-delivery/preflight projection, settle open
|
|
318
|
+
business and execution independently, and use ordinary authorized archive
|
|
319
|
+
while reporting safely retained resources. Do not demand force, delete bindings,
|
|
320
|
+
or solicit repeated Operator approval when the original scope authority suffices.
|
|
290
321
|
When the user explicitly authorizes force archive for an eligible terminal
|
|
291
322
|
Task, archive even if delivery proof or cleanup is incomplete. Report the
|
|
292
323
|
warnings and retained resources without claiming merge verification or physical
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
6
|
|
@@ -191,11 +191,13 @@ unmanaged Session is not silently replaced or adopted; use an explicit Session
|
|
|
191
191
|
lifecycle action before enabling controlled delivery.
|
|
192
192
|
|
|
193
193
|
Context reads never consume queue entries. Global Context returns a bounded
|
|
194
|
-
`pending` discovery page
|
|
195
|
-
|
|
194
|
+
`pending` discovery page of current-turn and available input, not Message bodies,
|
|
195
|
+
Profile bodies, historical receipt debt or accumulated retry details. Its
|
|
196
|
+
`historyCount` is a separate absence-of-handling-evidence count, not new work.
|
|
197
|
+
The Manifest retains the exact Role profile.
|
|
196
198
|
Read a referenced
|
|
197
199
|
original with `role message show <role> <message-id> --json`. Follow a pending
|
|
198
|
-
page's `nextCursor` using `role message list <role> --
|
|
200
|
+
page's `nextCursor` using `role message list <role> --current --cursor <cursor>`
|
|
199
201
|
when it is incomplete; accepted delivery does not erase the Message from the
|
|
200
202
|
separate all-message list. Native/transport acceptance is not implementation, and
|
|
201
203
|
`interrupt-requested` is not a stopped Turn or stopped background resources.
|
|
@@ -214,13 +216,24 @@ explicit new control attempt; uncertainty does not.
|
|
|
214
216
|
|
|
215
217
|
## Handle your own inbox in the current turn
|
|
216
218
|
|
|
219
|
+
For an automatic delivery naming an exact Message or wake, use that entry
|
|
220
|
+
directly: read its original, claim it, and record its semantic disposition
|
|
221
|
+
before ending this turn. Do not first enumerate history to rediscover it.
|
|
217
222
|
After loading authorized context, at useful work boundaries and before handing
|
|
218
|
-
off, use `yui inbox list --json` to discover
|
|
219
|
-
current managed identity. This applies to Operator, custom GlobalRole, Leader,
|
|
223
|
+
off, use `yui inbox list --view current --json` to discover current-turn and
|
|
224
|
+
available input addressed to your current managed identity. This applies to Operator, custom GlobalRole, Leader,
|
|
220
225
|
Worker and Reviewer. Do not poll an empty inbox or create another model turn.
|
|
221
226
|
No target Role, Task or native Session is supplied: Yui resolves your current
|
|
222
227
|
identity. A native child gains no separate actor or inbox.
|
|
223
228
|
|
|
229
|
+
`--view history` discovers old missing receipts explicitly; default `--view all`
|
|
230
|
+
prioritizes current inputs and labels each entry's category. Never treat an
|
|
231
|
+
absent historical ACK as proof that its work was not done. Read history when a
|
|
232
|
+
specific reminder, recovery or user request calls for it, not every turn.
|
|
233
|
+
Current correlation reuses exact delivery/continuation/control identities;
|
|
234
|
+
active claims retain their observed native attempt when available. Missing
|
|
235
|
+
historical correlation is not reconstructed from timestamps or final text.
|
|
236
|
+
|
|
224
237
|
1. Read the selected `yui inbox show <entry> --json`. Reads never consume input.
|
|
225
238
|
Follow `nextCursor` and all `contentPage` pages using the rules below.
|
|
226
239
|
2. Before processing, reserve exact entries with
|
|
@@ -241,6 +254,33 @@ identity. A native child gains no separate actor or inbox.
|
|
|
241
254
|
Record an obsolete notification as requiring no further action only after
|
|
242
255
|
checking its originals and current facts, never based solely on age.
|
|
243
256
|
|
|
257
|
+
An input can be settled as executed, legally routed/delegated, a necessary user
|
|
258
|
+
question raised, or superseded/no action after inspecting authoritative
|
|
259
|
+
originals. Put that concrete disposition and useful Task/InputRequest/result/
|
|
260
|
+
Publication references in `--reason`. Routing may be complete while the Task
|
|
261
|
+
is still running; do not hold the input until all downstream work finishes.
|
|
262
|
+
For supersession, identify the later source, not merely its age.
|
|
263
|
+
|
|
264
|
+
At an exact native terminal, engineering checks for unacknowledged inputs
|
|
265
|
+
correlated to that turn and emits at most one existing notification. This is
|
|
266
|
+
missing-evidence detection, never semantic ACK or proof of absent effects.
|
|
267
|
+
Reminder-only turns do not generate another reminder. The retained originals
|
|
268
|
+
remain inspectable if the bounded reminder is also missed; do not start a
|
|
269
|
+
private polling/retry loop or copy the business input to obtain another turn.
|
|
270
|
+
Task Assignment checks go to Leader for inspection and existing handoff or
|
|
271
|
+
retirement, not automatic Worker/Reviewer replay. Exact terminal can end an
|
|
272
|
+
active-consumption notification reservation without acknowledging its input;
|
|
273
|
+
it does not infer or release an uncertain native writer.
|
|
274
|
+
|
|
275
|
+
For obsolete Global input that was conclusively not submitted, use
|
|
276
|
+
`yui inbox retire <entry> --request-id <stable-id> --reason "<disposition>"`
|
|
277
|
+
after inspecting the original and current facts. Retirement preserves the
|
|
278
|
+
original target, claim and explicit management evidence; it is not ACK.
|
|
279
|
+
Accepted input uses normal claim/ack reconciliation. Unknown/pending control,
|
|
280
|
+
transport acceptance and interrupt-then ownership cannot be retired through
|
|
281
|
+
this operation. Task Messages retain the existing Leader `task message retire`
|
|
282
|
+
and exact-Assignment handoff paths.
|
|
283
|
+
|
|
244
284
|
Claiming prevents ordinary automatic delivery; it is not processing completion.
|
|
245
285
|
Acknowledgement records Agent handling, not Host acceptance, result acceptance,
|
|
246
286
|
Task completion, publication or archive. Never acknowledge merely to empty the
|
|
@@ -248,6 +288,13 @@ list. On failure or interruption, leave the claim unacknowledged; it remains
|
|
|
248
288
|
discoverable and does not expire or replay automatically. A current rightful
|
|
249
289
|
successor must inspect original input and prior effects before finishing and
|
|
250
290
|
acknowledging a retained claim. Never replay uncertain external actions.
|
|
291
|
+
After legal Session replacement, initialization can arrive before old handling
|
|
292
|
+
is settled. This recovery notification is not the original business input or
|
|
293
|
+
an acknowledgement. Read the current inbox and prior effects first. For
|
|
294
|
+
`claimed-by-previous-session`, retain the original claim: do not claim again.
|
|
295
|
+
Finish only the still-authorized handling and use a new stable ack request ID
|
|
296
|
+
with a concrete disposition; the receipt retains both the old claimant and
|
|
297
|
+
the current acknowledging actor. New queued input remains separate.
|
|
251
298
|
For an exact-Session input already claimed by its selected Session, a rightful
|
|
252
299
|
successor may explicitly settle that handling after inspecting the original
|
|
253
300
|
and prior effects. This preserves the original target and claim; it grants no
|
|
@@ -277,6 +324,12 @@ This claim never sends the input again. A current rightful successor may settle
|
|
|
277
324
|
an accepted Global input or Leader window while retaining the original delivery
|
|
278
325
|
target; it must inspect prior effects first. Pending/unknown acceptance stays
|
|
279
326
|
blocked and cannot use claim as a replay path.
|
|
327
|
+
An explicitly released Leader notification (`notification.resolved` with
|
|
328
|
+
`released-without-replay`) can be claimed for evidence inspection and settlement
|
|
329
|
+
after verified native stop. Its original delivery status stays unknown or
|
|
330
|
+
unaccepted; handling it cannot retarget Session-specific instructions or
|
|
331
|
+
authorize re-executing unknown effects. If a required fact or user decision is
|
|
332
|
+
unavailable, preserve the claim and report that exact boundary.
|
|
280
333
|
|
|
281
334
|
An ack belongs to the exact original and revision: fixed windows pin
|
|
282
335
|
`message.updated` event identities, including same-timestamp edits. A later
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
10
|
|
@@ -122,6 +122,27 @@ context and fixed notification references, then chooses which still-valid
|
|
|
122
122
|
assignment to continue. Released Leaders retain scoped diagnostic reads but
|
|
123
123
|
cannot regain write authority.
|
|
124
124
|
|
|
125
|
+
Leader initialization is delivered separately from old inbox handling and
|
|
126
|
+
new queued business. A retained claim cannot block this lifecycle notification.
|
|
127
|
+
The current Leader reads `yui inbox list --view history --json`, then the exact originals and
|
|
128
|
+
prior effects. Claims survive unchanged; use `inbox ack` only after actual
|
|
129
|
+
handling, with the successor's own disposition. Do not claim an already-claimed
|
|
130
|
+
entry again. Repeated reconciliation or Controller restart does not settle
|
|
131
|
+
anything or repeatedly wake an idle handler.
|
|
132
|
+
|
|
133
|
+
A legally started GlobalRole successor with claims from a previous Session
|
|
134
|
+
receives one Session-pinned recovery Message in its existing inbox. It requests
|
|
135
|
+
the same inspection, not replay of those Messages. A stopped Global Session
|
|
136
|
+
is not started by this notice. Worker/Reviewer Assignment changes still require
|
|
137
|
+
the existing explicit handoff or retirement; no bulk transfer is implied.
|
|
138
|
+
|
|
139
|
+
Replacement waits for exact native/resource stop and writer release. Missing
|
|
140
|
+
proof requires repairing that observation or a genuinely missing user decision,
|
|
141
|
+
not a timeout, another name, force-ACK or record deletion. Uncertain old
|
|
142
|
+
notification submissions are released from scheduling without replay, retaining
|
|
143
|
+
their fixed wakes and `notification.resolved` evidence. They become explicitly
|
|
144
|
+
inspectable/settleable, not automatically accepted or resubmitted.
|
|
145
|
+
|
|
125
146
|
## Handle uncertainty and failed cleanup
|
|
126
147
|
|
|
127
148
|
Never replay a notification whose acceptance is unknown. After evidence
|