Releases: PostHog/posthog-ruby
Release list
posthog-ruby-v3.21.0
Minor Changes
- 19cd137: feat: emit minimal
$feature_flag_calledevents when the server enables theminimal_flag_called_eventsgate and the evaluated flag has no linked experiment. Minimal events keep a strict allowlist of flag-evaluation properties and strip everything else (context properties,$feature/<key>, payloads, system metadata). The gate is read from the top-levelminimalFlagCalledEventsfield of the v2/flagsresponse and the top-levelminimal_flag_called_eventskey of the local evaluation definitions payload; when either signal is missing, the full event is sent unchanged.
posthog-ruby-v3.20.0
Minor Changes
- 4773da3: Add a
feature_flags_async_loadclient option that keeps feature flag definition fetches off the calling thread. With it enabled the constructor no longer blocks on the initial/flags/definitionsrequest; the poller fetches immediately on boot (the timer's first tick) and, if that fails (e.g. PostHog unreachable), keeps retrying on its regular polling interval instead of re-fetching inline on evaluation calls. Until the first load succeeds, local evaluation treats definitions as absent. Also addsClient#feature_flags_loaded?so callers can distinguish "flag is off or unknown" from "definitions not loaded yet". Defaults to off; the existing synchronous behavior is unchanged.
Patch Changes
- 26142f5: Honor the documented 30s default for
feature_flags_polling_interval. The resolved default was computed but never passed to the polling timer, so when the option was unset the effective interval was concurrent-ruby's 60s TimerTask default. Definitions now poll every 30s by default as documented; setfeature_flags_polling_interval: 60to keep the previous effective cadence.
posthog-ruby-v3.19.0
Minor Changes
- 15fa092: feat: add a
$feature_flag_has_experimentboolean property to$feature_flag_calledevents when the server explicitly reports thehas_experimentfield; the property is omitted when the server does not report it (older deployments)
posthog-rails-v3.17.1
Patch Changes
- 5bdf777: fix: also send the request user agent as $raw_user_agent, the standardized property PostHog's server-side classification reads
posthog-ruby-v3.18.0
Minor Changes
-
5c21f66: Add
secret_keyconfig option and deprecatepersonal_api_key.secret_keyis the new canonical credential for local feature flag evaluation and remote config. It accepts either a Personal API Key (phx_...) or a Project Secret API Key (phs_...).personal_api_keystill works as a deprecated alias; when both are supplied,secret_keywins.
posthog-rails-v3.17.0
Minor Changes
-
5c21f66: Add
secret_keyconfig option and deprecatepersonal_api_key.secret_keyis the new canonical credential for local feature flag evaluation and remote config. It accepts either a Personal API Key (phx_...) or a Project Secret API Key (phs_...).personal_api_keystill works as a deprecated alias; when both are supplied,secret_keywins.
posthog-rails-v3.16.1
Patch Changes
- 737acbc: Avoid double-capturing ActiveJob exceptions through the Rails error subscriber.
posthog-ruby-v3.17.0
Minor Changes
- 14d85f7: Use stable project-relative stack frame
filenamevalues (relative toRails.rootorDir.pwd, falling back to the basename outside the project) while preserving the raw path inabs_path; dependency and stdlib frames are detected from RubyGems/stdlib install roots, computed once per stacktrace, soin_appno longer depends on deploy-path substrings.
posthog-ruby-v3.16.0
Minor Changes
-
814c495: Improve error tracking capture signals:
capture_exceptionnow walks the fullexception.causechain (outermost-first, cycle-safe, capped at 50) instead of reporting only the outermost exception; chained causes are tagged with achainedmechanism and parent linkage.- Exception mechanisms now reflect the capture source: manual captures stay
generic/handled: true, while the Rails middleware,Rails.errorsubscriber, and ActiveJob integrations tag captures asrails/rails_error_reporter/active_jobwith the correcthandledflag.capture_exceptionaccepts amechanism:keyword.
posthog-rails-v3.16.0
Minor Changes
-
814c495: Improve error tracking capture signals:
capture_exceptionnow walks the fullexception.causechain (outermost-first, cycle-safe, capped at 50) instead of reporting only the outermost exception; chained causes are tagged with achainedmechanism and parent linkage.- Exception mechanisms now reflect the capture source: manual captures stay
generic/handled: true, while the Rails middleware,Rails.errorsubscriber, and ActiveJob integrations tag captures asrails/rails_error_reporter/active_jobwith the correcthandledflag.capture_exceptionaccepts amechanism:keyword.