packages feed

keiro-core-0.2.0.0: CHANGELOG.md

# Changelog

All notable changes to `keiro-core` are recorded here. The format follows
[Keep a Changelog](https://keepachangelog.com/), and the package follows the
[Haskell Package Versioning Policy](https://pvp.haskell.org/).

## [Unreleased]

_No unreleased changes._

## 0.2.0.0 — 2026-07-13

### Breaking Changes

- `keiro-core` now requires post-MP-16 Keiki 0.2 (`keiki >=0.2 && <0.3`) and
  Kiroku 0.3 (`kiroku-store >=0.3 && <0.4`). Stream validation runs Keiki's new
  head-recoverability, inversion-ambiguity, unguarded-input-read, and
  state-changing-silent-edge checks; any warning enabled by the selected
  `ValidationOptions` makes `mkEventStream` reject the stream at startup.
- `validateEventStreamWith` and `mkEventStreamWith` now force-enable Keiki's
  `checkHeadRecoverability` and `checkStateChangingEpsilon`. Caller-supplied
  options may only strengthen validation at Keiro's durable boundary; use the
  explicitly unsafe `mkEventStreamUnchecked` only for tests and emergency
  forensics, never for production streams.
- `mkEventStream` now rejects snapshot codecs that cannot encode their initial
  state and register file. Snapshot-enabled streams built from `emptyRegFile`
  must initialize every slot before validation; the labelled `uninit: <slot>`
  `ErrorCall` is reported as an `EventStreamWarning` instead of escaping at the
  first snapshot write.

### New Features

- New module `Keiro.Schema`, exporting `keiroSchema :: Text` (`"keiro"`). This
  is the single source of truth for the dedicated PostgreSQL schema that owns
  Keiro's framework tables: `keiro-migrations` creates them schema-qualified and
  the `keiro` runtime queries resolve against the same name.
- Added `mkEventStreamUnchecked`, which wraps an `EventStream` with no Keiki or
  Keiro checks at all. It exists for tests and emergency forensics; a stream
  admitted through it can silently lose state changes and fail hydration.

### Other Changes

- Keiki 0.2 and Kiroku 0.3 now resolve from Hackage; their obsolete Git package
  overrides and the local Cabal overlay are no longer needed.
- Added a `deepseq` dependency: `validateEventStream` forces the configured
  `stateCodec` over the initial state and registers, observing only `ErrorCall`
  so that any other exception stays programmer-visible.

## 0.1.0.0 — 2026-07-05

Initial Hackage release.

### Breaking Changes

- Finalized the pre-release stream naming, codec, and event-stream contracts,
  including safer stream category construction and validated event-stream
  boundaries.

### New Features

- Added shared `Keiro.Codec`, `Keiro.Stream`, `Keiro.EventStream`,
  `Keiro.EventStream.Validate`, `Keiro.Integration.Event`,
  `Keiro.Snapshot.Policy`, and `Keiro.Prelude` modules.
- Added replay-safety validation helpers built on keiki's transducer validator.

### Other Changes

- Added Haddock coverage and migration documentation for validated event streams.