qora_devtools_overlay 0.2.0 copy "qora_devtools_overlay: ^0.2.0" to clipboard
qora_devtools_overlay: ^0.2.0 copied to clipboard

In-app debug overlay for Qora. Injects a floating panel with Queries, Mutations, and Timeline tabs into the running Flutter app — zero overhead in release builds.

Changelog #

All notable changes to this project will be documented in this file.

[Unreleased] #

Added #

  • QoraInspector.client — optional QoraClient parameter; when provided, the Query Inspector column exposes Refetch, Invalidate, Remove, Mark Stale, and Simulate Error action buttons; omitting it hides the actions section entirely.
  • OverlayTracker.onQueryRemoved() — implements the new QoraTracker hook; removes the key from _cacheState and pushes a removed event so QueriesNotifier evicts the row immediately.
  • OverlayTracker.onQueryMarkedStale() — implements the new QoraTracker hook; pushes a QueryEvent(type: updated, status: 'stale') so QueryRow shows the orange stale dot without emitting a timeline fetch entry.
  • QueryInspectorNotifier.markStale() — now calls client.markStale() instead of client.invalidate(); the action flags the entry stale without triggering an immediate refetch or loading state on active observers.

Fixed #

  • OverlayTracker.onQueryFetching() — was a no-op; now emits a transient QueryEvent(type: updated, status: 'loading') directly to the stream (not history) so the status dot turns blue immediately when a fetch begins.
  • OverlayTracker.onQueryInvalidated() — was missing; now pushes a QueryEvent.invalidated to both _queryHistory and _queryController so the dot updates on invalidation.
  • QueriesNotifier — now removes the entry from _queries when it receives a removed event; previously removed queries remained in the list indefinitely.
  • QueryInspectorNotifier — now clears _selected and calls notifyListeners() when the selected query receives a removed event; previously the inspector panel continued to show stale metadata after a remove.
  • QoraPanel — added an Overlay widget ancestor (via a stable OverlayEntry created in initState) so TextField can render focus decorations and selection handles; previously focusing QuerySearchBar threw No Overlay widget found.

0.2.0 - 2026-03-02 #

Added #

  • OverlayTracker.onQueryFetching() — no-op override satisfying the new QoraTracker interface hook; the overlay tracks fetch completion only.
  • DataDiffTab implemented — replaces the "coming soon" stub; shows BEFORE (mutation variables) and AFTER (result or error) in a two-column dark-themed diff view for the mutation selected in MutationInspectorNotifier.

0.1.0 - 2026-02-28 #

Added #

  • OverlayTracker — implements QoraTracker; fans out hook calls to typed streams with 200-event ring buffers.
  • QoraInspector — public StatefulWidget entry point; zero overhead in release builds via kDebugMode guard.
  • Domain notifiers: QueriesNotifier, MutationsNotifier, MutationInspectorNotifier, TimelineNotifier, CacheNotifier.
  • MutationDetail — view-model entity derived from MutationEvent for the inspector panel.
  • UI shell: QoraFab, FabBadge, QoraPanel, PanelHeader, PanelTabBar, ResponsivePanelLayout.
  • Panels: QueriesPanelView, MutationsTabView, MutationInspectorColumn, TimelineTab.
  • Shared widgets: StatusBadge, ExpandableObject, BreadcrumbKey.
  • Stub tabs: WidgetTreeTab (coming soon).
  • provider dependency for ChangeNotifier-based state wiring.
  • Initial package scaffold.
0
likes
160
points
121
downloads

Documentation

API reference

Publisher

verified publishermeragix.dev

Weekly Downloads

In-app debug overlay for Qora. Injects a floating panel with Queries, Mutations, and Timeline tabs into the running Flutter app — zero overhead in release builds.

Homepage
Repository (GitHub)
View/report issues
Contributing

License

MIT (license)

Dependencies

flutter, lucide_icons_flutter, provider, qora, qora_devtools_shared

More

Packages that depend on qora_devtools_overlay