amplitude_session_replay 0.1.0-beta.6 copy "amplitude_session_replay: ^0.1.0-beta.6" to clipboard
amplitude_session_replay: ^0.1.0-beta.6 copied to clipboard

Session Replay SDK for Flutter.

Changelog #

0.1.0-beta.6 #

Features #

  • worker: add task-runner hook for main-isolate work coordination (#281) (95f4f84)
  • capture: add adaptive scheduler config presets and capture policy (#287) (1a9a6ea)
  • capture: add adaptive scheduler engine, split into collaborators (#295) (ebcd9d7)
  • expose debug/experimental options in hybrid (add-to-app) mode (#292) (8b47ce9)
  • capture: add opt-in adaptive capture behind scheduler protocol (#283) (7afd334)

Bug Fixes #

  • encoder: park missing-child fallback in child overflow slot, not parent id block (#280) (54785ee)
  • capture: capture only on frames the app produced (#298) (7bd78cd)

0.1.0-beta.5 #

Features #

  • encoder: annotate render-node id in release builds for troubleshooting (#273) (0c7cd7d)
  • simplify installation, remove SessionReplayWidget wrapping requirement (#172) (b5b8d27)

Bug Fixes #

  • encoder: serialize root render node so top-level content is not orphaned (#274) (7880002)
  • encoder: use next-sibling id for add mutations (sdkf-64) (#279) (15550f6)
  • encoder: resolve nextid across unchanged siblings in replacements (#285) (e3b20da)

⚠ BREAKING CHANGES #

  • SessionReplay is now a process singleton. Replace SessionReplay(config) with SessionReplay.instance.init(config) + await SessionReplay.instance.start().
  • SessionReplayWidget is removed — widget wrapping is no longer needed.
  • SessionReplayConfig.shouldInitializeNativeSDK is removed. Native init is unconditional in start(); native-first hybrid apps opt in via SessionReplay.instance.attach().
  • sessionReplayProperties() is removed. Sessions are linked via deviceId and sessionId instead.
  • ensureInitialized() is removed. Use SessionReplay.instance.attach().
  • init() is synchronous and one-shot per dispose cycle. Call dispose() before re-initializing with new config.

0.1.0-beta.4 #

Bug Fixes #

  • bump iOS native SDK to 0.12.2 to fix crash on iOS 27 video players (SDKF-69) (#268) (5be8a4c)

0.1.0-beta.3 #

Features #

  • [SDKF-56] Flutter setPrivacyConfig runtime masking API (#259) (dab28dd)

0.1.0-beta.2 #

Features #

  • recorder: capture-side line metrics + on-device font metrics model (SDKF-19/28/46 — split 1/6) (#241) (806119d)
  • encoder: metric-override @font-face on full snapshots (SDKF-19 — split 2/6) (#242) (4a984b3)
  • recorder: add FontMetrics.isAllCaps and Arial size-adjust baseline (hybrid 1/3) (#248) (ac0c87c)
  • encoder: hybrid multi-line text via per-line textlength pins (hybrid 2/3) (#249) (55519a8)
  • encoder: incremental reconciliation for multi-line text (hybrid 3/3) (#250) (b4098d0)
  • encoder: emit @font-face for fonts first seen in incremental frames (#253) (2acf6dc)

Bug Fixes #

  • encoder: patch SendStyles text changes via texts mutation (#228) (50a2f33)

Performance Improvements #

  • recorder: memoize paragraph and run content hashes (#251) (116ba23)

0.1.0-beta.1 - 2026-05-27 #

Features #

0.1.0-alpha.14 - 2026-04-20 #

Performance Improvements #

  • core: decouple scheduler from background encoding (#204) (26d83ad)

0.1.0-alpha.13 - 2026-04-16 #

⚠ BREAKING CHANGES #

  • amplitude_core.dart was unintentionally exposed as a public library, appearing in pub.dev documentation. This removes it and replaces all internal imports with direct references to the source files.

Features #

  • core: add quality settings and rendering mode types (#189) (6814b7b)
  • core: embed quality metadata in rrweb head tag (#194) (0d2a838)
  • core: enforce max tree depth in recording (#191) (512c6f1)
  • core: implement image rendering modes in recorder (#192) (787ab6d)
  • core: implement text rendering modes and SVG text encoding (#193) (8f1cec7)
  • core: integrate quality profile with quality settings (#188) (fafc8b8)
  • core: make capture options mutable at runtime (#190) (20cdc56)
  • parse QualityProfile from native BinaryMessenger config JSON (#179) (a67960e)

Bug Fixes #

  • ci: collapse android e2e script to single line (#197) (63b3121)
  • ci: flatten yaml folded scalar so for-loop runs as one sh -c call (#198) (3cbf2b4)
  • ci: stabilize ios e2e test with simulator udid and retry logic (#169) (7414c51)
  • core: mask selectable text in conservative mode (#160) (598305e)
  • core: set maxTreeDepth to null for medium and low presets (#203) (2460b5b)
  • handle incremental encoder tag change when mask level flips (#185) (dfd288f)
  • masking: exclude icon font paragraphs from conservative masking (#159) (2b98292)
  • remove amplitude_core from public API (#165) (ebf10c1)

Performance Improvements #

  • cache runtimetype tostring for hot-path type checks (#174) (ab8db9a)
  • eliminate temporary list allocations in operations diff (#177) (cfc5209)
  • prevent scheduler re-entrancy with async-await callback (#175) (e435407)
  • skip off-screen render objects during capture (#178) (204f066)
  • skip redundant paragraph layout and use rect for masked text (#180) (cbfefe7)
  • use map lookup for O(1) child matching in tree diff (#176) (63bc492)

0.1.0-alpha.12 - 2026-03-25 #

⚠ BREAKING CHANGES #

  • replace privacyLevel with PrivacyConfig, rename PrivacyLevel to MaskLevel, default sessionId to -1 (#155)

Features #

  • add optOut, serverZone, and flush support (#153) (bcee244)
  • replace privacyLevel with PrivacyConfig, rename PrivacyLevel to MaskLevel, default sessionId to -1 (#155) (2c10b66)

0.1.0-alpha.11 - 2026-03-09 #

Features #

  • add enableRemoteConfig property to SessionReplayConfig (#148) (329c0aa)
  • path geometry capture and clip optimization (#142) (4291936)

Bug Fixes #

Performance Improvements #

  • capture: batch async resolve yields (#147) (cf5ff0d)
  • coalesce paragraph rasterization (#151) (2994b30)
  • prescale image bytes before extraction (#152) (e84fa24)
  • Memory overhead reduced by ~10x (from ~100 MB to ~10 MB RSS). CPU overhead reduced by ~25%, from ~40% additional utilization to ~28%.

0.1.0-alpha.10 - 2026-02-24 #

Features #

  • add RSuperellipse capture and SVG encoding (Flutter 3.32+) (#139) (4eec8c9)
  • drawDRRect support (#141) (93361c0)

Bug Fixes #

0.1.0-alpha.9 - 2026-02-09 #

Bug Fixes #

  • update readme example to publish package (#133) (fd10d48)

0.1.0-alpha.8 - 2026-02-05 #

Bug Fixes #

  • delay forwarding session/device ID until initialization happens for setSessionId and setDeviceId (#127)

0.1.0-alpha.7 - 2026-02-04 #

Features #

  • add devtools extension for profiling (#105)
  • image cache developer tools (#116)
  • implement eviction on image release by flutter platform (#120)
  • background evict (#121)
  • support runtime privacy level updates from native SDK (#117)
  • bump native SDKs to enable remote config (#125)

Bug Fixes #

  • text selection crash (#108)
  • masking for selectable text (#109)
  • composition layers handling (#110)
  • remote image cache (#115)
  • lock versions of iOS and Android SR dependencies (#118)

Refactor #

  • add dimension key extension methods (#119)

0.1.0-alpha.6 - 2026-01-14 #

Features #

  • add debug options to session replay config (#102)

Bug Fixes #

  • add binary events for debug server (#103)
  • scheduler stabilization (#101)
  • apply text scaler to runs (#100)

0.1.0-alpha.5 - 2026-01-13 #

Bug Fixes #

  • add rrect clamping to avoid ovals (#97)
  • paragraph extractor color issues (#96)

0.1.0-alpha.4 - 2026-01-09 #

Features #

  • separate init/start and stop/dispose lifecycle (#94)

Bug Fixes #

  • full snapshot on start/go (#93)

0.1.0-alpha.3 - 2026-01-06 #

Bug Fixes #

  • fix start/stop session replay (#91)

Refactor #

  • update public API - split session replay into public API and internal implementation (#90)
  • update default log level to warn

0.1.0-alpha.2 - 2025-01-06 #

Features #

  • android: implement dart entry point for Android (#80)

Bug Fixes #

  • clip path issues (#84)
  • replay order (#79)

0.1.0-alpha.1 - 2025-12-30 #

Features #

  • initial Flutter SDK with session replay capabilities for iOS (Android support coming soon)