xray_device_actions 0.2.1
xray_device_actions: ^0.2.1 copied to clipboard
Lets the xRay desktop app drive a Flutter app — appearance, locale, text scale, animations and debug overlays — through the xray_inspector device inspector.
Changelog #
For license information, see LICENSE.
All xRay inspector packages share one version and are released together. Entries are prefixed with the package(s) they affect.
0.2.1 - 2026-11-12 #
Bug Fixes #
- xray_inspector: trust the production and staging license keys (#288) (f719dec)
0.2.0 - 2026-11-12 #
⚠ BREAKING CHANGES #
- xray_inspector_core, xray_inspector: update the xRay packages in your app and the xRay desktop app together; older versions don't connect to newer ones.
Features #
- xray_inspector_core, xray_inspector: connections check the desktop's xRay account (4a2dd81)
0.1.6 - 2026-11-11 #
Features #
- xray_inspector_core, xray_inspector, xray_sqflite_inspector, xray_drift_inspector, xray_hive_inspector: database inspector for sqflite, drift and Hive (#270) (d22db5a)
Bug Fixes #
- xray_inspector, xray_inspector_core: security audit 2026-11-11, man-in-the-middle and OWASP fixes (#271) (59221fe)
0.1.5 - 2026-10-27 #
Features #
- xray_device_actions, xray_inspector, xray_inspector_core: take a screenshot of the connected app (#253) (13245c3)
0.1.4 - 2026-10-22 #
Features #
- xray_inspector_core, xray_inspector: custom device pages in the device drawer (#227) (482abe1)
- xray_inspector, xray_inspector_core: tell two builds of the same app apart (#228) (527992a)
- xray_inspector: discovery and the announcement listener can bind a free port (#226) (39d5db4)
0.1.3 - 2026-10-22 #
- No changes to the public packages.
0.1.2 - 2026-10-21 #
Features #
- xray_inspector_core, xray_inspector, xray_network_dio_interceptor: decode protobuf bodies, with schema folders pinned per app (#210) (ac923d2)
0.1.1 - 2026-10-20 #
- No changes to the public packages.
0.1.0 - 2026-10-17 #
⚠ BREAKING CHANGES #
- InspectorEvent has a new subtype for WebSocket messages, so an exhaustive switch over InspectorEvent must handle it.
- allowInReleaseMode without a password or trusted desktops no longer starts the server, and profile builds need allowInReleaseMode.
Features #
- xray_device_actions: apply the desktop app's appearance, locale, text scale, animation and debug overrides in Flutter apps (f7ac47c)
- xray_inspector_core: add file entries and the files inspector type (f7ac47c)
- xray_inspector_core: add logger, error and stack trace to log entries and types to key-value entries (f7ac47c)
- xray_inspector_core: add the device actions protocol (f7ac47c)
- xray_inspector_core: describe which value types a key-value store can create (f7ac47c)
- xray_inspector: add the device inspector for deep links, simulated pushes, feature flags and quick settings (f7ac47c)
- xray_inspector: add XRayFileInspector to browse, read and delete app files (f7ac47c)
- xray_inspector: create key-value entries with a chosen type (f7ac47c)
- xray_inspector: record WebSocket connections and messages with networkInspector.recordWebSocket, for example GraphQL subscriptions (f7ac47c)
- xray_secure_storage_inspector: add string keys from the desktop app (f7ac47c)
- xray_shared_preferences_inspector: add keys of every shared preferences type (f7ac47c)
Bug Fixes #
- xray_inspector: block websites from reading inspector data through the browser (a18cc1f)
- xray_inspector: clearing a key-value inspector no longer crashes the host app on storage errors (4b273bd)
- xray_inspector: complete captured calls whose socket is detached for a WebSocket (ccd6212)
- xray_inspector: don't start the inspector server in release builds unless opted in (103d984)
- xray_inspector: encode discovery messages as UTF-8 (#15) (387600a)
- xray_inspector: export XRayHttpOverrides and XRayNetworkInspectorHttpClient to the analyzer (#25) (64567c3)
- xray_inspector_core, xray_inspector, xray_network_dio_interceptor: give every captured network call and log entry a unique id (31dc3c3)
- xray_inspector_core, xray_inspector: harden the inspector server running inside host apps (b5aea38)
- xray_shared_preferences_inspector: keep shared preferences types intact when editing from the desktop app (1ed635f)
- xray_inspector: keep streaming network and log events once an inspector's list is full (13db50f)
- xray_inspector: keep the host app's HttpOverrides working when enableHttpOverride is on (2a73721)
- xray_inspector: let inspectors that share a title use distinct ids (0d2724e)
- xray_inspector: let multiple apps on one device share the discovery port (#16) (0a8bc11)
- xray_inspector_core, xray_inspector, xray_network_dio_interceptor, xray_shared_preferences_inspector: make network and log capture safe for the host app (b11d3d9)
- xray_inspector: make the inspector server restartable and never throw into the host app (c0931b7)
- xray_network_dio_interceptor: never let the Dio interceptor's bookkeeping fail a host app request (ee4aade)
- xray_inspector, xray_network_dio_interceptor: record Dio calls once when enableHttpOverride is also enabled (fae4f5b)
- xray_inspector: refuse to start the inspector server with duplicate inspector ids (c4c1f06)
- xray_inspector: reject a non-positive maxCalls or maxEntries with an ArgumentError (df3806b)
- xray_inspector: release the inspector ports when stop() runs during start() (d89ba05)
- xray_inspector_core, xray_inspector: report the real package version and a protocol version from /api/ping (0dc8a4b)
- xray_inspector: restore const constructor of XRayInspectorServerConfig (#18) (1256d30)
- xray_inspector_core: serialize network calls with non-JSON bodies or headers (974d04a)
- xray_network_dio_interceptor: show placeholders for binary, streamed and multipart Dio bodies (7d97815)
- xray_inspector: show the final url of HttpClient calls that followed redirects (b3c7e04)
- xray_inspector: stop "Stream has already been listened to" when using close() and done together (bf2d808)
- xray_inspector: stop duplicate key-value broadcasts and reject invalid writes with 400 (b3018ea)
- xray_inspector: stream intercepted HttpClient responses without buffering or breaking cancel (bc2f6c3)
- xray_inspector: support key-value keys containing '#', '?', '/' or '%' (d902003)
- xray_inspector: uninstall the global HttpClient override when its inspector is disposed (#24) (1d453ec)
Performance Improvements #
- xray_inspector: cap captured network calls and logs to keep long sessions fast (19c5dec)
- xray_inspector: let clients fetch only the newest network calls and log entries (bc251ba)
- xray_inspector: stop replaying the full history on every WebSocket connect (2dc05d4)
0.0.10 #
- xray_inspector: Fixed HTTP override response body always being empty.
- xray_inspector: Fixed inspector's own internal calls appearing in the "Network (Http)" tab.
- xray_inspector: Setting
enableHttpOverride: trueon more than oneXRayNetworkInspectornow throws aStateErrorat startup.
0.0.9 #
- xray_inspector_core: Extended
XRayNetworkCall.copyWithwithrequestHeadersandrequestBodyparameters. - xray_inspector: Added opt-in global
dart:ioHttpClientoverride viaenableHttpOverrideflag onXRayNetworkInspector. When enabled, all HTTP traffic made throughdart:io(includingpackage:http, Cronet, and any other client that delegates toHttpClient) is captured automatically. Silently ignored on web. - xray_inspector: Exported
XRayHttpOverridesandXRayNetworkInspectorHttpClientfor advanced manual wiring.
0.0.8 #
- Added
repositorylink to pubspec so pub.dev surfaces the GitHub source repository alongside the existing homepage and issue tracker links.
0.0.7 #
- xray_inspector: Fixed CORS preflight (
OPTIONS) responses being returned as405 Method Not Allowedwithout CORS headers for theDELETEandPUTendpoints on/api/network/:id/calls,/api/log/:id/entries, and/api/key-value/sources/:sourceId/entries/:key. The CORS middleware is now applied as an outer pipeline wrapper so it also runs for routing misses.
0.0.6 #
- Version alignment only; no functional changes.
0.0.5 #
- xray_inspector_core, xray_inspector, xray_network_dio_interceptor: Marked as pure Dart package to support backend usage (Serverpod, Relic, Dart Frog, Shelf).
- xray_inspector_core: Added
InspectorPingResponsefor better support for selecting the active inspector. - xray_inspector: Replaced Flutter's
ValueNotifierwith a customWatchableclass to remove the Flutter dependency. - xray_inspector: Fixed typos in source files.
- xray_inspector: Fixed incorrect import (
network_interceptor_listener→network_inspector_listener). - xray_network_dio_interceptor, xray_secure_storage_inspector, xray_shared_preferences_inspector: Dependency updates.
- xray_shared_preferences_inspector: Fixed an issue with saving shared preferences.
0.0.4 #
- Improved README.md.
0.0.3 #
- Added support for partnership licenses.
0.0.2 #
- Bug fixes and code cleanup.
- Fixed compile issues and import errors.
- xray_inspector_core: Fixed model usage improvements.
- xray_inspector: Removed old impaktfull network inspector references.
- xray_inspector: Fixed CORS issues.
- xray_network_dio_interceptor: Removed old references.
0.0.1 #
- xray_inspector_core: Pure Dart package (no Flutter dependency) with shared models and protocols
- xray_inspector_core: Contains the core data structures used across the entire xray_inspector ecosystem
- xray_inspector_core: No external dependencies, safe to include in any Dart or Flutter project
- xray_inspector: Core Flutter inspector package with network, log, and key-value inspectors
- xray_inspector: Embeds an HTTP/WebSocket server so the app can be inspected remotely
- xray_inspector: Works with the official xRay macOS app and the xray_inspector_ui package
- xray_network_dio_interceptor: Flutter package providing a Dio interceptor for network inspection
- xray_network_dio_interceptor: Captures HTTP requests and responses and forwards them to xray_inspector
- xray_network_dio_interceptor: Drop-in integration: add the interceptor to your Dio instance to enable inspection
- xray_secure_storage_inspector: Flutter package that exposes flutter_secure_storage contents to xray_inspector
- xray_secure_storage_inspector: Registers a key-value inspector so secure storage entries can be browsed at runtime
- xray_secure_storage_inspector, xray_shared_preferences_inspector: Intended for development and debugging only; never include in production builds
- xray_shared_preferences_inspector: Flutter package that exposes shared_preferences contents to xray_inspector
- xray_shared_preferences_inspector: Registers a key-value inspector so preference entries can be browsed at runtime