Repository navigation
v0.15.0
Breaking Changes
@coji/durably
trigger()return type changed toTriggerResult: Returns{ run, disposition }wheredispositionis'created' | 'idempotent' | 'coalesced'. Addcoalesce: 'skip'option to reuse an existing pending run instead of throwing.concurrencyKeynow enforces max 1 pending run per key (#148)
@coji/durably-react
useRunActions()no longer returnsisLoading/error: Use React 19useTransitionfor per-button pending UI andtry/catchfor error handling. Peer dependency raised to React 19+ (#179)
Added
@coji/durably
waitForRun(runId, options?): Wait for a run to reach terminal state, withtimeout,onProgress,onLogcallbacks. Uses event-first resolution with storage polling fallback (#151, #169)maxConcurrentRunsoption: Enable parallel run processing in the worker. Defaults to1(#173)- Event classification: Events classified as Domain or Operational with
isDomainEvent()type guard (#169) - Automatic WAL checkpoint: Periodic WAL checkpoint during idle maintenance for local SQLite backends, preventing unbounded WAL file growth (#181)
@coji/durably-react
isTerminal/isActiveon run objects and hooks: Derived status booleans replace manual status enumeration (#179)useRunsstatus array filter:statusoption acceptsRunStatus | RunStatus[](#154)createJobHooks().useRun()lifecycle callbacks:onStart,onComplete,onFailoptions (#155)createJobHooks()options forwarding: All hook options forwarded transparently (#179)
Fixed
@coji/durably
TypedRun/TypedClientRunoutput type: Defaultoutputtype no longer includesundefined, removing unnecessary undefined checks (#145)
See CHANGELOG.md for full details.