agents-relay 2.0.127 → 2.0.129
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.
|
@@ -20,7 +20,7 @@ export const reviewLifecycleV2 = new GraphRuntime(source, {
|
|
|
20
20
|
reviewUnblocked: boolGuard('reviewUnblocked'),
|
|
21
21
|
},
|
|
22
22
|
actions: Object.fromEntries(['review.create', 'review.cancelStale', 'review.createFix', 'review.requestMerge'].map(id => [id, { id }])),
|
|
23
|
-
events: Object.fromEntries(['reconcile', 'review.started', 'review.approved', 'review.changes_required', 'review.
|
|
23
|
+
events: Object.fromEntries(['reconcile', 'review.started', 'review.approved', 'review.changes_required', 'review.legacy_blocked', 'review.retry', 'head.changed'].map(id => [id, { id }])),
|
|
24
24
|
});
|
|
25
25
|
export function reviewGraphState(outcome) {
|
|
26
26
|
if (!outcome)
|
package/package.json
CHANGED
|
@@ -19,6 +19,15 @@ For every non-satisfied objective:
|
|
|
19
19
|
3. Mark the points in that graph that deserve durable Task boundaries.
|
|
20
20
|
4. Create only the next useful executable Task batch from those boundaries.
|
|
21
21
|
|
|
22
|
+
### Objective decomposition and convergence
|
|
23
|
+
|
|
24
|
+
- **Never bundle independently testable acceptance layers into one giant Task.** Break objectives into separately verifiable deliverables (for example, contract tests, real-provider compliance, scheduler-driven end-to-end scenarios, and integration evidence). Give each Task concrete acceptance checks and an observable output.
|
|
25
|
+
- Split a large Task when its remaining work spans distinct implementation areas, independently testable failure paths, or more than one meaningful review/recovery cycle. Put shared prerequisites in earlier Tasks and express true dependencies explicitly; independent work may run in parallel.
|
|
26
|
+
- For a failed Task with repeated deterministic acceptance gaps, do not reissue the identical broad assignment. Identify the *missing acceptance cases*, create focused same-Job repair Tasks with valid `same_job_dependency` resolutions, and specify how their evidence unblocks the original Task. Preserve the original failed Task and failure history.
|
|
27
|
+
- For event-driven workflows, separate basic ingress/persistence checks from real scheduler-driven multi-stage scenarios. Require negative-path, multi-failure recovery and no-false-completion evidence before claiming full objective coverage.
|
|
28
|
+
- In `assessment`, show the entire remaining objective as a dependency graph, clearly distinguishing already proven work, the executable batch, subsequent verification, and Relay-owned review/merge. Never report overall `satisfied` merely because one batch has passed.
|
|
29
|
+
|
|
30
|
+
|
|
22
31
|
A Task is **not** just a workflow step. Create a Task when its outcome deserves an independent durable lifecycle because it may need to be:
|
|
23
32
|
|
|
24
33
|
- discussed or referenced later;
|
|
@@ -5,6 +5,7 @@ pending["state: PENDING"]
|
|
|
5
5
|
started["state: STARTED"]
|
|
6
6
|
approved["state: APPROVED"]
|
|
7
7
|
changes["state: CHANGES_REQUIRED"]
|
|
8
|
+
%% BLOCKED is only for legacy records awaiting authoritative unblock.
|
|
8
9
|
blocked["state: BLOCKED"]
|
|
9
10
|
stale["state: STALE"]
|
|
10
11
|
|
|
@@ -91,6 +92,7 @@ pendingUnapproved -->|true| createPendingRetry
|
|
|
91
92
|
pendingUnapproved -->|false| pending
|
|
92
93
|
createPendingRetry --> pending
|
|
93
94
|
|
|
95
|
+
pending -->|on: review.legacy_blocked| blocked
|
|
94
96
|
pending -->|on: review.started| started
|
|
95
97
|
pending -->|on: review.approved| autoMergePending
|
|
96
98
|
autoMergePending -->|true| mergePending
|
|
@@ -98,7 +100,6 @@ mergePending --> approved
|
|
|
98
100
|
autoMergePending -->|false| approved
|
|
99
101
|
pending -->|on: review.changes_required| fixPending
|
|
100
102
|
fixPending --> changes
|
|
101
|
-
pending -->|on: review.blocked| blocked
|
|
102
103
|
|
|
103
104
|
started -->|on: review.approved| autoMergeStarted
|
|
104
105
|
autoMergeStarted -->|true| mergeStarted
|
|
@@ -106,7 +107,6 @@ mergeStarted --> approved
|
|
|
106
107
|
autoMergeStarted -->|false| approved
|
|
107
108
|
started -->|on: review.changes_required| fixStarted
|
|
108
109
|
fixStarted --> changes
|
|
109
|
-
started -->|on: review.blocked| blocked
|
|
110
110
|
changes -->|on: review.changes_required| fixChanges
|
|
111
111
|
fixChanges --> changes
|
|
112
112
|
|