Skip to content

v0.3.3.pre.2

Pre-release
Pre-release

Choose a tag to compare

@railspulse-old railspulse-old released this 31 May 02:46

Release v0.3.3.pre.2

New Features

  • Response size on request detail pages — The request show page and index table now display response body size in a human-readable format (e.g. 12.4 KB). Previously this field was captured but not surfaced in the UI.
  • JavaScript test suite — Stimulus controllers now have a full unit test suite powered by Vitest + JSDOM, covering 12 controllers including chart_switcher, collapsible, time_range, custom_range, and more.
  • Migration pathway tests — A new upgrade_migration_test.rb validates that both fresh installs and upgrades from v0.2.7 and v0.3.1 produce a correct, consistent schema, preventing silent migration regressions.

Improvements

  • Index query refactor — Routes, Queries, and Jobs index classes now share a common Tables::Base superclass, eliminating significant duplication in tag filtering, sort handling, and aggregation logic.
  • Data saving reliability — Simplified how Route, Operation, and JobRun records are persisted, reducing unnecessary complexity in the tracker and job run collector paths.
  • Dependency updates — Bumped gem dependencies across Rails 7.2, 8.0, and 8.1 gemfile lockfiles; updated npm packages including ESLint configuration.

Bug Fixes

  • Bulk insert failures — Fixed broken bulk inserts caused by cache_hit being non-nullable on the operations table. Added a migration to make the column nullable (cache hit is unknown for non-cacheable requests, not false).
  • Standalone server crashes — Fixed a NoMethodError when running Rails Pulse as a standalone server against a Rails 8.1 app. Rails 8.1 added session.enabled? to ActionDispatch::Flash, but Rack's SessionHash didn't implement it; a compatibility shim now bridges the gap.
  • Missing upgrade migration — The create_rails_pulse_job_runs incremental migration was absent from db/rails_pulse_migrate/, meaning users running rails generate rails_pulse:upgrade would not get the job runs table. Now included.

Breaking Changes

  • None

Upgrade Notes

  • Run rails generate rails_pulse:upgrade after updating to apply two new incremental migrations:
    • 20260517000001_create_rails_pulse_job_runs — creates the job runs table if it doesn't exist
    • 20260528000001_make_cache_hit_on_operations_nullable — makes cache_hit nullable on rails_pulse_operations (required to fix bulk insert failures)