qora_devtools_overlay 0.3.0
qora_devtools_overlay: ^0.3.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] #
0.3.0 - 2026-11-07 #
Fixed #
- Installable again with
qora1.x: the published 0.2.0 depended onqora: ^0.8.0, so adding the overlay to aqora_flutter1.x app failed version solving. Now depends onqora: ^1.3.0. - Requires
lucide_icons_flutter: ^3.1.25; earlier 3.1.x releases do not compile on current Flutter (IconDatabecame a final class).
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.OverlayTracker.needsSerialization: returnstrue; satisfies the newQoraTrackerinterface getter added inqora 0.9.0.OverlayTracker.onQueryFetched: now acceptsString? dependsOnKeynamed parameter (ignored : dependency graph lives in the IDE extension).
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 soTextFieldcan render focus decorations and selection handles; previously focusingQuerySearchBarthrewNo Overlay widget found.import 'package:qora/qora.dart' hide MutationEventremoved : no longer needed since core type is nowMutationUpdate.
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.