Releases: GazaliAhmad/causal-order
V0.6.0
`0.6.0` is the first operational-tooling follow-through release for `causal-order` on top of the published `0.5.0` contract boundary.
## What’s new
- added the first public `inspect` helper layer:
- `summarizeEventAnomalies()`
- `summarizeTranslationAnomalies()`
- `explainOrderedEvent()`
- `inspectOrderResult()`
- `inspectOrderBatch()`
- added the focused `causal-order/inspect` subpath export
- added replay inspection, streaming reconciliation, and operator metrics guides
- added the first integration-shaped local durable-buffer replay example
- added AWS-inspired outage scenario coverage and release-wide docs alignment
- updated website API generation so the new inspect APIs and public subpaths are surfaced correctly
## Release direction
`0.6.0` improves operational usability without widening the payload-agnostic core contract established in `0.5.0`.
The new helper layer is intentionally additive:
- it summarizes or explains existing runtime output
- it does not mutate ordered results
- it does not hide anomalies
- it does not invent stronger causal certainty than the runtime already exposes
## Included in this release
- compact operator-facing summaries for bounded results and emitted stream batches
- anomaly summaries for event-ordering and translation output
- event-level explanation helpers for replay and audit review
- workflow guidance for bounded replay review and correction-capable stream handling
- first-pass operator metrics guidance for watermark, late-arrival, anomaly, and correction visibility
- website/API surfacing for the published `0.6.0` helper and subpath surface
## Not included
- official database or broker connectors
- CLI, daemon, or dashboard tooling
- payload-aware contradiction or fork-resolution semantics inside the core runtime
- semantic dedupe policy execution inside the core runtime
## Verification
- `npm test`
- `npm run docs:sync:check`
- `npm run bench:check`
- `node website/scripts/generate-api.mjs`
- `npm pack --dry-run`
For the full write-up, see `docs/releases/0.6.0.md`.v0.5.0
0.5.0
0.5.0 is the published stability-and-contract-design release for causal-order.
This release turns the 0.5.x line into an explicit public-contract checkpoint:
- helper naming direction is now explicit
- warning-visible default behavior is now explicit
- payload-agnostic core boundaries are now explicit
- compatibility guidance exists before any future narrowing or removal work
Highlights
- prefer
compareByHlc()for direct HLC comparison - prefer
compareDeterministically()for deterministic fallback comparison - keep
compareClocks()andcompareWithTieBreaker()as compatibility aliases for now - preserve warning-visible defaults such as:
strict: falsedetectAnomalies: true- translation optional-field
"warn"posture
- make contradiction handling, entity-fork handling, and semantic dedupe action explicitly policy-owned rather than silently hardcoded into the core runtime
- add targeted stability-surface tests and migration notes for the released line
Docs And Release Follow-Through
- the README, roadmap, guides, wiki, and website now describe
0.5.0as a published release rather than as tentative milestone work - the top-level changelog is now a concise summary log, with fuller detail living under
docs/releases/ - the website API reference now marks deprecated helpers more clearly and points readers toward the preferred replacements
Validation
Release validation passed through:
npm run release:checknpm pack --dry-run
Additional stretch validation was also exercised for:
baseline-250k-shuffledstreaming-250k-watermark-lag
Notes
This release does not claim that the core runtime now:
- resolves contradictory events automatically
- chooses canonical fork branches automatically
- deduplicates business objects by itself
Those areas remain explicitly outside the default payload-agnostic core and belong to later policy-owned work.
Full release notes in the repo:
docs/releases/0.5.0.md
v0.4.2
0.4.2 is the developer-experience follow-through release for the current ingress and diagnostics surface in causal-order.
It does not widen the core API. It makes the existing package surface easier to evaluate, learn, and verify.
Highlights
- runnable package-facing ingress examples that show the real
translateBatch()toorderEvents()path - quick-start scenario guidance for audit reconstruction, replay pipelines, distributed debugging, and offline sync inspection
- policy guidance for choosing
strictmode andlateArrivalPolicy - docs synchronization enforcement in CI and release verification
- website and top-level docs alignment around
0.4.2as the current release
Included
- minimal and scenario-flavored ingress examples using
causal-orderimports - package-facing example conversion across the runnable examples set
0.4.2quick-start and policy guidance under/guides- docs-sync checks wired into CI and
release:check - README, changelog, roadmap, guides, wiki, release notes, and website updates
- version bump to
0.4.2
Not Included
- core API widening
- async ingress additions
- adapters, CLI tooling, or companion helper surface
- broader
0.5.0contract work
Verification
npm run release:check
npm run site:buildv0.4.1
0.4.1 is the structural-diagnostics and bounded-allocation follow-through release for causal-order.
This release keeps the synchronous raw-record ingress boundary from 0.4.0 intact while making translation failures safer to inspect, classify, control, and benchmark under pressure.
Highlights
- added focused subpath exports for
causal-order/batch,causal-order/stream, andcausal-order/watermarks - expanded
translateBatch()with machine-readable diagnostics, stable classification metadata, field references, policy metadata, and deterministic anomaly ordering - added strictness-policy controls for
record_failureandoptional_field_failure, includingTranslateBatchPolicyError - reduced anomaly-heavy allocation churn in
detectAnomalies()andorderEvents()without changing public ordering behavior - added post-merge
150kconfidence coverage for batch and stream validation - aligned docs, wiki, changelog, and website API content to the published
0.4.1contract
Diagnostic Contract
0.4.1 makes the translation anomaly surface safer to build against directly.
That now includes:
- nested
diagnosticobjects for mapping and structural failures - stable
classificationmetadata instead of text-only interpretation - stable
fieldReferencemetadata for ingress-facing field attribution - explicit
policymetadata so strictness decisions are inspectable - stable emitted ordering metadata for testing, snapshotting, and downstream tooling
This is a machine-readable diagnostics release, not a terminal-formatting pass.
Allocation Discipline
0.4.1 also tightens anomaly-heavy allocation behavior.
That includes:
- shared internal anomaly collection so anomaly detection no longer retains a full validation-record array unnecessarily
- lazy graph-evidence allocation in the batch ordering path
- reduced intermediate ordering structures in
orderValidatedEvents() - lower allocation churn in same-node sequence handling
Verification
npm run checknpm test
v0.4.0
Highlights
0.4.0 is the first published raw-record ingress release for causal-order.
The headline change is translateBatch(): a narrow synchronous boundary for mapping arbitrary user-space records into the library’s event-envelope shape before ordering.
Added
- top-level
translateBatch()as the first public synchronous raw-record ingress API - public translation-facing types for:
- translated envelopes
- mapper configuration
- structured translation anomalies
- translated-versus-rejected batch results
- direct unit coverage for the
0.4.0ingress contract surface - published
0.4.0release notes and aligned devex guidance
Changed
- finalized the ingress contract around explicit mapper rules
- made timestamp coercion deterministic for accepted raw timestamp inputs
- surfaced stable structured translation anomalies with machine-readable metadata
- preserved shallow translated-envelope immutability while keeping
payloadby reference - aligned core clock validation with the ingress temporal contract, including negative epoch-millisecond
biginttimestamps - aligned README, guides, wiki, roadmap, changelog, and website around
0.4.0as a published release
Temporal contract
Accepted timestamp inputs:
bigint- safe integer
number - canonical integer
string
Rejected inputs include:
Date- ISO timestamp strings
- fractional numbers
- non-canonical numeric strings
- unsafe integers
Docs and website
- renamed and reorganized devex docs under
guides/devex/ - updated the docs site to reflect the published
0.4.0surface - added
translateBatch()and the published translation types to the API reference - rebuilt API function pages from the actual public export surface
- cleaned up docs navigation and related website polish
Runtime posture
- Node.js
24is the active repository development target - Node.js
20+is the published package support floor
Validation
npm run release:checknpm pack --dry-run
The package includes the full 0.4.0 npm user-facing library surface, including translateBatch() and its TypeScript types.
v0.3.4
Summary
0.3.4 is the runtime-stability follow-up to the broader 0.3.3 pressure work.
This release focuses on longer-running and more constrained-runtime proof for the current streaming contract, while also tightening the public docs and API reference surface.
Included
- repeated-cycle and time-boxed stream endurance harness support
- constrained-heap stream endurance runs
- GC-observed stream endurance runs
- sustained correction-churn endurance profiles
- sustained anomaly-heavy reconnect endurance profiles
- continued
250kstream and batch stretch verification - docs and release-surface alignment for the published
0.3.4line - public website improvements:
- deployed docs site at
https://causal-order.gazali.one - generated API metadata from source into static JSON
- full all-exports API index
- one-line descriptions for runtime exports and public types
- Cloudflare / Astro prerender path hardening
- narrowed hardening-doc surfacing to the intended release docs
- deployed docs site at
Runtime Stability Focus
0.3.4 is about proving that the current streaming contract remains credible under:
- repeated cycles in one process
- smaller heap limits
- directly observed GC activity
- sustained correction pressure
- sustained reconnect/anomaly-heavy pressure
This release does not introduce a new semantic model. It hardens the current one.
Current Posture
- bounded batch recovery, replay, reconciliation, and audit-style workloads remain the stronger current deployment story
- the streaming story is now better supported by endurance and constrained-runtime evidence
- exploratory
250kruns remain visibility tools rather than enforced release gates
Validation
npm pack --dry-runnpm run build- stream endurance smoke runs for:
- sustained watermark lag
- constrained heap
- GC-observed runs
- sustained correction churn
- anomaly-heavy reconnect pressure
Website
Public documentation site:
https://causal-order.gazali.one
Notes
This release also improves the generated API documentation pipeline:
- source code
- generator
- JSON metadata
- Astro rendering
That keeps the public API surface easier to maintain without turning the docs into purely generated reference output.
v0.3.3
Summary
0.3.3 broadens the streaming hardening story after the 0.3.2 production gate.
This release adds deeper stream-pressure coverage, heavier seeded fuzzing, richer benchmark visibility, stream-path optimization, anomaly-path tightening, and a stable 150k streaming pressure guard.
Included
- dedicated
0.3.3stream stress profiles for:- correction churn
- sustained watermark lag
- fragmented ready subsets
- anomaly-heavy reconnect backlog
- explicit higher-scale stream visibility bands:
streaming-150k-watermark-lagstreaming-250k-watermark-lag
- named
baseline-250k-shuffledbatch stretch profile - richer streaming benchmark visibility for:
- correction-batch counts
- late-arrival counts
- empty emitted batches
- max anomalies per batch
- start / end / peak heap
- peak RSS
- best-effort GC event counts and durations
- broader seeded
0.3.3streaming fuzz coverage for:- correction bursts
- sustained correction churn
- fragmented reconnect bursts
- fragmented watermark lag
- bounded-window lagging-watermark pressure
- bounded-memory cross-window replay pressure
orderEventStream()flush-path optimization to reduce repeated rescans and compaction work under watermark-lag pressure- anomaly-path tightening to reduce overhead for invalid-event handling and pending-anomaly merges
- promotion of
streaming-150k-watermark-laginto the enforced perf guard set - docs-site additions and refinement:
- Astro-based docs site under
website/ - direct guides, wiki, and API surfaces
- privacy page
- branded 404 page
- stronger site shell, navigation, and npm badge/version surfacing
- Astro-based docs site under
Deployment Posture
- bounded batch recovery, replay, reconciliation, and audit-style workloads remain the stronger current deployment story
- the larger remaining proof bar is still on prolonged and constrained-runtime streaming behavior
150kis now the enforced sustained watermark-lag stream guard band250kstream pressure remains exploratory
Validation
npm pack --dry-runnpm run release:check
npm run release:check passed with:
78/78tests passing- batch perf guards passing
streaming-100k-plateausguard passingstreaming-150k-watermark-lagguard passing
Notes
This release does not redefine the semantic meaning of proven, derived, fallback, unknown, or stream finality. It hardens the current streaming contract under heavier pressure and makes memory-pressure behavior more observable without yet promoting memory metrics into hard CI thresholds.
v0.3.2
0.3.2 Production-Gate Hardening
0.3.2 is the release where causal-order hardens the settled 0.3.1 semantics into an explicit production-gate milestone.
This release is focused on proving the current contract more clearly, not expanding it.
Highlights
- adds direct release-gate coverage for current-core failure shapes:
- missing parent events
- offline device merge
- exact duplicate event storms
- clock reset scenarios
- massive out-of-order replay
- partial log corruption
- adds streaming pressure coverage for:
- pathological late arrivals
- reconnect correction pressure
- watermark pressure
- lagging-watermark plus
batchSizepressure - bounded-memory cross-window behavior
- adds seeded fuzz coverage for:
- outage, replay, duplicate, drift, and corruption noise in batch mode
- reconnect and late-arrival correction behavior in streaming mode
- adds explicit
0.3.2hardening docs for:- production gate
- anomaly-surface audit
- fuzz testing
- aligns the README, guides, roadmap, changelog, and wiki with the
0.3.2release posture - narrows CI to pull requests into
mainand treats workflow changes as code-facing changes for path filtering - bumps the package version to
0.3.2
Verification
This release is backed by:
npm testnpm run bench:checknpm run release:check
Notes
0.3.2 is about making the current batch and streaming semantics explicit, deterministic, and operationally credible.
Broader exploratory pressure expansion remains part of the planned 0.3.3 follow-up.
ver0.3.1
Summary
v0.3.1 is the semantic-tightening follow-up to the published v0.3.0 streaming baseline.
This release does not broaden the core semantic model. It makes the existing streaming contract clearer, better-tested, and more operationally honest around watermark behavior, lateness, corrections, and cross-window limits.
Highlights
- tightened watermark callback semantics so custom watermark functions are treated as stream-progress signals
- made the readiness vs lateness boundary explicit
- clarified
emit_correctionbehavior for downstream reconciliation flows - made the current cross-window anomaly contract more explicit
- clarified
batchSizebehavior under lagging watermark and reconnect conditions - expanded targeted streaming coverage for edge cases and delayed reconnect behavior
- kept performance guardrails and publish-facing docs aligned with the current
0.3.1release story
Verification
npm run release:checknpm pack --dry-run
Notes
This release is intended to strengthen confidence in the settled 0.3.1 contract before the next milestone.
Next planned milestones:
0.3.2: production-gate hardening for the settled0.3.1semantics0.3.3: broader streaming hardening and pressure follow-up
ver0.3.0
Highlights
v0.3.0 is the baseline streaming release for causal-order.
This release makes the streaming contract explicit, adds built-in watermark helpers, strengthens late-arrival handling, and expands the documentation and benchmark story around real continuous event processing.
Added
- built-in streaming watermark helpers:
eventTimeWatermarkingestedAtWatermarkcreateProcessingTimeWatermark()
- direct streaming coverage for:
lateArrivalPolicy: "drop"- conservative invalid-event watermark behavior
- opt-in watermark helpers
- stream option validation
- dedicated streaming recovery and resync documentation
- runnable reconnect / delayed-sync example
- dedicated
bench:streamentry point streaming-100k-plateausbenchmark profile for direct streaming flush measurement
Changed
- promoted the package to the
0.3.0baseline streaming release - kept default stream watermark progression conservative and event-driven
- stopped invalid events from advancing stream watermark progress in non-strict mode
- made
emit_correctionflush correction-capable batches immediately when a late event arrives - clamped computed stream watermarks at
0nuntil observed progress exceeds the lateness window - documented
emit_correctionas a correction-capable downstream model built around provisional output and derived-state reconciliation - reduced ordering-path allocation overhead before anomaly analysis
- reduced stream flush overhead by avoiding unnecessary repeated buffer rescans
- aligned the README, roadmap, guides, wiki, and changelog with the shipped
0.3.0contract
Verification
npm run checknpm testnpm run bench:checknpm run bench:streamnpm run release:checknpm pack --dry-run
Notes
This release establishes the first intentional public streaming contract.
The planned next steps remain:
0.3.1: streaming semantic tightening0.3.2: remaining streaming hardening, pressure behavior, and bounded-memory guidance