Skip to content

Releases: GazaliAhmad/causal-order

V0.6.0

30 May 07:11
7d400f6

Choose a tag to compare

`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

27 May 06:06
66f9383

Choose a tag to compare

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() and compareWithTieBreaker() as compatibility aliases for now
  • preserve warning-visible defaults such as:
    • strict: false
    • detectAnomalies: 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.0 as 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:check
  • npm pack --dry-run

Additional stretch validation was also exercised for:

  • baseline-250k-shuffled
  • streaming-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

26 May 08:57
844a0f1

Choose a tag to compare

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() to orderEvents() path
  • quick-start scenario guidance for audit reconstruction, replay pipelines, distributed debugging, and offline sync inspection
  • policy guidance for choosing strict mode and lateArrivalPolicy
  • docs synchronization enforcement in CI and release verification
  • website and top-level docs alignment around 0.4.2 as the current release

Included

  • minimal and scenario-flavored ingress examples using causal-order imports
  • package-facing example conversion across the runnable examples set
  • 0.4.2 quick-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.0 contract work

Verification

npm run release:check
npm run site:build

v0.4.1

24 May 22:38
c0fbf6c

Choose a tag to compare

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, and causal-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_failure and optional_field_failure, including TranslateBatchPolicyError
  • reduced anomaly-heavy allocation churn in detectAnomalies() and orderEvents() without changing public ordering behavior
  • added post-merge 150k confidence coverage for batch and stream validation
  • aligned docs, wiki, changelog, and website API content to the published 0.4.1 contract

Diagnostic Contract

0.4.1 makes the translation anomaly surface safer to build against directly.

That now includes:

  • nested diagnostic objects for mapping and structural failures
  • stable classification metadata instead of text-only interpretation
  • stable fieldReference metadata for ingress-facing field attribution
  • explicit policy metadata 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 check
  • npm test

v0.4.0

23 May 04:10
6c42bfa

Choose a tag to compare

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.0 ingress contract surface
  • published 0.4.0 release 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 payload by reference
  • aligned core clock validation with the ingress temporal contract, including negative epoch-millisecond bigint timestamps
  • aligned README, guides, wiki, roadmap, changelog, and website around 0.4.0 as 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.0 surface
  • 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 24 is the active repository development target
  • Node.js 20+ is the published package support floor

Validation

  • npm run release:check
  • npm 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

18 May 13:59
6a7cb3e

Choose a tag to compare

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 250k stream and batch stretch verification
  • docs and release-surface alignment for the published 0.3.4 line
  • 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

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 250k runs remain visibility tools rather than enforced release gates

Validation

  • npm pack --dry-run
  • npm 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

17 May 03:20
673428c

Choose a tag to compare

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.3 stream stress profiles for:
    • correction churn
    • sustained watermark lag
    • fragmented ready subsets
    • anomaly-heavy reconnect backlog
  • explicit higher-scale stream visibility bands:
    • streaming-150k-watermark-lag
    • streaming-250k-watermark-lag
  • named baseline-250k-shuffled batch 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.3 streaming 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-lag into 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

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
  • 150k is now the enforced sustained watermark-lag stream guard band
  • 250k stream pressure remains exploratory

Validation

  • npm pack --dry-run
  • npm run release:check

npm run release:check passed with:

  • 78/78 tests passing
  • batch perf guards passing
  • streaming-100k-plateaus guard passing
  • streaming-150k-watermark-lag guard 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

14 May 13:26

Choose a tag to compare

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 batchSize pressure
    • 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.2 hardening docs for:
    • production gate
    • anomaly-surface audit
    • fuzz testing
  • aligns the README, guides, roadmap, changelog, and wiki with the 0.3.2 release posture
  • narrows CI to pull requests into main and 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 test
  • npm run bench:check
  • npm 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

13 May 12:02
436df8a

Choose a tag to compare

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_correction behavior for downstream reconciliation flows
  • made the current cross-window anomaly contract more explicit
  • clarified batchSize behavior 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.1 release story

Verification

  • npm run release:check
  • npm 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 settled 0.3.1 semantics
  • 0.3.3: broader streaming hardening and pressure follow-up

ver0.3.0

11 May 19:15

Choose a tag to compare

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:
    • eventTimeWatermark
    • ingestedAtWatermark
    • createProcessingTimeWatermark()
  • 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:stream entry point
  • streaming-100k-plateaus benchmark profile for direct streaming flush measurement

Changed

  • promoted the package to the 0.3.0 baseline 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_correction flush correction-capable batches immediately when a late event arrives
  • clamped computed stream watermarks at 0n until observed progress exceeds the lateness window
  • documented emit_correction as 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.0 contract

Verification

  • npm run check
  • npm test
  • npm run bench:check
  • npm run bench:stream
  • npm run release:check
  • npm pack --dry-run

Notes

This release establishes the first intentional public streaming contract.

The planned next steps remain:

  • 0.3.1: streaming semantic tightening
  • 0.3.2: remaining streaming hardening, pressure behavior, and bounded-memory guidance