qora_devtools_overlay 0.2.0
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— optionalQoraClientparameter; 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 newQoraTrackerhook; removes the key from_cacheStateand pushes aremovedevent soQueriesNotifierevicts the row immediately.OverlayTracker.onQueryMarkedStale()— implements the newQoraTrackerhook; pushes aQueryEvent(type: updated, status: 'stale')soQueryRowshows the orange stale dot without emitting a timeline fetch entry.QueryInspectorNotifier.markStale()— now callsclient.markStale()instead ofclient.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 transientQueryEvent(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 aQueryEvent.invalidatedto both_queryHistoryand_queryControllerso the dot updates on invalidation.QueriesNotifier— now removes the entry from_querieswhen it receives aremovedevent; previously removed queries remained in the list indefinitely.QueryInspectorNotifier— now clears_selectedand callsnotifyListeners()when the selected query receives aremovedevent; previously the inspector panel continued to show stale metadata after a remove.QoraPanel— added anOverlaywidget ancestor (via a stableOverlayEntrycreated ininitState) soTextFieldcan render focus decorations and selection handles; previously focusingQuerySearchBarthrewNo Overlay widget found.
0.2.0 - 2026-03-02 #
Added #
OverlayTracker.onQueryFetching()— no-op override satisfying the newQoraTrackerinterface hook; the overlay tracks fetch completion only.DataDiffTabimplemented — 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 inMutationInspectorNotifier.
0.1.0 - 2026-02-28 #
Added #
OverlayTracker— implementsQoraTracker; fans out hook calls to typed streams with 200-event ring buffers.QoraInspector— publicStatefulWidgetentry point; zero overhead in release builds viakDebugModeguard.- Domain notifiers:
QueriesNotifier,MutationsNotifier,MutationInspectorNotifier,TimelineNotifier,CacheNotifier. MutationDetail— view-model entity derived fromMutationEventfor 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). providerdependency forChangeNotifier-based state wiring.- Initial package scaffold.