plugins/logging/v1.7.0
maximhq/bifrostplugins/logging/v1.7.0Aug 26, 2026by akshaydeo
AI Summary
A major logging plugin release introducing comprehensive batch accounting, cost breakdowns, overhead latency tracking, and video edit logging.
Key Highlights
- Comprehensive batch accounting system with lifecycle persistence and settlement.
- Detailed cost breakdowns (input/output/additional) persisted on logs.
- Bifrost overhead latency tracking with per-span self-time decomposition.
- Video edit requests are now logged with their input.
- Performance improvements using sonic JSON encoding.
New Features
- Batch accounting
- Cost breakdowns
- Overhead latency tracking
- Video edit logging
- JSON encoding optimization
Full Release Notes
## Plugin Release: logging v1.7.0 - feat: batch accounting: `recordBatchJobLifecycle` persists batch state on create and retrieve, `accountBatchResults` settles costs inline on the `/results` path under a 30-second bound, `StartBatchAccountingSweeper` re-drives jobs that timed out with a per-runner ownership identity, `EmitBatchAggregateLog` writes the aggregate cost entry with the creating request's identity and a `bifrost/<version>` user agent, `calculateBatchAggregateCost` reprices `Model="mixed"` rows per model breakdown during cost recalculation (foreground and background, via the shared `persistRecalcOutcomes`), and `batch_debug` is included in list queries; `Init` takes a `batchStore` (nil disables batch accounting) (thanks [@SahilChoudhary22](https://github.com/SahilChoudhary22)!) (#5296, #6121, #6474, #6505) - feat: input/output/additional cost split persisted on every log and surfaced as `cost_breakdown` in the log detail API, with cached-read, reasoning, guardrail, MCP and semantic cache detail; fallback billing paths, speech, transcription and OCR usages populate the split, and legacy total-only rows are attributed to input cost (#6511) - feat: Bifrost overhead latency: `upstream_latency` and `overhead_latency` forwarded from `PostLLMHook` and backfilled from the root span's authoritative attributes in `Inject`, stamped only on the terminal entry per trace; `computeOverheadBreakdown` walks the span tree, computes self-time per span, groups overhead-side spans into buckets (serialization, middleware, plugins, queue wait, key selection, convertor, networking, client delivery, scheduling, worker hand-off, provider-internal) and persists them to `overhead_breakdown`, with streaming traces folding parse, convert, backpressure, transport CPU and client-write time into their own buckets and using the measured sum as overhead; `ConsumesOverheadSpans` returns true so the plugin keeps receiving breakdown spans that other connectors no longer see (#5533, #6388, #6389, #6433, #6470, #6495) - feat: `service_tier` from streamed Anthropic responses flows through `convertToProcessedStreamResponse` into the log entry so repricing uses the served tier (#6236) - feat: video edit requests are logged with their input (#6270) - perf: identity and governance context reads are deferred past the non-final-chunk gate in `PostLLMHook`, and JSON encoding in HTTP helpers uses sonic (#5957, #6268) - feat: add a no-op `HTTPTransportPreAuthHook` for the new pre-authentication transport phase (#6375) - chore: upgraded core to v1.8.0 and framework to v1.6.0 ### Installation ```bash # Update your go.mod to use the new plugin version go get github.com/maximhq/bifrost/plugins/logging@v1.7.0 ``` --- _This release was automatically created from version file: `plugins/logging/version`_