Repository navigation
Releases: nitoba/better-effect
Releases · nitoba/better-effect
Release list
better-effect-mq@0.1.3
[0.1.3] - 2026-09-11
Fixed
- Complete durable PostgreSQL fan-out under its original lease and run Collect
only after a new claim. Retain execution capacity until phase Scope cleanup
finishes, preventing an extra acquisition of an empty flow parent. - Route terminal child reports by FlowStore identity and rotate bounded recovery
across routes, parents, and pending children so later flows are not starved. - Preserve phase-local JobContext while retaining external business Service
requirements in Worker layers. - Distinguish deliberate notification and claim cancellation during quiescence
from storage deadlines without weakening late-claim fencing.
Compatibility
- Add the optional FlowStore parentLeaseMode descriptor. Existing independent
stores retain their previous lease lifecycle when the field is omitted. - PostgreSQL handoff requires better-effect-mq-postgres 0.1.4 or newer. The
frozen v1 JobRecord inspection API is unchanged; suspended-parent inspection
still requires the explicit FlowStore/v2 boundary. - Regression coverage includes held Scope cleanup, repeated concurrency-one
execution, mixed child failures, nested flows, cancellation, and installed
Nest consumers using Node and Bun.
better-effect-mq-postgres@0.1.4
[0.1.4] - 2026-09-11
Fixed
- Advertise the PostgreSQL FlowStore's atomic parent lease handoff so Collect
runs under a new claim instead of using the relinquished fan-out lease. - Fence heartbeat, release, and settlement for suspended parents under native
row locks while preserving ordinary jobs in mixed heartbeat batches. - Drain already-admitted transactions through commit or rollback and client
release before disposing a borrowed store. The application pool stays open. - Defer ordinary and controlled claims of records updated after the sampled
clock without backdating leases or rejecting older eligible jobs.
Compatibility
- Use with better-effect-mq 0.1.3 or newer for the corrected Worker lifecycle.
- No schema migration or persisted job-envelope change is required. The v1
inspection state union is unchanged; use the explicit FlowStore/v2 read
boundary for parents waiting for children. - Real PostgreSQL regressions cover held phase cleanup, stale leases, claim
timestamps, transaction draining, and repeated flow execution and shutdown.
better-effect-schema@0.1.2
[0.1.2] - 2026-09-10
Changed
- Renamed the workspace package and release-artifact route from
better-effect-zodtobetter-effect-schema. - Added
@standard-schema/specas a production dependency for future public type declarations.
better-effect-mq@0.1.2
[0.1.2] - 2026-09-10
Added
- Immutable
PreparedEnqueueproducer commands and the optional prepared
enqueue capability on the in-memory JobStore. - Layer-first
Worker.service(tag).layer(factory)startup and Runtime-owned
quiesce/release lifecycle, plus caller-ownedWorker.succeedtest doubles. - Retry policies with durable backoff normalization, typed failure handling,
cooperative job timeouts, and best-effort failure notifications. - Process-local JobEvent observers, logging and metrics adapters, RecordedJobObserver,
Runtime attempt metadata, and opt-in queue-depth sampling. - Process-local
JobHealthsnapshots and sinks for store failures, lease/stall
signals, consumer failures, event lag, retention, cursor expiry, and safe metrics. - Flow v2 phase handlers and associated
FlowStorerequirements for Layer-first
Worker route validation, including duplicate-route checks. - Layer-owned Flow v2 relay and bounded reconciliation/sweeper supervision,
including at-least-once outbox delivery and graceful Runtime shutdown. - The deterministic TestJobStore harness, end-to-end examples, MQ documentation,
and package/type-system release gates.
Compatibility
- Updated the
better-effectpeer range to>=0.14.0 <0.15.0.
better-effect-mq-sqlite@0.1.2
[0.1.2] - 2026-09-10
- Add QueueControls protocol v3 support with durable controls, persisted dispatch keys, atomic
global/per-key permits, fixed-window rate limits, bounded rotating candidate scans, recovery
fencing, and SQLite migration 5. - Add SQLite migration 3 and durable
OutboxStoresupport with transactional append, leases,
recovery, settlement, administration, named layers, and Bun/Node file layers. - Add the adapter-owned
SqliteOutboxTransactions.transactionhelper for serialized domain-write
and outbox transactions with automatic commit, rollback, and cleanup. - Updated the
better-effectpeer range to>=0.14.0 <0.15.0and aligned the
MQ/outbox workspace peer artifacts with the current0.1.xreleases.
better-effect-mq-redis@0.1.3
[0.1.3] - 2026-09-10
- Add the Redis-native
RedisOutbox.transactioncallback and durable
RedisOutboxStoreLayer. The callback ownsMULTI/EXECcleanup for a
Redis domain write plus outbox append and documents the boundary as
Redis-only rather than cross-database atomicity. - Atomically append terminal Flow child reports to the Redis JobStore outbox for settlement, cancellation, release, retry exhaustion, and stalled recovery, with at-least-once relay support.
- Implement QueueControls protocol v3 with revision fencing, atomic permits, persisted
dispatchKey, fixed-window rate limits, and controlled lifecycle transitions. - Updated the
better-effectpeer range to>=0.14.0 <0.15.0and aligned the
MQ/outbox workspace peer artifacts with the current0.1.xreleases.
better-effect-mq-postgres@0.1.3
[0.1.3] - 2026-09-10
- Add contextual
layerWithandlayerFromConfigWithfactories for PostgreSQL
stores. Their generators resolve configuration and caller-owned pools with
yield*during Runtime acquisition, preserving one shared pool boundary. - Add borrowed and config-backed Layers for
PostgresFlowStore, including the
same contextual factory variants. - Add
PostgresOutbox.transactionfor adapter-owned domain writes and
prepared outbox appends with automatic commit, rollback, and client cleanup. - Add PostgreSQL controlled claim protocol v3 support with durable queue
controls, dispatch keys, fixed-window rate limits, global/per-key permits,
bounded fairness scanning, revision fencing, and atomic settlement/recovery. - Add migration
005_controls_v3.sqland schema validation for the controls
tables and indexes. - Add the PostgreSQL v1
OutboxStoreadapter with transactionalappendIn,
digest-idempotent appends, fenced leases, settlements, recovery, inspection,
and default/named Service Layers. - Add migration
003_outbox.sqland schema validation for the durable outbox
layout. - Updated the
better-effectpeer range to>=0.14.0 <0.15.0and aligned the
MQ/outbox workspace peer artifacts with the current0.1.xreleases.
better-effect-mq-outbox@0.1.3
[0.1.3] - 2026-09-10
Changed
- Document
adapter.transaction(resource, preparedRecord, callback, options?)
as the normal application boundary: the callback performs the domain write,
the adapter appends the supplied record automatically, and the adapter owns
commit, rollback, and cleanup. Low-levelappendInhelpers remain explicitly
advanced adapter integrations. - Updated the
better-effectpeer range to>=0.14.0 <0.15.0and the MQ peer
contract to the current0.1.xworkspace release.
better-effect-mq-mysql@0.1.3
[0.1.3] - 2026-09-10
- Add
MySqlOutbox.transaction(pool, record, callback, options?)for
adapter-owned connection and transaction lifecycle around domain writes and
automatic outbox appends; keepappendInas the advanced caller-owned
transaction escape hatch. - Add the durable
JobEventStoreextension with migration 007, opaque
namespace cursors, atomic transition appends, keyset reads, retention, and
polling/local-wake event waits. - Add QueueControls protocol v3 with additive migration 006, durable dispatch
keys and revisioned controls, atomic InnoDB permits, fixed-window rate limits,
bounded per-key fairness, stale-token fencing, and controlled lifecycle
recovery. - Add the MySQL Flow protocol v2 adapter, additive migration, deterministic
child/dependency persistence, cross-store report outbox, reconciliation, and
terminal child report integration with the JobStore. - Add the MySQL durable outbox v1 table, typed transactional append, Layer-first
default/named outbox stores, fenced leases, recovery, settlement, and admin
inspection operations. - Add the MySQL
JobScheduleStoreadapter and schedules migration. - Add atomic, deterministic schedule ticks with durable queue wake versions.
- Updated the
better-effectpeer range to>=0.14.0 <0.15.0and aligned the
MQ/outbox workspace peer artifacts with the current0.1.xreleases.
better-effect-mq-mongodb@0.1.4
[0.1.4] - 2026-09-10
- Add
MongoOutbox.transaction(clientOrDb, preparedRecord, callback, options?)
for adapter-owned MongoDB session and transaction lifecycle around domain
writes and automatic outbox appends; preserveappendInas the advanced
caller-owned escape hatch. - Add MongoDB QueueControls protocol v3 support with durable revisioned
controls, persisted dispatch keys, transactional global/per-key permits,
anchored fixed-window rate limits, bounded fairness cursors, fail-closed
legacy claims, and owner-fenced settlement/recovery. - Advance the MongoDB layout to version 4 with dedicated controls, permits,
rate-window, and fairness-cursor collections and indexes. - Add the protocol-v2
MongoFlowStorewith explicit flow migration, atomic
child settlement reports, durable flow outbox delivery, and named layers. - Add the durable
MongoJobEventStorewith namespace-scoped monotonic cursors,
filtered pagination, explicit age/count retention, polling fallback, and
change-stream wake hints. - Advance the MongoDB layout to version 5 with validated events and cursor
collections. Event-enabled JobStore layers append transition events in the
same MongoDB transaction as the state change. - Updated the
better-effectpeer range to>=0.14.0 <0.15.0and aligned the
MQ/outbox workspace peer artifacts with the current0.1.xreleases.