@ferricstore/ferricstore 0.13.1 → 0.13.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.
@@ -31,7 +31,7 @@ The generated
31
31
  <a href="https://unpkg.com/@ferricstore/ferricstore/docs/agent-api/modules.html">agent framework API reference</a>
32
32
  covers every public adapter class and option.</p>
33
33
  <h2 id="compatibility" class="tsd-anchor-link">Compatibility<a href="#compatibility" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
34
- <p>TypeScript SDK <code>0.13.1</code> requires FerricStore server <code>0.11.4</code> or newer. With
34
+ <p>TypeScript SDK <code>0.13.2</code> requires FerricStore server <code>0.11.4</code> or newer. With
35
35
  FerricStore 0.11.11 it negotiates compact Stream mode 34 for homogeneous auto-ID
36
36
  <code>XADD</code> pipelines and compact Pub/Sub mode 35 for homogeneous <code>PUBLISH</code>
37
37
  pipelines. Native wire protocol v1 and the generic fallback are unchanged.
@@ -239,6 +239,14 @@ effect succeeds but before FerricStore commits the result, so external systems
239
239
  still need the same stable provider idempotency key. The closure runs in the
240
240
  calling worker's JavaScript execution context; the SDK does not move it to a
241
241
  global thread pool.</p>
242
+ <p>A waiting workflow does not occupy a worker. Persist a timer, signal, approval,
243
+ or scheduled state and return the waiting transition so the current claim is
244
+ released. When the wait condition is satisfied, any available worker can acquire
245
+ a fresh lease and continue from the stored state. If no worker is
246
+ running, the workflow remains durable until one becomes available.</p>
247
+ <p><code>stepContinue()</code> remains available only as a deprecated low-level migration API.
248
+ Use <code>advance(job, { toState })</code> for a state-only transition and
249
+ <code>step(job, { name, run, toState })</code> when the closure result must be journaled.</p>
242
250
  <p><code>nowMs</code> is an explicit client timestamp sent with a command. When omitted, the
243
251
  SDK samples the client wall clock separately for each request. It is intended
244
252
  mainly for deterministic tests and is not a server-response timestamp or a
@@ -52,6 +52,16 @@ committed result without rerunning the closure; a closure whose result was not
52
52
  committed may run again, so external providers still require stable
53
53
  idempotency keys.
54
54
 
55
+ A timer, signal, approval, or scheduled state is persisted before the current
56
+ claim is released. Waiting therefore does not consume worker concurrency. Once
57
+ the condition becomes runnable, any available worker can claim a fresh lease
58
+ and continue from the durable state; completed durable steps replay their
59
+ stored results instead of running again.
60
+
61
+ `stepContinue()` is retained only as a deprecated low-level migration API.
62
+ Applications should use chainable `advance()` for state-only transitions and
63
+ `step()` for a journaled closure plus transition.
64
+
55
65
  The SDK does not use a global executor or thread pool for step closures. It
56
66
  awaits the value returned by the caller or worker-owned callback. CPU-bound
57
67
  closures therefore need the application's normal Node.js worker-thread or
@@ -10,7 +10,7 @@
10
10
  <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
11
  <li><a href="" aria-current="page">FERRICSTORE_SDK_VERSION</a></li></ul>
12
12
  <h1>Variable FERRICSTORE_SDK_VERSION<code class="tsd-tag">Const</code></h1></div>
13
- <div class="tsd-signature"><span class="tsd-kind-variable">FERRICSTORE_SDK_VERSION</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;0.13.1&quot;</span></div>
13
+ <div class="tsd-signature"><span class="tsd-kind-variable">FERRICSTORE_SDK_VERSION</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;0.13.2&quot;</span></div>
14
14
  <div class="tsd-comment tsd-typography"><p>TypeScript SDK package version.</p>
15
15
  </div><aside class="tsd-sources">
16
16
  <ul>
package/docs/design.md CHANGED
@@ -52,6 +52,16 @@ committed result without rerunning the closure; a closure whose result was not
52
52
  committed may run again, so external providers still require stable
53
53
  idempotency keys.
54
54
 
55
+ A timer, signal, approval, or scheduled state is persisted before the current
56
+ claim is released. Waiting therefore does not consume worker concurrency. Once
57
+ the condition becomes runnable, any available worker can claim a fresh lease
58
+ and continue from the durable state; completed durable steps replay their
59
+ stored results instead of running again.
60
+
61
+ `stepContinue()` is retained only as a deprecated low-level migration API.
62
+ Applications should use chainable `advance()` for state-only transitions and
63
+ `step()` for a journaled closure plus transition.
64
+
55
65
  The SDK does not use a global executor or thread pool for step closures. It
56
66
  awaits the value returned by the caller or worker-owned callback. CPU-bound
57
67
  closures therefore need the application's normal Node.js worker-thread or
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ferricstore/ferricstore",
3
- "version": "0.13.1",
3
+ "version": "0.13.2",
4
4
  "description": "TypeScript SDK for FerricStore and FerricFlow",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",