@sellable/mcp 0.1.734 → 0.1.735
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.
|
@@ -1876,6 +1876,25 @@ export function sanitizeRefillTargetPlanResult(result) {
|
|
|
1876
1876
|
const paidRefreshNeededSenderIdSet = paidRefreshNeededSenderIds(senderRefillPlans);
|
|
1877
1877
|
const blockers = sanitizeBlockers(result.blockers, selectedKeys, paidRefreshNeededSenderIdSet);
|
|
1878
1878
|
const request = isRecord(result.request) ? result.request : {};
|
|
1879
|
+
// fix(112ak-s2): this is the CLIENT mirror of the server's dated-sweep gate,
|
|
1880
|
+
// and it silently discarded the server's valid sweep. sanitizeTargetSchedulerSweep
|
|
1881
|
+
// derives its expected senders/actions from this map and returns null when the
|
|
1882
|
+
// map is empty, so a stricter rule here vetoes the server outright: Dotwork
|
|
1883
|
+
// 2026-07-29 (five lanes, remainingProjectedGap 10, readyBuffer 4, rrpg 6) had
|
|
1884
|
+
// the server emit a 20-placement sweep across all five senders, this loop
|
|
1885
|
+
// marked zero lanes eligible, and every served plan came back with
|
|
1886
|
+
// approve_messages at globalActionQueue[0] and no sweep at any rank. Because
|
|
1887
|
+
// the coordinator consumes the sanitized plan, that blocked execution, not just
|
|
1888
|
+
// display. 112ak-s relaxed the same predicate server-side
|
|
1889
|
+
// (refill-target-plan.ts buildExactDateSchedulerSweepAction): a lane earns a
|
|
1890
|
+
// sweep by HOLDING ready rows against an open dated slot, not by its ready
|
|
1891
|
+
// buffer fully covering its gap. No target-date condition is needed to mirror
|
|
1892
|
+
// the server's scoping — sanitizeTargetSchedulerSweep already refuses to run
|
|
1893
|
+
// without an expectedTargetDate matching ^\d{4}-\d{2}-\d{2}$, so this path is
|
|
1894
|
+
// explicit-date-only by construction. Deliberately the ONLY relaxed occurrence:
|
|
1895
|
+
// the wait_for_scheduler append and the status derivation below both keep
|
|
1896
|
+
// `remainingReadyOrProjectedGap === 0`, where full ready coverage is the
|
|
1897
|
+
// correct and intended meaning.
|
|
1879
1898
|
const sweepEligibleBySender = new Map();
|
|
1880
1899
|
for (const plan of senderPlans) {
|
|
1881
1900
|
const senderId = stringValue(plan.senderId);
|
|
@@ -1883,7 +1902,6 @@ export function sanitizeRefillTargetPlanResult(result) {
|
|
|
1883
1902
|
if (senderId &&
|
|
1884
1903
|
actionType &&
|
|
1885
1904
|
numberValue(plan.remainingProjectedGap) > 0 &&
|
|
1886
|
-
numberValue(plan.remainingReadyOrProjectedGap) === 0 &&
|
|
1887
1905
|
numberValue(plan.readyBuffer) > 0) {
|
|
1888
1906
|
const lanes = sweepEligibleBySender.get(senderId) ?? new Set();
|
|
1889
1907
|
lanes.add(actionType);
|