NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #123 most downloaded on pub.dev
A service that proxies between the Chrome debug protocol and the Dart VM service protocol.
Last release 5 days ago
02 Oct 2026
Ships fairly regularly
a new release about every 5 weeks
Most releases are documented
notes for 51 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
156 releases · first in 2019
Do not show async frame errors on evaluation. - #2073
ChromeProxyService.evaluateInFrame. - #2122resume to the same error returned by the Dart VM. - #2133RPCError, same as the Dart VM. - #2144One column per quarter.
Allow clients to specify the connected app's entrypoint file. - #2047
Support new DDC temp names for patterns. - #2042
Fix failure to map JS exceptions to dart. - #2004
Cleanup getObject code for lists and maps.
getObject code for lists and maps.
0 and null count.>=3.0.0-188.0.dev <4.0.0.package:vm_service constraint to >=10.1.2 <12.0.0.package:dds constraint to ^2.7.1.BoundField.name for records.sdk_configuration.dart.test_common package.Breaking changes
sdkConfigurationProvider in ExpressionCompilerService
constructor.isFlutterApp from type bool? to type
Future<bool> Function()?.Prepare or Dart 3 alpha breaking changes:
mapExceptionStackTrace.build_web_compilers.--(no)-sound-null-safety flag to build daemon.ChromeProxyService.setExceptionPauseMode() without override.>=3.0.0-134.0.dev <4.0.0.package:vm_service constraint to >=10.1.0 <12.0.0.Breaking changes
Dwds.start to indicate whether it is running
internally or externally.Dwds.start to indicate whether it a Flutter
app or not.sdkConfigurationProvider parameter from Dwds.start.ChromeProxyService.setExceptionPauseMode().build_web_compilers constraint to ^4.0.0.build_runner constraint to ^2.4.0.Nothing published for this version
Nothing published for this version
Nothing published for this version
Allow the following API to return null and add error handling:
null and add error handling:
LoadStrategy.serverPathForModuleLoadStrategy.sourceMapPathForModuleChromeProxyService.evaluate() requests that are close in time and
are executed in the same library and scope.package:file version to 6.13 or greater to handle
https://github.com/dart-lang/sdk/issues/49647.Fix a hang and report errors on hot reload exceptions from the injected client.
AppInspector.evaluate code that has been replaced by expression
evaluation using a compiler in all scenarios.package:dwds to null safety.ChromeProxyService.getStack wait for the debugger to perform initial
resume operation. This avoids race conditions on isolate start.PackageUriMapper class to allow mapping uris to server paths.google3: uris.Breaking changes
ExpressionCompilerService.handler.assetHandler parameter from ExpressionCompilerService constructor.packageUriMapper parameter to the constructor of
FrontendServerRequireStrategyProvider.Port some dwds files to null safety.
dwds files to null safety.frontend_server_evaluate tests.flutter_tools crash when the Dart execution context cannot be found.lookupResolvedPackageUris.Update package:vm_service to 8.3.0.
package:vm_service to 8.3.0.setIsolatePauseMode method to Chrome Proxy Service.Debugger.scriptParsed events and send batches every 1000ms
to the server.batched_stream.dart into shared utilities.lookupResolvedPackageUris.Update the min SDK constraint to 2.17.0.
Add libraryFilters optional parameter to the vm service implementation of getSourceReport.
libraryFilters optional parameter to the vm service implementation of
getSourceReport.Add column information to breakpoints to allow precise breakpoint placement.
package:_fe_analyzer_shared. Note: this removes current
incomplete support for resolving dart: uris.dart:web_sql from the list of SDK libraries as it is no longer
used.Breaking changes:
basePath parameter to FrontendServerRequireStrategy.loadLibrariesModule getter to LoadStrategy interface.Update \_fe_analyzer_shared to version ^38.0.0.
Change wording of paused overlay from "Paused in Dart DevTools" to "Paused"
SdkConfiguration and SdkConfigurationProvider classes to allow for
lazily created SDK configurations.ide query parameter to the Dart DevTools URL for analytics.vm_service version to ^8.2.0.screen field to the DebuggerReady event.DebuggerReady events for DevTools embedded into Chrome Devtools.CallFrame.url after update to Chrome 100.Breaking changes:
Dwds.start and ExpressionCompilerService now take
sdkConfigurationProvider argument instead of separate SDK-related file
paths.Nothing published for this version
Update \_fe_analyzer_shared to version ^34.0.0.
Implement lookupResolvedPackageUris and lookupPackageUris vm service API.
lookupResolvedPackageUris and lookupPackageUris vm service API.vm_service version to ^8.1.0.ExpressionCompilerService infer location of libraries.json from
sdkDir parameter.dartEmitDebugEvents was set as a String instead of bool
in the injected client.libraries.json.'dart.developer.registerExtension' and
'dart.developer.postEvent' events from the chrome console. These messages
haven't been written to the console since dwds v11.1.0 and Dart SDK v2.14.0._fe_analyzer_shared version to 33.0.0>=2.16.0.Breaking changes:
sdkDir and librariesPath arguments to Dwds.start to help file
resolution for sdk uris.emitDebugEvents argument to Dwds.start to suppress emitting debug
events from the injected client.sdkRoot parameter by sdkDir in ExpressionCompilerService.Nothing published for this version
Update SDK constraint to >=2.15.0 <3.0.0.
>=2.15.0 <3.0.0.Support hot restart in a multi-app scenario with legacy modules.
Support hot restart in a multi-app scenario with legacy modules.
$dartHotRestart in the injected client to $dartHotRestartDwds.$dartHotRestartDwds take a runId.runId restart at the same time once.Note that multi-app scenario is currently only supported for legacy modules, used by DDR, and is not yet supported for amd modules that are used by flutter tools and webdev.
Fix chrome detection in iPhone emulation mode in chrome or edge browsers.
Reliably find unused port for extension backend http service.
Ignore offset / count parameters in getObject if the object has no length.
Include static member information for classes.
Fix duplicated scripts returned by VmService.getScripts API.
VmService.getScripts API.ext.dwds.sendEvent service extension to dwds so other tools can send
events to the debugger. Event format:{
'type': '<event type>',
'payload': {
'screen: '<screen name>',
'action: '<action name>'
}
}
Currently supported event values:{
'type: 'DevtoolsEvent',
'payload': {
'screen': 'debugger',
'action': 'pageReady'
}
}
Update SDK constraint to >=2.14.0 <3.0.0
>=2.14.0 <3.0.0vm_service version 7.3.0.Fix race causing intermittent Aww, snap errors on starting debugger with multiple breakpoints in source.
Aww, snap errors on starting debugger with
multiple breakpoints in source.Depend on vm_service version 7.2.0.
dds version 2.1.1.vm_service version 7.2.0.Recover from used port errors when starting debug service.
2.13.0.Throw SentinelException instead of RPCError on vm service API on unrecognized isolate.
SentinelException instead of RPCError on vm service API on
unrecognized isolate.RPCError in getStack if the application is not paused.dart:ui library when debugging flutter apps.Return empty library from ChromeProxyService.getObject for libraries present in metadata but not loaded at runtime.
ChromeProxyService.getObject for libraries present
in metadata but not loaded at runtime.ChromeProxyService.evaluate.build_web_compilers version 3.0.0 so current version of dwds could
be used with SDK stable 2.13.x versions.Update versions of package:sse, package:vm_service, package:dds.
package:sse, package:vm_service, package:dds.Implement _flutter.listViews extension method in dwds vm client.
_flutter.listViews extension method in dwds vm client.Make adding and removing breakpoints match VM behavior:
RPCError when removing non-existent breakpoints.Do not send kServiceExtensionAdded events to subscribers on the terminating isolate during hot restart.
kServiceExtensionAdded events to subscribers on the terminating
isolate during hot restart.vm_service version 6.2.0.getObject() calls.rootLib returned by ChromeProxyService.Breaking changes:
Dwds.start no longer supports automatically injecting a devtools server. A
devtoolsLauncher callback must be provided to support launching devtools.Support webkit_inspection_protocol version ^1.0.0.
webkit_inspection_protocol version ^1.0.0.Support VMService.evaluate using expression compiler.
VMService.evaluate using expression compiler.>=2.13.0-144.0.dev.RPCError on evaluation if the program is not paused.ErrorRef returned by evaluation in analytics.Breaking changes:
ExpressionCompiler.initialize method to include module format.LoadStrategy.moduleFormat to be used for communicating current module
format to the expression compiler.Support authentication endpoint for the Dart Debug Extension.
useSseForInjectedClient: false to Dwds.start(). Unlike SSE, WebSockets do
not currently support keepAlives here (beyond the standard WebSocket pings to
keep the socket alive).Fix an issue where relative worker paths provided to the ExpressionCompilerService would cause a crash.
ExpressionCompilerService would cause a crash.package:sse.DwdsEvents around stepping and evaluation.package:vm_service version 6.1.0+1.keepAlive configs to prevent accidental reuse of a connection
after stopping a debug session.Alt + d with
enableDevtoolsLaunch.Breaking changes:
LoadStrategys now require a moduleInfoForEntrypoint.Fix an issue where failed hot restarts would hang indefinitely.
Change ExpressionCompiler to accept FutureOr port configuration.
ExpressionCompiler to accept FutureOr<int> port configuration.package:vm_service version 6.0.1-nullsafety.1.Support null safe versions of package:crypto, package:uuid and package:webdriver.
package:crypto, package:uuid and
package:webdriver.Improve logging around execution contexts.
ExpressionCompiler to include new initialize method which has a
parameter for the null safety mode.ExpressionCompilerService to change how it is instantiated and
implement the new initialize method.package:vm_service version 6.0.1-nullsafety.0.Breaking changes:
ExpressionCompiler.updateDependencies method to include module
summary pathsProperly handle requireJS errors during hot restarts.
requireJS errors during hot restarts.skipLists support serves the same
purpose.libraries.json file and emit severe error.Fix a potential null issue while resuming.
package:vm_service.ExpressionCompilerService.startWithPlatform API to enable running
expression compiler worker from a given location.skipLists to improve stepping performance.AbsoluteImportUriException.package:vm_service which supports a new limit
parameter to getStack.Depend on the latest package:sse.
package:sse.hotRestart, fullReload and entrypoint
injection.Add support for the Dart Development Service (DDS). Introduces 'single client mode', which prevents additional direct connections to DWDS when DDS is
2.0.0. Support reading metadata versions
2.0.0 and 1.0.0.ProxyServerAssetReader.build_web_compilers would cause missing module
assets (JavaScript code and source maps).ExpressionCompilationService class that runs ddc in worker mode to
support expression evaluation for clients that use build systems to build the
code.devtools and devtools_server version 0.9.2.dds version 1.4.1.build_web_compilers version 2.12.0.>=2.10.0.MetadataProvider to throw an AbsoluteImportUriException when
absolute file paths are used in an import uri.Breaking changes:
ExpressionCompiler to require a new updateDependencies method.LoadStrategy APIs to remove heuristics and rely on the
MetadataProvider.LogWriter and corresponding verbose argument but
instead properly use package:logger.FrontendServerRequireStrategyProvider now requires a digestProvider.Remove deprecated parameter restoreBreakpoints as breakpoints are now set by regex URL and Chrome automatically reestablishes them.
package:devtools and package:devtools_server.useSseForDebugBackend: false to Dwds.start()dev_compiler from file to supply module
information to Dwds.Breaking Changes:
.ddc_merged_metadata file.restoreBreakpoints as breakpoints are now set by
regex URL and Chrome automatically reestablishes them.Nothing published for this version
Breaking change AssetReader now requires a metadataContents implementation.
-32601.AssetReader now requires a metadataContents
implementation.Fixed issue where getSupportedProtocols would return the wrong protocol.
getSupportedProtocols would return the wrong protocol.Pin the package:vm_service version to prevent unintended breaks.
package:vm_service version to prevent unintended breaks.Fix an issue where the injected client served under https assumed the corresponding SSE handler was also under https.
https assumed the
corresponding SSE handler was also under https.Gracefully handle multiple injected clients on a single page.
package:vm_service and use more RPCError error codes on
call failures.require_restarter to rerun main after a hot restart to align with
the legacy strategy. We therefore no longer send a RunRequest after a hot
restart.streamListen to return an RPCError / error code -32601 for
streams that are not handled.exception field in debugger pause event when we break as a
result of an exception.getMemoryUsage() call.Change the reported names for isolates to be more terse.
getSourceReport().getClassList and
reloadSources methods to -32601 ('method does not exist / is not
available').Depend on latest package:sse version 3.5.0.
package:sse version 3.5.0.Support the latest version of package:shelf_packages_handler.
package:shelf_packages_handler.Fix an issue in JS to Dart location translation in ExpressionEvaluator. JS location returned from Chrome is 0-based, adjusted to 1-based.
ExpressionEvaluator. JS
location returned from Chrome is 0-based, adjusted to 1-based.Drop dependency on package_resolver and use package_config instead.
package_resolver and use package_config instead.>=2.7.0.Depend on the latest package:vm_service version 4.0.0.
package:vm_service version 4.0.0.Breaking Changes:
LoadStrategy for module information:
Your coding agent can read these notes before it upgrades. Set up the MCP server →