@sellable/mcp 0.1.741 → 0.1.742

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.
@@ -176,14 +176,12 @@ declare function coverageOnlySignature(plan: Record<string, unknown>): {
176
176
  sent: number;
177
177
  scheduled: number;
178
178
  ready: number;
179
- goal: number;
180
179
  };
181
180
  declare function nextCoverageStallState(ctx: LoopContext, plan: Record<string, unknown>): {
182
181
  signature: {
183
182
  sent: number;
184
183
  scheduled: number;
185
184
  ready: number;
186
- goal: number;
187
185
  };
188
186
  repeatCount: number;
189
187
  };
@@ -1889,11 +1889,17 @@ function nextNoProgressState(ctx, plan, action) {
1889
1889
  const COVERAGE_STALL_LIMIT = 6;
1890
1890
  function coverageOnlySignature(plan) {
1891
1891
  const coverage = coverageSnapshot(plan);
1892
+ // fix(112an-b): PROGRESS counters only — deliberately NOT `goal`.
1893
+ // Live Dotwork on 0.1.740 ran 28 exact runs with sent/scheduled/ready frozen at
1894
+ // 0/0/20 while `goal` alternated 50 <-> 40 as the planner rescoped its sender
1895
+ // set. Including goal made the signature change every iteration, reset the
1896
+ // streak, and the bound never reached COVERAGE_STALL_LIMIT — 61 calls and
1897
+ // still going. goal is a TARGET, not progress: if sent/scheduled/ready are
1898
+ // frozen the command is stalled no matter what the target says.
1892
1899
  return {
1893
1900
  sent: coverage.sent,
1894
1901
  scheduled: coverage.scheduled,
1895
1902
  ready: coverage.ready,
1896
- goal: coverage.goal,
1897
1903
  };
1898
1904
  }
1899
1905
  function nextCoverageStallState(ctx, plan) {
@@ -2727,8 +2733,8 @@ async function gatePlan(input, deps, ctx) {
2727
2733
  progress: { coverageStall },
2728
2734
  coverage: frozen,
2729
2735
  guidance: `Coverage did not move across ${COVERAGE_STALL_LIMIT} consecutive refill iterations ` +
2730
- `(sent ${frozen.sent}, scheduled ${frozen.scheduled}, ready ${frozen.ready}, ` +
2731
- `goal ${frozen.goal}); the actions differed each time, so this is a workspace-level ` +
2736
+ `(sent ${frozen.sent}, scheduled ${frozen.scheduled}, ready ${frozen.ready}); ` +
2737
+ "the actions differed each time, so this is a workspace-level " +
2732
2738
  "stall rather than one repeated rung. Settling instead of continuing to spend. " +
2733
2739
  "Re-run after the underlying blocker changes; the last attempted action is reported above.",
2734
2740
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.741",
3
+ "version": "0.1.742",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code, Codex, and Hermes campaign workflows",
6
6
  "main": "dist/index.js",