@zq-silk/yui 0.15.7 → 0.15.9

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.
Files changed (308) hide show
  1. package/ARCHITECTURE.md +194 -399
  2. package/ARCHITECTURE.zh-CN.md +151 -0
  3. package/README.md +306 -1131
  4. package/dist/agent/adapterCatalog.js +15 -2
  5. package/dist/agent/agent.js +23 -3
  6. package/dist/agent/argumentPolicy.js +7 -1
  7. package/dist/agent/connectionPlan.js +62 -0
  8. package/dist/agent/executionComponents.js +158 -0
  9. package/dist/agent/launchEnvironment.js +31 -3
  10. package/dist/agent/managedRuntimeEnvironment.js +3 -5
  11. package/dist/{turn/turn.js → agentRun/agentRun.js} +166 -109
  12. package/dist/{turn/turnIdentity.js → agentRun/runIdentity.js} +4 -4
  13. package/dist/artifacts/artifactCapability.js +74 -0
  14. package/dist/artifacts/artifactCommitLock.js +249 -0
  15. package/dist/artifacts/artifactPaths.js +151 -0
  16. package/dist/artifacts/gitArtifactRef.js +146 -0
  17. package/dist/artifacts/managedGit.js +332 -0
  18. package/dist/artifacts/taskArtifactRepository.js +277 -0
  19. package/dist/brief/taskBrief.js +12 -0
  20. package/dist/cli/agentConfigurationPicker.js +13 -0
  21. package/dist/cli/commandCatalog.js +165 -74
  22. package/dist/cli/interactionCandidates.js +5 -5
  23. package/dist/cli/interactionPolicy.js +38 -8
  24. package/dist/cli/invocationRouter.js +1 -1
  25. package/dist/cli/managedDiagnostics.js +28 -0
  26. package/dist/cli/operatorWizard.js +1 -7
  27. package/dist/cli/roleOptionOrder.js +27 -0
  28. package/dist/cli/roleWizard.js +50 -14
  29. package/dist/cli/updateOrchestrator.js +1 -1
  30. package/dist/cli/updatePorts.js +3 -4
  31. package/dist/cli.js +245 -95
  32. package/dist/commands/agentCommands.js +72 -14
  33. package/dist/commands/capabilityCommands.js +9 -6
  34. package/dist/commands/configCommands.js +20 -20
  35. package/dist/commands/deliveryGuardPreflight.js +2 -2
  36. package/dist/commands/executionAuditCommands.js +24 -24
  37. package/dist/commands/globalRoleCommands.js +1 -1
  38. package/dist/commands/grantCommands.js +4 -4
  39. package/dist/commands/operatorCommands.js +34 -9
  40. package/dist/commands/projectCommands.js +4 -4
  41. package/dist/commands/resourcesCommands.js +2 -2
  42. package/dist/commands/roleConfiguration.js +25 -5
  43. package/dist/commands/roleRuntimeGuard.js +4 -5
  44. package/dist/commands/sessionCommands.js +3 -7
  45. package/dist/commands/taskActivationCommands.js +281 -0
  46. package/dist/commands/taskActor.js +28 -49
  47. package/dist/commands/taskCommands.js +1461 -720
  48. package/dist/commands/taskContextCommand.js +39 -583
  49. package/dist/commands/taskExecutionCommands.js +32 -32
  50. package/dist/commands/taskInputCommands.js +40 -104
  51. package/dist/commands/taskIntegrationCommands.js +3 -2
  52. package/dist/commands/taskIntegrationQueueCommands.js +1 -1
  53. package/dist/commands/taskNextActionCommand.js +8 -8
  54. package/dist/commands/taskOverviewCommand.js +33 -45
  55. package/dist/commands/taskRemoteDeliveryCommand.js +2 -2
  56. package/dist/commands/taskRoleRuntimeStatus.js +133 -102
  57. package/dist/commands/telemetryCommands.js +36 -38
  58. package/dist/config/configCatalog.js +4 -4
  59. package/dist/config/yuiConfig.js +8 -8
  60. package/dist/context/contextSnapshot.js +10 -10
  61. package/dist/context/dispatchContext.js +11 -11
  62. package/dist/context/roleSessionContext.js +6 -3
  63. package/dist/context/{turnContextPack.js → runContextPack.js} +158 -81
  64. package/dist/context/{turnInputContract.js → runInputContract.js} +73 -60
  65. package/dist/context/sessionBootstrapManifest.js +21 -2
  66. package/dist/context/sourceRunContext.js +30 -0
  67. package/dist/context/taskContext.js +481 -0
  68. package/dist/context/wakeNotification.js +27 -27
  69. package/dist/controller/agentRuntimeObserver.js +21 -24
  70. package/dist/controller/capabilityBridge.js +17 -6
  71. package/dist/controller/clientRuntime.js +65 -92
  72. package/dist/controller/controller.js +120 -188
  73. package/dist/controller/fileSchedulerStoreAdapter.js +787 -887
  74. package/dist/controller/jobControl.js +54 -85
  75. package/dist/controller/resourceInventory.js +8 -27
  76. package/dist/controller/resourceInventoryLinux.js +12 -13
  77. package/dist/controller/runtime.js +529 -479
  78. package/dist/controller/runtimeEventInbox.js +55 -25
  79. package/dist/controller/runtimeEventProcessor.js +22 -31
  80. package/dist/controller/{runtimeHookTurnFence.js → runtimeHookRunFence.js} +91 -115
  81. package/dist/controller/runtimeLaunchCoordinator.js +80 -426
  82. package/dist/controller/runtimeObservationHook.js +14 -18
  83. package/dist/controller/sessionNotify.js +16 -24
  84. package/dist/controller/sessionOwnerReconciliation.js +168 -50
  85. package/dist/controller/structuredProviderObservation.js +138 -99
  86. package/dist/coordination/workMailbox.js +3 -3
  87. package/dist/coordination/workMailboxQueue.js +36 -33
  88. package/dist/core/boundedRpc.js +8 -1
  89. package/dist/core/controllerClient.js +20 -1
  90. package/dist/core/controllerServer.js +4 -4
  91. package/dist/doctor/doctor.js +13 -2
  92. package/dist/domain/agentResultTransport.js +9 -9
  93. package/dist/execution/codexThreadNaming.js +2 -8
  94. package/dist/execution/executionHealth.js +51 -63
  95. package/dist/execution/reviewMainRun.js +137 -0
  96. package/dist/execution/workItemExecution.js +28 -29
  97. package/dist/execution/workItemExecutionProjection.js +99 -107
  98. package/dist/execution/workItemMainRun.js +141 -0
  99. package/dist/executor/agentAdapter.js +227 -20
  100. package/dist/executor/agentConfigurationCatalog.js +126 -4
  101. package/dist/executor/agentConfigurationProbe.js +162 -4
  102. package/dist/executor/agentExecutor.js +79 -78
  103. package/dist/executor/effectiveLaunch.js +105 -18
  104. package/dist/executor/executorRegistry.js +29 -44
  105. package/dist/executor/fileRoleLaunchPlanner.js +229 -154
  106. package/dist/executor/workspacePreflightClassification.js +16 -16
  107. package/dist/grant/capabilityGrant.js +6 -3
  108. package/dist/input/inputRequest.js +12 -10
  109. package/dist/integration/gitIntegrationService.js +4 -11
  110. package/dist/integration/integrationQueueService.js +4 -4
  111. package/dist/interaction/operatorPresentation.js +1 -1
  112. package/dist/kernel/builtinCapabilities.js +255 -12
  113. package/dist/kernel/capabilityRegistry.js +64 -18
  114. package/dist/kernel/instanceHost.js +12 -1
  115. package/dist/kernel/kernelPorts.js +2 -2
  116. package/dist/lifecycle/canonicalLifecycleEvent.js +44 -49
  117. package/dist/lifecycle/exactRunTerminalization.js +449 -0
  118. package/dist/message/message.js +118 -6
  119. package/dist/message/messageContinuation.js +204 -0
  120. package/dist/observability/executionAudit.js +70 -72
  121. package/dist/observability/faultClassification.js +2 -2
  122. package/dist/observability/orchestrationMetrics.js +8 -8
  123. package/dist/operator/operatorSessionHistory.js +1 -7
  124. package/dist/output/agentConfigurationPresentation.js +8 -3
  125. package/dist/output/agentRunConfigurationPresentation.js +128 -0
  126. package/dist/output/rolePresentation.js +54 -3
  127. package/dist/plugins/pluginChild.js +104 -0
  128. package/dist/plugins/pluginIntent.js +26 -0
  129. package/dist/plugins/pluginInterpreter.js +43 -0
  130. package/dist/plugins/pluginPackage.js +101 -0
  131. package/dist/plugins/pluginProcess.js +112 -0
  132. package/dist/plugins/pluginService.js +388 -0
  133. package/dist/profile/agentProfile.js +1 -1
  134. package/dist/repository/gitWorkspace.js +26 -4
  135. package/dist/repository/project.js +19 -4
  136. package/dist/repository/taskBaseFreshness.js +13 -13
  137. package/dist/repository/taskWorkspaceCoordinator.js +20 -27
  138. package/dist/repository/taskWorkspacePreparer.js +344 -83
  139. package/dist/resources/autoResourceGc.js +3 -3
  140. package/dist/resources/liveReferences.js +3 -3
  141. package/dist/resources/projectResource.js +75 -0
  142. package/dist/resources/projectResourceService.js +343 -0
  143. package/dist/resources/resourceDiscovery.js +6 -6
  144. package/dist/resources/resourceGc.js +1 -1
  145. package/dist/resources/resourceRegistrar.js +1 -1
  146. package/dist/resources/resourceTypes.js +1 -1
  147. package/dist/review/deltaRecheck.js +3 -3
  148. package/dist/review/reviewAcceptance.js +16 -16
  149. package/dist/review/reviewDecision.js +7 -7
  150. package/dist/review/reviewRound.js +21 -20
  151. package/dist/review/reviewerAvailability.js +2 -2
  152. package/dist/role/role.js +51 -7
  153. package/dist/role/taskRoleUpdate.js +30 -0
  154. package/dist/runtime/acpProtocol.js +425 -0
  155. package/dist/runtime/acpSession.js +731 -0
  156. package/dist/runtime/acpSessionConfiguration.js +260 -0
  157. package/dist/runtime/agentDriver.js +30 -11
  158. package/dist/runtime/agentEndpoint.js +278 -0
  159. package/dist/runtime/agentEndpointIdentity.js +86 -0
  160. package/dist/runtime/agentEndpointOwnership.js +239 -0
  161. package/dist/runtime/agentError.js +2 -10
  162. package/dist/runtime/agentHost.js +565 -314
  163. package/dist/runtime/agentRunConfiguration.js +258 -0
  164. package/dist/runtime/builtinAgentDrivers.js +134 -18
  165. package/dist/runtime/builtinAgentErrorMappers.js +55 -3
  166. package/dist/runtime/builtinTranscriptUsage.js +1 -1
  167. package/dist/runtime/claude-process-owner +0 -0
  168. package/dist/runtime/codexAppServerRuntime.js +38 -30
  169. package/dist/runtime/codexInteractiveHost.js +41 -6
  170. package/dist/runtime/continuationManager.js +2 -6
  171. package/dist/runtime/executionEnvironment.js +30 -0
  172. package/dist/runtime/firstProgressAdvisory.js +11 -11
  173. package/dist/runtime/index.js +4 -3
  174. package/dist/runtime/jsonLineChannel.js +109 -0
  175. package/dist/runtime/launchBroker.js +91 -16
  176. package/dist/runtime/launchDiagnostics.js +2 -2
  177. package/dist/runtime/lifecycleReservation.js +10 -18
  178. package/dist/runtime/managedCaller.js +61 -17
  179. package/dist/runtime/nativeSessionControl.js +102 -0
  180. package/dist/runtime/ports.js +6 -21
  181. package/dist/runtime/processExitObservation.js +8 -7
  182. package/dist/runtime/promptEnvelope.js +17 -6
  183. package/dist/runtime/providerContinuation.js +3 -9
  184. package/dist/runtime/providerContinuationReconciliationService.js +4 -13
  185. package/dist/runtime/providerControl.js +2 -7
  186. package/dist/runtime/providerRuntimeIdentity.js +110 -222
  187. package/dist/runtime/providerRuntimeReconciler.js +5 -9
  188. package/dist/runtime/runtimeBinding.js +0 -1
  189. package/dist/runtime/runtimeContinuationProjection.js +4 -7
  190. package/dist/runtime/runtimeDeadlines.js +9 -0
  191. package/dist/runtime/runtimeHealthPolicy.js +1 -1
  192. package/dist/runtime/runtimeObservation.js +29 -65
  193. package/dist/runtime/runtimeProjection.js +43 -51
  194. package/dist/runtime/runtimeSessionCandidate.js +1 -3
  195. package/dist/runtime/sessionLaunchRequest.js +3 -7
  196. package/dist/runtime/sessionOwnerIdentity.js +7 -54
  197. package/dist/runtime/sessionOwnerRegistry.js +22 -17
  198. package/dist/runtime/sessionReconciliation.js +4 -8
  199. package/dist/runtime/sessionTerminationGuard.js +70 -259
  200. package/dist/runtime/sessionTokenMetrics.js +5 -16
  201. package/dist/runtime/structuredProviderHost.js +237 -117
  202. package/dist/runtime/taskRuntimeIsolation.js +39 -122
  203. package/dist/runtime/tmuxAdapters.js +39 -86
  204. package/dist/scheduler/activeRoleRunDelivery.js +354 -0
  205. package/dist/scheduler/leaderWakeupProcessor.js +75 -266
  206. package/dist/scheduler/operatorInputNotificationProcessor.js +1 -1
  207. package/dist/scheduler/ports.js +80 -9
  208. package/dist/scheduler/{roleTurnLiveness.js → roleRunLiveness.js} +26 -30
  209. package/dist/scheduler/{roleTurnStall.js → roleRunStall.js} +128 -139
  210. package/dist/scheduler/taskExecutionProjection.js +120 -124
  211. package/dist/scheduler/taskObservabilityProjection.js +29 -29
  212. package/dist/scheduler/taskWake.js +11 -4
  213. package/dist/scheduler/wakeReason.js +9 -1
  214. package/dist/setup/setupCommand.js +3 -7
  215. package/dist/storage/migrations/agentRunContract.js +159 -0
  216. package/dist/storage/migrations/artifactsToGit.js +338 -0
  217. package/dist/storage/migrations/removeRuntimeGeneration.js +207 -0
  218. package/dist/storage/migrations/submitIntent.js +126 -0
  219. package/dist/storage/sqliteSchema.js +467 -7
  220. package/dist/storage/sqliteStore.js +355 -220
  221. package/dist/storage/storageVersions.js +1 -1
  222. package/dist/storage/storeRpc.js +10 -5
  223. package/dist/storage/taskStore.js +13 -11
  224. package/dist/storage/upgrade/upgradeOrchestrator.js +5 -7
  225. package/dist/surface/surfaceContributions.js +102 -0
  226. package/dist/task/completionReadiness.js +32 -6
  227. package/dist/task/deliveryGuard.js +16 -16
  228. package/dist/task/draftPlan.js +72 -12
  229. package/dist/task/nextAction.js +144 -128
  230. package/dist/task/remoteDelivery.js +6 -6
  231. package/dist/task/task.js +184 -18
  232. package/dist/task/taskActivation.js +327 -0
  233. package/dist/task/taskActivationService.js +408 -0
  234. package/dist/task/taskRecordReference.js +5 -4
  235. package/dist/task/taskRecordRetirement.js +1 -1
  236. package/dist/task/taskSubmission.js +236 -0
  237. package/dist/telemetry/sqliteTelemetryStore.js +55 -68
  238. package/dist/telemetry/telemetryConfig.js +14 -14
  239. package/dist/telemetry/telemetryWiring.js +2 -2
  240. package/dist/web/assets/assetManifest.js +2 -0
  241. package/dist/web/assets/client/app.js +121 -20
  242. package/dist/web/assets/client/components.js +87 -54
  243. package/dist/web/assets/client/i18n.js +83 -41
  244. package/dist/web/assets/client/markdown.js +1 -1
  245. package/dist/web/assets/client/taskSurface.js +442 -0
  246. package/dist/web/assets/client/view.js +49 -44
  247. package/dist/web/assets/shell.js +1 -1
  248. package/dist/web/assets/styles/cards.js +22 -4
  249. package/dist/web/controllerWeb.js +60 -0
  250. package/dist/web/webMutation.js +28 -0
  251. package/dist/web/webServer.js +133 -8
  252. package/dist/web/webSnapshot.js +81 -74
  253. package/dist/web/webTaskSurface.js +64 -0
  254. package/dist/workItem/dependencyGate.js +1 -1
  255. package/dist/workItem/workItem.js +84 -48
  256. package/dist/workspace/workItemChangeSetManager.js +16 -9
  257. package/docs/agent-result-consumption.md +96 -0
  258. package/docs/agent-result-consumption.zh-CN.md +81 -0
  259. package/docs/agent-runtime-drivers.md +93 -0
  260. package/docs/agent-runtime-drivers.zh-CN.md +77 -0
  261. package/docs/architecture/README.md +50 -0
  262. package/docs/architecture/README.zh-CN.md +43 -0
  263. package/docs/architecture/capabilities-and-resources.md +118 -0
  264. package/docs/architecture/capabilities-and-resources.zh-CN.md +83 -0
  265. package/docs/managed-turn-and-session-runtime.md +224 -0
  266. package/docs/managed-turn-and-session-runtime.zh-CN.md +180 -0
  267. package/docs/observability/README.md +83 -0
  268. package/docs/observability/README.zh-CN.md +71 -0
  269. package/docs/plugin-sdk.md +393 -0
  270. package/docs/plugin-sdk.zh-CN.md +293 -0
  271. package/docs/provider-runtime.md +165 -0
  272. package/docs/provider-runtime.zh-CN.md +132 -0
  273. package/docs/release-workflow.md +305 -0
  274. package/docs/release-workflow.zh-CN.md +237 -0
  275. package/docs/roles-and-configuration.md +115 -0
  276. package/docs/roles-and-configuration.zh-CN.md +96 -0
  277. package/docs/sqlite-control-plane-design.md +78 -0
  278. package/docs/sqlite-control-plane-design.zh-CN.md +62 -0
  279. package/docs/task-dag-semantics.md +80 -0
  280. package/docs/task-dag-semantics.zh-CN.md +59 -0
  281. package/docs/task-delivery.md +105 -0
  282. package/docs/task-delivery.zh-CN.md +82 -0
  283. package/docs/task-local-identity.md +8 -6
  284. package/docs/task-local-identity.zh-CN.md +58 -0
  285. package/docs/testing/verification-levels.md +88 -0
  286. package/docs/testing/verification-levels.zh-CN.md +69 -0
  287. package/i18n/README.zh-CN.md +270 -722
  288. package/package.json +3 -2
  289. package/skills/yui-leader/SKILL.md +88 -304
  290. package/skills/yui-leader/references/execution.md +303 -0
  291. package/skills/yui-leader/references/integration.md +39 -0
  292. package/skills/yui-leader/references/planning.md +109 -0
  293. package/skills/yui-leader/references/replicated-execution.md +42 -0
  294. package/skills/yui-leader/references/task-plugins.md +37 -0
  295. package/skills/yui-operator/SKILL.md +46 -62
  296. package/skills/yui-reviewer/SKILL.md +35 -36
  297. package/skills/yui-runtime/SKILL.md +88 -24
  298. package/skills/yui-runtime/references/publication.md +22 -0
  299. package/skills/yui-runtime/references/recovery.md +64 -0
  300. package/skills/yui-worker/SKILL.md +37 -39
  301. package/dist/cli/roleOptionCatalog.js +0 -68
  302. package/dist/context/sourceTurnContext.js +0 -30
  303. package/dist/execution/reviewMainTurn.js +0 -161
  304. package/dist/execution/workItemMainTurn.js +0 -164
  305. package/dist/lifecycle/exactTurnTerminalization.js +0 -407
  306. package/dist/runtime/preallocatedNativeSession.js +0 -13
  307. package/dist/runtime/runtimeStopReceipt.js +0 -42
  308. package/dist/scheduler/activeRoleTurnDelivery.js +0 -315
@@ -0,0 +1,58 @@
1
+ <p align="right"><a href="./task-local-identity.md">English</a> | <strong>简体中文</strong></p>
2
+
3
+ # Task 局部身份
4
+
5
+ Yui 把 Task 作为持久工作流记录的聚合边界。每个 Task 为下面每一类记录族维护
6
+ 一条独立、单调递增的序列:
7
+
8
+ - WorkItem
9
+ - AgentRun
10
+ - ReviewRound
11
+ - ChangeSet
12
+ - IntegrationAttempt
13
+ - Message
14
+ - InputRequest
15
+ - Decision
16
+ - Milestone
17
+ - Event
18
+
19
+ 序列从 1 开始,因此每个 Task 内某个族的第一条记录本地编号都以 `-1` 结尾
20
+ (例如 `work-item-1`)。删除、取消、完成、重开和归档都不会降低已持久化的
21
+ 高水位,所以本地 ID 在同一个 Task 内永不复用。每次分配都在 Store 事务内推进
22
+ 该聚合高水位。
23
+
24
+ Candidate 身份的范围更窄:`candidate-N` 是 WorkItem 内的局部序列。每个
25
+ Candidate 都保存自己的 `taskId` 和 `workItemId`,在有来源 AgentRun 时再附带
26
+ 其引用。
27
+
28
+ ## 引用合同
29
+
30
+ Task 所属引用的可移植形式为:
31
+
32
+ ```text
33
+ <task-id>/<local-id>
34
+ ```
35
+
36
+ 例如 `task-7/work-item-1` 和 `task-9/work-item-1` 是不同的。CLI、JSON、mailbox、
37
+ Controller、Hook、回执、Web 以及错误路径都保留 Task 范围。无上下文的命令会
38
+ 拒绝裸的本地 ID,而不是在所有 Task 中搜索,即使该 ID 当前恰好唯一。
39
+
40
+ 受管的 Task 会话可以直接用 `work-item-1` 或 `run-1`,因为它的 `YUI_TASK_ID`
41
+ 是明确的。已经通过其他参数收到 Task 的命令也可以使用从属的本地 ID。除这两种
42
+ 情形外,一律使用限定形式。投递回执沿用同样的来源标注,例如:
43
+
44
+ ```text
45
+ run:task-7/run-1
46
+ input-request:task-7/input-1
47
+ ```
48
+
49
+ 不存在兼容查找、跨 Task 猜测或裸 ID 回退。
50
+
51
+ ## 当前 schema 边界
52
+
53
+ 运行时只打开当前 Home 存储版本和当前记录形态,普通工作中既不双读也不推断
54
+ 历史记录。历史解码与改写只发生在显式的 `yui upgrade` 边界和 `yui update` 的
55
+ 迁移阶段;凡是不低于 CLI 最低支持存储版本的有效 Home 都能直接推进到当前版本。
56
+
57
+ 这条边界让 Task 局部引用、Role 期望配置以及不可变的 AgentRun/RoleSession
58
+ 生效快照都处在同一份无歧义的运行时合同下,而只追加的迁移链保留受支持的历史。
@@ -0,0 +1,88 @@
1
+ <p align="right"><strong>English</strong> | <a href="./verification-levels.zh-CN.md">简体中文</a></p>
2
+
3
+ # Verification policy
4
+
5
+ Yui is a single-user local product. Permanent verification protects essential
6
+ happy paths and a few critical, easily changed correctness boundaries. It is
7
+ not a historical catalog of every defect or edge case.
8
+
9
+ ## Local development
10
+
11
+ Use the smallest evidence needed for the current change. Retain a focused
12
+ regression when all of the following apply:
13
+
14
+ - Failure would lose durable intent, cross an authority/isolation boundary, or
15
+ prevent an Agent/Operator from making legitimate progress.
16
+ - The boundary is shared by frequently changed code or has already failed in
17
+ a realistic execution.
18
+ - The check is deterministic, uses disposable local fixtures, runs in
19
+ milliseconds, and asserts observable behavior rather than incidental layout.
20
+ - Equivalent coverage is not already present; prefer one coherent scenario
21
+ over separate cases for each historical symptom.
22
+
23
+ Keep broad fault matrices, real-model exercises, malformed-data combinations
24
+ and incident-specific scripts temporary. Remove their harnesses after the
25
+ change, preserving useful reports. Real-resource results do not replace fast
26
+ regressions, and fast regressions do not establish real-model behavior.
27
+
28
+ ## Permanent core smoke
29
+
30
+ `npm test` and `npm run test:core` build the checkout and run one permanent suite:
31
+
32
+ 1. the packaged CLI starts and exposes setup/update/upgrade/Task commands;
33
+ 2. one normal SQLite Task and Message survive a reopen;
34
+ 3. a supported historical Home migrates through the linear storage chain to current;
35
+ 4. the built-in Codex and Claude Drivers are registered;
36
+ 5. one independent declarative plugin is created, validated, called and disabled
37
+ through authenticated ingress, with its selection and validation preserved.
38
+ 6. a Task starts from durable Operator input, exposes planning Context and enters
39
+ delivery with its original intent and captured planning authority preserved.
40
+ 7. Session replacement preserves pending original Messages and independent work;
41
+ old Sessions keep scoped reads but cannot regain write authority;
42
+ 8. InputRequests survive Session replacement without a synthetic AgentRun;
43
+ 9. late native terminals cannot settle successor input or invent acceptance;
44
+ 10. remote Operator startup carries its reserved workspace, Role instructions
45
+ and scoped CLI identity, while offline diagnostics/recovery remain reachable.
46
+ 11. durably queued native results survive Controller outages and replay without
47
+ poisoning the Host; known terminal inputs do not become active merely by aging;
48
+ 12. Task-final review can use its Task-local Reviewer without a global template.
49
+ 13. a native error label permits replacement only with latest-Turn terminal
50
+ evidence and drained background execution; a wrong native account cannot
51
+ authorize cleanup.
52
+ 14. Claude receives its native environment and settings paths without injected
53
+ authentication helpers, rewritten approval records, or secrets forwarded
54
+ to unrelated adapters; native authentication selection stays with Claude. Environment refresh
55
+ removes revoked keys and keeps values out of durable Task/Role records.
56
+
57
+ Keep the test phase seconds-scale; measure TypeScript build separately. Record
58
+ incremental runtime when adding a critical regression. The seven recovery boundary
59
+ cases initially add about 0.4 seconds of test bodies (about 0.6 seconds standalone,
60
+ including module startup) on the development host. Avoid sleep-based checks or
61
+ mandatory model/daemon launches in the permanent suite.
62
+
63
+ ## Skill and instruction changes
64
+
65
+ Review the shared Runtime contract and affected Role/Project Skills together.
66
+ Check instruction boundaries with a few relevant scenarios: analysis remains
67
+ read-only, existing mechanisms are reused, Session loss preserves Task intent,
68
+ and execution failure does not prevent authorized supervision. This is a
69
+ bounded review, not a new permanent matrix or permission to use real models.
70
+
71
+ The package-start check follows local Skill references in the installed tree,
72
+ including cross-Role links. Entry points and their referenced Markdown must
73
+ ship together. File/format checks establish availability, not Agent behavior;
74
+ do not add prose-matching tests or claim model validation from static checks.
75
+
76
+ ## CI and release
77
+
78
+ `ci.yml` runs the core smoke plus one package-assembly/start check. It does not
79
+ run a second lint pass or a separate broad regression suite. `publish.yml` reuses that
80
+ exact gated commit and adds only tag, artifact, install, and provenance checks
81
+ that are unique to publishing.
82
+
83
+ Configured Agents acting as developers or reviewers are ordinary execution
84
+ resources. Using a live provider or model as the subject of validation is
85
+ different: paid APIs, shared Homes, production systems, real account quota, and
86
+ other non-disposable external effects are never implied by a request to test or
87
+ validate. They require an explicit user request for the exact resource and
88
+ effect boundary.
@@ -0,0 +1,69 @@
1
+ <p align="right"><a href="./verification-levels.md">English</a> | <strong>简体中文</strong></p>
2
+
3
+ # 验证策略
4
+
5
+ Yui 是一个单用户本地产品。永久验证保护关键的 happy path 和少数几个高影响、易被改动
6
+ 的正确性边界。它不是一份把每个缺陷或边界情况都收录在案的历史目录。
7
+
8
+ ## 本地开发
9
+
10
+ 使用当前变更所需的最小证据。仅当以下全部成立时才保留一个聚焦的回归测试:
11
+
12
+ - 失败会丢失持久意图、越过权限/隔离边界,或阻止 Agent/Operator 取得正当进展。
13
+ - 该边界被频繁改动的代码共享,或已经在一次真实执行中失败过。
14
+ - 该检查是确定性的、使用一次性本地夹具、在毫秒级运行,并断言可观察行为而非附带布局。
15
+ - 尚不存在等价覆盖;优先用一个连贯的场景,而不是为每个历史症状分开建用例。
16
+
17
+ 把宽泛的故障矩阵、真实模型演练、畸形数据组合和针对具体事故的脚本保持为临时的。变更
18
+ 完成后移除它们的 harness,并保留有用的报告。真实资源结果不替代快速回归,快速回归也
19
+ 不确立真实模型行为。
20
+
21
+ ## 永久 core smoke
22
+
23
+ `npm test` 和 `npm run test:core` 构建 checkout 并运行一个永久套件:
24
+
25
+ 1. 打包后的 CLI 能启动,并暴露 setup/update/upgrade/Task 命令;
26
+ 2. 一个普通的 SQLite Task 和 Message 能在重开后存活;
27
+ 3. 一个受支持的历史 Home 沿线性存储链迁移到当前版本;
28
+ 4. 内置的 Codex 与 Claude Driver 已注册;
29
+ 5. 一个独立的声明式插件通过认证入口被创建、验证、调用和停用,其选择和验证被保留。
30
+ 6. 一个 Task 从持久的 Operator 输入启动,暴露规划 Context,并在原始意图和捕获的
31
+ planning 权限被保留的情况下进入交付。
32
+ 7. Session 替换保留待处理的原始 Message 和独立工作;旧 Session 保留范围受限的读取,
33
+ 但不能重获写权限;
34
+ 8. InputRequest 在没有合成 AgentRun 的情况下经受 Session 替换;
35
+ 9. 迟到的原生终态不能结算后继输入或编造接受;
36
+ 10. 远程 Operator 启动携带其保留工作区、Role 指令和范围受限的 CLI 身份,同时离线
37
+ 诊断/恢复仍可达。
38
+ 11. 持久排队的原生结果经受 Controller 中断并重放,而不毒化 Host;已知的终态输入不会
39
+ 仅因时间变老就变为活动;
40
+ 12. Task-final 审查能在没有全局模板的情况下使用其 Task 局部 Reviewer。
41
+ 13. 一个原生错误标签只有在具备最新 Turn 终态证据且后台执行已排空时才允许替换;一个
42
+ 错误的原生账号不能授权清理。
43
+ 14. Claude 收到其原生环境和 settings 路径,而没有被注入的认证 helper、被改写的批准
44
+ 记录,也没有把 secret 转发给无关适配器;原生认证选择仍归 Claude。环境刷新移除
45
+ 已撤销的 key,并把值挡在持久 Task/Role 记录之外。
46
+
47
+ 把测试阶段保持在秒级;单独度量 TypeScript 构建。新增一个关键回归时记录其增量运行
48
+ 时长。这七个恢复边界用例在开发主机上最初约增加 0.4 秒的测试体(独立运行约 0.6 秒,
49
+ 含模块启动)。避免在永久套件中使用基于 sleep 的检查或强制的模型/daemon 启动。
50
+
51
+ ## Skill 与指令变更
52
+
53
+ 一并审阅共享的 Runtime 合同和受影响的 Role/Project Skill。用几个相关场景检查指令
54
+ 边界:分析保持只读、复用既有机制、Session 丢失保留 Task 意图,以及执行失败不阻止获
55
+ 授权的监督。这是一次有界审阅,而不是一套新的永久矩阵,也不是使用真实模型的许可。
56
+
57
+ package-start 检查跟随已安装树中的本地 Skill 引用,包括跨 Role 链接。入口点及其引用
58
+ 的 Markdown 必须一起发布。文件/格式检查确立可用性,而不是 Agent 行为;不要添加基于
59
+ 散文匹配的测试,也不要从静态检查中宣称模型验证。
60
+
61
+ ## CI 与发布
62
+
63
+ `ci.yml` 运行 core smoke 加一个包装配/启动检查。它不运行第二遍 lint,也不运行单独的
64
+ 宽泛回归套件。`publish.yml` 复用那个确切的、已过门的提交,只增加发布独有的 tag、
65
+ 产物、安装和 provenance 检查。
66
+
67
+ 作为开发者或审查者的已配置 Agent 是普通执行资源。把一个真实 provider 或模型作为验证
68
+ 对象则不同:付费 API、共享 Home、生产系统、真实账号额度以及其他不可丢弃的外部效果,
69
+ 绝不由一个测试或验证请求隐含。它们需要用户就确切的资源和效果边界提出显式请求。