Velocity v2.2.1
Fixes and leaner logging from the post-v2.2.0 review round. No public API changes.
Fixes
- Malformed UTF-8 in JSON output is replaced with U+FFFD escapes instead of producing invalid JSON; valid Unicode passes through untouched.
- Millisecond timings in inline indicators no longer overflow into nanoseconds.
- The count, timing and state-transition indicator options now properly remove promoted fields from the pretty tree.
- Pooled entries clear stale field references through the whole slice on reset, so reused entries can't observe old pointers.
Leaner logging
- Floats format straight into concrete buffers, no temporaries.
- JSON buffers up to 32 KiB are reused; bigger ones aren't hoarded by the pool, and oversized ring batches are released instead of pinned at peak size.
- Snapshot copies are skipped for subscribers whose queue is already full.
- slogbridge prepends fields without a temporary slice, and
Detailedchildren share the parent's immutable base fields. - Status caller line numbers go through the stack buffer.
Tooling
- Gate tools are pinned and
make readyis read-only, with formatter failures reported. Dev tooling needs a newer toolchain than the library's Go 1.24 minimum; the library itself still supports 1.24.