flutter_agent_lens 1.7.2
flutter_agent_lens: ^1.7.2 copied to clipboard
Agent-first MCP server to debug, profile, and optimize running Flutter apps.
1.7.2 #
Added #
- Added
filter_zero_deltasoptional boolean property tomemorytool'sinputSchemafor filtering zero-delta classes during heap allocation diffs.
1.7.1 #
Fixed #
- Resolved gradual target application memory growth during repeated widget tree inspections.
- Ensured background VM service stream listeners clean up properly on client disconnect.
- Fixed tool execution hangs when a target application crashes or disconnects mid-sampling (
console_logs,network,rebuild_tracking,memory,profiling). Interrupted operations now safely return partial collected data with a warning alert.
1.7.0 #
Added #
- Refactored
fetch_console_logsintoconsole_logscomposite tool supportingfetchand livewatchstream actions with filter support. - Added
watchaction tonetworkcomposite tool for streaming live HTTP traffic over a duration window withslow_threshold_msdetection. - Added
include_detailsparameter (default:false) tonetworktool actions (watch,get_profile,stop) to fetch full HTTP headers, cookies, and payload bodies. - Added
get_request_detailsaction tonetworkcomposite tool for detailed inspection of HTTP request/response headers, cookies, timing, and decoded body payloads. - Added 6 new memory tool actions (
force_gc,start_gc_stream,stop_gc_stream,get_memory_timeline,watch_gc_pressure,explain_memory_breakdown) tomemorycomposite tool.
1.6.2 #
Added #
- Added
get_navigation_stackMCP tool to inspect active routes, current URL, and nested navigator trees via the Dart VM Service.
1.6.1 #
Added #
- Added
exclude_flutter_widgetsoption (default:true) torebuild_trackingto filter out built-in framework and dependency widgets.
1.6.0 #
Changed #
- Grouped 41 granular tools into 21 action-based composite tools to reduce context token usage.
- Enabled dynamic tool registration, showing debugging tools only after establishing a connection.
- Replaced individual format parameters with a server-wide response format configuration.
Added #
- Added response limit and list size configurations (
limitandtopN) for memory, profiling, and network logs. - Added tool annotations (
readOnlyHint,destructiveHint,idempotentHint) to tool schemas.
1.5.5 #
- Replaced flaky HTTP capture stream listeners with VM Service snapshot diffing, resolving silent failures and returning 0 requests on Android/AOT runtimes.
- Added platform compatibility safety checks and fallback parsing logic for differing VM Service versions.
1.5.4 #
- Resolved memory leaks and background process accumulation when disconnecting from debug sessions.
- Lowered memory consumption during long debugging sessions by adding caps to path-resolution caches.
- Standardized tool arguments and connection schemas for more reliable tool actions (like screenshots, breakpoints, and widget trees).
- Improved port and process scanning reliability on Windows, Mac, and Linux environments.
1.5.3 #
- Filtered out system isolates when connecting to the VM service to avoid selecting non-user code.
- Implemented automatic recovery and retry logic when encountering sentinel or collected isolate ID errors.
1.5.2 #
- Deprecated and removed the redundant
dualformat option across all tools to optimize token usage.
1.5.1 #
- Split the monolithic server file into 12 separate class mixins for better maintainability.
- Consolidated the tool list in the README file.
1.5.0 #
- Subscribed to
onServiceEventbefore callingstreamListen(EventStreams.kService)inconnection_handlers.dartto resolve a VM service discovery race condition. - Routed
handleHotReloadandhandleHotRestartthrough DTD service calls if DTD is active, VM service callbacks (s1.reloadSourceswithisolateIdands1.hotRestart) if available, or isolate-level extensions as a fallback. - Added dependency on
dtdpackage to support direct Dart Tooling Daemon communication.
1.4.1 #
- Refactored and optimized internal MCP tool handlers for widget tracking, memory diffing, and network capturing.
- Parameterized location map parsers (
_parseLocationsMapand_parseNewLocationsMap) to remove local duplicates and share code across rebuild tracking handlers. - Standardized class allocation diff tables and sorted delta logic into shared helpers in
memory_handlers.dart. - Converted local size formatting (
formatSize) innetwork_handlers.dartandmemory_handlers.dartto a library-wide unified_formatByteshelper onFlutterAgentLensServer. - Consolidated rebuild tracking availability checks under
_isTrackRebuildSupported().
1.4.0 #
- Added a
formatparameter (markdown,json,dual) to verbose tools so clients can drop JSON and base64 payloads when they're not needed. get_cpu_profilenow filters out functions with 0 ticks before returning results, cutting payload size by ~99% on typical profiles.- Added
includeRawNodetoinspect_widgetandincludeRawResponsetoget_object_referrersandstop_network_capture. Both default to false, skipping large raw VM payloads unless requested. diff_heap_allocationsnow returns only the top 50 classes with allocation changes instead of the full list.stop_tracking_rebuildsandget_widget_rebuild_countscap rebuild lists to the top N active widgets.- Added
includeExtensionstoget_app_info(defaults to false). Omits the 60+ registered Flutter service extensions, saving ~3-4 KB per call. - Removed decorative separators (
===,---), markdown headings (###,**bold**), backtick wrapping, and column-alignment padding (.padLeft(),.padRight()) from all tool response output paths. Plain text labels replace them throughout. - Migrated
compare_snapshotsto the_serializeDualFormatpath, addingformatparameter support and structured JSON output. - All tool response sizes reduced by 15-40% with no semantic information removed.
1.3.0 #
- Added stateful tracking tools:
start_tracking_rebuilds/stop_tracking_rebuilds,start_profiling/stop_profiling, andstart_network_capture/stop_network_capture. - Added the
get_memory_snapshottool to list active class allocations. - Added connection warnings when a Dart Tooling Daemon (DTD) URI is passed to
connect. - Fixed hot reload and hot restart hangs by dynamically checking service namespaces.
- Fixed isolate ID and library cache clearing after a hot restart.
1.2.0 #
- Added
take_screenshottool to capture native or Skia device screenshots, with automatic fallback to native captures when Impeller is active. - Added
hot_restarttool to trigger application state resets, with improved diagnostic messages when running without a host connection. - Added
get_widget_treetool to recursively retrieve the active widget tree with local project widget filtering. - Added memory snapshot tools (
save_snapshot,compare_snapshots,list_snapshots) to cache and calculate class allocation differences.
1.1.0 #
- Added the
compare_layout_screenshotstool to capture, verify, and highlight visual differences in layout screens. - Added parameters to select the capture type (
deviceorskia) and specify target devices.
1.0.0 #
- Initial version.