@sellable/mcp 0.1.728 → 0.1.729
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/dist/tools/refill-sends.js +37 -2
- package/package.json +1 -1
|
@@ -1313,7 +1313,29 @@ async function selectWorkspaceExactTarget(input, workspacePlanOverride, options
|
|
|
1313
1313
|
return (!excludedTargets.some((excluded) => excluded.campaignId === candidate.campaignId &&
|
|
1314
1314
|
excluded.tableId === candidate.tableId) &&
|
|
1315
1315
|
!excludedExactTargetKeys.has(key) &&
|
|
1316
|
-
!prefilterBlockedTargets.some((blocked) =>
|
|
1316
|
+
!prefilterBlockedTargets.some((blocked) => {
|
|
1317
|
+
if (!coordinatorBlockedExactTargetMatches(blocked, candidate)) {
|
|
1318
|
+
return false;
|
|
1319
|
+
}
|
|
1320
|
+
// fix(112ag): a run_scheduler_sweep is the scheduler PLACEMENT action that
|
|
1321
|
+
// RESOLVES a loaded_awaiting_scheduler state — the loaded blocker is set by
|
|
1322
|
+
// the prepare/approve fence that produced the ready rows, not by the sweep.
|
|
1323
|
+
// prefilterBlockedTargets excludes every blocker EXCEPT complete/capped, so
|
|
1324
|
+
// a loaded edge lands here and would drop its own sweep BEFORE the in-loop
|
|
1325
|
+
// "sweeps always bind" bypass can act (Amplify t2: cascade cmrk6nihu loaded
|
|
1326
|
+
// 8x, the dated 2026-07-29 sweep — required because that date is beyond the
|
|
1327
|
+
// 48h ambient window — was prefilter-dropped, 0 sweep dispatches, 37 ready
|
|
1328
|
+
// rows stranded at scheduled 0). Waive ONLY the loaded_awaiting_scheduler
|
|
1329
|
+
// blocker and ONLY for the sweep candidate: every other blocker still
|
|
1330
|
+
// excludes it, prep/approve candidates on a loaded edge are still excluded,
|
|
1331
|
+
// and complete/capped edges (never in prefilterBlockedTargets) still bar
|
|
1332
|
+
// prep re-dispatch via completeDeferredTargets in the loop below.
|
|
1333
|
+
if (blocked.blocker === "loaded_awaiting_scheduler" &&
|
|
1334
|
+
workspaceActionFamily(candidate.actionKey) === "run_scheduler_sweep") {
|
|
1335
|
+
return false;
|
|
1336
|
+
}
|
|
1337
|
+
return true;
|
|
1338
|
+
}));
|
|
1317
1339
|
});
|
|
1318
1340
|
if (targetCandidates.length === 0) {
|
|
1319
1341
|
const pendingWaitAction = workspaceActiveWorkWaitAction(workspaceActions) ??
|
|
@@ -1519,7 +1541,20 @@ async function selectWorkspaceExactTarget(input, workspacePlanOverride, options
|
|
|
1519
1541
|
// must be enforced again after the exact binding is known.
|
|
1520
1542
|
actionKey: targetConfig.approvalInputs.expectedActionKey,
|
|
1521
1543
|
};
|
|
1522
|
-
if (blockedExactTargets.some((blocked) =>
|
|
1544
|
+
if (blockedExactTargets.some((blocked) => {
|
|
1545
|
+
if (!coordinatorBlockedExactTargetMatches(blocked, exactSelectedTarget)) {
|
|
1546
|
+
return false;
|
|
1547
|
+
}
|
|
1548
|
+
// fix(112ag): mirror the prefilter waiver after the exact rebind — a
|
|
1549
|
+
// run_scheduler_sweep is the placement action that resolves a
|
|
1550
|
+
// loaded_awaiting_scheduler state, so a loaded blocker on its own edge
|
|
1551
|
+
// must not re-skip it here. Every other blocker still excludes it.
|
|
1552
|
+
if (isSchedulerSweepTarget &&
|
|
1553
|
+
blocked.blocker === "loaded_awaiting_scheduler") {
|
|
1554
|
+
return false;
|
|
1555
|
+
}
|
|
1556
|
+
return true;
|
|
1557
|
+
})) {
|
|
1523
1558
|
continue;
|
|
1524
1559
|
}
|
|
1525
1560
|
const selection = {
|