@fabricorg/platform-host 0.2.0 → 0.3.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @fabricorg/platform-host
2
2
 
3
+ ## 0.3.1 — 2026-07-19
4
+
5
+ - Make policy, event, and adapter checkpoints deterministic and replay-safe.
6
+ - Resume idempotent interrupted actions without repeating succeeded adapters.
7
+ - Fail stale non-idempotent work terminally for explicit operator reconciliation.
8
+
9
+ ## 0.3.0 — 2026-07-19
10
+
11
+ - Add tenant-scoped stable command idempotency and terminal replay.
12
+ - Add atomic Postgres claim leases, bounded store-backed workers, and expired-work recovery.
13
+ - Add operator listing and event replay capabilities to recoverable stores.
14
+ - Ensure unexpected lifecycle failures, including unregistered adapters, end terminally.
15
+ - Add direct coverage for the Postgres/Lakebase store contract and worker recovery.
16
+
3
17
  ## 0.2.0 — 2026-07-19
4
18
 
5
19
  - Add pre-persistence action-parameter redaction so durable audit records cannot retain forbidden secrets.
package/README.md CHANGED
@@ -18,6 +18,17 @@ Actor → ActionInvocation → PolicyEvaluation → StateMachine → Handler →
18
18
  worker entry point. With no dispatcher the host executes inline, which is intended for tests and local
19
19
  development only.
20
20
 
21
+ Production polling workers can use `createStoreBackedActionDispatcher()` plus
22
+ `runPlatformActionWorker()`. The pending invocation row is the durable queue item; workers claim
23
+ bounded batches with an atomic lease and `FOR UPDATE SKIP LOCKED`, and an expired `running` lease is
24
+ recoverable after interruption. Pass a stable `idempotencyKey` to `submitAction()` so retries resolve
25
+ to the original tenant-scoped invocation instead of creating another mutation.
26
+
27
+ Lifecycle records use deterministic checkpoint ids. Recovered idempotent actions do not repeat an
28
+ adapter that already reached `succeeded`, and event, policy, and adapter writes are append-safe. A
29
+ stale action that was not declared idempotent fails terminally for manual reconciliation instead of
30
+ silently rerunning unknown side effects.
31
+
21
32
  Sensitive values must not be passed as action parameters. Stage them in tenant-bound encrypted storage
22
33
  and pass an opaque identifier instead; action parameters are intentionally durable audit evidence.
23
34
  Hosts should additionally configure `redactActionParameters` as a fail-safe allowlist for actions