btx 0.0.21 copy "btx: ^0.0.21" to clipboard
btx: ^0.0.21 copied to clipboard

BTX Flutter SDK for customer app telemetry, feature flags, messaging, and native integrations.

Changelog #

Unreleased #

0.0.21 - 2026-08-14 #

  • Improve request reliability and runtime diagnostics across supported app configurations.

0.0.20 - 2026-08-14 #

  • General improvements and reliability updates.

0.0.19 - 2026-08-11 #

  • Improve telemetry reliability by stopping retries for permanent configuration and authentication errors while preserving queued logs for recovery.
  • Add bounded retry backoff for temporary network and server failures, and prevent overlapping requests.
  • Expose typed SDK status and disable reasons for configuration errors without crashing host apps.
  • Recover expired sessions automatically and improve privacy-safe diagnostics for rejected SDK requests.

0.0.18 - 2026-08-07 #

  • Add a typed BtxConversationPurpose to launch contexts and returned threads.
  • Let host-owned feedback forms mark created threads as feedback so BTX operator surfaces can label and prioritize them separately from support requests.

0.0.17 - 2026-08-07 #

  • Capture iOS and Android operating-system version plus low-cardinality client device context automatically during facade and bundled bootstrap.
  • Report sdkName and sdkVersion in every SDK-owned app context and expose them through Btx.sdkName and Btx.sdkVersion.
  • Avoid collecting persistent device identifiers, user-assigned names, serial numbers, storage, or memory data.
  • Expand device_info_plus and package_info_plus compatibility so current Captify dependencies can resolve without host-side version overrides.

0.0.16 - 2026-07-24 #

  • Render URLs in messenger message bodies as tappable external links.
  • Add a long-press copy action for messenger message text.
  • Normalize missing-scheme links to https://... and show a visible failure message when a link cannot be opened externally.

0.0.15 - 2026-07-22 #

  • Android apps can now receive BTX messenger push notifications. Host apps bind their Firebase token and notification-open callbacks through Btx.push, and BTX handles registration, cleanup, and tap routing into the right messenger thread.
  • Android notification permission is requested from the existing first-messenger-presentation flow, so host apps do not need a separate BTX permission prompt path.
  • Android push stays Firebase-neutral in the btx package. Host apps keep ownership of firebase_core, firebase_messaging, google-services.json, and any non-BTX notification behavior.
  • Push taps are validated against the configured project and Android package before opening BTX UI. Sign-out, customer changes, messenger disable, and SDK disposal unregister or block stale BTX push bindings.
  • Existing iOS/APNs behavior is unchanged.

0.0.14 - 2026-07-22 #

  • Reduce background API usage while preserving realtime messenger updates.
  • Improve message reliability during reconnects, lifecycle changes, and event bursts.
  • Fix read and unread state synchronization across active SDK sessions.
  • Prevent stale requests from updating state after backgrounding, disposal, or customer identity changes.
  • Improve optimistic message ordering, including on devices with inaccurate clocks.

0.0.13 #

  • Add Btx.messenger.createThread(...) so host-owned feedback forms can create a customer message thread with an initial customer-authored message without opening the SDK-owned messenger UI.

0.0.12 #

  • Keep unread assistant launch and resume banners for hidden messenger sessions.
  • Persist explicit banner dismissals so the same unread assistant reply does not re-banner until a newer assistant reply arrives.

0.0.11 #

  • Center the messenger composer send button in single-line drafts while keeping it pinned to the bottom-right as the composer expands for wrapped or multi-line text.

0.0.10 #

  • Fix image attachment previews in SDK-owned messenger sheets so tapping a thumbnail opens an in-messenger lightbox immediately instead of pushing a host navigator dialog underneath the sheet.
  • Add an explicit lightbox close control and clear pending previews when the messenger sheet is dismissed.

0.0.9 #

  • Add navigatorKey support to BtxConfiguration so host apps can let the SDK mount messenger sheets, foreground in-app notifications, and push authorization coordination from the root navigator overlay without wrapping the whole app in BtxHost.
  • Cancel pending facade/headless setup work during SDK disposal so stale async configure, identity, or headless sync operations cannot outlive teardown.

0.0.8 #

  • Canonicalize runtime platform metadata before SDK auth so Android sessions do not inherit stale iOS bundle identifiers from explicit app context.
  • Resolve platform-specific keys from explicit app context when package metadata is unavailable, keeping Android telemetry and messenger bootstraps aligned.
  • Harden Android messenger presentation and foreground-notification rendering for host apps that mount BtxHost from MaterialApp.builder.
  • Use the configured primary CTA/accent color for unread thread indicators.
  • Polish SDK-owned in-app notification styling with a translucent blurred surface, filled accent chat icon, and no explicit outline.
  • Keep SDK-owned in-app notifications visible until the user dismisses them, opens the related thread, or a newer notification replaces them.

0.0.7 #

  • Remove legacy structured-input and delivery-mode logging APIs; host apps now use Btx.log(...) for all customer-app telemetry.
  • Flush queued logs automatically after enqueue instead of requiring host apps to choose delivery policy.
  • Keep Btx.flush(...) as an advanced wait point while removing normal host-side flush routing from examples and customer integration code.

0.0.6 #

  • Move public feature-flag state behind an internal active-customer scoped store so transient runtime/session churn cannot clear loaded flags while the same customer remains active.
  • Keep telemetry runtime feature flags tied to the current active session binding instead of publishing flags from historical sessions touched while flushing queued logs.
  • Preserve loaded feature flags across app-session changes, foreground refreshes, flushes, and runtime refreshes; clear them only on explicit sign-out, dispose, or active customer changes.

0.0.5 #

  • Serialize and generation-guard identity sync work so stale async identity operations cannot publish unloaded feature flags after a newer signed-in identity has won.
  • Keep feature-flag listeners stable during noisy host auth/user refreshes so host apps do not need their own BTX identity queues or generation counters.

0.0.4 #

  • Refresh feature-flag snapshots when an active identity is established and when the host app returns to the foreground.
  • Add Btx.featureFlagsListenable and BtxCustomerSdk.featureFlagsListenable so host UI can rebuild when feature flag values change.

0.0.3 #

  • Add BtxPublishableClientKeys and BtxConfiguration.withPublishableClientKeys(...) so host apps can provide one key set and let the SDK pick the correct iOS bundle ID or Android package client key.
  • Auto-resolve app version, build number, platform, bundle ID, and package name in the facade bootstrap path while preserving explicit host attributes.
  • Serialize facade configure/identify operations inside Btx so host apps do not need their own generation counters or identity sync queues.
  • Add Btx.ready() and Btx.featureFlagEnabled(...) for host code that needs to wait for pending configure/identity work before reading feature flags.
  • Make Btx.log(...) wait for in-flight configure work before writing telemetry.

0.0.2 #

  • Widen the package_info_plus dependency bound so host Flutter apps already on the 9.x package line can consume btx without dependency overrides.

0.0.1 #

  • Initial public release of btx.
  • Add the facade-first public API: Btx.configure, Btx.identify, Btx.log, Btx.refreshFeatureFlags, and Btx.messenger.
  • Add BtxHost as the root widget anchor for SDK-owned messenger sheets, foreground notification UI, lifecycle observation, and iOS push bridge setup.
  • Ship customer app telemetry, feature flags, support messaging, image upload, in-app message notifications, unread reminders, theme customization, and iOS push registration/token forwarding.
  • Rebuild the repo demo app around fixture mode and real BTX project mode.

0.1.7 #

  • Add BtxCustomerSdk.refreshFeatureFlags() so Flutter host apps can re-evaluate customer-app feature flags on demand through the existing session-ping route.
  • Replace the stored feature-flag snapshot after an explicit refresh in both main-isolate and worker-isolate telemetry runtimes.
  • Clarify that sdk.featureFlags and sdk.isFeatureEnabled(...) stay synchronous reads, while await sdk.refreshFeatureFlags() is the explicit path for picking up live BTX targeting changes before session expiry.

0.1.5 #

Breaking API change:

  • Replace appId / apiKey config with publishableClientKey so Flutter matches the iOS customer SDK auth flow.
  • Send x-btx-publishable-client-key on static customer-app bootstrap/session requests and keep bearer session tokens for runtime requests.
  • Change bundled credentials files to use publishableClientKey per platform.
  • Align messenger push payload matching with the iOS SDK by keying customer-messenger notifications on projectId.
  • Clarify the SDK-owned worker envelope flow for background telemetry forwarding.

0.1.4 #

Breaking API change:

  • BtxCustomerSdk.initialize(initialization: ...) is now the single public bootstrap path.
  • Add BtxCustomerSdkInitialization.explicit(...) and .bundledCredentials(...) as the supported initialization strategies.
  • Add BtxTelemetryConfiguration.runtimeMode so the SDK facade can run telemetry on the main isolate or a worker isolate.
  • Add sdk.setAppSession(...) for explicit app-session replacement after initialization.
  • Remove BtxHeadlessBootstrap, BtxHeadlessCoordinator, and BtxHeadlessTelemetry from the public package surface.
  • Add BtxCustomerSdkScope for widget-tree lookup of an already created SDK instance.
  • Rewrite the README and architecture docs around the unified bootstrap model and advanced telemetry runtime behavior.

0.1.3 #

  • Rewrite the public README around headless telemetry integration for Flutter host apps.
  • Document initialization, app-session ownership, custom activities, structured events, diagnostic logs, lifecycle flush behavior, and shutdown ordering.
  • Add inline Dart API docs for the public telemetry surface so IDE usage guidance matches the published README.

0.1.1 #

  • Default BtxClientConfiguration to BTX production.
  • Add BtxClientConfiguration.withApiBaseUrl(...) for explicit staging or local overrides.

0.1.0 #

  • Initial public release of btx.
  • Ships customer messenger UI, host telemetry capture, and iOS push bridging.
  • Publishes under the new btx package name with aligned native plugin identifiers.
0
likes
150
points
573
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

BTX Flutter SDK for customer app telemetry, feature flags, messaging, and native integrations.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

device_info_plus, flutter, flutter_linkify, http, image, image_picker, package_info_plus, path, path_provider, shared_preferences, url_launcher, uuid

More

Packages that depend on btx

Packages that implement btx