@wrongstack/sdd 0.310.0 → 0.313.0

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/index.js CHANGED
@@ -3338,10 +3338,17 @@ var SddParallelRun = class {
3338
3338
  // Public API
3339
3339
  // -------------------------------------------------------------------
3340
3340
  paused = false;
3341
+ /** Resolvers for tasks parked in `waitWhilePaused`, woken on resume/stop. */
3342
+ pausedWaiters = /* @__PURE__ */ new Set();
3343
+ notifyPausedWaiters() {
3344
+ for (const resolve2 of this.pausedWaiters) resolve2();
3345
+ this.pausedWaiters.clear();
3346
+ }
3341
3347
  /** Trigger stop — causes run() to abort after the current wave. */
3342
3348
  stop() {
3343
3349
  this.stopRequested = true;
3344
3350
  this.paused = false;
3351
+ this.notifyPausedWaiters();
3345
3352
  this.coordinator?.stopAll();
3346
3353
  }
3347
3354
  /** Pause: no new wave starts until resume() (the current wave finishes). */
@@ -3350,6 +3357,7 @@ var SddParallelRun = class {
3350
3357
  }
3351
3358
  resume() {
3352
3359
  this.paused = false;
3360
+ this.notifyPausedWaiters();
3353
3361
  }
3354
3362
  isPaused() {
3355
3363
  return this.paused;
@@ -3506,7 +3514,13 @@ var SddParallelRun = class {
3506
3514
  }
3507
3515
  async waitWhilePaused() {
3508
3516
  while (this.paused && !this.stopRequested) {
3509
- await new Promise((r) => setTimeout(r, 100));
3517
+ await new Promise((resolve2) => {
3518
+ this.pausedWaiters.add(resolve2);
3519
+ const safety = setTimeout(() => {
3520
+ if (this.pausedWaiters.delete(resolve2)) resolve2();
3521
+ }, 1e3);
3522
+ safety.unref?.();
3523
+ });
3510
3524
  }
3511
3525
  }
3512
3526
  /**
@@ -88,6 +88,9 @@ export declare class SddParallelRun {
88
88
  private emit;
89
89
  private currentSessionId;
90
90
  private paused;
91
+ /** Resolvers for tasks parked in `waitWhilePaused`, woken on resume/stop. */
92
+ private pausedWaiters;
93
+ private notifyPausedWaiters;
91
94
  /** Trigger stop — causes run() to abort after the current wave. */
92
95
  stop(): void;
93
96
  /** Pause: no new wave starts until resume() (the current wave finishes). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/sdd",
3
- "version": "0.310.0",
3
+ "version": "0.313.0",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack Spec-Driven Development engine — standalone package extracted from @wrongstack/core. Task graph generation, tracking, execution, lifecycle management, and AI-driven spec building for SDD workflows.",
6
6
  "repository": {
@@ -27,9 +27,9 @@
27
27
  "!dist/**/*.map"
28
28
  ],
29
29
  "dependencies": {
30
- "@wrongstack/core": "0.310.0",
31
- "@wrongstack/kanban": "0.310.0",
32
- "@wrongstack/requirement-intake": "0.310.0"
30
+ "@wrongstack/core": "0.313.0",
31
+ "@wrongstack/kanban": "0.313.0",
32
+ "@wrongstack/requirement-intake": "0.313.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^26.2.0",