# Changelog
## Unreleased
## 0.3.0.0 — 2026-09-08
- Raise the internal `shikumi` bound to `^>=0.4.0.0` and `shikumi-cache` to `^>=0.2.0.0`.
- Persist optional billing detail and logical span quality in format 3 while reading formats 1 and 2. Streaming terminals now populate usage; observed model identity comes only from evidence. Billing attachment does not add replay entries. Public record additions require PVP major review.
- Upgrade the dependency on `mori://shinzui/baikai/packages/baikai` to `>=0.7.0.0 && <0.8`.
- Add isolated `runProgramObserved` and `NodeObservation`, sharing traced control flow and retaining failed-attempt evidence with rejection lineage. Embed remains opaque; concurrent outer executions use separate storage.
## 0.2.0.3 — 2026-08-29
### Changed
- Every library dependency now carries a PVP upper bound: `aeson`, `bytestring`,
`containers`, `directory`, `effectful`, `generic-lens`, `scientific`, `time`,
`vector`. `cabal check` reported these under `missing-upper-bounds`. Without
one, a future breaking release of a dependency enters a consumer's build plan
unchecked — which is the failure the bound exists to prevent.
Each bound admits the version this package is built and tested against and
stops below the next major.
`aeson` stops at `<2.3` rather than `<2.4`: baikai-openai 0.5 constrains it to
`^>=2.2`, so aeson 2.3 is not reachable for this cohort and a wider bound
would assert compatibility that cannot be exercised here.
## 0.2.0.2 — 2026-08-07
### Changed
- Upgraded the `baikai` dependency to the `0.5` series (`>=0.5 && <0.6`).
Dependency bounds only — no changes to the exported API.
## 0.2.0.1 - 2026-07-20
### Changed
- Upgraded the `baikai` dependency to the `0.4` series (`>=0.4 && <0.5`).
Dependency bounds only — no changes to the exported API.
## 0.2.0.0 - 2026-07-05
### Added
- `minSupportedFormatVersion` documents the oldest trace file format accepted by
this build.
### Changed
- **BREAKING** `replayIndex` now returns `Either Text (Map CacheKey Value)` and
fails closed when a trace records conflicting responses for the same cache key.
- Trace span mutation now fails loudly on unsupported concurrent stack use instead
of silently corrupting the tree; `runTrace`/`tracedLLM` remain sequential.
- Retry spans now count traced retry attempts, trace rendering handles multiple
roots, and child ordering is stable by numeric `span-N` ids.
- Refreshed internal `shikumi` and `shikumi-cache` bounds for the current package
set.
## 0.1.1.0 - 2026-06-28
### Changed
- Refreshed internal `shikumi` and `shikumi-cache` bounds for the current package
set.
- Updated tracing and replay internals to use label-based record access.
## 0.1.0.1 - 2026-06-21
### Changed
- Constrained the baikai dependency to the 0.2 series and refreshed internal shikumi and shikumi-cache bounds.
## 0.1.0.0 - 2026-06-13
### Added
- Initial Hackage release of hierarchical tracing and deterministic replay for shikumi.
- Trace spans, trace trees, program-node tracing, replay, trace storage, feedback logs, rendering, and a trace demo executable.