v0.13.0
·
128 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
New features:
- LogEntry::is_truncated(&Field) answers whether the logger's write buffer cut
short the text a field span covers, so a consumer rewriting spans can withhold
a partial value instead of scrubbing it blind. LogEntry::cut_texts names the
entry's texts that ended at a cut. - Every slot of a CHANNEL_DATA dump now carries a span for its value. A name
outside the identity vocabulary spans as FieldKind::VariableValue, so an
identity-carrying slot the mapping does not name no longer reaches a consumer
unlocated; the consumer decides sensitivity from the name. - The value a dialplan Regex condition tested is spanned, and RegexCondition
with the slicer that cuts it is public API. - Three core narrations that never classified as a channel variable now do:
EXPORTING, "setting variable", and set()'s PUSH/UNSHIFT verbs.
Bug fixes:
- An SDP body whose marker sits on a continuation line becomes a Block::Sdp
rather than untyped text — the shape sofia logs for outbound invites, and the
majority of Local SDP occurrences in production logs. A body carrying no
marker opens on its version line. - A CHANNEL_DATA value the logger cut no longer swallows the variable that
follows it on the collided line; the value closes at the cut with a
TruncatedVariable warning. - A bracketed value ends at its matching bracket rather than the first one, so a
value containing brackets is no longer cut short. SET GLOBAL no longer yields
a channel span.
Breaking:
- LogEntry gained the cut_texts field, so literal construction needs updating.
LogEntry::synthetic plus struct-update syntax keeps compiling.