# Changelog
## 0.2.9
### Added
- Four telemetry events covering flow lifecycle and window dispatch:
| Event | Measurements | Metadata |
|---|---|---|
| `[swirl, flow, start]` | `count => 1` | `flow_id, module` |
| `[swirl, flow, stop]` | `count => 1` | `flow_id, module` |
| `[swirl, mapper, window]` | `row_count` | `flow_id, period` |
| `[swirl, reducer, window]` | `row_count` | `flow_id, period` |
The window events fire per mapper / reducer flush — natural per-batch
granularity (not per-event, which would be too high-frequency).
Handlers attach via `telemetry:attach/4`.
- `telemetry` (1.4.2) is now a direct dependency.
No source or API changes beyond the instrumentation; behaviour
unchanged.
## 0.2.8
Pure infrastructure modernization. No source or API changes.
### Changed
- Switched `uuid` dep from a git ref to the `uuid_erl` hex package
(`uuid_erl 2.0.7` — okeuday's Erlang UUID library is published to
hex under a renamed slot; the OTP app name stays `uuid`). The
previous git ref tracked an unpinned `master` branch, which was
unsafe for reproducible builds. The hex move also unblocks
publishing swirl itself to hex.
- `fprofx` test dep moved from `ransomr/fprofx` to `lpgauth/fprofx`
(`otp_19` branch), matching the rest of the ecosystem.
- CI matrix bumped from OTP 24-26 to OTP 25-28.
- `actions/checkout` upgraded to v5.
- Documentation migrated from `edown` to `rebar3_ex_doc`.
- `vsn` in `swirl.app.src` bumped 0.2.5 → 0.2.8 (was lagging behind
the git tags).
### Removed
- `edoc` Makefile target.
(Tags 0.2.6 and 0.2.7 exist in git but `swirl.app.src`'s `vsn` field
had been stuck at `0.2.5` through both of them. 0.2.8 brings the
app metadata in sync with the tag.)