agentxchain 2.155.1 → 2.155.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentxchain",
3
- "version": "2.155.1",
3
+ "version": "2.155.2",
4
4
  "description": "CLI for AgentXchain — governed multi-agent software delivery",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1155,7 +1155,30 @@ export async function advanceContinuousRunOnce(context, session, contOpts, execu
1155
1155
  return { ok: true, status: 'session_budget', action: 'session_budget_exhausted', stop_reason: 'session_budget' };
1156
1156
  }
1157
1157
 
1158
- // Idle-cycle check: on_idle policy determines behavior
1158
+ reconcileContinuousStartupState(context, session, contOpts, log);
1159
+
1160
+ const reconcileBlock = maybeAutoReconcileOperatorCommits(context, session, contOpts, log);
1161
+ if (reconcileBlock) return reconcileBlock;
1162
+
1163
+ const startupGovernedState = loadProjectState(root, context.config);
1164
+ if (startupGovernedState?.status === 'blocked') {
1165
+ const retried = await maybeAutoRetryGhostBlocker(context, session, contOpts, startupGovernedState, log);
1166
+ if (retried) return retried;
1167
+ session.status = 'paused';
1168
+ writeContinuousSession(root, session);
1169
+ return {
1170
+ ok: true,
1171
+ status: 'blocked',
1172
+ action: 'still_blocked',
1173
+ run_id: session.current_run_id || startupGovernedState.run_id || null,
1174
+ recovery_action: getBlockedRecoveryAction(startupGovernedState),
1175
+ blocked_category: getBlockedCategory(startupGovernedState),
1176
+ };
1177
+ }
1178
+
1179
+ // Idle-cycle check: on_idle policy determines behavior. This MUST run after
1180
+ // startup blocked/reconcile checks so perpetual mode cannot enqueue new
1181
+ // idle-expansion work into a run that is already ineligible to start.
1159
1182
  if (session.idle_cycles >= contOpts.maxIdleCycles) {
1160
1183
  if (contOpts.onIdle === 'perpetual' && contOpts.idleExpansion) {
1161
1184
  // BUG-60: perpetual mode — dispatch PM idle-expansion instead of exiting
@@ -1193,11 +1216,6 @@ export async function advanceContinuousRunOnce(context, session, contOpts, execu
1193
1216
  return { ok: true, status: 'idle_exit', action: 'max_idle_reached', stop_reason: 'idle_exit' };
1194
1217
  }
1195
1218
 
1196
- reconcileContinuousStartupState(context, session, contOpts, log);
1197
-
1198
- const reconcileBlock = maybeAutoReconcileOperatorCommits(context, session, contOpts, log);
1199
- if (reconcileBlock) return reconcileBlock;
1200
-
1201
1219
  // Paused-session guard: if session is paused (blocked run awaiting unblock),
1202
1220
  // check governed state before attempting to advance. Without this guard, the
1203
1221
  // loop would try to startIntent() on a blocked project, hit the blocked-state