Extends the sweep beyond packages/ to the whole repo (178 files): workflows,
.eslintrc, playground, examples, tooling, root docs. Zero upstream-brand refs and
zero such filenames outside the exemptions.
REVERTS A LICENSING ERROR (from earlier rebrand e43ab1af, not this sweep):
- LICENSE had its copyright holder rewritten to 'Insights'. Restored to the real
holder: 'Copyright 2020 Posthog / Hiberly, Inc.' (+ Mixpanel, Inc.).
- NOTICE credited a non-existent upstream (github.com/getinsights/insights-js).
Restored to the real one: github.com/PostHog/posthog-js.
Apache-2.0 4(c) requires retaining upstream attribution; rewriting a third
party's copyright line falsifies ownership. Both files are now excluded from the
guard and documented as exempt in LLM.md.
Also:
- Deleted junk: AGENTS.md~upstream_main (merge leftover), the now-obsolete
rebrand script; renamed upload-*-s3.ts tooling (still used by cli.ts).
- Removed 42 stale playground/example pnpm-lock.yaml files: they pinned upstream
packages the package.json no longer references. Regenerated on install —
sed-ing a lockfile would corrupt its integrity hashes.
- Guard renamed no-posthog.yml -> brand-guard.yml and now assembles the pattern
at runtime, so no filename or file content carries the string (the previous
guard was swept by its own rule, inverting it to forbid 'insights').
72 KiB
@hanzo/insights-react-native
4.46.7
Patch Changes
- Updated dependencies []:
4.46.6
Patch Changes
- Updated dependencies [
8181354]:
4.46.5
Patch Changes
- Updated dependencies [
3d4a76f]:
4.46.4
Patch Changes
- Updated dependencies []:
4.46.3
Patch Changes
-
#3701
6f0caf4Thanks @turnipdabeets! - Coalesce React Native storage writes into a short window so a burst of captures no longer re-serializes and rewrites the whole storage blob on every event. Login, logout, opt-in/opt-out, event flush, app background, shutdown, and fatal exceptions still persist synchronously. (2026-05-31) -
#3689
501ade6Thanks @ioannisj! - fix(ios): iOS Release builds with Expo config plugin fail when bundle phase uses a /bin/sh prefix, causing insights-xcode.sh to receive /bin/sh as $1 instead of the react-native-xcode.sh path. The PACKAGER_SOURCEMAP_FILE preservation patch was silently skipped, leading to insights-cli failing with "Failed to load minified map". Fixes #3682. (2026-05-31) -
#3694
d9ad199Thanks @gustavohstrassburger! - fix(react-native): preserve non-string property types (booleans, arrays, numbers, objects) when caching person and group properties for feature flag evaluation. Previously these were force-coerced to strings viaString(value), causing flag conditions using boolean equality or arraycontainsto fail on device while the Insights UI still evaluated correctly. (2026-05-31) -
Updated dependencies [
d9ad199]:
4.46.2
Patch Changes
- #3681
7b84b75Thanks @ablaszkiewicz! - unify captureException in insights core (2026-05-28) - Updated dependencies [
7b84b75]:
4.46.1
Patch Changes
- Updated dependencies []:
4.46.0
Minor Changes
- #3673
778205fThanks @turnipdabeets! - Bump optional peer dependencyinsights-react-native-session-replayfloor to>= 1.6.0. The new minor adds an opt-in path that resolvesinsights-iosthrough Swift Package Manager when consumers set"insights.useSpm": "true"in their app'sios/Podfile.properties.json(withuse_frameworks! :linkage => :dynamic). Default behavior is unchanged: without the property,insights-ioscontinues to resolve through CocoaPods. See the session-replay README for the opt-in details. (2026-05-27)
4.45.16
Patch Changes
- Updated dependencies []:
4.45.15
Patch Changes
- #3665
5568f12Thanks @ioannisj! - Don't autocapture Insights's ownInsightsFetchNetworkError(raised when the device is offline) as a$exception. These connectivity failures are expected and were flooding error tracking with internal SDK noise. Adds anisInsightsFetchNetworkErrortype guard to@insights/coreso SDKs can detect these errors. (2026-05-26) - Updated dependencies [
5568f12]:
4.45.14
Patch Changes
- Updated dependencies [
c806cca]:
4.45.13
Patch Changes
- Updated dependencies [
2e1d5f4]:
4.45.12
Patch Changes
- Updated dependencies []:
4.45.11
Patch Changes
4.45.10
Patch Changes
- Updated dependencies []:
4.45.9
Patch Changes
- Updated dependencies []:
4.45.8
Patch Changes
- #3629
9920e8bThanks @turnipdabeets! - React Native surveys: closing a survey from Q2+ or the Thank You screen no longer flashes the first question during the fade-out. Opening another survey shortly after closing one no longer flashes the previous survey's content for the first frame on iOS — survey content unmounts one frame before the Modal dismisses so the UIKit snapshot the OS recycles is blank. (2026-05-18)
4.45.7
Patch Changes
- Updated dependencies [
594ea11]:
4.45.6
Patch Changes
- Updated dependencies []:
4.45.5
Patch Changes
- Updated dependencies [
4b895bf]:
4.45.4
Patch Changes
- Updated dependencies [
ad60818]:
4.45.3
Patch Changes
- Updated dependencies [
223d925]:
4.45.2
Patch Changes
- Updated dependencies []:
4.45.1
Patch Changes
4.45.0
Minor Changes
- #3552
387ca37Thanks @ioannisj! - Add support for the experimental iOS session replay optionsessionReplayConfig.screenshotModeBackgroundCapture(2026-05-09)
4.44.4
Patch Changes
- Updated dependencies []:
4.44.3
Patch Changes
- Updated dependencies []:
4.44.2
Patch Changes
- #3515
255b273Thanks @marandaneto! - Gate survey translation logs behind SDK debug logging to avoid production console spam. (2026-05-04) - Updated dependencies [
220cd61,255b273]:
4.44.1
Patch Changes
- #3512
8aee3d5Thanks @marandaneto! - Do not crash when the React Native SDK is initialized without an API key; initialize as disabled and log an error instead. Disabled clients now also skip manual reload/flush/survey/log network calls. (2026-05-04) - Updated dependencies [
8aee3d5]:
4.44.0
Minor Changes
-
#3492
cf56753Thanks @lucasheriques! - Add translated survey rendering support in React Native and share survey translation logic through@insights/core. (2026-05-01) -
#3480
04db756Thanks @turnipdabeets! - Add manual log capture API for React Native:insights.captureLog(),insights.logger.{trace,debug,info,warn,error,fatal}(),insights.flushLogs(), and alogsconfig option on the constructor. Records ship to Insights's logs product (/i/v1/logs) in OTLP format, batched on a timer / AppState change / buffer fill, and persisted to a dedicated logs-storage file.Manual capture is unconditional — calling the API ships records, matching the events pipeline's manual
capture()shape. Only blockers:optedOut, missing/emptybody, and missing API key. The wire fieldresponse.logs.captureConsoleLogsis browser-only (it gates the JS SDK'sconsole.*autocapture extension) and is not read by RN. When console autocapture lands on RN as a follow-up, that PR will introduce a local opt-in for the autocapture path specifically; manual capture will remain unconditional. (2026-05-01)
Patch Changes
4.43.13
Patch Changes
- #3498
135d0efThanks @turnipdabeets! - FixSurveyModalignoringappearance.position. The modal previously hard-coded a bottom-center layout regardless of the configured position. It now honors all 9SurveyPositionvalues, mirroring the web SDK semantics:top_*anchors to the top edge,middle_*to the vertical middle, andleft/center/right(no prefix) to the bottom edge. The default remains bottomcenter. (2026-04-29)
4.43.12
Patch Changes
- Updated dependencies []:
4.43.11
Patch Changes
- Updated dependencies []:
4.43.10
Patch Changes
eae9407Thanks @lucasheriques! - Include survey response properties and partial completion state on survey dismissal events. (2026-04-27)
4.43.9
Patch Changes
- Updated dependencies []:
4.43.8
Patch Changes
- #3486
c95999aThanks @ioannisj! - chore: bump insights-react-native-session-replay dependency to 1.5.6 (2026-04-27)
4.43.7
Patch Changes
- #3485
e65331cThanks @marandaneto! - Fix Metro resolution for optional react-native-svg survey icons. (2026-04-27) - Updated dependencies []:
4.43.6
Patch Changes
- #3482
da1acafThanks @marandaneto! - Fall back to text survey icons when react-native-svg is unavailable. (2026-04-27)
4.43.5
Patch Changes
- Updated dependencies [
70508df]:
4.43.4
Patch Changes
- Updated dependencies []:
4.43.3
Patch Changes
- Updated dependencies []:
4.43.2
Patch Changes
- Updated dependencies [
daf028d]:
4.43.1
Patch Changes
- Updated dependencies [
96f19b7]:
4.43.0
Minor Changes
- #3432
1a8b727Thanks @richardsolomou! - feat(react-native): addaddTracingHeadersoption to injectX-INSIGHTS-DISTINCT-IDandX-INSIGHTS-SESSION-IDheaders on outgoingfetchrequests for linking LLM traces and session replays to Insights sessions. (2026-04-23)
Patch Changes
- Updated dependencies [
1a8b727]:
4.42.4
Patch Changes
- Updated dependencies [
922a1c1]:
4.42.3
Patch Changes
- Updated dependencies [
1a0b58d]:
4.42.2
Patch Changes
4.42.1
Patch Changes
4.42.0
Minor Changes
- #3399
1d7e298Thanks @turnipdabeets! - Add version and project to expo react native symbols (2026-04-16)
4.41.2
Patch Changes
- #3388
6d0aae3Thanks @turnipdabeets! - "exp" flag is no longer needed in tooling to upload or clone with hermes when using insights-cli >= 0.7.4 (2026-04-14)
4.41.1
Patch Changes
- Updated dependencies [
c735b08]:
4.41.0
Minor Changes
- #3340
57ee5b2Thanks @dmarticus! - Add device bucketing support to the React Native SDK for stable feature flag assignment across identity changes (2026-04-07)
Patch Changes
- Updated dependencies [
57ee5b2]:
4.40.2
Patch Changes
- #3348
e246d07Thanks @marandaneto! - fix: preserve app lifecycle properties on reset() to prevent duplicate Application Installed events (2026-04-07)
4.40.1
Patch Changes
- #3291
95ad66dThanks @ioannisj! - chore: bump minimum version of insights-react-native-session-replay dependency to 1.5.2 (2026-04-07)
4.40.0
Minor Changes
- #3302
fc5589fThanks @dmarticus! - preserve $set_once semantics in local flag evaluation cache (2026-04-07)
Patch Changes
- Updated dependencies [
fc5589f]:
4.39.4
Patch Changes
- #3332
3727051Thanks @ioannisj! - chore: update insights-react-native-session-replay min version to 1.5.2 (2026-04-03)
4.39.3
Patch Changes
- Updated dependencies [
a01a3d5]:
4.39.2
Patch Changes
- #3309
197eedaThanks @marandaneto! - Extract CLI and sourcemap utilities from @insights/core into @insights/plugin-utils to remove cross-spawn from React Native dependencies (2026-04-01) - Updated dependencies [
197eeda]:
4.39.1
Patch Changes
- #3296
a863914Thanks @marandaneto! - FixcaptureExceptioncrashing withReferenceError: Property 'Event' doesn't exist(2026-03-30) - Updated dependencies [
a863914]:
4.39.0
Minor Changes
-
#3292
4bdfdbcThanks @marandaneto! -captureAppLifecycleEventsis now enabled by default. If you want to disable it, you can setcaptureAppLifecycleEvents: falsein the Insights options:const insights = new Insights('<ph_project_api_key>', { captureAppLifecycleEvents: false, })Or when using the InsightsProvider:
<InsightsProvider apiKey="<ph_project_api_key>" options={{ captureAppLifecycleEvents: false }}> <MyApp /> </InsightsProvider> ``` (2026-03-27)
Patch Changes
- Updated dependencies [
4bdfdbc]:
4.38.0
Minor Changes
- #3287
470907dThanks @marandaneto! - Add $is_emulator property to detect emulator/simulator environments (2026-03-27)
Patch Changes
- Updated dependencies [
8d34289]:
4.37.6
Patch Changes
4.37.5
Patch Changes
- Updated dependencies [
314120a]:
4.37.4
Patch Changes
- Updated dependencies [
9cd2313]:
4.37.3
Patch Changes
4.37.2
Patch Changes
- Updated dependencies [
4009c15]:
4.37.1
Patch Changes
- #3185
5e8d5fcThanks @marandaneto! - fix: export getRemoteConfigBool, getRemoteConfigNumber, and isValidSampleRate from @hanzo/core (2026-03-02) - Updated dependencies [
5e8d5fc]:
4.37.0
Minor Changes
- #3134
eb12d0cThanks @marandaneto! - feat: support session replay sampleRate config (2026-03-02)
4.36.1
Patch Changes
- #3156
6fb72c3Thanks @marandaneto! - fix: expo-file-system detection broken on Expo SDK 54 stable (2026-02-26)
4.36.0
Minor Changes
-
#3010
da31ef8Thanks @ioannisj! - feat: add manual session replay controlNew methods for programmatic control of session recording:
startSessionRecording(resumeCurrent?: boolean)- Start or resume session recording. Passfalseto start a new session.stopSessionRecording()- Stop the current session recording.isSessionReplayActive()- Check if session replay is currently active.
Note: Requires
@hanzo/insights-react-native-session-replayversion 1.3.0 or higher. Users with older plugin versions will see a warning when calling these methods. (2026-02-20)
4.35.1
Patch Changes
- Updated dependencies [
9dbc05e]:
4.35.0
Minor Changes
- #3086
e962f01Thanks @marandaneto! - feat: support remote config for error tracking, session replay capture performance and capture logs (2026-02-17)
Patch Changes
- Updated dependencies [
e962f01]:
4.34.0
Minor Changes
- #3084
e2ac0e8Thanks @ablaszkiewicz! - add error boundary (2026-02-12)
4.33.0
Minor Changes
- #3065
34ee954Thanks @dustinbyrne! - feat: AdduseFeatureFlagResulthook (2026-02-12)
Patch Changes
- #3071
d1d62d4Thanks @dustinbyrne! - fix:InsightsContextis correctly typed (2026-02-12)
4.32.0
Minor Changes
- #3045
0acf16fThanks @dustinbyrne! - feat: AddgetFeatureFlagResultto InsightsCore (2026-02-10)
Patch Changes
- Updated dependencies [
0acf16f]:
4.31.1
Patch Changes
- #3070
eca98acThanks @marandaneto! - fix: export InsightsMaskView (2026-02-10)
4.31.0
Minor Changes
- #2820
d578824Thanks @ordehi! - Add survey response validation for message length (min and max length). Fixes whitespace-only bypass for required questions. Existing surveys work unchanged but now properly reject blank responses. (2026-02-09)
Patch Changes
- Updated dependencies [
d578824]:
4.30.3
Patch Changes
- #3028
e055f9aThanks @marandaneto! - fix: Queue pending feature flags reload instead of dropping requests when a reload is already in flight (2026-02-09) - Updated dependencies [
e055f9a]:
4.30.2
Patch Changes
- Updated dependencies [
8f75dae]:
4.30.1
Patch Changes
- #3031
26775e2Thanks @marandaneto! - fix: prevent duplicate events with transactional storage (async) updates (2026-02-05)
4.30.0
Minor Changes
- #3023
bb62809Thanks @marandaneto! - feat: only capture $set events if the user properties have changed (2026-02-04)
Patch Changes
- Updated dependencies [
bb62809]:
4.29.0
Minor Changes
- #3009
c99e5feThanks @marandaneto! - feat: add setPersonProperties method (2026-02-03)
Patch Changes
- Updated dependencies [
c99e5fe]:
4.28.0
Minor Changes
Patch Changes
- Updated dependencies [
7768010]:
4.27.0
Minor Changes
Patch Changes
- Updated dependencies [
727536c]:
4.26.0
Minor Changes
- #2967
cbe84c1Thanks @adboio! - support auto-submit on selection for survey rating questions (2026-01-29)
Patch Changes
- Updated dependencies [
cbe84c1]:
4.25.0
Minor Changes
- #2983
e925210Thanks @marandaneto! - feat: allow recording masking with a view wrapper and without accessibilitylabel (2026-01-29)
4.24.2
Patch Changes
- Updated dependencies [
8c0c495]:
4.24.1
Patch Changes
- #2971
f51560cThanks @marandaneto! - fix: groups and groupidentify is a no-op if person profiles is set to never (2026-01-27) - Updated dependencies [
f51560c]:
4.24.0
Minor Changes
- #2917
933c763Thanks @marandaneto! - feat: add support for person_profiles react native, core and web-lite (2026-01-23)
Patch Changes
- Updated dependencies [
933c763]:
4.23.0
Minor Changes
- #2882
8a5a3d5Thanks @adboio! - add support for question prefill in popover surveys, add useThumbSurvey hook (2026-01-20)
Patch Changes
- Updated dependencies [
8a5a3d5]:
4.22.0
Minor Changes
-
#2897
b7fa003Thanks @matheus-vb! - Add $feature_flag_error to $feature_flag_called events to track flag evaluation failures (2026-01-20) -
#2931
f0cbc0dThanks @marandaneto! - chore: before_send support for web lite and react native (2026-01-20)
Patch Changes
4.21.0
Minor Changes
-
#2900
23770e9Thanks @dmarticus! - RenamedevaluationEnvironmentstoevaluationContextsfor clearer semantics. The term "contexts" better reflects that this feature is for specifying evaluation contexts (e.g., "web", "mobile", "checkout") rather than deployment environments (e.g., "staging", "production").Deprecated
insights.initoptionevaluationEnvironmentsis now deprecated in favor ofevaluationContexts. The old property will continue to work and will log a deprecation warning. It will be removed in a future major version.
Migration Guide
// Before insights.init('<ph_project_api_key>', { evaluationEnvironments: ['production', 'web', 'checkout'], }) // After insights.init('<ph_project_api_key>', { evaluationContexts: ['production', 'web', 'checkout'], }) ``` (2026-01-19)
Patch Changes
- Updated dependencies [
23770e9]:
4.20.0
Minor Changes
- #2924
298ac60Thanks @ablaszkiewicz! - allow disabling the plugin programmatically (2026-01-19)
4.19.0
Minor Changes
Patch Changes
- Updated dependencies [
d37e570]:
4.18.0
Minor Changes
- #2884
66670adThanks @ablaszkiewicz! - disable injection for react native web platform (2026-01-13)
4.17.3
Patch Changes
- Updated dependencies [
fba9fb2,c1ed63b]:- @hanzo/[email protected]
4.17.2
Patch Changes
4.17.1
Patch Changes
4.17.0
Minor Changes
- #2787
b676b4dThanks @lucasheriques! - feat: allow customizing text colors on web and react native (2025-12-22)
Patch Changes
- #2791
3e533deThanks @adboio! - surveys fix: do not dismiss keyboard on submit button tap (2025-12-22) - Updated dependencies [
b676b4d]:- @hanzo/[email protected]
4.16.2
Patch Changes
- #2769
6b0aabfThanks @marandaneto! - fix: React Native on web should report hardware type as Desktop or Mobile, not Web (2025-12-17) - Updated dependencies [
6b0aabf]:- @hanzo/[email protected]
4.16.1
Patch Changes
- #2763
c9c0e4dThanks @marandaneto! - fix: captureTouches errors with reanimated styles (2025-12-17)
4.16.0
Minor Changes
4.15.0
Minor Changes
Patch Changes
- Updated dependencies [
2603a8d]:- @hanzo/[email protected]
4.14.4
Patch Changes
- #2764
8368cbcThanks @marandaneto! - fix: insights-cli finds the correct path on android gradle plugin (2025-12-16)
4.14.3
Patch Changes
- #2697
0c3bd5eThanks @robbie-c! - Support getting locale and timezone from expo-localization >= 14 (2025-12-05)
4.14.2
Patch Changes
-
#2690
e9c00fdThanks @robbie-c! - Related to https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182We didn't include any of the vulnerable deps in any of our packages, however we did have them as dev / test / example project dependencies.
There was no way that any of these vulnerable packages were included in any of our published packages.
We've now patched out those dependencies.
Out of an abundance of caution, let's create a new release of all of our packages. (2025-12-04)
-
Updated dependencies [
e9c00fd]:- @hanzo/[email protected]
4.14.1
Patch Changes
- Updated dependencies [
e1617d9]:- @hanzo/[email protected]
4.14.0
Minor Changes
- #2613
81781baThanks @marandaneto! - chore: expo plugin for react native error tracking. (2025-11-24)
4.13.0
Minor Changes
- #2619
86dab38Thanks @hpouillot! - package deprecation (2025-11-24)
Patch Changes
- Updated dependencies [
86dab38]:- @hanzo/[email protected]
4.12.5
Patch Changes
- #2618
3eed1a4Thanks @marandaneto! - last version was compromised (2025-11-24) - Updated dependencies [
3eed1a4]:- @hanzo/[email protected]
4.12.4
Patch Changes
- #2608
bef494eThanks @ioannisj! - fix: latest release on insights-cli lookup when installed via npm for iOS source map uploads (2025-11-20)
4.12.3
Patch Changes
- Updated dependencies [
83f5d07]:- @hanzo/[email protected]
4.12.2
Patch Changes
- Updated dependencies [
c242702]:- @hanzo/[email protected]
4.12.1
Patch Changes
- #2575
8acd88fThanks @hpouillot! - fix frame platform property for $exception events (2025-11-19) - Updated dependencies [
8acd88f]:- @hanzo/[email protected]
4.12.0
Minor Changes
- #2484
d143cc4Thanks @marandaneto! - chore: add hermes symbolication support for react native and error tracking
4.11.0
Minor Changes
-
#2564
ee01b17Thanks @dustinbyrne! - feat: Properties sent viaidentifyandgroupare cached for flags calls -
#2564
ee01b17Thanks @dustinbyrne! - feat:setDefaultPersonPropertiesconfig option (default true) automatically includes common device and app properties in feature flag evaluation.
4.10.8
Patch Changes
- Updated dependencies [
87f9604]:- @hanzo/[email protected]
4.10.7
Patch Changes
-
#2541
b3a62d0Thanks @marandaneto! - chore: deprecate navigationRef autocapture -
Updated dependencies [
d8d98c9]:- @hanzo/[email protected]
4.10.6
Patch Changes
- Updated dependencies [
068d55e]:- @hanzo/[email protected]
4.10.5
Patch Changes
- Updated dependencies [
751b440]:- @hanzo/[email protected]
4.10.4
Patch Changes
- #2493
7ec7be5Thanks @ordehi! - Bug Fixes:- Fixed surveys with URL or CSS selector targeting incorrectly showing in React Native
- Breaking behavior change: Surveys configured with URL or CSS selector targeting will no longer appear in React Native apps (this was always the intended behavior)
- Action required: If you have surveys that should show in React Native, remove URL/selector conditions and use feature flags or device type targeting instead
- Fixed surveys with URL or CSS selector targeting incorrectly showing in React Native
4.10.3
Patch Changes
- Updated dependencies [
e0a6fe0]:- @hanzo/[email protected]
4.10.2
Patch Changes
4.10.1
Patch Changes
- #2415
ab30675Thanks @ioannisj! - fix surveys only appear on subsequent app launches after being loaded and cached
4.10.0
Minor Changes
-
#2417
daf919bThanks @dmarticus! - feat: Add evaluation environments support for feature flagsThis PR implements support for evaluation environments in the @hanzo/insights-react-native SDK, allowing users to specify which environment tags their SDK instance should use when evaluating feature flags.
Users can now configure the SDK with an
evaluationEnvironmentsoption:const insights = new Insights('api-key', { host: 'https://app.insights.hanzo.ai', evaluationEnvironments: ['production', 'mobile', 'react-native'], })When set, only feature flags that have at least one matching evaluation tag will be evaluated for this SDK instance. Feature flags with no evaluation tags will always be evaluated.
Patch Changes
-
#2431
7d45a7aThanks @marandaneto! - fix: remove deprecated attribute $exception_personURL from exception events -
Updated dependencies [
daf919b,7d45a7a]:- @hanzo/[email protected]
4.9.1
Patch Changes
- Updated dependencies [
10da2ee]:- @hanzo/[email protected]
4.9.0
Minor Changes
- #2410
1f294ecThanks @hpouillot! - add error tracking autocapture
4.8.1
Patch Changes
-
#2414
e19a384Thanks @hpouillot! - create a common logger for node and react-native -
Updated dependencies [
e19a384]:- @hanzo/[email protected]
4.8.0
Minor Changes
- #2360
8ea1ce8Thanks @hpouillot! - add stacktrace to exceptions
4.7.1
Patch Changes
- Updated dependencies [
5820942]:- @hanzo/[email protected]
4.7.0
Minor Changes
- #2352
c01c728Thanks @marandaneto! - chore: rn surveys use the new response question id format
4.6.3
Patch Changes
- Updated dependencies [
caecb94]:- @hanzo/[email protected]
4.6.2
Patch Changes
- Updated dependencies [
ac48d8f]:- @hanzo/[email protected]
4.6.1
Patch Changes
- Updated dependencies [
da07e41]:- @hanzo/[email protected]
4.6.0
Minor Changes
- #2328
83196aaThanks @marandaneto! - chore: add support for throttleDelayMs
4.5.1
Patch Changes
- #2325
a9121dfThanks @marandaneto! - surveys on react native web renders and get focused correctly
4.5.0
Minor Changes
4.4.3
Patch Changes
- Updated dependencies [
1981815]:- @hanzo/[email protected]
4.4.2
Patch Changes
-
Updated dependencies [
44d10c4]:- @hanzo/[email protected]
4.4.1
Patch Changes
- #2234
9ef2193Thanks @marandaneto! - expo-43 and new expo-file-system APIs with back compatibility support
4.4.0
Minor Changes
- #2192
dec3f44Thanks @marandaneto! - survey support for feature flag variants
4.3.1
Patch Changes
4.3.0
Minor Changes
- #2129
a3d1267Thanks @marandaneto! - Remove legacy migration code, left over from the V1 to V2 migration
4.2.2 - 2025-07-23
Fixed
- Fix issue with expo-file-system on web and macos
4.2.1 - 2025-07-21
Fixed
- Solve outdated JSX transform warning
4.2.0 - 2025-07-15
Changed
- Add more documentation for the
captureScreensoption and its usage with expo-router, @react-navigation/native and react-native-navigation
4.1.5 - 2025-07-14
Fixed
- read the navigation ref from the current property if it exists for expo-router and @react-navigation/native
4.1.4 - 2025-07-01
Fixed
- avoid navigation tracking crash when using the new navigation version
4.1.3 - 2025-06-26
Fixed
- Multiple choice question response
- Survey button disabled style
4.1.2 - 2025-06-24
Fixed
- Force session replay to use string values for sessionId, distinctId and anonymousId
4.1.1 - 2025-06-23
Fixed
- Add missing survey position types
4.1.0 - 2025-06-12
- chore: use
/flags?v=2&config=trueinstead of/decide?v=4for the flag evaluation backend
4.0.0 - 2025-06-10
Removed
- Remove
captureModein favor ofjsoncapture mode only - Remove deprecated
personPropertiesandgroupPropertiesin favor ofsetPersonPropertiesForFlagsandsetGroupPropertiesForFlags - Rename
captureNativeAppLifecycleEventsoption tocaptureAppLifecycleEventscaptureAppLifecycleEventsfromautocaptureis removed and replaced bycaptureAppLifecycleEventsfrom options
- Remove
versionandbuildfrom Lifecycle events in favor of$app_versionand$app_build - Remove maskPhotoLibraryImages from the SDK config
3.16.1 – 2025-05-28
Fixed
- rotate session id if expired when the app is back from background
3.16.0 – 2025-05-27
Fixed
- rotate session id if expired after 24 hours
3.15.4 – 2025-05-20
Fixed
- session recording respects linked flags
3.15.3 – 2025-05-14
Fixed
- chore: improve event prop types
- use custom allSettled implementation to avoid issues with patching Promise
3.15.2 – 2025-05-07
Fixed
- survey modal closes when clicking inside the modal
3.15.1 – 2025-04-28
Fixed
- revert migration to rollup
3.15.0 – 2025-04-23
- chore: migrate to bundle using rollup
Do not use this version, please use 3.15.1 instead.
3.14.0 – 2025-04-17
- chore: roll out new feature flag evaluation backend to majority of customers
3.13.2 - 2025-04-16
Fixed
- react native navigation missing navigationRef
3.13.1 - 2025-04-15
Fixed
- broken relative imports for surveys
3.13.0 - 2025-04-08
Added
$feature_flag_calledevent now includes additional properties such asfeature_flag_id,feature_flag_version,feature_flag_reason, andfeature_flag_request_id.
Fixed
- apiKey cannot be empty.
- Survey modal now moves up when the keyboard is open.
3.12.0 - 2025-03-13
Added
- Adds support for surveys on react native
- Thanks @ian-craig for initial PR.
3.11.2 - 2025-02-27
Fixed
- Supports gracefully handling quotaLimited responses from the Insights API for feature flags.
3.11.1 - 2025-02-21
Fixed
- fix: handle cases when non Error is passed to
captureException
3.11.0 - 2025-02-21
- fix: Autocapture native app lifecycle events
- the
captureNativeAppLifecycleEventsclient option now takes priority over thecaptureLifecycleEventsautocapture option. - the
captureLifecycleEventsautocapture option now captures Application Installed and Application Updated events. - If you don't want to capture these events, set the
captureLifecycleEventsautocapture option tofalseand capture the events manually, example below.
- the
AppState.addEventListener('change', (state) => {
if (state === 'active') {
insights.capture('Application Became Active')
} else if (state === 'background') {
insights.capture('Application Backgrounded')
}
})
3.10.0 - 2025-02-20
Added
- Adds the ability to capture user feedback in LLM Observability using the
captureTraceFeedbackandcaptureTraceMetricmethods.
3.9.1 - 2025-02-13
- fix: ensure feature flags are reloaded after reset() to prevent undefined values
3.9.0 - 2025-02-07
- chore: Session Replay - GA
3.8.0 - 2025-02-06
Added
- Adds
captureExceptionfunction to allow basic manual capture of JavaScript exceptions
3.7.0 - 2025-02-05
- chore: set locale and timezone using the react-native-localize library
3.6.4 - 2025-02-03
- fix: improve session replay linked flag type handling
3.6.3 - 2025-01-16
- fix: session replay respect linked feature flags
3.6.2 - 2025-01-13
- fix: Set initial currentSessionId, log only with debug flag on
3.6.1 - 2024-12-17
- fix: os_name was not being set correctly for some devices using expo-device
3.6.0 - 2024-12-12
- Add new debugging property
$feature_flag_bootstrapped_response,$feature_flag_bootstrapped_payloadand$used_bootstrap_valueto$feature_flag_calledevent
3.5.0 - 2024-12-03
- fix: deprecate maskPhotoLibraryImages due to unintended masking issues
3.4.0 - 2024-11-26
- feat: automatically mask out user photos and sandboxed views like photo picker (iOS Only)
- To disable masking set
maskAllSandboxedViewsandmaskPhotoLibraryImagesto false
- To disable masking set
export const insights = new Insights(
'apiKey...',
sessionReplayConfig: {
maskAllSandboxedViews: false,
maskPhotoLibraryImages: false,
);
3.3.14 - 2024-11-21
- fix: identify method allows passing a $set_once object
3.3.13 - 2024-11-19
- fix: session replay respects the flushAt flag
3.3.12 - 2024-11-18
- fix: session replay forces the session id if the SDK is already enabled
3.3.11 - 2024-11-13
- fix: respect the given propsToCapture autocapture option
3.3.10 - 2024-11-04
- fix: capture customLabelProp if set
3.3.9 - 2024-10-26
- fix: rollback module to ESNext
3.3.8 - 2024-10-25
- chore: change androidDebouncerDelayMs default from 500ms to 1000ms (1s)
3.3.7 - 2024-10-25
- fix: session replay respects the
disabledflag
3.3.6 - 2024-10-19
- fix: all sdkReplayConfig should have a default value
3.3.5 - 2024-10-15
- fix: only tries to read device context from react-native-device-info if expo libs are not available
3.3.4 - 2024-10-14
- fix: only log messages if debug is enabled
3.3.3 - 2024-10-11
- fix: bootstrap flags do not overwrite the current values
3.3.2 - 2024-10-11
Changed
- fix: clear flagCallReported if there are new flags
3.3.1 - 2024-09-30
Changed
- fix: set the right sdk name and version for recordings
3.3.0 - 2024-09-24
Changed
- chore: session id will be rotate on app restart.
- To keep the session id across restarts, set the
enablePersistSessionIdAcrossRestartoption totruewhen initializing the Insights client.
- To keep the session id across restarts, set the
export const insights = new Insights('apiKey...', {
// ...
enablePersistSessionIdAcrossRestart: true,
})
3.2.1 - 2024-09-24
Changed
- recording: session replay plugin isn't properly identifying users already identified
3.2.0 - 2024-09-19
Changed
- chore: default
captureModechanged tojson.- To keep using the
formmode, just set thecaptureModeoption toformwhen initializing the Insights client.
- To keep using the
- chore: Session Replay for React-Native - Experimental support
Install Session Replay for React-Native:
yarn add @hanzo/insights-react-native-session-replay
## or npm
npm i -s @hanzo/insights-react-native-session-replay
Enable Session Replay for React-Native:
export const insights = new Insights('apiKey...', {
// ...
enableSessionReplay: true,
})
Or using the InsightsProvider
<InsightsProvider
apiKey="apiKey..."
options={{
enableSessionReplay: true,
}}
>
3.1.2 - 2024-08-14
Changed
- chore: change host to new address.
3.1.1 - 2024-04-25
- Prevent double JSON parsing of feature flag payloads, which would convert the payload [1] into 1.
3.1.0 - 2024-03-27
Changed
- If
captureNativeAppLifecycleEventsis enabled, the eventApplication Openedwith the propertyfrom_background: trueis moved to its own event calledApplication Became Active. This event is triggered when the app is opened from the background. TheApplication Openedevent is now only triggered when the app is opened from a cold start, aligning with the other integrations such as theInsightsProviderwith thecaptureLifecycleEventsoption andinitReactNativeNavigationwith thecaptureLifecycleEventsoption.
3.0.0 - 2024-03-18
Added
- Adds a
disabledoption and the ability to change it later viainsights.disabled = true. Useful for disabling Insights tracking for example in a testing environment without having complex conditional checking shutdowntakes ashutdownTimeoutMsparam with a default of 30000 (30s). This is the time to wait for flushing events before shutting down the client. If the timeout is reached, the client will be shut down regardless of pending events.- Adds a new
featureFlagsRequestTimeoutMstimeout parameter for feature flags which defaults to 10 seconds. - Flushes will now try to flush up to
maxBatchSize(default 100) in one go - Sets
User-Agentheaders with SDK name and version for RN - Queued events are limited up to
maxQueueSize(default 1000) and the oldest events are dropped when the limit is reached
Removed
flushAsyncandshutdownAsyncare removed withflushandshutdownnow being the async methods.- Removes the
enableoption. You can now specifydefaultOptIn: falseto start the SDK opted out of tracking Insights.initAsyncis no more! You can now initialize Insights as you would any other classconst insights = new Insights(...)
Changed
- InsightsProvider now requires either an
apiKeyorclientproperty anduseInsightsnow always returns aInsightsinstance instead ofInsights | undefined. Thedisabledoption can be used when initializing theInsightsProviderif desired and all subsequent calls toinsightswill work but without actually doing anything. flushandshutdownnow being async methods.- Replaces the option
customAsyncStoragewithcustomStorageto allow for custom synchronous or asynchronous storage implementations.
Fixed
- Many methods such as
captureandidentifyno longer return thethisobject instead returning nothing - Fixed an issue where
shutdownwould potentially exit early if a flush was already in progress - Fixes some typos in types
3.0.0-beta.3 - 2024-03-13
- Sets
User-Agentheaders with SDK name and version for RN - fix: InsightsProvider initialization that requires client
orapiKey and notand.
3.0.0-beta.2 - 2024-03-12
flushAsyncandshutdownAsyncare removed withflushandshutdownnow being the async methods.- Fixed an issue where
shutdownAsyncwould potentially exit early if a flush was already in progress - Flushes will now try to flush up to
maxBatchSize(default 100) in one go
3.0.0-beta.1 - 2024-03-04
Insights.initAsyncis no more! You can now initialize Insights as you would any other classconst insights = new Insights(...)- InsightsProvider now requires either an
apiKeyorclientproperty anduseInsightsnow always returns aInsightsinstance instead ofInsights | undefined. Thedisabledoption can be used when initializing theInsightsProviderif desired and all subsequent calls toinsightswill work but without actually doing anything. - Removes the
enableoption. You can now specifydefaultOptIn: falseto start the SDK opted out of tracking - Adds a
disabledoption and the ability to change it later viainsights.disabled = true. Useful for disabling Insights tracking for example in a testing environment without having complex conditional checking - Many methods such as
captureandidentifyno longer return thethisobject instead returning nothing - Fixes some typos in types
shutdownandshutdownAsynctakes ashutdownTimeoutMsparam with a default of 30000 (30s). This is the time to wait for flushing events before shutting down the client. If the timeout is reached, the client will be shut down regardless of pending events.- Adds a new
featureFlagsRequestTimeoutMstimeout parameter for feature flags which defaults to 10 seconds. - Replaces the option
customAsyncStoragewithcustomStorageto allow for custom synchronous or asynchronous storage implementations.
2.11.6 - 2024-02-22
$device_namewas set to the device's user name (eg Max's iPhone) for all events wrongly, it's now set to the device's name (eg iPhone 12), this happened only if usingreact-native-device-infolibrary.- Fixes an issue related to other dependencies patching the global Promise object that could lead to crashes
2.11.5 - 2024-02-20
- fix: undefined insights in hooks
2.11.4 - 2024-02-15
- fix: using
captureMode=formwon't throw an error and retry unnecessarily $app_buildwas returning the OS internal build number instead of the app's build number.- This flag was used to track app versions, you might experience a sudden increase of
Application Updatedevents, but only if you're using thereact-native-device-infolibrary.
2.11.3 - 2024-02-08
- Vendor
uuidv7instead of using peer dependency to avoid the missing crypto issue
2.11.2 - 2024-02-06
- Swapped to
uuidv7for unique ID generation
2.11.1 - 2024-01-25
- Do not try to load packages on the macOS target that are not supported.
- Use
Platform.selectinsteadPlatform.OSfor conditional imports which avoids issues such asUnable to resolve module.
2.11.0 - 2024-01-23
- Adds support for overriding the event
uuidvia capture options
2.10.2 - 2024-01-22
- Do not try to load the
expo-file-systempackage on the Web target since it's not supported. - if
react-native-device-infois available for the Web target, do not setunknownfor all properties.
2.10.1 - 2024-01-15
- The
tag_nameproperty of auto-captured events now uses the nearestph-labelfrom parent elements, if present.
2.10.0 - 2024-01-08
$device_typeis now set toMobile,Desktop, orWebfor all events
2.9.2 - 2023-12-21
- If
async-storageorexpo-file-systemis not installed, the SDK will fallback topersistence: memoryand log a warning
2.9.1 - 2023-12-14
getPersistedPropertyuses Nullish Coalescing operator to fallback toundefinedonly if the property is not found
2.9.0 - 2023-12-04
- Renamed
personPropertiestosetPersonPropertiesForFlagsto match@hanzo/insightsand more clearly indicated what it does - Renamed
groupPropertiestosetGroupPropertiesForFlagsto match@hanzo/insightsand more clearly indicated what it does
2.8.1 - 2023-10-09
- Fixes a type generation issue
2.8.0 - 2023-10-06
- Added new
const [flag, payload] = useFeatureFlagWithPayload('my-flag-name')hook that returns the flag result and it's payload if it has one.
2.7.1 - 2023-05-25
- The
$screen_nameproperty will be registered for all events wheneverscreenis called
2.7.0 - 2023-04-21
- Fixes a race condition that could occur when initialising Insights
- Fixes an issue where feature flags would not be reloaded after a reset
- Insights should always be initialized via .initAsync and will now warn if this is not the case
2.6.0 - 2023-04-19
- Some small fixes to incorrect types
- Fixed fetch compatibility by aligning error handling
- Added two errors: InsightsFetchHttpError (non-2xx status) and InsightsFetchNetworkError (fetch network error)
- Added .on('error', (err) => void)
- shutdownAsync now ignores fetch errors. They should be handled with .on('error', ...) from now on.
2.5.2 - 2023-02-13
- Fixes an issue where background network errors would trigger unhandled promise warnings
2.5.1 - 2023-02-03
- Added support for customising the default app properties by passing a function to
options.customAppProperties
2.5.0 - 2023-02-02
- Adds support for overriding timestamp of capture events
2.4.0 - 2023-01-27
- Adds support for https://github.com/wix/react-native-navigation
- Allows passing of promise based
Insights.initAsyncto<InsightsProvider client={...} /> - Captures text content in autocapture (configurable via autocapture option
propsToCapture)
2.3.0 - 2022-1-26
- uses v3 decide endpoint
- JSON payloads will be returned with feature flags
- Feature flags will gracefully fail and optimistically save evaluated flags if server is down
2.2.3 - 2023-01-25
- Ensures the distinctId used in
.groupIdentifyis the same as the currently identified user
2.2.2 - 2023-01-05
- Fixes an issue with InsightsProvider where autocapture={false} would still capture lifecycle and navigation events.
2.2.1 - 2022-11-21
- Fixes an issue with async storage selection while installing Insights React Native
- Fixes an issue where React Hooks for feature flags were conditionally loaded
2.2.0 - 2022-11-11
- Expo modules are no longer required. Expo apps work as before and standalone React Native apps can use the more common native dependencies or roll their own implementation of the necessary functions. See the official docs for more information.
- Insights should now be initialised via the async helper
Insights.initAsyncto ensure persisted data is loaded before any tracking takes place
2.1.4 - 2022-10-28
Also include the fix in the compiled lib folder.
2.1.3 - 2022-10-27
Actually include the fix.
2.1.2 - 2022-10-27
Fix bug where all values set while stored data was being loaded would get overwritten once the data was done loading.
2.1.1 - 2022-09-09
Support for bootstrapping feature flags and distinctIDs. This allows you to initialise the library with a set of feature flags and distinctID that are immediately available.
2.1.0 - 2022-09-02
InsightsProvider autocapture can be configured with captureLifecycleEvents: false and captureScreens: false if you want do disable these autocapture elements. Both of these default to true