Skip to content

Releases: PostHog/posthog-ruby

posthog-ruby-v3.21.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 17:07
Immutable release. Only release title and notes can be modified.
f633265

Minor Changes

  • 19cd137: feat: emit minimal $feature_flag_called events when the server enables the minimal_flag_called_events gate 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-level minimalFlagCalledEvents field of the v2 /flags response and the top-level minimal_flag_called_events key of the local evaluation definitions payload; when either signal is missing, the full event is sent unchanged.

posthog-ruby-v3.20.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 06:01
Immutable release. Only release title and notes can be modified.
3877667

Minor Changes

  • 4773da3: Add a feature_flags_async_load client option that keeps feature flag definition fetches off the calling thread. With it enabled the constructor no longer blocks on the initial /flags/definitions request; 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 adds Client#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; set feature_flags_polling_interval: 60 to keep the previous effective cadence.

posthog-ruby-v3.19.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 23:42
Immutable release. Only release title and notes can be modified.
02f7ce0

Minor Changes

  • 15fa092: feat: add a $feature_flag_has_experiment boolean property to $feature_flag_called events when the server explicitly reports the has_experiment field; the property is omitted when the server does not report it (older deployments)

posthog-rails-v3.17.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 22:02
Immutable release. Only release title and notes can be modified.
104aef3

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

Choose a tag to compare

@github-actions github-actions released this 07 Jul 14:38
Immutable release. Only release title and notes can be modified.
e3a604b

Minor Changes

  • 5c21f66: Add secret_key config option and deprecate personal_api_key.

    secret_key is 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_key still works as a deprecated alias; when both are supplied, secret_key wins.

posthog-rails-v3.17.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 14:39
Immutable release. Only release title and notes can be modified.
e3a604b

Minor Changes

  • 5c21f66: Add secret_key config option and deprecate personal_api_key.

    secret_key is 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_key still works as a deprecated alias; when both are supplied, secret_key wins.

posthog-rails-v3.16.1

Choose a tag to compare

@github-actions github-actions released this 06 Jul 07:20
Immutable release. Only release title and notes can be modified.
f0e231c

Patch Changes

  • 737acbc: Avoid double-capturing ActiveJob exceptions through the Rails error subscriber.

posthog-ruby-v3.17.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 12:12
Immutable release. Only release title and notes can be modified.
3a090d7

Minor Changes

  • 14d85f7: Use stable project-relative stack frame filename values (relative to Rails.root or Dir.pwd, falling back to the basename outside the project) while preserving the raw path in abs_path; dependency and stdlib frames are detected from RubyGems/stdlib install roots, computed once per stacktrace, so in_app no longer depends on deploy-path substrings.

posthog-ruby-v3.16.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 12:09
Immutable release. Only release title and notes can be modified.
8f2611e

Minor Changes

  • 814c495: Improve error tracking capture signals:

    • capture_exception now walks the full exception.cause chain (outermost-first, cycle-safe, capped at 50) instead of reporting only the outermost exception; chained causes are tagged with a chained mechanism and parent linkage.
    • Exception mechanisms now reflect the capture source: manual captures stay generic/handled: true, while the Rails middleware, Rails.error subscriber, and ActiveJob integrations tag captures as rails/rails_error_reporter/active_job with the correct handled flag. capture_exception accepts a mechanism: keyword.

posthog-rails-v3.16.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 12:10
Immutable release. Only release title and notes can be modified.
8f2611e

Minor Changes

  • 814c495: Improve error tracking capture signals:

    • capture_exception now walks the full exception.cause chain (outermost-first, cycle-safe, capped at 50) instead of reporting only the outermost exception; chained causes are tagged with a chained mechanism and parent linkage.
    • Exception mechanisms now reflect the capture source: manual captures stay generic/handled: true, while the Rails middleware, Rails.error subscriber, and ActiveJob integrations tag captures as rails/rails_error_reporter/active_job with the correct handled flag. capture_exception accepts a mechanism: keyword.