amplitude_session_replay 0.1.0-beta.6
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 #
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 #
SessionReplayis now a process singleton. ReplaceSessionReplay(config)withSessionReplay.instance.init(config)+await SessionReplay.instance.start().SessionReplayWidgetis removed — widget wrapping is no longer needed.SessionReplayConfig.shouldInitializeNativeSDKis removed. Native init is unconditional instart(); native-first hybrid apps opt in viaSessionReplay.instance.attach().sessionReplayProperties()is removed. Sessions are linked via deviceId and sessionId instead.ensureInitialized()is removed. UseSessionReplay.instance.attach().init()is synchronous and one-shot per dispose cycle. Calldispose()before re-initializing with new config.
0.1.0-beta.4 #
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-alpha.14 - 2026-04-20 #
0.1.0-alpha.13 - 2026-04-16 #
⚠ BREAKING CHANGES #
amplitude_core.dartwas 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 #
0.1.0-alpha.11 - 2026-03-09 #
0.1.0-alpha.10 - 2026-02-24 #
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 #
0.1.0-alpha.5 - 2026-01-13 #
Bug Fixes #
- add rrect clamping to avoid ovals (#97)
- paragraph extractor color issues (#96)