# Changelog
## Unreleased
## 0.1.2.0 — 2026-09-08
- Add the missing `bytestring` upper bound (`>=0.11 && <0.13`), matching the
rest of the package set. `cabal check` reported it under
`missing-upper-bounds`; the dependency was added this cycle without one.
- Raise the internal `shikumi` bound to `^>=0.4.0.0` and `shikumi-trace` to `^>=0.3.0.0`, and give the test suite's bare `shikumi`, `shikumi-cache`, `shikumi-eval`, and `shikumi-testing` dependencies explicit PVP bounds.
- Export separately scoped transport attempts and aggregate counters, including error status and canonical billing quality. Use observed-model evidence for gen_ai.response.model. Preserve existing exporter lifecycle and structural traversal.
## 0.1.1.1 — 2026-08-29
### Changed
- Every library dependency now carries a PVP upper bound: `aeson`, `containers`,
`generic-lens`, `scientific`, `time`, `unordered-containers`. `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.1.1.0 - 2026-07-05
### Changed
- OpenTelemetry export now marks incomplete spans, exports error status for
recorded provider failures, reads the response model from recorded response
JSON, and avoids revisiting cyclic span references.
- Live export now flushes and shuts down its tracer provider with bracketed
cleanup even when export throws.
- Refreshed the internal `shikumi-trace` bound for the `0.2` series.
## 0.1.0.0 - 2026-06-13
### Added
- Initial Hackage release of OpenTelemetry export for shikumi trace trees.
- Batch and live export helpers that map shikumi spans to OpenTelemetry spans with GenAI-oriented attributes.