flowmind_bridge 1.0.0 copy "flowmind_bridge: ^1.0.0" to clipboard
flowmind_bridge: ^1.0.0 copied to clipboard

FlowMind QA Bridge — embed in your Flutter app to enable autonomous AI-driven end-to-end testing. Exposes a localhost HTTP server for the QA agent to read the UI, dispatch taps/text, and capture screenshots.

Changelog #

All notable changes to flowmind_bridge are documented here. This project follows Semantic Versioning.

1.0.0 #

First public release.

Features #

  • HTTP bridge on localhost:9999 — debug-only via assert(...), stripped from release builds by the Dart compiler.
  • GET /ui_state — current screen's semantics tree as JSON, with deduplication of nested wrappers (Material's nested Semantics layers no longer leak duplicate entries for the same logical widget).
  • POST /action/{tap,type,scroll,back,long_press} — UI action dispatch.
    • tap fires SemanticsAction.tap for accessibility-aware widgets, and falls back to a synthetic pointer event at the widget's centre (DPR-corrected for high-density displays) for widgets where the semantic action doesn't route to onTap (BottomNavigationBar items, AlertDialog buttons, custom GestureDetectors).
    • type writes directly to a registered TextEditingController when available, falling back to SemanticsAction.setText otherwise. Per-line label match handles widgets whose nested Semantics produces newline-joined labels.
  • GET /screenshot — current frame as base64 PNG, captured via OffsetLayer.toImage() on the root RenderView (no host-app integration required).
  • GET /logs + POST /logs/clear — captured Flutter framework logs for crash/exception detection.
  • FlowMindFieldRegistry — opt-in registry for reliable form input. Register your TextEditingController in initState() and unregister in dispose(); the bridge writes directly to your controller, bypassing Material's nested Semantics layering issues. Owner-aware unregister prevents race conditions during cross-screen navigation.
  • Diagnostic endpoints for debugging integration issues:
    • GET /debug/probe?label=... — inspect what the bridge sees for a labelled element (rect, computed global centre, semantic action flags).
    • GET /debug/last_tap — inspect the most recent tap dispatch.
    • GET /debug/last_extract_error — last exception thrown by the UI extractor, with stack trace, when /ui_state returns transitioning_screen.
    • GET /debug/registry — list every key currently registered in FlowMindFieldRegistry.
  • Romanian / multilingual support — labels are matched case-insensitively, diacritics are sanitised at the screen-id level but preserved in widget labels.
0
likes
130
points
32
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

FlowMind QA Bridge — embed in your Flutter app to enable autonomous AI-driven end-to-end testing. Exposes a localhost HTTP server for the QA agent to read the UI, dispatch taps/text, and capture screenshots.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flowmind_bridge