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 6 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
Fix duplicate tab instance taking over DWDS connection
PersistentWebSocket throwing unhandled errors when writing to a
connection closed by the server.Fix WebSocket protocol upgrade to wss in the DWDS injected client when served over HTTPS on non-localhost hosts.
wss in the DWDS injected client when served over HTTPS on non-localhost hosts.One column per quarter.
Bump the min sdk to 3.13.0-107.0.dev.
3.x.x.Bump the min sdk to 3.13.0-107.0.dev.
Internal only changes.
Allow package_config 3.x.x.
Fix deserialization errors appearing in the chrome console. Replace raw map for client ping checks with a proper PingRequest class and update client d
PingRequest class andAdd appName to DartDevelopmentServiceConfiguration .
appName to DartDevelopmentServiceConfiguration.dartExecutable to DartDevelopmentServiceConfiguration.fix dartExecutable passed through to dwds by @schultek in #2816
Throwing an error when reloaded sources when reloaded_sources.json is empty or null by @Markzipan in #2810
dartExecutable to DartDevelopmentServiceConfiguration. by @Markzipan in #2814Cherry-picked above changes to avoid release block by Dart 4.12. We should await its release before pinning dwds 27.1.0.
Replace package:uuid dependency with internal Uuid class for generating version 4 UUIDs.
package:uuid dependency with internal Uuid class for generating version 4 UUIDs.dwds/test/integration/instances.AppDebugServices.HotRestartRequest in AppConnection.DebugConnection did not complete onDone if WebkitDebugger fails to reconnect to the debugger after the connection closes.FormatException in ExtensionDebugger by making ExtensionEvent.fromJson robust to missing headers and Map-typed params.StateError in DwdsInjector during AOT execution by bundling client.js as a statically compiled asset.Remove package:built_value, package:built_value_generator, and package:built_collection dependencies.
package:built_value, package:built_value_generator, and package:built_collection dependencies.serializers.dart and data_serializers.dart.package:built_value dependency from ConnectFailure, DebugStateChange, DevToolsOpener, DevToolsUrl, IsolateStart, IsolateExit, DevToolsRequest, DevToolsResponse, ExtensionRequest, ExtensionResponse, ExtensionEvent, and BatchedEvents; switch to standard Dart JSON serialization.ConnectFailure, DebugStateChange, DevToolsOpener, DevToolsUrl, DevToolsRequest, DevToolsResponse, ExtensionRequest, ExtensionResponse, ExtensionEvent, BatchedEvents and DebugInfo serialization to mimic built_value's list-based format to resolve compatibility issues with the debug extension.build, build_daemon, build_runner, build_version, build_web_compilers, and pubspec_parse dependencies, along with build.yaml which originally generated client.js using build_runner. client.js is now compiled via dart compile js in a new tool/build.dart script.RPCError when providing invalid pause_isolates_on_start values to the Chrome Proxy Service.HotRestartRequest, HotReloadResponse, HotRestartResponse, and ServiceExtensionResponse in the DevHandler.BuildRunnerDdcLibraryBundleStrategyProvider.assetHandler and assetReader in BuildRunnerStrategyProviderMixin.build_web_compilers to ^4.4.12.Remove package:built_value dependency from ErrorResponse and RegisterEvent; switch to standard Dart JSON serialization.
package:built_value dependency from ErrorResponse and RegisterEvent; switch to standard Dart JSON serialization.Remove package:built_value dependency from DebugEvent, BatchedDebugEvents, ConnectRequest, RunRequest, DebugInfo, HotReloadRequest, HotReloadResponse,
package:built_value dependency from DebugEvent, BatchedDebugEvents, ConnectRequest, RunRequest, DebugInfo, HotReloadRequest, HotReloadResponse, HotRestartRequest, HotRestartResponse, ServiceExtensionRequest, ServiceExtensionResponse and BuildResult; switch to standard Dart JSON serialization.Bump build_web_compilers to ^4.4.1.
build_web_compilers to ^4.4.1.clientFuture arg from DwdsVmClient methods.main after the hot restart.Fix issue where isolate pause events were not reported correctly when using the web socket proxy service.
Add support for DDS APIs and serving Dart DevTools when no Chrome Debugger is available.
Add support for more service APIs over websocket connections when no Chrome Debugger is available.
reloadSources and hotRestart now throw an RPC error with kServerError code when NoClientsAvailableException is caught (no browser clients are connecte
reloadSources and hotRestart now throw an RPC error with kServerError code when NoClientsAvailableException is caught (no browser clients are connected), allowing tooling to detect and handle this scenario.pause now does not send a PauseInterrupted event in
WebSocketProxyService as we didn't actually pause.Added 'scriptUri' parameter to compileExpressionToJs
reloadSources where a PauseInterrupted event was sent. - #61560dtdUri via DebugConnection.Nothing published for this version
Nothing published for this version
Deprecated spawnDds, ddsPort, and devToolsLauncher properties in DebugSettings.
DartDevelopmentServiceConfiguration to allow for configuring DDS behavior.spawnDds, ddsPort, and devToolsLauncher properties in DebugSettings.ddsConfiguration to DebugSettings.Fix issue where DebugService: Error serving requestsError: Unsupported operation: Cannot send Null would be spammed on the console.
DebugService: Error serving requestsError: Unsupported operation: Cannot send Null
would be spammed on the console.Fix issue in hot restart with the web socket where we didn't pass the reloaded sources path, resulting in a null assertion.
Fix issue where DDS would fail to initialize if DWDS already had existing clients.
Fix issue in hot restart where a hot restart with no changes followed by one with changes, a Future was completed again, resulting in a crash.
Future was completed again, resulting in a crash.Remove deprecated parameter injectDebuggingSupportCode from Dwds.start().
package:shelf_web_socket webSocketHandler() function.Breaking changes
injectDebuggingSupportCode from Dwds.start().FrontendServerDdcLibraryBundleStrategy.hotReloadSourcesUri to
reloadedSourcesUri. The file that the Uri points to should now be updated
for both a hot restart and a hot reload.Implemented a WebSocket-based communication protocol that provides essential developer tooling (hot reload, service extensions) when Chrome debugger a
WebSocketProxyService class that implements VM service protocol over WebSockets.DevHandler with useWebSocketConnection flag to toggle between Chrome-based and WebSocket-based communication protocols.Nothing published for this version
Nothing published for this version
Added support for breakpoint registering on a hot reload with the DDC library bundle format using PausePostRequests.
FrontendServerDdcLibraryBundleStrategy.hotReloadSourceUri is now expected to also provide the reloaded modules.Changed DWDS to always inject the client and added useDwdsWebSocketConnection flag to control communication protocol: when true uses socket-based impl
useDwdsWebSocketConnection flag to control communication protocol: when true uses socket-based implementation, when false uses Chrome-based communication protocol.reloadSources in ChromeProxyService and DevHandler now handle hot reload requests and responses over WebSockets.Disabled breakpoints on changed files in a hot reload. They currently do not map to the correct locations or are broken, so disable them for now. - #6
Renamed DWDS Injector parameter enableDebuggingSupport to injectDebuggingSupportCode for clearer intent.
enableDebuggingSupport to injectDebuggingSupportCode for clearer intent.Updated DWDS to include a boolean flag that enables debugging support only when set to true. #60289
The registered extension reassemble is now no longer called when calling reloadSources. Users should call reassemble using callServiceExtension.
The registered extension reassemble is now no longer called when calling
reloadSources. Users should call reassemble using callServiceExtension.
callServiceExtension now checks the runtime for the list of registered
service extensions. It also now throws a RPCError with
RPCErrorKind.kMethodNotFound when a service extension is not found instead
of throwing a JS evaluation error.
Bump minimum sdk version to 3.7.0
FrontendServerDdcLibraryBundleStrategy now takes a hotReloadSourcesUri
parameter in order to fetch the file that contains the changed sources and
libraries instead of assuming it exists in the global window.Allow clients to specify the packageConfigPath in LoadStrategy class and associated providers.
packageConfigPath in LoadStrategy class and associated providers.Added support for some debugging APIs with the DDC library bundle format. - #2566, #2573
Added support for some debugging APIs with the DDC library bundle format. - #2563
DCM version to 1.26.0-1Bump package:dds to >=4.2.5 <6.0.0.
package:dds to >=4.2.5 <6.0.0.Add support for binding DDS to a custom port.
Update to be forward compatible with changes to package:shelf_web_socket.
package:shelf_web_socket.FrontendServerDdcLibraryBundleStrategyProvider.package:vm_service_interface to '^2.0.1'.Replace deprecated JS code this.__proto__ with Object.getPrototypeOf(this). - #2500
FrontendServerDdcStrategyProvider and FrontendServerRequireStrategyProvider under a shared parent class. - #2517build_daemon_ddc_and_canary_evaluate_test. - 2512this.__proto__ with Object.getPrototypeOf(this). - #2500package:web. - #2491useModuleName option to MetadataProvider to determine whether or not
to use the provided name in a ModuleMetadata. Metadata provided by DDC
when using the library bundle format does not provide a useful bundle name.package:web v1.1.0.package:vm_service to '>=14.2.4 <16.0.0'.package:vm_service_interface to '2.0.1'.Fix bug where debugging clients are not aware of service extensions when connecting to a new web app. - #2388
pause_isolates_on_start during page-refreshes. - #2431getFlagList API. - #2438dart development-service instead of launching from package:dds. - #2466web_socket_channel: '>=2.2.0 <4.0.0'.^3.4package:vm_service_interface constraint to 2.0.0.Implement setFlag when it is called with pause_isolates_on_start. - #2373
setFlag when it is called with pause_isolates_on_start. - #2373pause_isolates_on_start is true, wait for resume to run the app's main method. - #2378Breaking changes
dart_library.js to ddc_module_loader.js to match SDK naming changes. - #2360Filter out internal type properties from the new DDC type system. - #2348
Send untruncated dart:developer logs to debugging clients. - #2333
Loosen package:vm_service constraints to allow >=13.0.0 <15.0.0. - #2329
package:vm_service constraints to allow >=13.0.0 <15.0.0. - #2329Update package:vm_service constraints to allow version 14.x.x. - #2307
package:vm_service constraints to allow version 14.x.x. - #2307Nothing published for this version
Restructure LoadStrategy to provide build settings. - #2270
LoadStrategy to provide build settings. - #2270FrontendServerLegacyStrategyProvider and update bootstrap generation logic for LegacyStrategy - #2285Class from VS Code. - #2303package:vm_service constraint to ^14.0.0. - #2307package:vm_service_interface constraint to 1.0.1. - #2307Nothing published for this version
Update package:vm_service constraint to ^13.0.0. - #2265
package:vm_service constraint to ^13.0.0. - #2265Update the interface for ChromeProxyService.getSourceReport to match the VM service. - #2235
Nothing published for this version
Update Dart SDK constraint to >=3.2.0-36.0.dev <4.0.0. - #2207
Update file dependency to >=6.0.0 < 8.0.0 - #123260.
>=6.0.0 < 8.0.0 - #123260.Require clients to specify the basePath on AssetReader. - #2160
basePath on AssetReader. - #2160>=3.1.0-254.0.dev <4.0.0. - #2169build_web_compilers version 4.0.4 - #2171resume when app is not paused. - #21887.0.0.Nothing published for this version
Fix Flutter crash due to potential null value in setUpChromeConsoleListener. - #2162
setUpChromeConsoleListener. - #2162Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →