Skip to content

2.79.0 Release - #587

Merged
jakewski merged 14 commits into
masterfrom
2.79.0-rc
May 14, 2026
Merged

2.79.0 Release#587
jakewski merged 14 commits into
masterfrom
2.79.0-rc

Conversation

@jakewski

Copy link
Copy Markdown
Collaborator
  • Adds support feature flag variant persistence: variants can now be cached in IndexedDB with a configurable TTL so flag values stay stable across page loads and remain available before the next fetch completes.
  • Enables pageview events for free during session recording when record_heatmap_data is enabled, so heatmaps get accompanying pageview context without separately enabling pageview autocapture.
  • Event-triggered session recordings now wait for remote settings to finish loading (or fail) before deciding whether to start, preventing missed recordings when a triggering event fires during init.
  • Hardens all window.localStorage and window.sessionStorage access with exhaustive try/catch guards, so SDK initialization no longer throws in environments where storage access raises (e.g., strict privacy modes, sandboxed iframes).

jakewski and others added 13 commits May 8, 2026 17:44
…419)

* fix local storage guard

* exhaustive local storage checks

* add test and local storage getter

* fix sr and lint

* fail when throws

---------

Co-authored-by: Jakub Grzegorzewski <25271819+jakewski@users.noreply.github.com>
* Wait for remote settings before determining to record

* Update record on event

* Clean up

* fix test

* Get tests running

* Add more checks

* Throw error and simplify wait logic

* Make comments a bit concise

* use flag to know when remote settings failed

* Address comments

---------

Co-authored-by: John La <10409759+lajohn4747@users.noreply.github.com>
* Add pageview event to be free under heatmaps

* Move pageview under heatmaps for free when recording

* Fix page view tracking

* revert old logic

* Address comments

* Fix test

* Fix test

* Simplify logic

---------

Co-authored-by: John La <10409759+lajohn4747@users.noreply.github.com>
Co-authored-by: Jakub Grzegorzewski <25271819+jakewski@users.noreply.github.com>
* Add a check for the promise

* Move autocapture before the remote settings to avoid tracks from ebing called before

* Fix order

* Add lib_base_path to autocapture tests to use local recorder bundle

Autocapture tests were failing with version 2.79.0-rc1 because they
were trying to load the recorder bundle from the production CDN
(https://cdn.mxpnl.com/libs/) which doesn't have unreleased versions.

This adds lib_base_path: './static/build/async-modules/' to all
mixpanel.init() calls in the autocapture test suite to load the
locally built recorder bundle instead, matching what the recorder
tests already do.

---------

Co-authored-by: John La <10409759+lajohn4747@users.noreply.github.com>
* Implement flags variant persistence

* integration test bugfix

* fixes and updates to tests

* integration test debugging

* unskip

* remove activation tracking

* first time removals + test updates + diagnostics

* Update timeouts

* adding log and fixing idb test util

* Updates and bug fixes

* es5 fix

* fix for minimization

* cleanup

* Updates following convo with tyler

* update and test fixes

* naming updates + handling edge case

* true up behavior with mobile

* clear flag from tracked flags optimization list if updated

* cleanup

* Addressing PR comments

* prefix ttl with persistence in api

* remove trailing ws

* add a fallback source guard

* Address PR comments

* Add a one line no-op guard on reset

---------

Co-authored-by: Jakub Grzegorzewski <jakewski@gmail.com>
Comment thread CHANGELOG.md Outdated
Co-authored-by: tgddddd <ted@mixpanel.com>
@jakewski
jakewski merged commit 218158e into master May 14, 2026
32 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants