Repository navigation
Release v1.2.0
Description
A minor release that makes local sinks fast again and plugins load only when needed. The local object_store sink and file part files sync in groups about once a second instead of per object, with the same durability. Fixed are a sled queue that stalled, lost lines on file subscribe with delete: true, and QueueFull failures on Kafka delayed_ack. App routes from config files and the UI now default to concurrency: 4; see Changed below. Library users need no change when upgrading from 1.1.0.
- New features
fsyncandfsync_interval_mson the localobject_storesink.periodic(the default) syncs objects in groups everyfsync_interval_ms(default 1000) and commits the source after that sync.batchsyncs each object before its ack (the 1.1.0 behaviour),offnever syncs. Remote stores ignore both.Handler::observefor handlers that only watch messages. ReturningSome(Passthrough::Forward)orSome(Passthrough::Ack)publishes or acks the batch unchanged, without callinghandleor cloning messages.
- Changed
- Plugins load only when a route names them. The app no longer loads every installed plugin at start; only
--schema, the UI schema,list,describeand unknown URI schemes scan. - App routes from config files and the UI default to
concurrency: 4andbatch_size: 1024, likecopyand MCP already did. A route that needs source order setsconcurrency: 1. The library defaults are unchanged. concurrency: 1reads the next batch while the current one is sent. Sends stay one at a time in source order.
- Plugins load only when a route names them. The app no longer loads every installed plugin at start; only
- Fixed
- Local
object_storesink slowed down by per-object fsync (1.1.0). Objects are written under a hidden staging name and synced in groups; the source is committed only after that sync. filepart files (name_by: source_position) are synced in groups instead of two syncs per part;fsync: batchkeeps the per-part sync.- A
sledqueue stalled after about a thousand writes while its consumer was busy, which also hungdelete_after_readdrains and in-process publishers. filesubscribewithdelete: truelost and corrupted lines. Acked lines are removed before the commit returns, unread lines are no longer dropped past 100,000 buffered lines, and lines appended while others were unacked are read whole.- Kafka
delayed_ackno longer fails fast inputs withQueueFull, which caused duplicates on retry; it waits for room in the producer queue. - Secrets in a
switch'swhencases are extracted like those incasesanddefault. - A plugin scan no longer reopens libraries it already loaded.
- Local
The full list is in the changelog.
Full Changelog: v1.1.0...v1.2.0