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

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

Changelog #

0.0.24 - 2026-09-08 #

  • Improve message delivery speed and reliability.
  • Reduce background network activity while the app is open.
  • Improve connection recovery and conversation updates.

0.0.23 - 2026-08-31 #

  • Improve knowledge base article rendering and layout consistency across supported content.
  • Resolve knowledge base projects from the publishable client key through the existing messenger bootstrap instead of requiring BtxConfiguration.projectId.
  • Remove opaque white edge backgrounds from knowledge base project logos while preserving enclosed white artwork and already-transparent images.

0.0.22 - 2026-08-25 #

  • Add knowledge base support and related SDK improvements.

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
110
points
442
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

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

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

chewie, device_info_plus, flutter, flutter_linkify, html, http, image, image_picker, package_info_plus, path, path_provider, shadcn_ui, shared_preferences, url_launcher, uuid, video_player, webview_flutter

More

Packages that depend on btx

Packages that implement btx