Repository navigation
v0.16.0
·
9 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
Breaking changes:
LogLeveland its parse error are re-exports offreeswitch-typesrather than local types. Severity followsswitch_log_level_tnumbering, so the less severe level compares greater and alevel >= minfilter has to becomelevel <= min. The variant isErrorrather thanErr, aDisablevariant exists that is not a severity,FromStris case sensitive, and the freelevel_from_bracketedreplacesLogLevel::from_bracketed.- A channel variable's name is a
VarName: onMessageKind::Variable, on a CHANNEL_DATA block's variable keys, and on the warnings that name a cut variable. It holds the bare name,Displayrenders thevariable_spelling the log uses, and it implements no comparison againststr, so a consumer comparing with a prefixed literal fails to compile instead of silently matching nothing. MessageKind::ChannelLifecyclecarries a typedLifecycleEventbeside its raw detail.- An originate success line classifies as
MessageKind::OriginateSuccess, carrying the channel name and a validated peer UUID, where it previously arrived as a channel lifecycle message.fslog --categoryselects it asoriginate-success. MessageKind::Execute's depth isOption<u32>: a missing or unreadable[depth=N]no longer reads as zero.ParseStats::unaccounted_linesreturns a signed difference, so an over-count is visible instead of clamped to zero.- Removed:
FieldKind::SipUri,UnclassifiedReason::UnknownMessageFormat,UnclassifiedReason::TruncatedField, and theis_peer_uuid_varexport.
New features:
stamp_lower_boundandstamp_upper_boundpad a partial date into the rotation stamp form, which every consumer windowing a log had been re-deriving.- The
fixturesandcorpuscargo features gate the production-log tests. Without a corpus they compile to nothing rather than skipping silently, and the whole-corpus sweep runs before a release rather than on every commit.
Bug fixes:
- A peer's back-link survives another leg relinking through the same key, and removing a session no longer leaves a reverse pointer that a later channel could follow into a resurrected empty session.
- A conference move that keeps its instance re-seats on the new name instead of leaving the registry keyed on the old one.
- One validator now reads the log header grammar, and a record starts only where the level field closes, so a write cut inside that field no longer opens an entry.
- An originate peer UUID the write buffer cut is reported as unreadable instead of being indistinguishable from a build that omits it.
- fslog: a log file it cannot open fails the search instead of reporting no matches and exiting zero; a mid-file read error ends the command and names the file; errors print their whole source chain; a corrupt timestamp no longer panics the printer; invalid UTF-8 is counted once per file instead of warned per line;
monitor --dumpreads the configuration the TUI reads; one rule resolves a FILE argument for read, tail and monitor;--levelsays which way it was wrong and rejectsdisable.
Build:
- Requires
freeswitch-types1.5. - The release image is built on bookworm, raising the binary's glibc floor to 2.34. A Debian 11 target can no longer install the package.
Refactoring:
- The parser's internals were split and deduplicated throughout, including the collision detector and the stream's own iterator, with parser output verified byte-identical against the fixture corpus.