Skip to content

v0.16.4

@rodloboz rodloboz tagged this 10 Mar 18:23
* Fix UUID binary JSON encoding crash in Result struct

Remove @derive {Lotus.JSON.encoder()} from Result that caused
{:invalid_byte, 255} crashes when results contained raw UUID binaries
from PostgreSQL. Added Result.to_encodable/1 for explicit JSON-safe
serialization. Regression introduced in v0.16.0.

Extract Lotus.Normalizer protocol from Lotus.Export.Normalizer into
a top-level module for general-purpose value normalization. Add
middleware guide and UUID/Result test coverage.

Closes #149

* Add export tests for raw database types (UUID, Decimal, DateTime)

Cover UUID binaries, Decimal values, and mixed raw database types
in CSV, JSON, and JSONL export paths. Previously only primitives
were tested.

* Release v0.16.4

* Address code review feedback on uuid-binary-json-encoding PR

- Improve UUID binary detection comment in Normalizer to be db-agnostic
- Recursively normalize List elements instead of returning raw list
- Recursively normalize Map values to catch nested non-JSON-safe types
- Fix mask/1 guard to use String.length consistently (was byte_size)
- Add security disclaimer to TenantMiddleware SQL inspection example
- Clarify Lotus.Export.Normalizer removal in CHANGELOG
Assets 2
Loading