@zq-silk/yui 0.15.9 → 0.15.12
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/ARCHITECTURE.md +8 -4
- package/ARCHITECTURE.zh-CN.md +5 -2
- package/README.md +13 -5
- package/dist/agent/launchEnvironment.js +7 -0
- package/dist/agentRun/agentRun.js +3 -0
- package/dist/cli/commandCatalog.js +64 -16
- package/dist/cli/interactionPolicy.js +7 -3
- package/dist/cli/managedDiagnostics.js +1 -1
- package/dist/cli/updateOrchestrator.js +24 -1
- package/dist/cli/updatePorts.js +7 -3
- package/dist/cli/upgradeCommand.js +42 -2
- package/dist/cli.js +381 -107
- package/dist/commands/executionAuditCommands.js +10 -0
- package/dist/commands/globalRoleCommands.js +339 -4
- package/dist/commands/projectCommands.js +50 -22
- package/dist/commands/releaseCommands.js +18 -0
- package/dist/commands/taskActor.js +25 -0
- package/dist/commands/taskCommands.js +586 -96
- package/dist/commands/taskIntegrationCommands.js +19 -39
- package/dist/commands/taskIntegrationQueueCommands.js +1 -1
- package/dist/commands/taskOverviewCommand.js +4 -3
- package/dist/commands/taskPublicationAdoptCommand.js +127 -0
- package/dist/commands/taskPublicationCommands.js +11 -2
- package/dist/commands/taskPublicationVerifyCommand.js +23 -39
- package/dist/commands/taskRemoteDeliveryCommand.js +22 -11
- package/dist/commands/taskRoleRuntimeStatus.js +35 -0
- package/dist/context/runContextPack.js +3 -0
- package/dist/context/taskCatalog.js +187 -0
- package/dist/context/taskContext.js +55 -6
- package/dist/controller/agentHostObservation.js +155 -0
- package/dist/controller/clientRuntime.js +17 -2
- package/dist/controller/controller.js +14 -2
- package/dist/controller/fileSchedulerStoreAdapter.js +519 -25
- package/dist/controller/globalInputDelivery.js +132 -0
- package/dist/controller/jobControl.js +6 -2
- package/dist/controller/providerRetryAdmission.js +100 -0
- package/dist/controller/providerRetryDelivery.js +218 -0
- package/dist/controller/resourceInventory.js +14 -4
- package/dist/controller/resourceInventoryLinux.js +2 -6
- package/dist/controller/runtime.js +117 -7
- package/dist/controller/runtimeEventInbox.js +32 -3
- package/dist/controller/runtimeEventProcessor.js +26 -6
- package/dist/controller/runtimeHookRunFence.js +75 -19
- package/dist/controller/structuredProviderObservation.js +133 -70
- package/dist/coordination/workMailboxQueue.js +5 -0
- package/dist/execution/workItemExecutionProjection.js +1 -1
- package/dist/executor/agentExecutor.js +64 -4
- package/dist/executor/executorRegistry.js +3 -0
- package/dist/executor/fileRoleLaunchPlanner.js +78 -118
- package/dist/integration/deliveryObligation.js +2 -1
- package/dist/integration/gitIntegrationService.js +329 -386
- package/dist/integration/integrationAttempt.js +30 -4
- package/dist/integration/integrationQueueService.js +7 -7
- package/dist/integration/integrationSourceApplication.js +323 -0
- package/dist/lifecycle/exactRunTerminalization.js +4 -1
- package/dist/message/globalInterrupt.js +33 -0
- package/dist/message/globalProviderRetry.js +15 -0
- package/dist/message/inputControlResolution.js +106 -0
- package/dist/message/message.js +367 -0
- package/dist/message/messageContinuation.js +126 -3
- package/dist/message/taskInterrupt.js +34 -0
- package/dist/observability/executionAudit.js +19 -0
- package/dist/observability/orchestrationMetrics.js +1 -1
- package/dist/release/releaseHandover.js +22 -0
- package/dist/release/releaseWorkflowPorts.js +15 -7
- package/dist/repository/gitWorkspace.js +430 -107
- package/dist/repository/projectMaintenanceLock.js +75 -18
- package/dist/repository/taskWorkspaceCoordinator.js +182 -101
- package/dist/repository/taskWorkspacePreparer.js +205 -72
- package/dist/repository/workItemCandidateSnapshot.js +34 -0
- package/dist/repository/workspaceCleanupInspection.js +187 -0
- package/dist/resources/resourceDiscovery.js +3 -2
- package/dist/runtime/agentError.js +5 -3
- package/dist/runtime/agentHost.js +179 -82
- package/dist/runtime/agentHostCompatibility.js +127 -0
- package/dist/runtime/agentHostProtocol.js +53 -0
- package/dist/runtime/builtinAgentErrorMappers.js +91 -0
- package/dist/runtime/codexAppServerRuntime.js +34 -3
- package/dist/runtime/executionEnvironment.js +0 -19
- package/dist/runtime/launchBroker.js +6 -0
- package/dist/runtime/providerControl.js +5 -1
- package/dist/runtime/providerRetry.js +198 -0
- package/dist/runtime/providerRuntimeIdentity.js +28 -2
- package/dist/runtime/sessionReconciliation.js +4 -4
- package/dist/runtime/sessionTokenMetrics.js +15 -5
- package/dist/runtime/structuredProviderHost.js +6 -2
- package/dist/runtime/taskRuntimeIsolation.js +30 -6
- package/dist/runtime/taskUsageMetrics.js +275 -0
- package/dist/runtime/tmuxAdapters.js +5 -3
- package/dist/scheduler/activeRoleRunDelivery.js +12 -0
- package/dist/scheduler/leaderWakeupProcessor.js +5 -0
- package/dist/scheduler/operatorEvent.js +4 -0
- package/dist/scheduler/taskExecutionProjection.js +38 -6
- package/dist/scheduler/taskObservabilityProjection.js +6 -44
- package/dist/scheduler/wakeReason.js +7 -1
- package/dist/scheduler/wakeupQueue.js +2 -0
- package/dist/setup/setupCommand.js +26 -8
- package/dist/storage/homeLayout.js +130 -0
- package/dist/storage/migrations/collapseWorktreeLayout.js +963 -0
- package/dist/storage/migrations/integrationContinuation.js +104 -0
- package/dist/storage/migrations/unifyHomeLayout.js +925 -0
- package/dist/storage/sqliteSchema.js +167 -4
- package/dist/storage/sqliteStore.js +57 -1
- package/dist/storage/storageVersions.js +1 -1
- package/dist/storage/storeRpc.js +2 -0
- package/dist/storage/taskCatalog.js +123 -0
- package/dist/storage/taskStore.js +2 -0
- package/dist/storage/upgrade/upgradeOrchestrator.js +95 -2
- package/dist/task/archiveDiagnostics.js +129 -0
- package/dist/task/archivePreflight.js +124 -0
- package/dist/task/nextAction.js +44 -11
- package/dist/task/publicationAdoption.js +56 -0
- package/dist/task/publicationReference.js +10 -0
- package/dist/task/remoteDelivery.js +31 -16
- package/dist/web/assets/client/app.js +147 -17
- package/dist/web/assets/client/components.js +56 -13
- package/dist/web/assets/client/i18n.js +78 -4
- package/dist/web/assets/client/taskSurface.js +108 -1
- package/dist/web/assets/client/view.js +39 -8
- package/dist/web/assets/shell.js +29 -0
- package/dist/web/assets/styles/layout.js +8 -1
- package/dist/web/assets/styles/widgets.js +12 -0
- package/dist/web/webServer.js +131 -4
- package/dist/web/webSnapshot.js +16 -6
- package/dist/web/webTaskSurface.js +222 -5
- package/dist/workspace/cleanupInspection.js +63 -0
- package/dist/workspace/workItemChangeSetManager.js +111 -35
- package/docs/agent-result-consumption.md +4 -0
- package/docs/agent-result-consumption.zh-CN.md +3 -0
- package/docs/agent-runtime-drivers.md +7 -0
- package/docs/agent-runtime-drivers.zh-CN.md +5 -0
- package/docs/architecture/README.md +2 -0
- package/docs/architecture/README.zh-CN.md +3 -1
- package/docs/architecture/capabilities-and-resources.md +30 -5
- package/docs/architecture/capabilities-and-resources.zh-CN.md +23 -3
- package/docs/managed-turn-and-session-runtime.md +47 -0
- package/docs/managed-turn-and-session-runtime.zh-CN.md +40 -0
- package/docs/observability/README.md +62 -0
- package/docs/observability/README.zh-CN.md +47 -0
- package/docs/project-refresh.md +77 -0
- package/docs/project-refresh.zh-CN.md +59 -0
- package/docs/provider-retry.md +70 -0
- package/docs/release-workflow.md +39 -0
- package/docs/release-workflow.zh-CN.md +29 -0
- package/docs/sqlite-control-plane-design.md +223 -1
- package/docs/task-delivery.md +133 -13
- package/docs/task-delivery.zh-CN.md +99 -10
- package/docs/task-discovery.md +102 -0
- package/docs/task-discovery.zh-CN.md +86 -0
- package/docs/testing/verification-levels.md +40 -0
- package/docs/testing/verification-levels.zh-CN.md +23 -0
- package/i18n/README.zh-CN.md +13 -7
- package/package.json +1 -1
- package/skills/yui-leader/references/execution.md +154 -51
- package/skills/yui-leader/references/integration.md +52 -2
- package/skills/yui-operator/SKILL.md +19 -3
- package/skills/yui-reviewer/SKILL.md +4 -0
- package/skills/yui-runtime/SKILL.md +42 -0
- package/skills/yui-runtime/references/publication.md +42 -0
- package/skills/yui-runtime/references/recovery.md +24 -0
|
@@ -11,7 +11,7 @@ before acceptance:
|
|
|
11
11
|
```sh
|
|
12
12
|
yui task work capture <work-id>
|
|
13
13
|
yui task integration start <task> --project <project> \
|
|
14
|
-
--
|
|
14
|
+
--work-item <work-id> --strategy <ff|cherry-pick|merge|manual> \
|
|
15
15
|
--check "<Project Policy command>"
|
|
16
16
|
yui task work accept <work-id> --summary "<decision and evidence>"
|
|
17
17
|
```
|
|
@@ -20,7 +20,23 @@ These are distinct decisions; confirm Integration succeeded before acceptance.
|
|
|
20
20
|
Preserve each managed workspace's owner and the Task's recorded base. Do not
|
|
21
21
|
silently advance that base because a remote branch moved.
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## Resolve ordinary Git conflicts yourself
|
|
24
|
+
|
|
25
|
+
`conflicted` is an engineering step owned by the Leader, not a request for
|
|
26
|
+
user authorization. Read both sides' intent and the current Task contract,
|
|
27
|
+
inspect the exact Integration source, target and workspace, resolve and stage
|
|
28
|
+
the files there, then run `integration continue`. No preceding
|
|
29
|
+
`resolve --option manual-resolution` is required for an ordinary conflict.
|
|
30
|
+
Core completes the matching Git operation, records the candidate, runs or
|
|
31
|
+
recovers its exact checks and advances the original target by CAS.
|
|
32
|
+
|
|
33
|
+
Do not close the Task execution gate, stop unrelated work, create an
|
|
34
|
+
InputRequest or end in passive waiting merely because Git conflicted.
|
|
35
|
+
Escalate only a real product choice, changed scope, unavailable external fact
|
|
36
|
+
or new authority. The explicit `manual` strategy still requires a recorded
|
|
37
|
+
resolution rationale; it is not the ordinary conflict path.
|
|
38
|
+
|
|
39
|
+
## Continue from exact evidence
|
|
24
40
|
|
|
25
41
|
For direct Integration checks running as a DurableJob, Job success is not
|
|
26
42
|
the final target update. Read the terminal result, then use:
|
|
@@ -32,8 +48,42 @@ yui task integration continue <task>/<integration>
|
|
|
32
48
|
This also applies when no manual conflict resolution was needed. Do not start
|
|
33
49
|
a duplicate Integration or wait for an empty queue to finalize it.
|
|
34
50
|
|
|
51
|
+
Resume interrupted Git/Job work on this attempt when its source/candidate and
|
|
52
|
+
Job identities can be proved. A clean HEAD, leftover REBASE_HEAD or successful
|
|
53
|
+
Job alone does not prove source application or target advancement. Read
|
|
54
|
+
diagnostics when evidence is missing or the source, workspace, candidate,
|
|
55
|
+
target or check conditions changed. Never blindly replay a finished rebase
|
|
56
|
+
or repeat a successful unchanged check.
|
|
57
|
+
|
|
35
58
|
Resolve failures using the exact conflict or check evidence and the supplied
|
|
36
59
|
Integration workspace. Never bypass compare-and-swap, update managed refs by
|
|
37
60
|
hand, or create a replacement WorkItem for ordinary Integration correction.
|
|
38
61
|
Recheck changed behavior or unresolved failures; do not rerun unchanged
|
|
39
62
|
successful validation without a current reason.
|
|
63
|
+
|
|
64
|
+
## Abandon an unprovable attempt without discarding delivery
|
|
65
|
+
|
|
66
|
+
If this attempt cannot safely continue, preserve its candidate, modifications,
|
|
67
|
+
logs and successful evidence, then formally `integration abort --reason ...`
|
|
68
|
+
(or reject a pending resolution). A failed attempt does not require keeping
|
|
69
|
+
the same ID forever or repairing a shared installation before any delivery.
|
|
70
|
+
Choose a new Integration or another already-authorized delivery path.
|
|
71
|
+
|
|
72
|
+
For `validating`, `abort` checks the exact target and Jobs under the same Git
|
|
73
|
+
fence as `continue`. An unadvanced target can be abandoned despite changed
|
|
74
|
+
check conditions. If CAS already advanced the target, the action records
|
|
75
|
+
`committed` instead of pretending delivery was aborted. Read the returned
|
|
76
|
+
outcome. A concurrent operation, unknown Job, or ambiguous target requires
|
|
77
|
+
inspection, not a forced status change or rollback of current Project policy.
|
|
78
|
+
|
|
79
|
+
Formal abort preserves history and workspaces. It is not Git abort, branch
|
|
80
|
+
deletion, target advancement, or proof that a Job/process has stopped.
|
|
81
|
+
Inspect all Jobs owned by the exact attempt, including an unbound Job;
|
|
82
|
+
cancel and establish quiescence by exact identity before reusing or cleaning
|
|
83
|
+
resources. Successful Job evidence and Task acceptance remain separate.
|
|
84
|
+
|
|
85
|
+
Direct Task-main delivery is an alternative only when current delivery
|
|
86
|
+
authority, ownership and the Task contract already permit it, with no other
|
|
87
|
+
writer or active check using that workspace. Do not edit managed refs or the
|
|
88
|
+
control-plane DB, modify another owner's workspace, upgrade shared tools,
|
|
89
|
+
or expand publication authority to work around an Integration failure.
|
|
@@ -38,11 +38,22 @@ Inspect current Projects, Tasks, and relevant Task context before routing:
|
|
|
38
38
|
|
|
39
39
|
```sh
|
|
40
40
|
yui project list
|
|
41
|
-
yui task list
|
|
42
|
-
yui task input list
|
|
41
|
+
yui task list --view compact --json
|
|
43
42
|
yui task context <candidate-task-id>
|
|
44
43
|
```
|
|
45
44
|
|
|
45
|
+
Use the bounded catalog for discovery, not the detailed legacy list or an
|
|
46
|
+
unconditional traversal of every page. Filter by Project/status/search when
|
|
47
|
+
useful; follow `nextCursor` with the same filters only when more candidates
|
|
48
|
+
are needed. Attention counts cover the authorized catalog before ordinary
|
|
49
|
+
filters and pagination. Follow a category's `--attention` query to enumerate
|
|
50
|
+
its affected Tasks, clearing ordinary filters and retaining its `all` flag.
|
|
51
|
+
`executionSignals` are conservative raw inspection
|
|
52
|
+
candidates (including live Runs and open work), not a computed failure or
|
|
53
|
+
execution status. Inspect the selected Task's Context and original Messages
|
|
54
|
+
before routing or deciding; a summary/ref is not the requirement or report.
|
|
55
|
+
The existing detailed list remains available to explicit legacy consumers.
|
|
56
|
+
|
|
46
57
|
Route new input to an existing Task when it advances, corrects, narrows, or
|
|
47
58
|
extends the same bounded outcome and shares final acceptance, delivery, or
|
|
48
59
|
rollback. Create a new Task only when the new outcome can succeed, fail,
|
|
@@ -192,7 +203,12 @@ yui task input cancel <task> <input> --reason "<Leader-owned decision>"
|
|
|
192
203
|
After an authorized PR/MR operation or before archive, read
|
|
193
204
|
[publication and archive boundaries](../yui-runtime/references/publication.md).
|
|
194
205
|
Record confirmed delivery facts promptly. Completion does not authorize
|
|
195
|
-
archive, and archive approval does not authorize
|
|
206
|
+
archive, and ordinary archive approval does not authorize `--force`.
|
|
207
|
+
When the user explicitly authorizes force archive for an eligible terminal
|
|
208
|
+
Task, archive even if delivery proof or cleanup is incomplete. Report the
|
|
209
|
+
warnings and retained resources without claiming merge verification or physical
|
|
210
|
+
quiescence. Force archive is not permission to delete dirty/uncertain resources,
|
|
211
|
+
kill unrelated execution, abandon delivery or rewrite historical evidence.
|
|
196
212
|
|
|
197
213
|
## Recover from evidence, not from imagined states
|
|
198
214
|
|
|
@@ -60,6 +60,10 @@ binding fails before review begins:
|
|
|
60
60
|
explicitly so the Leader can judge what remains useful. Core records only
|
|
61
61
|
the execution boundary and never classifies the meaning of this prose.
|
|
62
62
|
|
|
63
|
+
If the current retry projection says infrastructure recovery is already
|
|
64
|
+
waiting or in flight, report that fact without recommending another dispatch.
|
|
65
|
+
Do not manage the retry yourself or reinterpret its preserved candidate.
|
|
66
|
+
|
|
63
67
|
The Review scope remains the current AgentRun's frozen candidate even if the Leader
|
|
64
68
|
handles new user input or advances Task main while this Review is running. Do
|
|
65
69
|
not switch to the newer head, cancel the current inspection, or claim the
|
|
@@ -91,6 +91,40 @@ Global context grants no Task implementation workspace. Read a Task only after
|
|
|
91
91
|
the Operator has routed to its public/task-authorized context command; never
|
|
92
92
|
invent a Task AgentRun identity for a GlobalRole.
|
|
93
93
|
|
|
94
|
+
A GlobalRole's durable input uses the same three actions as a Task Role,
|
|
95
|
+
addressed by the Role's own name instead of a Task. The local-user Web surface
|
|
96
|
+
exposes this contract. The current public CLI catalog does not register the
|
|
97
|
+
top-level `role` path, even though its handlers implement `yui role message
|
|
98
|
+
queue|steer` and `yui role interrupt`; CLI routing rejects these commands as
|
|
99
|
+
unknown. Report this availability gap when it prevents authorized work. Do not
|
|
100
|
+
invent another command, fabricate Task/Run ownership or borrow the browser's
|
|
101
|
+
user authority to bypass a managed Session boundary.
|
|
102
|
+
|
|
103
|
+
Queue and steer
|
|
104
|
+
save an owned Message; bare interrupt records a control request, not a new
|
|
105
|
+
Message. Each uses a stable request id and that Role's own Session; none fabricates a Task or
|
|
106
|
+
runId to reuse Task-scoped delivery. `queue` delivers at the Role's next legal
|
|
107
|
+
opportunity and is idempotent by request id. `steer` and `interrupt` affect only
|
|
108
|
+
the exact current native Turn — a stale `--expected-target`, an incapable plan,
|
|
109
|
+
or an unproven delivery leaves the Message saved and reports the reason, and
|
|
110
|
+
`interrupt` stops only through the Provider's native cancel with an optional
|
|
111
|
+
`--then-message` naming one already-saved GlobalRole Message. When the Role holds
|
|
112
|
+
no live managed Turn, a steer or interrupt is `NO_ACTIVE_TURN` and never falls
|
|
113
|
+
back to another action.
|
|
114
|
+
|
|
115
|
+
New controlled Global Sessions use the existing Host console, not the native
|
|
116
|
+
TUI, with the configured Agent, permissions and workspace unchanged. A live
|
|
117
|
+
unmanaged Session is not silently replaced or adopted; use an explicit Session
|
|
118
|
+
lifecycle action before enabling controlled delivery.
|
|
119
|
+
|
|
120
|
+
Context reads never consume queue entries. Read the referenced Message in full
|
|
121
|
+
from Session Context. Native/transport acceptance is not implementation, and
|
|
122
|
+
`interrupt-requested` is not a stopped Turn or stopped background resources.
|
|
123
|
+
Only an exact terminal and the original Session/writer boundary can release a
|
|
124
|
+
then handoff. An accepted or unconfirmed steer must not be submitted again by
|
|
125
|
+
changing its request id or composing then. A conclusive rejection permits an
|
|
126
|
+
explicit new control attempt; uncertainty does not.
|
|
127
|
+
|
|
94
128
|
## Preserve intent and authority
|
|
95
129
|
|
|
96
130
|
An analysis, diagnosis, or review request is read-only unless the user also
|
|
@@ -147,6 +181,14 @@ runtime identity and workspace progress; never edit Run status or substitute
|
|
|
147
181
|
a native Session behind Yui's back. A timeout is not proof of quiescence and
|
|
148
182
|
does not authorize replay of unknown input.
|
|
149
183
|
|
|
184
|
+
Qualifying transient Provider failures have bounded Controller-owned recovery.
|
|
185
|
+
Read the current `providerRetry`/`retry` projection before dispatching a manual
|
|
186
|
+
successor. `waiting` and `in-flight` mean infrastructure recovery is already
|
|
187
|
+
owned; do not add a private retry loop or resend the input. Only a proven native
|
|
188
|
+
success resets that chain, and it never accepts a WorkItem or completes a Task.
|
|
189
|
+
After recovery, inspect existing work and external receipts before continuing;
|
|
190
|
+
the system's recovery instruction supplies no new user authority.
|
|
191
|
+
|
|
150
192
|
After an authorized external PR/MR operation, use the shared
|
|
151
193
|
[publication recording contract](references/publication.md). Recording delivery
|
|
152
194
|
facts does not authorize the external operation, imply acceptance, or grant
|
|
@@ -13,6 +13,26 @@ deployment status. After merge, use `yui task publication verify` only when
|
|
|
13
13
|
current authorization covers that external provider read. Otherwise retain
|
|
14
14
|
reported evidence and state the verification gap.
|
|
15
15
|
|
|
16
|
+
Keep the completion head as the original acceptance evidence. If an authorized
|
|
17
|
+
post-completion integration produced a different publication candidate, record
|
|
18
|
+
its exact local commit, then read `task publication diff <task>/<publication>`.
|
|
19
|
+
Inspect the complete delta against the original acceptance, including removals,
|
|
20
|
+
conflict resolutions and additional changes. Only when that candidate still
|
|
21
|
+
satisfies the result and its relevant increments are accepted, record
|
|
22
|
+
`task publication adopt <task>/<publication> --reviewed-diff <sha256> --acceptance <text>`.
|
|
23
|
+
Explain the semantic judgment and verification/review evidence in the acceptance.
|
|
24
|
+
When an existing Task Integration produced that exact candidate, include
|
|
25
|
+
`--integration <id>` in diff and adopt to bind its committed evidence.
|
|
26
|
+
Ancestry or Integration success alone is not acceptance; do not reopen the Task,
|
|
27
|
+
rewrite completion, or mark a merge verified to bridge an evidence gap.
|
|
28
|
+
|
|
29
|
+
Adoption records a fixed decision, not remote verification or publication
|
|
30
|
+
authority. The verify operation observes the exact Publication candidate through
|
|
31
|
+
its provider and records contrary head/state facts as reported successors,
|
|
32
|
+
invalidating previous verification. Metadata and verification updates may retain
|
|
33
|
+
adoption while the candidate is unchanged; a changed candidate needs a new
|
|
34
|
+
decision. Archived history is read-only to these adopt/verify operations.
|
|
35
|
+
|
|
16
36
|
Use `yui task remote-delivery <task>` to explain external delivery. Publication
|
|
17
37
|
is not Candidate acceptance, Review, Integration or Task completion.
|
|
18
38
|
|
|
@@ -20,3 +40,25 @@ Completion does not authorize archive. The Operator obtains authorization for
|
|
|
20
40
|
the exact Task, checks archive eligibility, then uses `--integrated` for verified
|
|
21
41
|
merged delivery or `--abandon` for deliberate non-delivery. General archive
|
|
22
42
|
approval never implies `--force` authority. Preserve the Task record.
|
|
43
|
+
|
|
44
|
+
With explicit force authorization for a completed or cancelled (retired) Task, use
|
|
45
|
+
`yui task archive <task> (--integrated|--abandon) --force`. Force commits the
|
|
46
|
+
archive and stops new Task scheduling before attempting safe foreground cleanup.
|
|
47
|
+
Missing/stale delivery evidence, unresolved execution and cleanup errors become
|
|
48
|
+
warnings with retained resource references; they do not block that commit.
|
|
49
|
+
Authority, lifecycle, identity and mandatory audit persistence still fail closed.
|
|
50
|
+
|
|
51
|
+
Force does not verify a merge, accept work, stop unknown execution, discard dirty
|
|
52
|
+
data or imply abandonment. Keep the requested disposition and original
|
|
53
|
+
Publication/completion evidence. Unverified local commits and resources that
|
|
54
|
+
cannot be safely released stay owned and traceable. Late runtime events remain
|
|
55
|
+
source evidence, not authority to resume or settle unknown input.
|
|
56
|
+
|
|
57
|
+
Read `task show <task> --json` for `data.archive.warnings`,
|
|
58
|
+
`data.archive.retainedResources` and `data.archive.cleanupEvents`;
|
|
59
|
+
`task context` also retains the original records/events. A successful archive
|
|
60
|
+
exit means `archived=true`, not that cleanup fully succeeded. `cleanupFinished`
|
|
61
|
+
means the foreground pass finished, not that every resource was removed.
|
|
62
|
+
If cleanup was interrupted, the Task stays archived. Repeating archive only
|
|
63
|
+
reports current facts; use explicit, exact-owner resource operations after
|
|
64
|
+
inspection instead of re-running broad cleanup. No background retry is implied.
|
|
@@ -12,6 +12,30 @@ affected WorkItem, ReviewRound or Integration. Use `task next-action` and
|
|
|
12
12
|
`execution audit` as decision support, not as an automatic plan.
|
|
13
13
|
Active or quiet observations are not a Task-wide lock or proof of failure.
|
|
14
14
|
|
|
15
|
+
### Bounded infrastructure retry
|
|
16
|
+
|
|
17
|
+
The Controller, not the Agent, counts and schedules qualifying transient
|
|
18
|
+
Provider retries: at most five automatic executions after the initial failure,
|
|
19
|
+
within one ten-minute recovery window. Native acceptance, activity and partial
|
|
20
|
+
output do not reset that count. Unknown delivery remains fenced for exact
|
|
21
|
+
readback; it is never replayed.
|
|
22
|
+
|
|
23
|
+
Inspect the current projection in Context, or use
|
|
24
|
+
`task role session retry <task> <role> show`; Global Sessions use
|
|
25
|
+
`session retry <role> show`. While `waiting` or `in-flight`, do not dispatch a
|
|
26
|
+
duplicate. A readable failed Run remains immutable evidence while its recovery
|
|
27
|
+
successor handles the same responsibility and frozen Review boundary.
|
|
28
|
+
|
|
29
|
+
`cancel` withdraws pending automatic recovery; `disable` additionally disables
|
|
30
|
+
future automatic chains on that Provider binding. Neither stops an admitted
|
|
31
|
+
native Turn. `enable` permits future failures to qualify, without replaying
|
|
32
|
+
old failures. These controls require the existing user/supervisor authority.
|
|
33
|
+
|
|
34
|
+
`exhausted`, `cancelled` and `needs-attention` preserve the error, input and
|
|
35
|
+
work. Read their exact reason, then choose an authorized next action. Unsupported
|
|
36
|
+
Hosts/Adapters or unprovable Session/background state do not trigger automatic
|
|
37
|
+
replacement, cleanup, model switching or a new grant.
|
|
38
|
+
|
|
15
39
|
A failed AgentRun is immutable; retry creates a new attempt. Reuse a recoverable
|
|
16
40
|
Session when useful and load the new attempt's current context, not an old
|
|
17
41
|
Assignment from memory. A new Host process need not mean a new native Session.
|