v1.0.0.beta1
Pre-release
Pre-release
- [Fix] Add
initializetoStatus::Contextthat defines all instance variables upfront in a consistent order, giving every instance the same Ruby object shape and eliminating the:performanceshape-variation warning. - [Enhancement] Add
Warning.processblock to the test helper to turn Ruby warnings originating from the project code into test failures. - [Enhancement] Enable all opt-in Ruby warning categories in the test helper via
Warning.categories(available since Ruby 3.4), so any new categories added in future Ruby versions are automatically enabled without code changes. - [Enhancement] Replace sequential per-partition
query_watermark_offsetsconsumer calls inCounters#estimate_errors_countwith a single targetedtopic_infometadata call followed by a batchread_watermark_offsetsadmin call. This eliminates the consumer connection overhead and reduces Kafka roundtrips from up to N+1 sequential calls to 3 regardless of partition count. - [Enhancement] Allow for zero value in number of workers to support dynamic scaling of Karafka workers.
- [Enhancement] Align concurrency tracking with dynamic thread pool scaling. Workers count is now read from
Karafka::Server.workers.sizeinstead of the staticKarafka::App.config.concurrency, so the Web UI accurately reflects runtime thread pool changes. - [Enhancement] Track
poll_interval(max.poll.interval.ms) per subscription group alongsidepoll_ageto help users monitor how close they are to the polling timeout limit. Consumer schema version bumped to 1.7.0. - [Enhancement] Replace token-based CSRF protection (
route_csrfplugin) with header-based protection usingSec-Fetch-Siteheader (sec_fetch_site_csrfplugin). This eliminates the need for CSRF tokens by leveraging browser-enforced headers that cannot be forged from cross-origin requests. Modern browsers automatically include this header, providing simpler and more robust CSRF protection. - [Enhancement] Include a short spec file hash in generated test topic names for traceability. Topic names now follow the
it-{hash}-{uuid}format, making it easy to identify which test file created a given topic in Kafka logs. - [Change] Require Roda
>= 3.100(previously~> 3.69). - [Fix] Accept (and ignore) a block in
Karafka::Web::Producer#__getobj__to silence Ruby 3.4'sstrict_unused_blockwarning emitted viaSimpleDelegator#method_missingon every delegated producer call. - [Fix] Remove
cgias no longer needed. - [Fix] Exclude
test/directory from gem releases to reduce package size. - [Fix] Update LinksValidator regexes to match the new
it-{hash}-{uuid}test topic naming format, fixing test-order dependent failures in explorer controller specs. - [Fix] Fix alerts formatting for the distribution view.
- [Fix] Fix 500 error in the Pro Explorer when a message payload parses as valid JSON but contains strings with invalid UTF-8 byte sequences.
JSON.pretty_generatewould raiseJSON::GeneratorErroroutside of any error boundary and propagate as an unhandled 500. The pretty-print step is now wrapped in a dedicated@safe_pretty_payloadSafeRunner; on failure the raw bytes are displayed alongside a deserialization warning. - [Fix] Fix 500 error in the Pro Explorer message JSON export when a payload deserializes correctly but cannot be serialized back to JSON (for example when it contains strings with invalid UTF-8 byte sequences). The export endpoint now responds with 404 in such cases and the export action button is no longer rendered for such messages.