v0.3.3.pre.2
Pre-release
Pre-release
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.rbvalidates 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::Basesuperclass, eliminating significant duplication in tag filtering, sort handling, and aggregation logic. - Data saving reliability — Simplified how
Route,Operation, andJobRunrecords 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_hitbeing non-nullable on theoperationstable. Added a migration to make the column nullable (cache hit is unknown for non-cacheable requests, notfalse). - Standalone server crashes — Fixed a
NoMethodErrorwhen running Rails Pulse as a standalone server against a Rails 8.1 app. Rails 8.1 addedsession.enabled?toActionDispatch::Flash, but Rack'sSessionHashdidn't implement it; a compatibility shim now bridges the gap. - Missing upgrade migration — The
create_rails_pulse_job_runsincremental migration was absent fromdb/rails_pulse_migrate/, meaning users runningrails generate rails_pulse:upgradewould not get the job runs table. Now included.
Breaking Changes
- None
Upgrade Notes
- Run
rails generate rails_pulse:upgradeafter updating to apply two new incremental migrations:20260517000001_create_rails_pulse_job_runs— creates the job runs table if it doesn't exist20260528000001_make_cache_hit_on_operations_nullable— makescache_hitnullable onrails_pulse_operations(required to fix bulk insert failures)