@zq-silk/yui 2.2.0 → 2.3.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 +4 -2
- package/dist/cli/commandCatalog.js +8 -3
- package/dist/cli/interactionPolicy.js +4 -0
- package/dist/commands/taskCommands.js +5 -7
- package/dist/commands/taskIntegrationCommands.js +5 -16
- package/dist/controlPlaneCli.js +28 -21
- package/dist/controller/clientRuntime.js +3 -2
- package/dist/integration/gitIntegrationService.js +8 -67
- package/dist/job/jobCleanupInspection.js +67 -0
- package/dist/repository/gitWorkspace.js +41 -12
- package/dist/repository/taskWorkspaceCoordinator.js +72 -145
- package/dist/repository/taskWorkspacePreparer.js +39 -43
- package/dist/repository/workspaceCleanupInspection.js +88 -7
- package/dist/resources/resourceRegistrar.js +16 -10
- package/dist/runtime/integrationRuntimeIsolation.js +21 -0
- package/dist/runtime/taskRuntimeIsolation.js +91 -21
- package/dist/task/archiveDiagnostics.js +26 -8
- package/dist/task/archivePreflight.js +26 -9
- package/dist/task/leaderArchive.js +9 -15
- package/dist/web/assets/client/api.js +8 -0
- package/dist/web/assets/client/app.js +10 -6
- package/dist/web/assets/client/components.js +95 -36
- package/dist/web/assets/client/detail.js +110 -64
- package/dist/web/assets/client/dock.js +95 -11
- package/dist/web/assets/client/evidence.js +286 -94
- package/dist/web/assets/client/i18n.js +178 -62
- package/dist/web/assets/client/overview.js +9 -13
- package/dist/web/assets/client/records.js +142 -7
- package/dist/web/assets/client/sections.js +234 -198
- package/dist/web/assets/icons.js +4 -0
- package/dist/web/assets/styles/components.js +64 -17
- package/dist/web/assets/styles/responsive.js +7 -5
- package/dist/web/assets/styles/tokens.js +1 -1
- package/dist/web/assets/styles/views.js +48 -31
- package/dist/web/webServer.js +12 -1
- package/dist/web/webTaskSurface.js +8 -1
- package/docs/observability/README.md +13 -3
- package/docs/observability/README.zh-CN.md +10 -3
- package/docs/release-workflow.md +25 -0
- package/docs/release-workflow.zh-CN.md +19 -0
- package/docs/task-delivery.md +36 -8
- package/docs/task-delivery.zh-CN.md +24 -7
- package/i18n/README.zh-CN.md +3 -2
- package/package.json +1 -1
- package/skills/yui-leader/references/execution.md +2 -1
- package/skills/yui-leader/references/integration.md +20 -0
- package/skills/yui-operator/SKILL.md +4 -0
- package/skills/yui-reviewer/SKILL.md +3 -0
- package/skills/yui-runtime/SKILL.md +4 -0
- package/skills/yui-runtime/references/publication.md +20 -4
- package/skills/yui-worker/SKILL.md +3 -0
|
@@ -138,7 +138,7 @@ Review 时跳过刷新,该新鲜度字段为 null。重复完成不重新观
|
|
|
138
138
|
干净且已提交的 Task-main 快照。当有一条新的 user/Operator 消息仍在等待 Leader
|
|
139
139
|
投递时,它也会拒绝完成。当前原生轮次必须结束,待处理的通知才能到达;随后 Leader
|
|
140
140
|
读取原始消息并重新评估完成。这派生自既有的 Message 和 mailbox 投递,而不是第二套
|
|
141
|
-
|
|
141
|
+
确认或工作流状态。终态工作区清理在完成时可以只是建议。普通归档要求业务及执行已结算;
|
|
142
142
|
明确授权的 force 归档可以保留下文所述的未解决资源。被选作结果的 Artifact 必须是
|
|
143
143
|
固定的、存在的且 Task 局部的。
|
|
144
144
|
|
|
@@ -235,13 +235,15 @@ yui task archive <task> (--integrated|--abandon) --force
|
|
|
235
235
|
|
|
236
236
|
### 普通归档
|
|
237
237
|
|
|
238
|
-
|
|
238
|
+
活动工作与输入必须已了结,并证明执行已停止。WorkItem 结果必须已集成或
|
|
239
239
|
有意放弃;Review、Lane 和 Integration 资源必须已结算。使用 `--integrated` 时,
|
|
240
240
|
每个需要代码交付的 Project 都要求已合并且已验证的 Publication,通过精确匹配
|
|
241
241
|
或有效显式采用候选覆盖其验收 head。`--abandon` 记录有意不交付,而不是已验证合并。
|
|
242
242
|
|
|
243
|
-
|
|
244
|
-
|
|
243
|
+
缺失或陈旧的覆盖、未解决的执行会阻止普通归档。脏 worktree 或其他无法安全移除的
|
|
244
|
+
临时资源在逻辑归档后保留,不会仅因这些残留而要求 force;不会隐式 reset 或强制删除。
|
|
245
|
+
`--abandon` 可释放 HEAD 精确等于已记录 Project 基线的干净 Task-main,无需 Publication;
|
|
246
|
+
未验证的新增提交仍保留。pending/running Review 属于未结清业务,而不只是保留目录。
|
|
245
247
|
|
|
246
248
|
### 明确授权的 force 归档
|
|
247
249
|
|
|
@@ -265,9 +267,17 @@ Force 不验证合并、不验收工作、不证明物理静止、不丢弃脏
|
|
|
265
267
|
|
|
266
268
|
归档结果中的 `archived=true` 证明已归档,不证明清理全部成功。即使 `cleanupFinished`
|
|
267
269
|
也只代表前台清理已走完,不代表资源全部移除。重复归档只报告当前事实,不重放清理。
|
|
268
|
-
|
|
270
|
+
检查后通过 `yui task archive-cleanup <task>` 显式重试精确 owner 的安全清理。
|
|
271
|
+
`allResourcesReleased` 将当前轮次及剩余所有权与历史警告分开报告;不隐含后台重试或更广泛的删除
|
|
269
272
|
权限。两条归档路径都保留 Task 历史与恢复信息。已归档的 Task 不能重开。
|
|
270
273
|
|
|
274
|
+
runtime 清理中断可能留下相邻的 `.cleanup-*` 认领目录。重试同时检查这些目录和原路径,
|
|
275
|
+
只有 Owner marker 精确匹配且没有存活进程引用时才删除。marker 缺失或不匹配时保留目录,
|
|
276
|
+
并给出路径供显式诊断;原目录不存在本身不证明资源已释放。未解决的认领也阻止同一 runtime
|
|
277
|
+
重新激活。此过程复用已有资源 owner 和回执,不引入第二套清理队列。
|
|
278
|
+
实际启动过的 Job 的物理检查在普通归档提交前复用同一认领目录清单;
|
|
279
|
+
确认未知结果不能跳过仍被进程引用或无法核实的重命名 runtime。
|
|
280
|
+
|
|
271
281
|
资源 GC 是独立、显式启用的隔离路径。同一 runtime 子树只移动一次,由父目录
|
|
272
282
|
回执负责恢复完整内容;重复的子目录 registry 记录在同一事务内移除。
|
|
273
283
|
独立 Git worktree 或仍需保留的子资源会阻止移动其父目录,不删除 Task 记录或成果。
|
|
@@ -311,8 +321,15 @@ Task Leader reader 也可读取。这里的 `--force` 仅选择要检查的行
|
|
|
311
321
|
|
|
312
322
|
预检是观察,不是删除凭据。清理会重新读取同一组检查,Git 删除时再验证身份和脏状态。
|
|
313
323
|
Task-main clone 在子工作区清理前存在关联 Git 注册是正常现象,但移除 clone 前它们必须
|
|
314
|
-
|
|
315
|
-
|
|
324
|
+
已释放。归档与独立的显式 Integration 清理均保留脏文件和持久日志。
|
|
325
|
+
确认 unknown Job 不会改写其未知结果;清理还需重新验证精确 runner 进程代次及物理路径引用
|
|
326
|
+
均已消失。成功、失败、超时或取消的已执行 Job 也要求同样的物理证据;终态结果不能证明
|
|
327
|
+
存活子进程已停止。只有执行产生任何效果前已取消或拒绝的 Job 可跳过检查。
|
|
328
|
+
清理先检查 Job 结果与精确 runner 退出,再停止执行已结算且归属精确的 Role;
|
|
329
|
+
停止后、删除任何子工作区或提交普通归档前,重新执行完整路径引用检查。
|
|
330
|
+
共享工作区的可复用空闲 Role 可以进入正常停止流程;残留或无法核实的引用仍阻止释放。
|
|
331
|
+
Integration 资源预检与删除共享 runtime 归属和认领目录检查;无法验证的物理材料保留,
|
|
332
|
+
不会因此新增普通归档的业务准入门槛。清理完成只表示这次前台尝试结束,不表示
|
|
316
333
|
全部资源已释放;当前保留引用、精确物理运行时证据与历史诊断仍是不同事实。
|
|
317
334
|
|
|
318
335
|
清理前用每个命令的 `--help` 查看它确切的权限和选项;阅读一份生命周期文档不授权
|
package/i18n/README.zh-CN.md
CHANGED
|
@@ -137,8 +137,9 @@ Agent 可以重新读取任务上下文,继续兼容的 Session,或在必要
|
|
|
137
137
|
想直观看进展,可以在另一个终端运行 `yui web`。本地 Web 展示同一份任务与
|
|
138
138
|
待回答问题,也允许发送消息、回答问题,以及显式 queue、steer 或 interrupt Task 输入。
|
|
139
139
|
这些经认证的 Task 控制复用 CLI 的相同操作,不是另一套需要同步的任务系统。
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
详情分为四个页签:概览(用户待办、任务进展和关键决定)、交付(工作项、评审、
|
|
141
|
+
集成与远程交付,按需读取)、运行(Role、原生会话活动、进行中的执行和用量)、
|
|
142
|
+
记录(决定、里程碑、执行与问题的时间线)。详见[用户关注与进展](../docs/observability/README.zh-CN.md#web-用户关注与进展)。
|
|
142
143
|
详见 [Web 权限](../docs/architecture/capabilities-and-resources.zh-CN.md#cli-与-web)
|
|
143
144
|
和[输入时机](../docs/managed-turn-and-session-runtime.zh-CN.md#输入时机queuesteer-与-interrupt)。
|
|
144
145
|
|
package/package.json
CHANGED
|
@@ -378,7 +378,8 @@ After a ReviewRound is terminal, the Leader or authorized Operator owns
|
|
|
378
378
|
`task work review cleanup <task>/<round>`. Preserve dirty diagnostic evidence
|
|
379
379
|
and resolve it explicitly; do not ask a Reviewer to clean its own runtime
|
|
380
380
|
after its final report. Cleanup can remain advisory at completion. Ordinary
|
|
381
|
-
archive requires settled
|
|
381
|
+
archive requires settled business and stopped execution, not complete physical
|
|
382
|
+
release; safe resource retention is reported separately. Explicitly authorized force archive preserves
|
|
382
383
|
unresolved resources and diagnostics under the shared
|
|
383
384
|
[archive contract](../../yui-runtime/references/publication.md). The Leader
|
|
384
385
|
does not gain independent archive authorization. An original explicit user
|
|
@@ -33,6 +33,10 @@ the files there, then run `integration continue`. No preceding
|
|
|
33
33
|
`resolve --option manual-resolution` is required for an ordinary conflict.
|
|
34
34
|
Core completes the matching Git operation, records the candidate, runs or
|
|
35
35
|
recovers its exact checks and advances the original target by CAS.
|
|
36
|
+
Keep that same attempt for ordinary resolution and record its rationale in
|
|
37
|
+
the existing resolution/report evidence. A detached HEAD during a matching
|
|
38
|
+
rebase is normal. Start another attempt only for a real input/baseline change
|
|
39
|
+
or evidenced inability to resume safely, explaining that decision.
|
|
36
40
|
|
|
37
41
|
Do not close the Task execution gate, stop unrelated work, create an
|
|
38
42
|
InputRequest or end in passive waiting merely because Git conflicted.
|
|
@@ -86,6 +90,22 @@ Inspect all Jobs owned by the exact attempt, including an unbound Job;
|
|
|
86
90
|
cancel and establish quiescence by exact identity before reusing or cleaning
|
|
87
91
|
resources. Successful Job evidence and Task acceptance remain separate.
|
|
88
92
|
|
|
93
|
+
After terminal settlement, `task integration cleanup <task>/<integration>`
|
|
94
|
+
can release clean exact-owner temporary resources without waiting for Task
|
|
95
|
+
archive. Save necessary reports in Task artifacts/results first. Cleanup
|
|
96
|
+
preserves the attempt, fixed checks/logs and target receipts. Failure or abort
|
|
97
|
+
never authorizes deleting uncommitted resolutions; preserve dirty material
|
|
98
|
+
and resolve its disposition explicitly. Acknowledging an unknown Job is not
|
|
99
|
+
physical stop evidence: cleanup also rechecks the recorded runner generation
|
|
100
|
+
and physical workspace/log/runtime references. When those are proven absent,
|
|
101
|
+
the acknowledged unknown result remains historical evidence, not a permanent
|
|
102
|
+
physical-cleanup blocker.
|
|
103
|
+
The same physical checks apply to every executed terminal Job, including a
|
|
104
|
+
successful one: surviving child processes are not stopped by a result receipt.
|
|
105
|
+
Integration resource preflight includes runtime ownership and renamed cleanup
|
|
106
|
+
claims; retain unverified material for diagnosis without inferring new deletion
|
|
107
|
+
authority from Task archive admission.
|
|
108
|
+
|
|
89
109
|
Direct Task-main delivery is an alternative only when current delivery
|
|
90
110
|
authority, ownership and the Task contract already permit it, with no other
|
|
91
111
|
writer or active check using that workspace. Do not edit managed refs or the
|
|
@@ -268,6 +268,10 @@ After an authorized PR/MR operation or before archive, read
|
|
|
268
268
|
[publication and archive boundaries](../yui-runtime/references/publication.md).
|
|
269
269
|
Record confirmed delivery facts promptly. Completion does not authorize
|
|
270
270
|
archive, and ordinary archive approval does not authorize `--force`.
|
|
271
|
+
Distinguish settled business and stopped execution from safely retained
|
|
272
|
+
physical resources. Ordinary archive may retain the latter; follow the shared
|
|
273
|
+
archive diagnostics and exact cleanup actions instead of requesting force
|
|
274
|
+
merely for old terminal Integration worktrees or preserved diagnostics.
|
|
271
275
|
When the user explicitly authorizes force archive for an eligible terminal
|
|
272
276
|
Task, archive even if delivery proof or cleanup is incomplete. Report the
|
|
273
277
|
warnings and retained resources without claiming merge verification or physical
|
|
@@ -104,6 +104,9 @@ judgment; it does not accept the WorkItem or complete the Task. Preserve the
|
|
|
104
104
|
ReviewRound record and workspace, and report any diagnostic changes. After
|
|
105
105
|
the Round is terminal, an authorized Leader or Operator owns cleanup through
|
|
106
106
|
Yui; do not attempt to terminate or delete your own managed runtime/workspace.
|
|
107
|
+
Keep scratch in the supplied runtime `TMPDIR` and put required diagnostic
|
|
108
|
+
evidence in durable results/artifacts; resource release must not erase the
|
|
109
|
+
frozen Review or its original report.
|
|
107
110
|
|
|
108
111
|
A helpful default result layout is Conclusion, Material findings, Verification,
|
|
109
112
|
Uncertainty, and Recommended next action. Markdown or JSON are both acceptable.
|
|
@@ -26,6 +26,10 @@ resource boundaries still apply; a planning Session does not gain delivery
|
|
|
26
26
|
authority merely because the Task becomes active.
|
|
27
27
|
Use the runtime-provided `TMPDIR` for temporary context or diagnostic files,
|
|
28
28
|
not fixed shared `/tmp` names or the logical multi-Project workspace container.
|
|
29
|
+
Save durable reports in Task artifacts/results before releasing their temporary
|
|
30
|
+
workspace. Integration history and check evidence outlive its worktree; a
|
|
31
|
+
terminal attempt is not an unresolved business input merely because resources
|
|
32
|
+
remain. Cleanup inspects exact ownership and preserves unknown or dirty data.
|
|
29
33
|
|
|
30
34
|
Ordinary commands use `yui` from the intended launch environment's PATH and
|
|
31
35
|
`YUI_HOME`. Session/native identity, Task/Assignment/workspace authority and
|
|
@@ -94,6 +94,14 @@ the exact Task, checks archive eligibility, then uses `--integrated` for verifie
|
|
|
94
94
|
merged delivery or `--abandon` for deliberate non-delivery. General archive
|
|
95
95
|
approval never implies `--force` authority. Preserve the Task record.
|
|
96
96
|
|
|
97
|
+
Ordinary archive requires settled business, exact delivery (or authorized
|
|
98
|
+
abandonment), and proven stopped execution. It commits logical archive before
|
|
99
|
+
one foreground resource cleanup. Safe physical retention—dirty diagnostics,
|
|
100
|
+
missing-path recovery gaps, or remaining Git registrations—is not a reason to
|
|
101
|
+
force archive or rewrite old Integration outcomes. Terminal failed/superseded
|
|
102
|
+
Integration history stays readable; an active/conflicted attempt or unknown
|
|
103
|
+
execution still requires settlement.
|
|
104
|
+
|
|
97
105
|
With explicit force authorization for a completed or cancelled (retired) Task, use
|
|
98
106
|
`yui task archive <task> (--integrated|--abandon) --force`. Force commits the
|
|
99
107
|
archive and stops new Task scheduling before attempting safe foreground cleanup.
|
|
@@ -108,10 +116,18 @@ cannot be safely released stay owned and traceable. Late runtime events remain
|
|
|
108
116
|
source evidence, not authority to resume or settle unknown input.
|
|
109
117
|
|
|
110
118
|
Read `task show <task> --json` for `data.archive.warnings`,
|
|
111
|
-
`data.archive.retainedResources` and `data.archive.cleanupEvents
|
|
112
|
-
|
|
119
|
+
`data.archive.retainedResources` and `data.archive.cleanupEvents`. These bounded
|
|
120
|
+
views include counts and inspection actions; read the existing paginated
|
|
121
|
+
`task event list` and Task context resource inventory for omitted evidence.
|
|
122
|
+
A successful archive
|
|
113
123
|
exit means `archived=true`, not that cleanup fully succeeded. `cleanupFinished`
|
|
114
124
|
means the foreground pass finished, not that every resource was removed.
|
|
125
|
+
`allResourcesReleased` separately requires release evidence and no retained
|
|
126
|
+
resources. Historical warnings do not disappear after a successful later pass.
|
|
115
127
|
If cleanup was interrupted, the Task stays archived. Repeating archive only
|
|
116
|
-
reports current facts
|
|
117
|
-
|
|
128
|
+
reports current facts. After inspecting the exact retained owner/reason, use
|
|
129
|
+
`task archive-cleanup <task>` for one new bounded pass, or the reported
|
|
130
|
+
WorkItem/Review/Integration cleanup entry. Every pass rechecks current identity,
|
|
131
|
+
runtime and Git registration facts; it is not an atomic batch and does not
|
|
132
|
+
discard unknown material. Registry-only remnants require the existing resource
|
|
133
|
+
inspection route, not a global `worktree prune`. No background retry is implied.
|
|
@@ -109,3 +109,6 @@ reject it for missing headings or invalid JSON.
|
|
|
109
109
|
|
|
110
110
|
Leave managed workspaces intact after handoff. Their owner lifecycle and
|
|
111
111
|
cleanup belong to the Leader and Yui Core.
|
|
112
|
+
Keep disposable tools/cache in the supplied runtime `TMPDIR`, not the logical
|
|
113
|
+
multi-Project container. Preserve required handoff evidence in durable
|
|
114
|
+
results/artifacts before its temporary workspace is released.
|