## 2.16.0
* Prepare for 2.16.0 release [#4311](https://github.com/flutter/devtools/pull/4311)
* Fix shader time calculation with `shallowNodesWithCondition` TreeNode method [#4309](https://github.com/flutter/devtools/pull/4309)
* Fix bug with msText util [#4310](https://github.com/flutter/devtools/pull/4310)
* Remove dependency on memory_controller from allocation profile pane [#4301](https://github.com/flutter/devtools/pull/4301)
* Adding deferred indicator on the treemap [#4297](https://github.com/flutter/devtools/pull/4297)
* Class display [#4256](https://github.com/flutter/devtools/pull/4256)
* Initial implementation of `VmCodeDisplay` in program explorer [#4280](https://github.com/flutter/devtools/pull/4280)
* Make tabs on memory screen looking nicer [#4291](https://github.com/flutter/devtools/pull/4291)
* Add steps to detect memory leaks for dart app [#4292](https://github.com/flutter/devtools/pull/4292)
* Improve `msText` util to support preventing zero values [#4298](https://github.com/flutter/devtools/pull/4298)
* Remove deprecated experimental invariant_booleans lint rule [#4294](https://github.com/flutter/devtools/pull/4294)
* Deferred nodes are gray scaled on TreeMap [#4296](https://github.com/flutter/devtools/pull/4296)
* TreeMap opens directly to main root for deferred apps [#4286](https://github.com/flutter/devtools/pull/4286)
* Refactor performance code for better organization [#4293](https://github.com/flutter/devtools/pull/4293)
* Make UI jank hints aware of the enhance tracing state for a frame [#4288](https://github.com/flutter/devtools/pull/4288)
* Package Directory Interface [#4251](https://github.com/flutter/devtools/pull/4251)
* Deferred Info UI TreeTable Update [#4278](https://github.com/flutter/devtools/pull/4278)
* Add EnhanceTracingController and show enhance tracing dialog from button in hint [#4281](https://github.com/flutter/devtools/pull/4281)
* Cleanup some theming for IconLabelButton [#4282](https://github.com/flutter/devtools/pull/4282)
* Update project.pbxproj [#4277](https://github.com/flutter/devtools/pull/4277)
* Initial implementation of `AllocationProfileTableView` [#4257](https://github.com/flutter/devtools/pull/4257)
* Support parsing the following ANSI styles [#4271](https://github.com/flutter/devtools/pull/4271)
* Fix regression where value of `ColumnData.supportsSorting` was not respected [#4275](https://github.com/flutter/devtools/pull/4275)
* Adding feature flag for deferred loading [#4272](https://github.com/flutter/devtools/pull/4272)
* Unskip inspector golden tests [#4269](https://github.com/flutter/devtools/pull/4269)
* Connect the TreeTable and TreeMap [#4226](https://github.com/flutter/devtools/pull/4226)
* Bump pinned flutter version to latest beta [#4268](https://github.com/flutter/devtools/pull/4268)
* Ran `dart fix` to resolve new analysis warnings introduced by `package:vm_service` [#4267](https://github.com/flutter/devtools/pull/4267)
* Show/edit list of snapshots [#4260](https://github.com/flutter/devtools/pull/4260)
* Add hints for expensive operations to the Frame Analysis view [#4261](https://github.com/flutter/devtools/pull/4261)
* Address UX review comments [#4262](https://github.com/flutter/devtools/pull/4262)
* Debugger bugs [#4248](https://github.com/flutter/devtools/pull/4248)
* Add analytics to all documentation links [#4259](https://github.com/flutter/devtools/pull/4259)
* Clean up TODO to remove iOS profiling workaround message [#4258](https://github.com/flutter/devtools/pull/4258)
* Create scaffold for memory diff pane [#4255](https://github.com/flutter/devtools/pull/4255)
* Move utility method to primitives [#4254](https://github.com/flutter/devtools/pull/4254)
* Fix accidental double-padding around GroupColumnSpacer [#4253](https://github.com/flutter/devtools/pull/4253)
* Provide the InspectorController through package:provider [#4244](https://github.com/flutter/devtools/pull/4244)
* Increase timeout on failing eval_integration_test [#4252](https://github.com/flutter/devtools/pull/4252)
* Create MemoryChartPaneController [#4243](https://github.com/flutter/devtools/pull/4243)
* Change formatting for file name to make it sortable by time and the time recognizable by human [#4242](https://github.com/flutter/devtools/pull/4242)
* Exclude WeakProperty from retaining path and validate library [#4247](https://github.com/flutter/devtools/pull/4247)
* Minor improvements for leak tracker [#4246](https://github.com/flutter/devtools/pull/4246)
* Analyze and report leaks. [#4236](https://github.com/flutter/devtools/pull/4236)
* Update leak tracking doc [#4240](https://github.com/flutter/devtools/pull/4240)
* Remove unused var from CpuProfileFlameChart [#4239](https://github.com/flutter/devtools/pull/4239)
* Update LEAK_TRACKING.md [#4235](https://github.com/flutter/devtools/pull/4235)
* Receive leak summary reports [#4223](https://github.com/flutter/devtools/pull/4223)

## 2.15.0
* Add VM object inspector [#4195](https://github.com/flutter/devtools/pull/4195)
* Added edge case when popping history on a one-item stack [#4230](https://github.com/flutter/devtools/pull/4230)
* Bump github/codeql-action from 2.1.14 to 2.1.15 [#4229](https://github.com/flutter/devtools/pull/4229)
* Fixes 2 bugs that were happening in the VM tools tabs [#4215](https://github.com/flutter/devtools/pull/4215)
* Restored all other files and edited codeview.dart [#4187](https://github.com/flutter/devtools/pull/4187)
* Fix Scrollbar error with ProgramExplorer [#4228](https://github.com/flutter/devtools/pull/4228)
* Add custom dimension for g3 username [#4221](https://github.com/flutter/devtools/pull/4221)
* Update Scorecard-actions to address workflow failure [#4219](https://github.com/flutter/devtools/pull/4219)
* Remove Flutter environment dependency from Performance Controller tests [#4216](https://github.com/flutter/devtools/pull/4216)
* Add support for column groups in tables [#4214](https://github.com/flutter/devtools/pull/4214)
* Bump github/codeql-action from 2.1.12 to 2.1.14 [#4212](https://github.com/flutter/devtools/pull/4212)
* Create tab 'Leaks' [#4211](https://github.com/flutter/devtools/pull/4211)
* Separate memory chart related code to a dedicated folder [#4199](https://github.com/flutter/devtools/pull/4199)
* Make auto-snapshotting configurable - [#4200](https://github.com/flutter/devtools/pull/4200)
* Some renamings in preferences [#4198](https://github.com/flutter/devtools/pull/4198)
* Copy Network Response [#4190](https://github.com/flutter/devtools/pull/4190)
* Comment out Flaky dependency tests for now [#4204](https://github.com/flutter/devtools/pull/4204)
* Bump flutter version to latest beta [#4194](https://github.com/flutter/devtools/pull/4194)
* Add layer outlines to the raster metrics tab in the performance view [#4192](https://github.com/flutter/devtools/pull/4192)
* Set displayRefreshRate from offline performance data imports [#4189](https://github.com/flutter/devtools/pull/4189)
* Fix a couple of exceptions [#4186](https://github.com/flutter/devtools/pull/4186)
* Enable sort_child_properties_last lint [#4124](https://github.com/flutter/devtools/pull/4124)
* Small Improvements to generate_code script [#4180](https://github.com/flutter/devtools/pull/4180)
* Removing Retry Logic [#4178](https://github.com/flutter/devtools/pull/4178)
* Migrate ThemeData.toggleableActiveColor [#4149](https://github.com/flutter/devtools/pull/4149)
* Fix Slow Event Log Scrolling for large # of events [#4175](https://github.com/flutter/devtools/pull/4175)
* Add isolate selection support to memory screen + other minor UI fixes [#4173](https://github.com/flutter/devtools/pull/4173)
* Add `JsonViewer` widget and update formatting / highlighting of `ExpandableVariable` [#4167](https://github.com/flutter/devtools/pull/4167)
* Fix method alignment and remove manual truncation of methods [#4166](https://github.com/flutter/devtools/pull/4166)
* Add a mixin for comparing enums by index [#4121](https://github.com/flutter/devtools/pull/4121)
* Add missing textSelectionColor for breakpoints and callstack [#4169](https://github.com/flutter/devtools/pull/4169)
* Move existing code into shared/utils for shared use in g3 [#4168](https://github.com/flutter/devtools/pull/4168)
* Bump github/codeql-action from 1.1.5 to 2.1.12 [#4165](https://github.com/flutter/devtools/pull/4165)
* Bump ossf/scorecard-action from 1.0.4 to 1.1.1 [#4164](https://github.com/flutter/devtools/pull/4164)
* Pin github actions to hash, add dependabot for actions as well [#4163](https://github.com/flutter/devtools/pull/4163)
* Fix typo in documentation [#4162](https://github.com/flutter/devtools/pull/4162)

## 2.14.1
* Bump version to 2.14.1 for devtools_shared release [#4208](https://github.com/flutter/devtools/pull/4208)
* Bump vm_service dep to 9.0.0 [#4161](https://github.com/flutter/devtools/pull/4161)

## 2.14.0
* Prepare for 2.14.0 release [#4157](https://github.com/flutter/devtools/pull/4157)
* Lookup frame id from 'Rasterizer::DoDraw' event [#4156](https://github.com/flutter/devtools/pull/4156)
* Fix formatting for memory values in heap tree view [#4153](https://github.com/flutter/devtools/pull/4153)
* Create `ProvidedControllerMixin` and use throughout DevTools [#4150](https://github.com/flutter/devtools/pull/4150)
* Add ability to copy file and package from debugger [#4147](https://github.com/flutter/devtools/pull/4147)
* Hover less [#4090](https://github.com/flutter/devtools/pull/4090)
* Test that debugging flags are never enabled in production [#4148](https://github.com/flutter/devtools/pull/4148)
* Move controls related code to a separate folder [#4136](https://github.com/flutter/devtools/pull/4136)
* Create PerformanceControllerMixin and use in performance components [#4146](https://github.com/flutter/devtools/pull/4146)
* Migrate primary of `CustomPointerScrollView` [#4117](https://github.com/flutter/devtools/pull/4117)
* Delete `memory_service.dart` [#4135](https://github.com/flutter/devtools/pull/4135)
* Fix late initialization error and remove dead code [#4134](https://github.com/flutter/devtools/pull/4134)
* Reduce area of concern for low level memory libraries and move some to `memory/primitives` [#4132](https://github.com/flutter/devtools/pull/4132)
* Update `memory_protocol.dart` [#4125](https://github.com/flutter/devtools/pull/4125)
* Recover blue dots (GC events) [#4131](https://github.com/flutter/devtools/pull/4131)
* Support connecting to apps ran with --no_dds [#4119](https://github.com/flutter/devtools/pull/4119)
* Fix typo in dart doc [#4120](https://github.com/flutter/devtools/pull/4120)
* Hide the Raster Metrics and Frame Analysis tabs for non flutter apps [#4118](https://github.com/flutter/devtools/pull/4118)
* Add devtools version and device info to github issue description [#4112](https://github.com/flutter/devtools/pull/4112)
* Add copy actions to network requests (Copy as URL, cURL) [#4113](https://github.com/flutter/devtools/pull/4113)
* Move `service_extension_widgets.dart` to `service/` dir [#4106](https://github.com/flutter/devtools/pull/4106)
* Fix casting errors on memory screen [#4104](https://github.com/flutter/devtools/pull/4104)
* Add discord channel link to DevTools about dialog [#4102](https://github.com/flutter/devtools/pull/4102)
* Upgrade package:flutter_riverpod dependency to eliminate null-safety warnings [#4089](https://github.com/flutter/devtools/pull/4089)
* Use AutomaticKeepAlive on the FlameChart widget [#4088](https://github.com/flutter/devtools/pull/4088)
* Reduce chart heights and size of flutter frame bars [#4087](https://github.com/flutter/devtools/pull/4087)
* Null safe memory case study [#4054](https://github.com/flutter/devtools/pull/4054)
* Add new optional `libraryFilters` parameter to VM service getSourceReport [#4086](https://github.com/flutter/devtools/pull/4086)
* Fix formatting in debugger exception menu [#4066](https://github.com/flutter/devtools/pull/4066)
* "More debug options" warning when in profile mode [#4075](https://github.com/flutter/devtools/pull/4075)
* Add auto complete suggestions in eval text field [#4062](https://github.com/flutter/devtools/pull/4062)

## 2.13.1
* Prepare for 2.13.1 release [#4079](https://github.com/flutter/devtools/pull/4079)
* Add "publish_to: none" to devtools_app and devtools_test pubspecs [#4077](https://github.com/flutter/devtools/pull/4077)
* Polish connection status [#4076](https://github.com/flutter/devtools/pull/4076)
* Fix breakpoint scrolling bug [#4074](https://github.com/flutter/devtools/pull/4074)
* Display flex values larger than 5 [#4055](https://github.com/flutter/devtools/pull/4055)
* Upgrade package:provider version to eliminate null safety warnings [#4065](https://github.com/flutter/devtools/pull/4065)

## 2.13.0
* Release notes in small screens [#4053](https://github.com/flutter/devtools/pull/4053)
* Bump pinned flutter version to latest Flutter Beta [#4063](https://github.com/flutter/devtools/pull/4063)
* Refactor tests into subdirectories [#4057](https://github.com/flutter/devtools/pull/4057)
* Include the footer when DevTools is embedded [#4041](https://github.com/flutter/devtools/pull/4041)
* Enable raster metrics feature by default [#4056](https://github.com/flutter/devtools/pull/4056)
* Fix nullability errors in the provider screen [#4059](https://github.com/flutter/devtools/pull/4059)
* Only check goldens on bots that run against the pinned flutter version [#4061](https://github.com/flutter/devtools/pull/4061)
* Refactor performance code [#4047](https://github.com/flutter/devtools/pull/4047)
* Update linux configuration [#4052](https://github.com/flutter/devtools/pull/4052)
* Remove the flag --no-sound-null-safety from test run [#4045](https://github.com/flutter/devtools/pull/4045)
* Test cleanup [#4048](https://github.com/flutter/devtools/pull/4048)
* Migrate some tests from unsound to sound null safety (6) [#4044](https://github.com/flutter/devtools/pull/4044)
* Add raster metrics visualizer to performance page [#4046](https://github.com/flutter/devtools/pull/4046)
* Migrate some tests from unsound to sound null safety (4) [#4036](https://github.com/flutter/devtools/pull/4036)
* Switch to using Path URL Strategy [#3585](https://github.com/flutter/devtools/pull/3585)
* Migrate some tests from unsound to sound null safety [#4034](https://github.com/flutter/devtools/pull/4034)
* Fix url_launcher dependency version [#4043](https://github.com/flutter/devtools/pull/4043)
* Remove frame analysis icon from flutter frames chart [#4032](https://github.com/flutter/devtools/pull/4032)
* Fix debugger_floating_test and others [#4030](https://github.com/flutter/devtools/pull/4030)
* Fix function signature alignment in file explorer [#4040](https://github.com/flutter/devtools/pull/4040)
* Split scaffold_test [#4035](https://github.com/flutter/devtools/pull/4035)
* Split debugger_screen_test [#4033](https://github.com/flutter/devtools/pull/4033)
* Fix logging_screen_test.dart [#4023](https://github.com/flutter/devtools/pull/4023)
* Fix spacing of items in the status line footer [#4026](https://github.com/flutter/devtools/pull/4026)
* Fix tooltip colouring for "select widget mode" [#4017](https://github.com/flutter/devtools/pull/4017)
* Split logging_screen_test [#4031](https://github.com/flutter/devtools/pull/4031)
* Add tabbed view to the performance page [#4025](https://github.com/flutter/devtools/pull/4025)
* Fix debugger_controller_test [#4020](https://github.com/flutter/devtools/pull/4020)
* Fix cpu_profiler_test and others [#4019](https://github.com/flutter/devtools/pull/4019)
* Split debugger_controller_test [#4021](https://github.com/flutter/devtools/pull/4021)
* Fix chart_test [#4018](https://github.com/flutter/devtools/pull/4018)
* Split debugger_screen_test.dart [#4015](https://github.com/flutter/devtools/pull/4015)
* Add execute permissions to refresh scripts [#4013](https://github.com/flutter/devtools/pull/4013)
* Ensure sourceLine is properly passed in all places [#4004](https://github.com/flutter/devtools/pull/4004)
* Address comments in https://github.com/flutter/devtools/pull/4009 [#4011](https://github.com/flutter/devtools/pull/4011)
* Remove unnecessary 'ignore...' [#4009](https://github.com/flutter/devtools/pull/4009)
* Add setting for tracking user-created widget builds [#4010](https://github.com/flutter/devtools/pull/4010)
* Migrate tests to null safety [#4006](https://github.com/flutter/devtools/pull/4006)
* Update file_import.dart [#4008](https://github.com/flutter/devtools/pull/4008)
* Update fake_isolate_manager.dart [#4005](https://github.com/flutter/devtools/pull/4005)
* Migrate mocks and tests to null safety [#3982](https://github.com/flutter/devtools/pull/3982)
* Update CONTRIBUTING.md [#4001](https://github.com/flutter/devtools/pull/4001)
* Clean up analytics for checkbox settings [#4000](https://github.com/flutter/devtools/pull/4000)
* Migrate some mocks to null safety [#3973](https://github.com/flutter/devtools/pull/3973)
* Isolate selector in footer bar is a `PopupMenu` instead of a `DropdownMenu` [#3989](https://github.com/flutter/devtools/pull/3989)
* Using lookupPackageUris for stack frame processedUrls [#3932](https://github.com/flutter/devtools/pull/3932)
* Fix the edit of private properties [#3990](https://github.com/flutter/devtools/pull/3990)
* Add a repository field to the pubspecs [#3992](https://github.com/flutter/devtools/pull/3992)
* Fix null safety errors across DevTools [#3983](https://github.com/flutter/devtools/pull/3983)
* Bump flutter-version to the latest beta [#3988](https://github.com/flutter/devtools/pull/3988)
* Update comment about since-tag in CHANGELOG generator [#3979](https://github.com/flutter/devtools/pull/3979)
* Prepare for `2.13.0-dev.1 release` [#3978](https://github.com/flutter/devtools/pull/3978)
* Update CONTRIBUTING.md [#3981](https://github.com/flutter/devtools/pull/3981)
* Move shared profiler code to profiler_utils.dart [#3977](https://github.com/flutter/devtools/pull/3977)
* Set same-site cookie for Google Analytics [#3975](https://github.com/flutter/devtools/pull/3975)
* Create ProfilableDataMixin and generalize bottom up transformer code [#3976](https://github.com/flutter/devtools/pull/3976)
* Migrate remaining in dev_tools lib to null safety [#3971](https://github.com/flutter/devtools/pull/3971)
* Migrate provider screen to null-safety [#3915](https://github.com/flutter/devtools/pull/3915)
* Move getCpuProfileTimeline from VmServiceWrapper to CpuProfileModel [#3946](https://github.com/flutter/devtools/pull/3946)
* Migrate the debugger panel to null-safety [#3927](https://github.com/flutter/devtools/pull/3927)
* Move dwds pageReady event in the inspector [#3963](https://github.com/flutter/devtools/pull/3963)
* Add enhance tracing hints to the frame analysis view [#3959](https://github.com/flutter/devtools/pull/3959)
* Removing gradle-wrapper.jar file [#3947](https://github.com/flutter/devtools/pull/3947)
* Add scorecards to devtools repo [#3900](https://github.com/flutter/devtools/pull/3900)
* Add lint to handle trailing comnmas [#3943](https://github.com/flutter/devtools/pull/3943)
* Handle more than 100 commits in the changelog generator [#3938](https://github.com/flutter/devtools/pull/3938)
* Change file explorer icon in to folder [#3944](https://github.com/flutter/devtools/pull/3944)
* Migrate inspector to null safety [#3928](https://github.com/flutter/devtools/pull/3928)

## 2.12.2
* Prep for 2.12.2 cherrypick release [#3961](https://github.com/flutter/devtools/pull/3961)
* Recover from missing trace events [#3960](https://github.com/flutter/devtools/pull/3960)
* Only send the dwds event when the service is registered [#3953](https://github.com/flutter/devtools/pull/3953)
* Add analytics to track inspector tree first load time [#3924](https://github.com/flutter/devtools/pull/3924)
* Update changelog for 2.12.2 [#3962](https://github.com/flutter/devtools/pull/3962)

## 2.12.1
* Fix null safety errors and prep for 2.12.1 release [#3939](https://github.com/flutter/devtools/pull/3939)

## 2.12.0
* Prep for 2.12.0 release [#3937](https://github.com/flutter/devtools/pull/3937)
* Add documentation links to More Debugging Options menu [#3936](https://github.com/flutter/devtools/pull/3936)
* Add documentation links to Enhance Tracing options [#3934](https://github.com/flutter/devtools/pull/3934)
* Add scrolling support to all hover cards [#3923](https://github.com/flutter/devtools/pull/3923)
* Migrate inspector ui to null safety [#3895](https://github.com/flutter/devtools/pull/3895)
* Refactor script caching logic out of `DebuggerController` into `ScriptManager` [#3914](https://github.com/flutter/devtools/pull/3914)
* Update bots.sh to fix build for web [#3913](https://github.com/flutter/devtools/pull/3913)
* Remove service protocol version checks in DevTools [#3907](https://github.com/flutter/devtools/pull/3907)
* Add flag --no-sound-null-safety to instructions and goldens [#3909](https://github.com/flutter/devtools/pull/3909)
* Add a ga hit when an inspector tree node is selected [#3906](https://github.com/flutter/devtools/pull/3906)
* Add additional variants of inspector goldens to prevent test flakes [#3905](https://github.com/flutter/devtools/pull/3905)
* Bump minimum dart sdk version to 2.15.0 [#3904](https://github.com/flutter/devtools/pull/3904)
* Update to the latest flutter beta [#3894](https://github.com/flutter/devtools/pull/3894)
* Fix null-safety related errors in tests [#3903](https://github.com/flutter/devtools/pull/3903)
* Migrate tests t-w to null safety [#3890](https://github.com/flutter/devtools/pull/3890)
* Migrate tests f-i to null safety [#3887](https://github.com/flutter/devtools/pull/3887)
* Migrate layout_explorer, matchers and provider tests to null safety [#3872](https://github.com/flutter/devtools/pull/3872)
* Migrate tests p-s to null safety [#3889](https://github.com/flutter/devtools/pull/3889)
* Migrate tests l-n to null safety [#3888](https://github.com/flutter/devtools/pull/3888)
* Migrate tests a-c to null safety [#3883](https://github.com/flutter/devtools/pull/3883)
* Migrate ansi_up_test to null safety [#3885](https://github.com/flutter/devtools/pull/3885)
* Migrate memory_screen to null safety [#3893](https://github.com/flutter/devtools/pull/3893)
* Migrate test data and infra to null safety [#3873](https://github.com/flutter/devtools/pull/3873)
* Fix noisy test logs on flutter driver tests [#3901](https://github.com/flutter/devtools/pull/3901)
* Service worker should not claim other clients on activate [#3899](https://github.com/flutter/devtools/pull/3899)
* Migrate diagnostics_node to null safety [#3892](https://github.com/flutter/devtools/pull/3892)
* Migrate test utils to null safety. [#3882](https://github.com/flutter/devtools/pull/3882)
* Migrate networking screen to null safety [#3880](https://github.com/flutter/devtools/pull/3880)
* Migrate memory_heap_tree_view.dart to null safety [#3881](https://github.com/flutter/devtools/pull/3881)
* Migrate breadcrumb to null safety [#3891](https://github.com/flutter/devtools/pull/3891)
* Migrate inspector_service to null safety [#3854](https://github.com/flutter/devtools/pull/3854)
* Migrate test fixtures to null safety [#3870](https://github.com/flutter/devtools/pull/3870)
* Migrate tests d-e to null safety [#3884](https://github.com/flutter/devtools/pull/3884)
* Update bots to run tests with --no-sound-null-safety [#3886](https://github.com/flutter/devtools/pull/3886)
* Send pageReady event to dwds from Inspector page [#3834](https://github.com/flutter/devtools/pull/3834)
* Migrate instance_viewer and integration tests to null safety [#3871](https://github.com/flutter/devtools/pull/3871)
* Migrate inspector ui primitives to null safety [#3855](https://github.com/flutter/devtools/pull/3855)
* Migrate memory_charts.dart to null safety [#3853](https://github.com/flutter/devtools/pull/3853)
* Migrate memory_instance_tree_view.dart to null safety [#3852](https://github.com/flutter/devtools/pull/3852)
* Migrate log screen to null safety [#3857](https://github.com/flutter/devtools/pull/3857)
* Migrate `app_size/` code to null safety [#3866](https://github.com/flutter/devtools/pull/3866)
* Migrate `performance/` code to null safety [#3848](https://github.com/flutter/devtools/pull/3848)
* Migrate _message_column.dart to null safety [#3851](https://github.com/flutter/devtools/pull/3851)
* Migrate _log_details.dart to null safety [#3838](https://github.com/flutter/devtools/pull/3838)
* Update table_data.dart [#3847](https://github.com/flutter/devtools/pull/3847)
* Fix casting errors [#3849](https://github.com/flutter/devtools/pull/3849)
* Migrate memory_heap_treemap.dart to null safety [#3840](https://github.com/flutter/devtools/pull/3840)
* Delete flutter_widget.dart [#3846](https://github.com/flutter/devtools/pull/3846)
* Migrate memory_events_pane.dart to null safety [#3844](https://github.com/flutter/devtools/pull/3844)
* Migrate memory_android_chart.dart to null safety [#3845](https://github.com/flutter/devtools/pull/3845)
* Migrate memory_analyzer to null safety [#3843](https://github.com/flutter/devtools/pull/3843)
* Convert memory_vm_chart to null safety [#3841](https://github.com/flutter/devtools/pull/3841)
* Update memory_filter.dart [#3842](https://github.com/flutter/devtools/pull/3842)
* Migrate memory_snapshot_models.dart to null safety [#3824](https://github.com/flutter/devtools/pull/3824)
* Columns [#3836](https://github.com/flutter/devtools/pull/3836)
* Export `Storage` class and create new `MockStorage` class for testing [#3837](https://github.com/flutter/devtools/pull/3837)
* Migrate memory_filter.dart to null safety [#3831](https://github.com/flutter/devtools/pull/3831)
* Migrate memory_tracker_model to null safety [#3830](https://github.com/flutter/devtools/pull/3830)
* Split logging_screen [#3833](https://github.com/flutter/devtools/pull/3833)
* Migrate screens/profiler code to null safety [#3829](https://github.com/flutter/devtools/pull/3829)
* Migrate memory_allocation_table_view.dart to null safety [#3822](https://github.com/flutter/devtools/pull/3822)
* Migrate logging_controller.dart to null safety [#3804](https://github.com/flutter/devtools/pull/3804)
* Migrate memory_allocation_table_data.dart to null safety [#3821](https://github.com/flutter/devtools/pull/3821)
* Migrate memory_graph_model.dart to null safety [#3820](https://github.com/flutter/devtools/pull/3820)
* Migrate memory_protocol.dart to null safety [#3815](https://github.com/flutter/devtools/pull/3815)
* Move shared code into devtools_shared [#3827](https://github.com/flutter/devtools/pull/3827)
* Migrate VM Tools screens to be null safe [#3818](https://github.com/flutter/devtools/pull/3818)
* Migrate memory_timeline to null safety [#3819](https://github.com/flutter/devtools/pull/3819)
* Update chart_controller.dart [#3817](https://github.com/flutter/devtools/pull/3817)
* Migrate isolate_manager to null safety [#3792](https://github.com/flutter/devtools/pull/3792)
* Remove internal Flutter Web warning [#3816](https://github.com/flutter/devtools/pull/3816)
* Migrate memory_controller.dart to null safety [#3795](https://github.com/flutter/devtools/pull/3795)
* Migrate chart.dart to null safety [#3796](https://github.com/flutter/devtools/pull/3796)
* Update vm_service_logger.dart [#3798](https://github.com/flutter/devtools/pull/3798)
* Migrate http_request_data.dart to null safety [#3779](https://github.com/flutter/devtools/pull/3779)

## 2.11.4
* Prep for 2.11.4 release [#3810](https://github.com/flutter/devtools/pull/3810)
* Fix bug with release notes viewer [#3811](https://github.com/flutter/devtools/pull/3811)
* Try downgraded patch versions until we find release notes [#3809](https://github.com/flutter/devtools/pull/3809)
* Add instructions and functionality for testing new release notes [#3803](https://github.com/flutter/devtools/pull/3803)
* Fix null assertion in profile mode [#3808](https://github.com/flutter/devtools/pull/3808)

## 2.11.3
* Check for CHROME_PATH env variable in devtools_shared [#3805](https://github.com/flutter/devtools/pull/3805)

## 2.11.2
* Prep for 2.11.2 release [#3791](https://github.com/flutter/devtools/pull/3791)
* Migrate chart_trace.dart to null safety [#3782](https://github.com/flutter/devtools/pull/3782)
* Fix selection issue if file is already visible in program explorer [#3794](https://github.com/flutter/devtools/pull/3794) 
* Automatic scrolling in the Program Explorer [#3786](https://github.com/flutter/devtools/pull/3786)
* Migrate analytics code to null-safety [#3790](https://github.com/flutter/devtools/pull/3790)
* Migrate isolate_state.dart to null safety [#3781](https://github.com/flutter/devtools/pull/3781)
* Migrate memory_service.dart to null safety [#3783](https://github.com/flutter/devtools/pull/3783)
* Update wrappers.dart [#3785](https://github.com/flutter/devtools/pull/3785)
* Fix type warnings from GA [#3789](https://github.com/flutter/devtools/pull/3789)
* Add missing custom dimensions to GTag exceptions [#3787](https://github.com/flutter/devtools/pull/3787)
* Add missing analytics screen event for Provider page [#3788](https://github.com/flutter/devtools/pull/3788)
* Migrate test utils to null safety [#3784](https://github.com/flutter/devtools/pull/3784)
* Move vm_developer to screens [#3778](https://github.com/flutter/devtools/pull/3778)
* Migrate conditional_screen.dart to null safety [#3736](https://github.com/flutter/devtools/pull/3736)
* Migrate drag_and_drop to null safety [#3744](https://github.com/flutter/devtools/pull/3744)
* Split isolate_manager to simplify migration to null safety [#3765](https://github.com/flutter/devtools/pull/3765)
* Migrate flame_chart to null safety [#3738](https://github.com/flutter/devtools/pull/3738)
* Migrate import_export to null safety [#3749](https://github.com/flutter/devtools/pull/3749)
* Migrate notifications to null saftety [#3751](https://github.com/flutter/devtools/pull/3751)
* Convert server to null safety [#3752](https://github.com/flutter/devtools/pull/3752)
* Migrate info_controller to null safety [#3742](https://github.com/flutter/devtools/pull/3742)
* Migrate treemap.dart to null safety [#3739](https://github.com/flutter/devtools/pull/3739)
* Migrate chart_controller to null safety [#3737](https://github.com/flutter/devtools/pull/3737)
* Migrate service_extension_manager.dart to null safety [#3730](https://github.com/flutter/devtools/pull/3730)
* Migrate filter.dart to null safety [#3734](https://github.com/flutter/devtools/pull/3734)
* Migrate framework_initialize to null safety [#3746](https://github.com/flutter/devtools/pull/3746)
* Migrate sse to null safety [#3753](https://github.com/flutter/devtools/pull/3753)
* Migrate file to null safety [#3745](https://github.com/flutter/devtools/pull/3745)
* Convert url to null safety [#3754](https://github.com/flutter/devtools/pull/3754)
* Convert extension_points to null safety [#3755](https://github.com/flutter/devtools/pull/3754)
* Migrate host_platform to null safety [#3747](https://github.com/flutter/devtools/pull/3747)
* Migrate ide_theme to null safety [#3748](https://github.com/flutter/devtools/pull/3748)
* Migrate devtools_test to unsound null safety [#3763](https://github.com/flutter/devtools/pull/3763)
* Use mouse to select files in file opener [#3758](https://github.com/flutter/devtools/pull/3758)
* Migrate launch_url.dart to null safety [#3750](https://github.com/flutter/devtools/pull/3750)
* Migrate framework_core to null safety [#3743](https://github.com/flutter/devtools/pull/3743)
* Update http_service.dart [#3741](https://github.com/flutter/devtools/pull/3741)
* Migrate http to null safety [#3740](https://github.com/flutter/devtools/pull/3740)
* Migrate table.dart to null safety [#3686](https://github.com/flutter/devtools/pull/3686)
* Move screen related code to the folder 'screens' [#3733](https://github.com/flutter/devtools/pull/3733)
* Update service_extension_widgets.dart [#3735](https://github.com/flutter/devtools/pull/3735)
* Migrate icons.dart to null safety [#3724](https://github.com/flutter/devtools/pull/3724)
* Migrate service_extension_widgets.dart to null safety [#3722](https://github.com/flutter/devtools/pull/3722)
* Update hover.dart [#3725](https://github.com/flutter/devtools/pull/3725)
* Migrate service_manager to null safety [#3729](https://github.com/flutter/devtools/pull/3729)
* Migrate tab.dart to null safety [#3721](https://github.com/flutter/devtools/pull/3721)
* Migrate label to null safety [#3723](https://github.com/flutter/devtools/pull/3723)
* Migrate vm_flag_widgets.dart to null safety [#3720](https://github.com/flutter/devtools/pull/3720)
* Migrate gtags.dart to null safety [#3726](https://github.com/flutter/devtools/pull/3726)
* Migrate vm_service_wrapper.dart to null safety [#3714](https://github.com/flutter/devtools/pull/3714)
* Add line numbers to CPU stack frame uris [#3718](https://github.com/flutter/devtools/pull/3718)
* Migrate search and utils to null safety [#3713](https://github.com/flutter/devtools/pull/3713)
* Migrate colors.dart to null safety [#3715](https://github.com/flutter/devtools/pull/3715)
* Migrate utils.dart to null safety [#3689](https://github.com/flutter/devtools/pull/3689)
* Migrate tree.dart to null safety [#3688](https://github.com/flutter/devtools/pull/3688)
* Move service related functionality to separate folder [#3708](https://github.com/flutter/devtools/pull/3708)
* Remove double loop when initializing thread names [#3707](https://github.com/flutter/devtools/pull/3707)
* Fix tag_version script [#3706](https://github.com/flutter/devtools/pull/3706)
* Keep mapping of thread ids to thread names up to date [#3603](https://github.com/flutter/devtools/pull/3603)
* Migrate vm_flags.dart to null safety [#3690](https://github.com/flutter/devtools/pull/3690)

## 2.11.1
* Prep for 2.11.1 release [#3717](https://github.com/flutter/devtools/pull/3717)
* Update CLI test driver with correct Dart VM Service prefix string [#3716](https://github.com/flutter/devtools/pull/3716)

## 2.11.0
* Fix some issues preventing the google3 roll [#3702](https://github.com/flutter/devtools/pull/3702)
* Update the generate_changelog tool [#3698](https://github.com/flutter/devtools/pull/3698)
* Remove dependency on package:pedantic [#3697](https://github.com/flutter/devtools/pull/3697)
* Changes to enable devtools server tests to run on DDS [#3696](https://github.com/flutter/devtools/pull/3696)
* Add inspector tab switch analytics and fix regression with network screen tabs [#3694](https://github.com/flutter/devtools/pull/3694)
* Migrate table_data.dart to null safety [#3685](https://github.com/flutter/devtools/pull/3685)
* Migrate survey.dart to null safety [#3684](https://github.com/flutter/devtools/pull/3684)
* Make fractions final [#3693](https://github.com/flutter/devtools/pull/3693)
* Migrate split.dart to null safety [#3682](https://github.com/flutter/devtools/pull/3682)
* Update debugger_controller.dart [#3692](https://github.com/flutter/devtools/pull/3692)
* Migrate service.dart to null safety [#3679](https://github.com/flutter/devtools/pull/3679)
* Migrate snapshot_screen.dart to null safety [#3680](https://github.com/flutter/devtools/pull/3680)
* Migrate service_registrations.dart to null safety [#3678](https://github.com/flutter/devtools/pull/3678)
* Fix dart doc for SnapshotScreenBody class [#3681](https://github.com/flutter/devtools/pull/3681)
* Delete legacy performance code and show a warning for old flutter versions [#3676](https://github.com/flutter/devtools/pull/3676)
* Migrate service_extensions.dart to null safety [#3669](https://github.com/flutter/devtools/pull/3669)
* Migrate server_api_client.dart to null safety [#3668](https://github.com/flutter/devtools/pull/3668)
* Migrate scaffold.dart to null safety [#3666](https://github.com/flutter/devtools/pull/3666)
* Fix build_release.sh script [#3675](https://github.com/flutter/devtools/pull/3675)
* Migrate routing.dart to null safety [#3665](https://github.com/flutter/devtools/pull/3665)
* Migrate screen.dart to null safety [#3667](https://github.com/flutter/devtools/pull/3667)
* Fix enum parsing [#3672](https://github.com/flutter/devtools/pull/3672)
* Migrate notifications.dart to null safety [#3661](https://github.com/flutter/devtools/pull/3661)
* Migrate preferences to null safety [#3663](https://github.com/flutter/devtools/pull/3663)
* Remove outdated Flutter Version checks in the Inspector [#3671](https://github.com/flutter/devtools/pull/3671)
* Migrate history_viewport.dart to null safety [#3657](https://github.com/flutter/devtools/pull/3657)
* Migrate release_notes.dart to null safety [#3664](https://github.com/flutter/devtools/pull/3664)
* Remove pub warning [#3670](https://github.com/flutter/devtools/pull/3670)
* Migrate landing_screen.dart to null safety [#3659](https://github.com/flutter/devtools/pull/3659)
* Migrate eval_on_dart_library to null safety [#3654](https://github.com/flutter/devtools/pull/3654)
* Migrate initializer to null safety [#3658](https://github.com/flutter/devtools/pull/3658)
* Update navigation.dart [#3660](https://github.com/flutter/devtools/pull/3660)
* Migrate error_badge_manager.dart to null safety [#3653](https://github.com/flutter/devtools/pull/3653)
* Update flex_split_column.dart [#3656](https://github.com/flutter/devtools/pull/3656)
* Update file_import.dart [#3655](https://github.com/flutter/devtools/pull/3655)
* Migrate dialogs.dart to null safety [#3652](https://github.com/flutter/devtools/pull/3652)
* Migrate device_dialog to null safety [#3651](https://github.com/flutter/devtools/pull/3651)
* Migrate common_widgets.dart to null safety [#3647](https://github.com/flutter/devtools/pull/3647)
* Migrate console_service.dart to null safety [#3650](https://github.com/flutter/devtools/pull/3650)
* Update console.dart [#3648](https://github.com/flutter/devtools/pull/3648)
* Migrate banner_messages.dart to null safety [#3646](https://github.com/flutter/devtools/pull/3646)
* Migrate utils to be null safe [#3645](https://github.com/flutter/devtools/pull/3645)
* Migrate theme.dart to be null safe [#3633](https://github.com/flutter/devtools/pull/3633)
* Migrate connected_app.dart to null safety [#3642](https://github.com/flutter/devtools/pull/3642)
* Migrate collapsible_mixin.dart to null safety [#3641](https://github.com/flutter/devtools/pull/3641)
* Migrate app_error_handling.dart to null safety [#3640](https://github.com/flutter/devtools/pull/3640)
* Split utils to simplify migration to null safety [#3639](https://github.com/flutter/devtools/pull/3639)
* Create README.md [#3643](https://github.com/flutter/devtools/pull/3643)
* Update CONTRIBUTING.md [#3638](https://github.com/flutter/devtools/pull/3638)
* Migrate some libraries to be null safe [#3632](https://github.com/flutter/devtools/pull/3632)
* Add null safety comment to inspector_polyfill_script.dart [#3631](https://github.com/flutter/devtools/pull/3631)
* Null safety for some primitives [#3622](https://github.com/flutter/devtools/pull/3622)
* Make trees.dart null safe [#3626](https://github.com/flutter/devtools/pull/3626)
* Migrate linked_scroll_controller to null safety [#3623](https://github.com/flutter/devtools/pull/3623)
* Update memory_graph_model.dart [#3630](https://github.com/flutter/devtools/pull/3630)
* Update auto_dispose.dart [#3628](https://github.com/flutter/devtools/pull/3628)
* Run DevTools tests against a Flutter test app running on Flutter master [#3572](https://github.com/flutter/devtools/pull/3572)
* Update syntax_highlighting.dart [#3625](https://github.com/flutter/devtools/pull/3625)
* Migrate [#3624](https://github.com/flutter/devtools/pull/3624)
* Delete `devtools_server` and `devtools` packages [#3617](https://github.com/flutter/devtools/pull/3617)
* Migrate auto_dispose to null safety [#3621](https://github.com/flutter/devtools/pull/3621)
* Update SDK to 2.12 [#3618](https://github.com/flutter/devtools/pull/3618)
* Update ansicolor to nullsafe version [#3600](https://github.com/flutter/devtools/pull/3600)
* Move linked_scroll_controller.dart from flutter_widgets to primitives [#3615](https://github.com/flutter/devtools/pull/3615)
* File opener UX improvements [#3612](https://github.com/flutter/devtools/pull/3612)
* Update dependencies [#3614](https://github.com/flutter/devtools/pull/3614)
* Remove flutter client ID from DevTools survey query parameters [#3613](https://github.com/flutter/devtools/pull/3613)
* Assorted cleanup for `_AutoCompleteSearchField` [#3611](https://github.com/flutter/devtools/pull/3611)

## 2.10.0
* Remove unused file and move message_bus to primitives/ directory [#3609](https://github.com/flutter/devtools/pull/3609)
* Update README.md [#3606](https://github.com/flutter/devtools/pull/3606)
* Focus workaround so that keyboard shorcuts always work [#3602](https://github.com/flutter/devtools/pull/3602)
* Update README.md [#3605](https://github.com/flutter/devtools/pull/3605)
* Add asserts / logging to catch when script ref is null [#3601](https://github.com/flutter/devtools/pull/3601)
* Show warning for internal Flutter Web apps [#3597](https://github.com/flutter/devtools/pull/3597)
* Fix a null ref in CPU Profile when using offline snapshots with no connection [#3596](https://github.com/flutter/devtools/pull/3596)
* Move libraries from root to subfolders [#3594](https://github.com/flutter/devtools/pull/3594)
* Update release_notes.dart [#3592](https://github.com/flutter/devtools/pull/3592)
* Return project.pbxproj [#3591](https://github.com/flutter/devtools/pull/3591)
* Update .gitignore [#3589](https://github.com/flutter/devtools/pull/3589)
* Use parsed devtools version in release notes viewer [#3590](https://github.com/flutter/devtools/pull/3590)
* Fixes fatal error when you try to filter logs twice [#3588](https://github.com/flutter/devtools/pull/3588)
* Manually set R/W permissions on canvaskit binaries [#3586](https://github.com/flutter/devtools/pull/3586)
* Adds multi-token file search, and prioritizes file name matches over full path matches [#3582](https://github.com/flutter/devtools/pull/3582)
* Make devtools_test a minimal package by removing all unnecessary files [#3581](https://github.com/flutter/devtools/pull/3581)
* Use canvaskit that is packaged with Flutter SDK [#3580](https://github.com/flutter/devtools/pull/3580)
* Update inspector goldens [#3583](https://github.com/flutter/devtools/pull/3583)
* Refactors file search to use `FileSearchResults` and `FileQuery` classes [#3573](https://github.com/flutter/devtools/pull/3573)
* Prepare for 2.10.0-dev.1 release [#3578](https://github.com/flutter/devtools/pull/3578)
* Make Canvaskit binaries read/write-able for releases [#3577](https://github.com/flutter/devtools/pull/3577)
* Update CONTRIBUTING.md [#3570](https://github.com/flutter/devtools/pull/3570)
* Quick fix to survey url parsing bug [#3574](https://github.com/flutter/devtools/pull/3574)
* Fix deprecation warning and bump dds dependency [#3575](https://github.com/flutter/devtools/pull/3575)
* Adds a utility method to transform AutoCompleteMatch [#3569](https://github.com/flutter/devtools/pull/3569)
* Add FrameTimeVisualizer to janky frame analysis view [#3566](https://github.com/flutter/devtools/pull/3566)
* Wait for kIsolateRunnable event before loading isolate state [#3564](https://github.com/flutter/devtools/pull/3564)
* Only print the inspector search stats in debug mode [#3562](https://github.com/flutter/devtools/pull/3562)
* Bump version to 2.9.3 [#3563](https://github.com/flutter/devtools/pull/3563)
* Inspector widget selection improvements [#3489) (#3525](https://github.com/flutter/devtools/pull/3489) (#3525)
* Add placeholder for a custom mutation observer script [#3558](https://github.com/flutter/devtools/pull/3558)
* Stop using package:intl in devtools_server [#3544](https://github.com/flutter/devtools/pull/3544)
* Remove debug prints from devtools_shared [#3548](https://github.com/flutter/devtools/pull/3548)

## 2.9.2+1
* Quick fix to survey url parsing bug [#3574](https://github.com/flutter/devtools/pull/3574)

## 2.9.2
* Prepare for 2.9.2 release [#3547](https://github.com/flutter/devtools/pull/3547)
* Update `package:vm_service` to `^8.1.0` [#3545](https://github.com/flutter/devtools/pull/3545)
* Add --version flag to DevTools server command [#3546](https://github.com/flutter/devtools/pull/3546)
* Display release notes directly in DevTools [#3542](https://github.com/flutter/devtools/pull/3542)
* Refactors `AutoDisposeMixin` to have separate cancel methods for listeners, stream subscriptions, and focus nodes [#3540](https://github.com/flutter/devtools/pull/3540)
* Fix a parsing bug with the SemanticVersion class [#3539](https://github.com/flutter/devtools/pull/3539)
* Follow best practices for creating FocusNode objects [#3532](https://github.com/flutter/devtools/pull/3532)
* Apply UX suggestions to frame analysis icon [#3536](https://github.com/flutter/devtools/pull/3536)
* Create `DualValueListenableBuilder` widget and clean up ValueListenableBuilders to user `child` parameter [#3533](https://github.com/flutter/devtools/pull/3533)
* Use proper frame id to number frames in the performance page [#3535](https://github.com/flutter/devtools/pull/3535)
* Fix state issue with CpuProfiler user tags [#3531](https://github.com/flutter/devtools/pull/3531)
* Fixes program explorer bug on hot restart [#3527](https://github.com/flutter/devtools/pull/3527)
* Escape text directional Unicode [#3529](https://github.com/flutter/devtools/pull/3529)
* Fix bug with search [#3528](https://github.com/flutter/devtools/pull/3528)
* Add frame numbers to the flutter frames chart in the performance page [#3526](https://github.com/flutter/devtools/pull/3526)
* Add selection analytics for NetworkScreen [#3360](https://github.com/flutter/devtools/pull/3360)
* Do not wait on stream listening during start up [#3358](https://github.com/flutter/devtools/pull/3358)
* Add analytics/analytics.dart export to devtools_app.dart [#3523](https://github.com/flutter/devtools/pull/3523)
* Add is_embedded dimension to DevTools analytics [#3522](https://github.com/flutter/devtools/pull/3522)

## 2.9.1
* Fix build script logic to download canvaskit [#3519](https://github.com/flutter/devtools/pull/3519)

## 2.9.0
* Fix bugs with performance page search and improve performance [#3515](https://github.com/flutter/devtools/pull/3515)
* Refactor `Variable` class and rename it to `DartObjectNode` [#3513](https://github.com/flutter/devtools/pull/3513)
* Add skeleton for frame analysis feature [#3509](https://github.com/flutter/devtools/pull/3509)
* Add VSCode config files to gitignore [#3512](https://github.com/flutter/devtools/pull/3512)
* Update survey metadata url to match new website location [#3511](https://github.com/flutter/devtools/pull/3511)
* Fixes VM service breakage due to deprecated method [#3510](https://github.com/flutter/devtools/pull/3510)
* Improve inspecting large `Map` and `List` types [#3497](https://github.com/flutter/devtools/pull/3497)
* Update flutter version for bots to latest flutter beta [#3508](https://github.com/flutter/devtools/pull/3508)
* VM service wrapper implements noSuchMethod [#3505](https://github.com/flutter/devtools/pull/3505)
* Add DevToolsIconButton helper widget [#3504](https://github.com/flutter/devtools/pull/3504)
* Add a button for opening a file in empty state page [#3501](https://github.com/flutter/devtools/pull/3501)
* Create `BlinkingIcon` helper widget [#3496](https://github.com/flutter/devtools/pull/3496)
* Bump version to 2.8.0-dev.1 [#3495](https://github.com/flutter/devtools/pull/3495)
* Track whether an app is a Flutter Web app in analytics [#3494](https://github.com/flutter/devtools/pull/3494)
* Create rich tooltip for Flutter frames in the performance view [#3493](https://github.com/flutter/devtools/pull/3493)
* Add new 'invokeServiceMethodWithArgReturningNode' helper to 'ObjectGroupBase' [#3492](https://github.com/flutter/devtools/pull/3492)
* Add richMessage support to DevToolsTooltip widget [#3491](https://github.com/flutter/devtools/pull/3491)
* Add integration test to verify the expected vm service calls at startup [#3443](https://github.com/flutter/devtools/pull/3443)
* Add support for vm_service 7.4.0 [#3490](https://github.com/flutter/devtools/pull/3490)
* Update errorTextColor to meet color contrast requirements [#3488](https://github.com/flutter/devtools/pull/3488)
* Fix test flakes with the service manager [#3474](https://github.com/flutter/devtools/pull/3474)
* Do not focus a line in the code view when no outlineNode is selected [#3487](https://github.com/flutter/devtools/pull/3487)
* Fix typos [#3486](https://github.com/flutter/devtools/pull/3486)
* Remove package meta dependency and imports [#3484](https://github.com/flutter/devtools/pull/3484)
* Add support for selecting objects in the program explorer outline view [#3480](https://github.com/flutter/devtools/pull/3480)

## 2.8.0
* Don't register service worker when running DevTools locally [#3476](https://github.com/flutter/devtools/pull/3476)
* [Cleanup] Moved `[set/get]PubRootDirectories` functions from `InspectorServiceBase` to `InspectorService` [#3478](https://github.com/flutter/devtools/pull/3478)
* Improve startup performance of DevTools by using lazy initialization for debugger and console service [#3468](https://github.com/flutter/devtools/pull/3468)
* Fix bug with version parsing [#3473](https://github.com/flutter/devtools/pull/3473)
* Add new `inspectorServiceProvider()` function to `extensions_base.dart` [#3470](https://github.com/flutter/devtools/pull/3470)
* Add inspector/diagnostics.dart and split.dart exports to devtools_app.dart [#3469](https://github.com/flutter/devtools/pull/3469)
* Refactor InspectorServiceBase and ObjectGroupBase out of InspectorService and ObjectGroup [#3465](https://github.com/flutter/devtools/pull/3465)
* Add a warning to stop launching on pub for DevTools version 2.8.0 [#3464](https://github.com/flutter/devtools/pull/3464)
* Keyboard shortcuts are set on the top-level scaffold [#3458](https://github.com/flutter/devtools/pull/3458)
* Adds caching to speed up the expression evaluation autocomplete [#3463](https://github.com/flutter/devtools/pull/3463)
* Cleanup "More Debugging Options" button on Performance page [#3461](https://github.com/flutter/devtools/pull/3461)
* Add Track Paints and Track Layouts toggles to the performance page [#3451](https://github.com/flutter/devtools/pull/3451)
* Reland `ProgramExplorer` [#3448](https://github.com/flutter/devtools/pull/3448)
* Expression evaluation autocomplete overlay is positioned over the last `.` in the expression [#3449](https://github.com/flutter/devtools/pull/3449)
* Add debug disable layer toggles to the Performance page [#3441](https://github.com/flutter/devtools/pull/3441)
* Add service worker to cache `main.dart.js` and everything in `/assets` [#3325](https://github.com/flutter/devtools/pull/3325)
* Do not fetch timeline stream values for web apps [#3446](https://github.com/flutter/devtools/pull/3446)
* Refactors search to have private _SearchField and _AutoCompleteSearchField widgets [#3442](https://github.com/flutter/devtools/pull/3442)
* Fix 'unnecessary import' warnings [#3440](https://github.com/flutter/devtools/pull/3440)
* Listen to timeline stream changes from the VM service and cleanup perf settings [#3432](https://github.com/flutter/devtools/pull/3432)
* Update widget_icons changelog to match version number [#3437](https://github.com/flutter/devtools/pull/3437)
* Update git url for widget_icons pubspec [#3436](https://github.com/flutter/devtools/pull/3436)
* Tweak positioning of file picker [#3421](https://github.com/flutter/devtools/pull/3421)
* Clean up pubspec files [#3431](https://github.com/flutter/devtools/pull/3431)
* Run serveRequests in an error zone and log errors [#3429](https://github.com/flutter/devtools/pull/3429)
* Widget Icons package added [#3409](https://github.com/flutter/devtools/pull/3409)
* Update DevTools release instructions [#3428](https://github.com/flutter/devtools/pull/3428)
* Expose more common devtools_app source files via devtools_app.dart [#3427](https://github.com/flutter/devtools/pull/3427)

## 2.7.0
* Fix file:line:col color fixed (#3249) [#3365](https://github.com/flutter/devtools/pull/3365)
* Moved test helper code from "test/support" to a new "devtools_test" package [#3406](https://github.com/flutter/devtools/pull/3406)
* Upgrade to DDS version 2.1.3 [#3404](https://github.com/flutter/devtools/pull/3404)
* Update flutter-version.txt to latest dev [#3392](https://github.com/flutter/devtools/pull/3392)
* Add connected app information to offline snapshots [#3397](https://github.com/flutter/devtools/pull/3397)
* Added some Hyperlinks [#3403](https://github.com/flutter/devtools/pull/3403)
* Prepare version 2.6.1-dev.2 [#3402](https://github.com/flutter/devtools/pull/3402)
* Always show the vertical scrollbar [#3401](https://github.com/flutter/devtools/pull/3401)
* Disable default scrollbar behavior on web [#3393](https://github.com/flutter/devtools/pull/3393)
* Highlight matches in the file picker dropdown [#3384](https://github.com/flutter/devtools/pull/3384)
* Add class names to CPU stack frames in the profiler [#3385](https://github.com/flutter/devtools/pull/3385)
* Changed the issue link to go straight to filing an issue (#2915) [#3373](https://github.com/flutter/devtools/pull/3373)
* Calculate tile size for the autocomplete widget [#3377](https://github.com/flutter/devtools/pull/3377)
* Improves searching in the file picker [#3371](https://github.com/flutter/devtools/pull/3371)
* Remove unused class that is causing compiler issues [#3380](https://github.com/flutter/devtools/pull/3380)
* Move 'Step Over' button before 'Step in' [#3379](https://github.com/flutter/devtools/pull/3379)
* Prepare for v2.6.1-dev.1 release [#3370](https://github.com/flutter/devtools/pull/3370)
* Merge InspectorTreeControllerFlutter and superclass into single InspectorTreeController class [#3367](https://github.com/flutter/devtools/pull/3367)
* Moves the file opener out of a dialog [#3354](https://github.com/flutter/devtools/pull/3354)
* Add multi-isolate support to the CPU profiler [#3362](https://github.com/flutter/devtools/pull/3362)
* Add ability to profile app start up and improve CPU profile caching [#3357](https://github.com/flutter/devtools/pull/3357)
* Send event to dwds when debug screen is ready [#3355](https://github.com/flutter/devtools/pull/3355)
* Add analytics for app disconnects [#3356](https://github.com/flutter/devtools/pull/3356)
* Use "Command" instead of special character ⌘ on web [#3353](https://github.com/flutter/devtools/pull/3353)
* Enable the file opener [#3350](https://github.com/flutter/devtools/pull/3350)
* Revert "Don't wait on stream listening in DevTools start up (#3333)" [#3351](https://github.com/flutter/devtools/pull/3351)
* Don't wait on stream listening in DevTools start up [#3333](https://github.com/flutter/devtools/pull/3333)
* Add timing analytics for debugger page load [#3346](https://github.com/flutter/devtools/pull/3346)
* Add TODO to inspector controller [#3347](https://github.com/flutter/devtools/pull/3347)
* Fix some state management issues in the inspector [#3339](https://github.com/flutter/devtools/pull/3339)
* Adds a basic dialog for opening a file [#3342](https://github.com/flutter/devtools/pull/3342)
* Feat: Copy Button for Call stack [#3334](https://github.com/flutter/devtools/pull/3334)
* Add custom dimension and metric instructions to analytics config [#3341](https://github.com/flutter/devtools/pull/3341)
* Cache the results of `getVersion` and `getIsolate` on startup [#3309](https://github.com/flutter/devtools/pull/3309)
* Fix network_model_test.dart breaking the bots [#3340](https://github.com/flutter/devtools/pull/3340)
* Fix some formatting errors in the changelog [#3338](https://github.com/flutter/devtools/pull/3338)
* Restructure analytics code so that the AnalyticsController can be tested [#3336](https://github.com/flutter/devtools/pull/3336)
* Add is_external_build dimension to analytics [#3337](https://github.com/flutter/devtools/pull/3337)
* Fix grey panels when selecting some HTTP Requests [#3328](https://github.com/flutter/devtools/pull/3328)
* Remove filter text field from ScriptPicker [#3319](https://github.com/flutter/devtools/pull/3319)

## 2.6.0
* Fix analytics initialization [#3323](https://github.com/flutter/devtools/pull/3323)
* Update CPU profiler colors to make them accessible [#3324](https://github.com/flutter/devtools/pull/3324)
* Polish for scaling the DevTools UI for large font sizes [#3316](https://github.com/flutter/devtools/pull/3316)
* Add a key set command for opening a file [#3315](https://github.com/flutter/devtools/pull/3315)
* Add reportLines parameter to getSourceReport [#3322](https://github.com/flutter/devtools/pull/3322)
* Revert "Don't wait on listening for streams in DevTools startup [#3321](https://github.com/flutter/devtools/pull/3321)
* Don't wait on listening for streams in DevTools startup [#3320](https://github.com/flutter/devtools/pull/3320)
* Fix filtering bug in CPU profiler [#3313](https://github.com/flutter/devtools/pull/3313)
* Support custom font sizes better across all pages [#3299](https://github.com/flutter/devtools/pull/3299)
* Color stack frames by categories: native, dart core, flutter core [#3310](https://github.com/flutter/devtools/pull/3310)
* Add warning for ios profiling issue and link to workaround [#3311](https://github.com/flutter/devtools/pull/3311)
* Tweak how we assign timeline events to flutter frames [#3297](https://github.com/flutter/devtools/pull/3297)
* Update few icons in Flutter Inspector [#3305](https://github.com/flutter/devtools/pull/3305)
* Cancel timeline polling timer when the vmService is closed [#3304](https://github.com/flutter/devtools/pull/3304)
* Hide the CPU profiler filter button when the summary tab is selected [#3303](https://github.com/flutter/devtools/pull/3303)
* Fix js issue with `GtagEventDevTools` constructor [#3301](https://github.com/flutter/devtools/pull/3301)
* Add a scrollbar for horizontal scrolling of source files in the debugger [#3262](https://github.com/flutter/devtools/pull/3262)
* Cleanup console with eval that scrolls and less busy splitter [#3298](https://github.com/flutter/devtools/pull/3298)
* Fix a couple bugs for offline imports [#3296](https://github.com/flutter/devtools/pull/3296)
* Add analytics to performance and cpu profiler screens [#3281](https://github.com/flutter/devtools/pull/3281)
* Clear HttpProfile on VM when pressing 'Clear' on network page [#3294](https://github.com/flutter/devtools/pull/3294)
* Updated macos/Runner.xcodeproj/project.pbxproj [#3293](https://github.com/flutter/devtools/pull/3293)
* Fix selection bug in the network profiler [#3287](https://github.com/flutter/devtools/pull/3287)
* Sort timeline events before processing [#3285](https://github.com/flutter/devtools/pull/3285)
* Fix links opening when embedded in VSCode [#3252](https://github.com/flutter/devtools/pull/3252)
* Add a hidden arg to the devtools command [#3282](https://github.com/flutter/devtools/pull/3282)
* Add a package:args Command implementation [#3280](https://github.com/flutter/devtools/pull/3280)
* Add some analytics to the memory screen and clean up code [#3272](https://github.com/flutter/devtools/pull/3272)
* Add analytics to documentation links in the status line [#3273](https://github.com/flutter/devtools/pull/3273)
* Some syntax modifications to the analytics dimensions [#3266](https://github.com/flutter/devtools/pull/3266)
* Fix type errors in Filter code [#3277](https://github.com/flutter/devtools/pull/3277)
* Performance improvements for the CPU profiler [#3274](https://github.com/flutter/devtools/pull/3274)
* Fix missing network screen documentation link [#3268](https://github.com/flutter/devtools/pull/3268)
* Add analytics to settings options [#3267](https://github.com/flutter/devtools/pull/3267)
* Refactor Landing screen and add analytics for buttons [#3265](https://github.com/flutter/devtools/pull/3265)
* Changes to when analytics dialog appears and how it sets analytics [#3263](https://github.com/flutter/devtools/pull/3263)
* Adds configuration for running devtools on Linux [#3261](https://github.com/flutter/devtools/pull/3261)
* Support filtering CPU profiles [#3236](https://github.com/flutter/devtools/pull/3236)
* Fix 'not found' icons for ElevatedButton and CircleAvatar [#3258](https://github.com/flutter/devtools/pull/3258)
* Remove some older crash handling support [#3255](https://github.com/flutter/devtools/pull/3255)
* Remove a no longer used compile step [#3253](https://github.com/flutter/devtools/pull/3253)
* Delete devtools_testing package [#3250](https://github.com/flutter/devtools/pull/3250)
* Show HTTP POST request body [#3233](https://github.com/flutter/devtools/pull/3233)

## 2.5.0
* Fix some render overflow errors and cleanup [#3246](https://github.com/flutter/devtools/pull/3246)
* Update the contributing documentation [#3245](https://github.com/flutter/devtools/pull/3245)
* New widget icons and alignment added [#3215](https://github.com/flutter/devtools/pull/3215)
* Add rich tooltips to debug toggles [#3183](https://github.com/flutter/devtools/pull/3183)
* Add text previews to widget tree [#3218](https://github.com/flutter/devtools/pull/3218)
* Prepare for v2.5.0 release [#3235](https://github.com/flutter/devtools/pull/3235)
* Improve generate_changelog script [#3239](https://github.com/flutter/devtools/pull/3239)
* Finish converting tool/ to null safety [#3237](https://github.com/flutter/devtools/pull/3237)
* Fix debug buttons layout overflow [#3224](https://github.com/flutter/devtools/pull/3224)
* Make return key submit connect form [#3228](https://github.com/flutter/devtools/pull/3228)
* Minor analysis updates to the repo [#3225](https://github.com/flutter/devtools/pull/3225)
* Always build devtools from a specified, specific sdk version [#3216](https://github.com/flutter/devtools/pull/3216)
* Refactor CpuProfileData in preparation for filtering support [#3220](https://github.com/flutter/devtools/pull/3220)
* Add focus node names to help debug focus node issues [#3217](https://github.com/flutter/devtools/pull/3217)
* Process stats for widget rebuild events [#3219](https://github.com/flutter/devtools/pull/3219)
* Fix icon positions in the eval console [#3213](https://github.com/flutter/devtools/pull/3213)
* Polish to the live timeline [#3209](https://github.com/flutter/devtools/pull/3209)
* Rev. the dep on package:vm_service [#3211](https://github.com/flutter/devtools/pull/3211)
* Experimenting with building against a specific flutter sdk [#3197](https://github.com/flutter/devtools/pull/3197)
* Make Flutter Frame timeline live and migrate to the FrameTiming API [#3168](https://github.com/flutter/devtools/pull/3168)
* Add functionality to filter tree data [#3203](https://github.com/flutter/devtools/pull/3203)
* Only run the formatter on the bots for the master channel and add missing VmService method [#3202](https://github.com/flutter/devtools/pull/3202)
* Implement redesign of debug toggle buttons [#3167](https://github.com/flutter/devtools/pull/3167)
* Fix lint that is breaking the build [#3198](https://github.com/flutter/devtools/pull/3198)
* Console land [#3138](https://github.com/flutter/devtools/pull/3138)
* Support more uri params for specifying the service uri [#3161](https://github.com/flutter/devtools/pull/3161)
* Run all integration tests [#3189](https://github.com/flutter/devtools/pull/3189)
* Allow embedding unless specified [#3193](https://github.com/flutter/devtools/pull/3193)
* Eliminate spurious test output spam on missing taps [#3192](https://github.com/flutter/devtools/pull/3192)
* Update release script [#3188](https://github.com/flutter/devtools/pull/3188)

## 2.4.0
* Fix isEmbedded bug [#3177](https://github.com/flutter/devtools/pull/3177)
* Move performance tests out of package:devtools_testing [#3173](https://github.com/flutter/devtools/pull/3173)
* Refactor devtools_server to minimize transitive deps [#3164](https://github.com/flutter/devtools/pull/3164)
* Ignore a reference to a deprecated item [#3166](https://github.com/flutter/devtools/pull/3166)
* Surface extra field in RemoteDiagnosticsNode [#3137](https://github.com/flutter/devtools/pull/3137)
* Perform more normalization of the input service uri [#3160](https://github.com/flutter/devtools/pull/3160)
* Make our toast UI more compact [#3159](https://github.com/flutter/devtools/pull/3159)
* Update version to 2.3.3-dev.1 [#3157](https://github.com/flutter/devtools/pull/3157)
* Convert the repo tool lib to null safety [#3155](https://github.com/flutter/devtools/pull/3155)
* Show the event summary view for UI events in the performance page [#3154](https://github.com/flutter/devtools/pull/3154)
* Do not fetch CPU profiles in offline mode [#3152](https://github.com/flutter/devtools/pull/3152)
* Add dense mode for inspector [#3149](https://github.com/flutter/devtools/pull/3149)
* Some cleanup to the CLI UI [#3129](https://github.com/flutter/devtools/pull/3129)
* Fix a couple null issues in the cpu profiler [#3142](https://github.com/flutter/devtools/pull/3142)
* Add a TODO for rich tooltips in the Flutter frames chart [#3140](https://github.com/flutter/devtools/pull/3140)
* Handle pre-release versions in Flutter version parsing and comparison [#3134](https://github.com/flutter/devtools/pull/3134)
* Add an Error banner with a link to documentation when shader jank is detected [#3128](https://github.com/flutter/devtools/pull/3128)
* Surface shader time per frame in the Performance page [#3125](https://github.com/flutter/devtools/pull/3125)
* Disable CPU profile controls when recording [#3127](https://github.com/flutter/devtools/pull/3127)
* Updated buildViewportChrome [#3124](https://github.com/flutter/devtools/pull/3124)
* Remove references to the widget transformer's parameterLocations field [#3120](https://github.com/flutter/devtools/pull/3120)
* Cache CPU profiles for selected frames [#3121](https://github.com/flutter/devtools/pull/3121)
* Update Dart favicon to match elsewhere [#3119](https://github.com/flutter/devtools/pull/3119)
* Added the padding to the Details Tree View [#3108](https://github.com/flutter/devtools/pull/3108)
* Fix bug where you could trigger simultaneous connects by accidentally clicking or pressing return twice [#3114](https://github.com/flutter/devtools/pull/3114)
* Start of refactoring hovercards [#3117](https://github.com/flutter/devtools/pull/3117)
* Add a clear method to history_manager [#3118](https://github.com/flutter/devtools/pull/3118)
* Optimize _isOperator test [#3115](https://github.com/flutter/devtools/pull/3115)
* Avoid NPE in the layout explorer [#3116](https://github.com/flutter/devtools/pull/3116)
* Fix inspector on flutter web [#3112](https://github.com/flutter/devtools/pull/3112)
* Switch to `flutter pub get` and update canvaskit version [#3096](https://github.com/flutter/devtools/pull/3096)
* Add a loading message when loading app size data from file paths [#3109](https://github.com/flutter/devtools/pull/3109)
* Fix bug with including html import in desktop app [#3111](https://github.com/flutter/devtools/pull/3111)
* Improve scrolling / zooming behavior in flame charts [#3107](https://github.com/flutter/devtools/pull/3107)
* Added the autofocus to debug Filter TextField [#3104](https://github.com/flutter/devtools/pull/3104)
* Fix a null pointer exception if keypress fires before app is initialized [#3106](https://github.com/flutter/devtools/pull/3106)
* Catch any unhandled exceptions in devtools and report via our analytics channel [#3100](https://github.com/flutter/devtools/pull/3100)
* Replace reference to dartlang.org with dart.dev [#3101](https://github.com/flutter/devtools/pull/3101)
* Add padding for go to line dialog [#3093](https://github.com/flutter/devtools/pull/3093)

## 2.3.2
* Hover fixes [3065](https://github.com/flutter/devtools/pull/3065)
* Fix a bug with app initialization [3067](https://github.com/flutter/devtools/pull/3067)
* Stop checking flutter version for connected app in flutter web apps [3066](https://github.com/flutter/devtools/pull/3066)
* Fix bug with adding flutter version to exports [3060](https://github.com/flutter/devtools/pull/3060)
* Show LegacyPerformanceScreen or PerformanceScreen based on the current flutter version [3056](https://github.com/flutter/devtools/pull/3056)
* Use font size from IDE theme [3054](https://github.com/flutter/devtools/pull/3054)
* Lighten the area pane header color for light theme [3051](https://github.com/flutter/devtools/pull/3051)
* Fix title color for light theme. [3048](https://github.com/flutter/devtools/pull/3048)
* Polish UI in the debugger page [3052](https://github.com/flutter/devtools/pull/3052)
* Fix flutter frame coloring to reflect which part of the frame is janky. [3049](https://github.com/flutter/devtools/pull/3049)
* Handle getObject issues during autocomplete [3046](https://github.com/flutter/devtools/pull/3046)
* Improve eval autocomplete [3045](https://github.com/flutter/devtools/pull/3045)
* Add "Load all CPU samples" button to the CPU profiler [2943](https://github.com/flutter/devtools/pull/2943)
* Migrate ansi_up to null safety [3027](https://github.com/flutter/devtools/pull/3027)
* Migrate devtools_server to null safety [3009](https://github.com/flutter/devtools/pull/3009)
* Migrate package:codicon to null safety. [3026](https://github.com/flutter/devtools/pull/3026)
* Use selectable text everywhere in Network page [3036](https://github.com/flutter/devtools/pull/3036)
* CPU profiler search: support regexp and match on stack frame urls [3035](https://github.com/flutter/devtools/pull/3035)
* Eval Console Autocomplete [3013](https://github.com/flutter/devtools/pull/3013)
* Rank skia shader events first in the performance page timeline [#3083](https://github.com/flutter/devtools/pull/#083)
* Support multi-line eval output [#3086](https://github.com/flutter/devtools/pull/3086)
* Update vm_service dependency. [#3082](https://github.com/flutter/devtools/pull/3082)

## 2.2.4
* Fix bug in devtools_server by calling proper vm service API [#3040](https://github.com/flutter/devtools/pull/3040)

## 2.2.3
* Enable the provider screen [#2998](https://github.com/flutter/devtools/pull/2998) [#3010](https://github.com/flutter/devtools/pull/3010) [#3006](https://github.com/flutter/devtools/pull/23006) [#2992](https://github.com/flutter/devtools/pull/2992)
* Support filtering CPU profiles by UserTags [#2988](https://github.com/flutter/devtools/pull/2988)
## 2.2.2
* Throw RPCError when invoking `getSourceReport` in profile mode [#2986](https://github.com/flutter/devtools/pull/2986)

## 2.2.1
* Temporarily disable the provider screen. [#2970](https://github.com/flutter/devtools/pull/2970)
* Refactor CPU profiler screen controls into their own widgets [#2969](https://github.com/flutter/devtools/pull/2969)

## 2.2.0
* Add richer auto-complete for use in an expression evaluator. [#2962](https://github.com/flutter/devtools/pull/2962)
* Refactor Debugger history view into HistoryViewport widget [#2957](https://github.com/flutter/devtools/pull/2957)
* Improve search and build performance in flame charts [#2959](https://github.com/flutter/devtools/pull/2959)
* Add tab for inspecting the state of package:provider [#2851](https://github.com/flutter/devtools/pull/2851)
* Add source paths to CPU profile bottom up and call tree tables [#2956](https://github.com/flutter/devtools/pull/2956)
* Add support for system isolates to isolate selector while in VM developer mode [#2947](https://github.com/flutter/devtools/pull/2947)
* Do not log eval error for _connectedToProfileBuild check [#2954](https://github.com/flutter/devtools/pull/2954)
* Add a secondary sort column to tables and fix logging page sorting bug. [#2940](https://github.com/flutter/devtools/pull/2940)
* Improve debug hover [#2936](https://github.com/flutter/devtools/pull/2936)
* Add search in file functionality to the debugger code view. [#2931](https://github.com/flutter/devtools/pull/2931)
* Add report feedback button to top level actions in DevTools [#2925](https://github.com/flutter/devtools/pull/2925)
* Refactor areaPaneHeader into a widget [#2924](https://github.com/flutter/devtools/pull/2924)
* Add network profiler response image preview [#2922](https://github.com/flutter/devtools/pull/2922)
* Support passing keypresses up to IDEs to enable shortcut keys when embedded DevTools has focus [#2872](https://github.com/flutter/devtools/pull/2872)
* Render GC and non-ui/non-raster events in their respective thread groups [#2917](https://github.com/flutter/devtools/pull/2917)
* Fix issue where first build of the VM Tools status bar would cause a null pointer exception [#2905](https://github.com/flutter/devtools/pull/2905)
* [network_request_inspector_views] remove maxLines from SelectableText widgets [#2912](https://github.com/flutter/devtools/pull/2912)
* Matching landing page title to subheadings [#2891](https://github.com/flutter/devtools/pull/2891)
* Use "fuzzy match" in debugger libraries search [#2904](https://github.com/flutter/devtools/pull/2904)
* Larger evaluation hover overlay [#2908](https://github.com/flutter/devtools/pull/2908)
* Fix scrolling with with drag [#2907](https://github.com/flutter/devtools/pull/2907)
* Go To Line Number Option [#2902](https://github.com/flutter/devtools/pull/2902)
* Fix "Count" text getting cut off when sorting [#2898](https://github.com/flutter/devtools/pull/2898)
* Add issueTrackerLink method to DevToolsExtensionPoints [#2901](https://github.com/flutter/devtools/pull/2901)
* Change to calling upgrade [#2897](https://github.com/flutter/devtools/pull/2897)
* Added stacked and hover card trace color/dash. [#2889](https://github.com/flutter/devtools/pull/2889)
* Add framework for internal features and add debugger menu options hook. [#2887](https://github.com/flutter/devtools/pull/2887)
* Polish to debugger actions. [#2886](https://github.com/flutter/devtools/pull/2886)
* Use a single scroll offset for all flame chart painters instead of having them all listen for offset changes independently [#2884](https://github.com/flutter/devtools/pull/2884)
* Fix focus management in timeline flame chart [#2883](https://github.com/flutter/devtools/pull/2883)
* Support copying file in the debugger [#2875](https://github.com/flutter/devtools/pull/2875)
* Add previous/next event in thread buttons to the Timeline [#2878](https://github.com/flutter/devtools/pull/2878)
* Auto expand search results [#2877](https://github.com/flutter/devtools/pull/2877)
* Fix a couple bugs with flame chart styling and zoom. [#2873](https://github.com/flutter/devtools/pull/2873)

## 2.1.1
* Set the correct dart:io service extension protocol version for the new HTTP profiler logic [#2867](https://github.com/flutter/devtools/pull/2867)

## 2.1.0
* Memory legends cleanup [#2833](https://github.com/flutter/devtools/pull/2833)
* Update network profiler to support dart:io HTTP profiling service extensions [#2839](https://github.com/flutter/devtools/pull/2839)
* Use widgets for flame chart group labels instead of custom painters [#2837](https://github.com/flutter/devtools/pull/2837)
* Add EvalOnDartLibrary utilities [#2807](https://github.com/flutter/devtools/pull/2807)
* Remove Android Memory CTA if not connected to an Android app[#2799](https://github.com/flutter/devtools/pull/2799)
* Fixed location of exported memory stat JSON file. [#2795](https://github.com/flutter/devtools/pull/2795)
* Increase size of total time column in CPU profiler [#2814](https://github.com/flutter/devtools/pull/2814)
* Fix bugs with DevTools title and move title code to separate file [#2809](https://github.com/flutter/devtools/pull/2809)
* Fix some flame chart scrolling bugs [#2808](https://github.com/flutter/devtools/pull/2808)
* Cleanup for performance settings dialog [#2801](https://github.com/flutter/devtools/pull/2801)
* Fix frame timing issue in performance page [#2802](https://github.com/flutter/devtools/pull/2802)
* Improve file history picker UX [#2785](https://github.com/flutter/devtools/pull/2785)
* Improve file picker UX [#2784](https://github.com/flutter/devtools/pull/2784)
* Add show/hide gc button in memory screen[#1089](https://github.com/flutter/devtools/pull/1089) [#2787](https://github.com/flutter/devtools/pull/2787)
* Show correct mouse cursor for splitters [#2783](https://github.com/flutter/devtools/pull/2783)
* Clean up - fix overflow error and some text styles [#2782](https://github.com/flutter/devtools/pull/2782)
* Add option to load offline file from landing screen [#2762](https://github.com/flutter/devtools/pull/2762)
* Evaluation HoverCard [#2746](https://github.com/flutter/devtools/pull/2746), [#2810](https://github.com/flutter/devtools/pull/2810), [#2831](https://github.com/flutter/devtools/pull/2831)
* Reworked UX for tracking call stack. [#2846](https://github.com/flutter/devtools/pull/2846)

## 2.0.0+4
* Upgrade DevTools dependencies for http_multi_server [#2838](https://github.com/flutter/devtools/pull/2838)

## 2.0.0+3
* Upgrade DevTools dependencies for usage and shelf_static [#2836](https://github.com/flutter/devtools/pull/2836)

## 2.0.0+2
* Upgrade DevTools dependencies [#2818](https://github.com/flutter/devtools/pull/2818)

## 2.0.0+1
* Upgrade dependencies for `args`, `meta`, `path`, and `pedantic` [#2817](https://github.com/flutter/devtools/pull/2817)

## 2.0.0
* Add support for older VMs, cleanup memory filter dialog and retained size [#2752](https://github.com/flutter/devtools/pull/2752)
* Add memory allocations tracked indicator and polish event icons for track and reset [#2751](https://github.com/flutter/devtools/pull/2751)
* Memory page cleanup and hints [#2749](https://github.com/flutter/devtools/pull/2749)
* Add support for serving a custom DevTools build [#2748](https://github.com/flutter/devtools/pull/2748)
* Add temporary workaround for flutter engine bug [#2747](https://github.com/flutter/devtools/pull/2747)
* Flame chart scrolling polish [#2745](https://github.com/flutter/devtools/pull/2745)
* Add selection styling to network table and cleanup table selection style [#2744](https://github.com/flutter/devtools/pull/2744)
* Make debugger gutter background color extend to bottom of view [#2743](https://github.com/flutter/devtools/pull/2743)
* Cleanup memory icons to be sharper [#2742](https://github.com/flutter/devtools/pull/2742)
* Memory page UX polish [#2740](https://github.com/flutter/devtools/pull/2740)
* Move codicon.ttf file as part of publish script to include it in build [#2739](https://github.com/flutter/devtools/pull/2739)
* Initialize framework before initializing PreferencesController [#2737](https://github.com/flutter/devtools/pull/2737)
* Fix another lifecycle issue [#2736](https://github.com/flutter/devtools/pull/2736)
* New UX look for memory snapshot and allocations [#2735](https://github.com/flutter/devtools/pull/2735)
* Fix Memory panel hover overlay leak [#2734](https://github.com/flutter/devtools/pull/2734)
* Bump version to dev version [#2733](https://github.com/flutter/devtools/pull/2733)
* Fix lifecycle management issues with disconnecting and reconnecting to apps [#2732](https://github.com/flutter/devtools/pull/2732)
* Update CanvasKit release to 0.24.0 to match current version used by engine [#2731](https://github.com/flutter/devtools/pull/2731)
* Remove thread information on Isolates page [#2730](https://github.com/flutter/devtools/pull/2730)
* Fixed memory heap snapshot semantics [#2728](https://github.com/flutter/devtools/pull/2728)
* Use new VM API for allocation trace [#2720](https://github.com/flutter/devtools/pull/2720)
* Support latest VMService version [#2719](https://github.com/flutter/devtools/pull/2719)
* Remove inspector error indicators and render error message inline [#2717](https://github.com/flutter/devtools/pull/2717)
* Fixed hover card in memory events chart [#2716](https://github.com/flutter/devtools/pull/2716)
* Use lazy list for network requests table [#2715](https://github.com/flutter/devtools/pull/2715)
* Delete code to fallback to the dart:html version of the app [#2713](https://github.com/flutter/devtools/pull/2713)
* Auto-populate call stack frames in the debugger [#2711](https://github.com/flutter/devtools/pull/2711)
* Request focus from flame chart keyboard listener [#2710](https://github.com/flutter/devtools/pull/2710)
* Fix inspector scrollbars [#2709](https://github.com/flutter/devtools/pull/2709)
* Fix noisy assertion error in timeline processing code [#2708](https://github.com/flutter/devtools/pull/2708)
* Disable error badging for the logging screen [#2707](https://github.com/flutter/devtools/pull/2707)
* Fixed memory search, auto-complete, and added tests [#2705](https://github.com/flutter/devtools/pull/2705)
* Fix tree table scrolling issues [#2702](https://github.com/flutter/devtools/pull/2702)
* Prevent most caught exceptions when constraints are unavailable [#2700](https://github.com/flutter/devtools/pull/2700)
* Run flutter format [#2699](https://github.com/flutter/devtools/pull/2699)
* Flex layout polish [#2698](https://github.com/flutter/devtools/pull/2698)
* Handle bad source input during syntax highlighting [#2696](https://github.com/flutter/devtools/pull/2696)
* Use VS code debugging icons in debugger [#2693](https://github.com/flutter/devtools/pull/2693)
* Fix bug in inspector for expand / collapse button display [#2692](https://github.com/flutter/devtools/pull/2692)
* Add persistent scrollbars to tables [#2689](https://github.com/flutter/devtools/pull/2689)
* Add a help dialog to the flame chart describing how to navigate and zoom within the chart [#2686](https://github.com/flutter/devtools/pull/2686)
* Fix a bug with debugger stepping buttons state [#2683](https://github.com/flutter/devtools/pull/2683)
* Rev SSE version [#2681](https://github.com/flutter/devtools/pull/2681)
* Fix lifecycle bug in network page [#2680](https://github.com/flutter/devtools/pull/2680)
* Add vertical scrollbar to flame charts [#2678](https://github.com/flutter/devtools/pull/2678)
* Add floating debugger controls to non-debugging pages when app is paused [#2676](https://github.com/flutter/devtools/pull/2676)
* Revert auto-selection of the inspector root widget as it causes the cursor location to change in IDEs [#2675](https://github.com/flutter/devtools/pull/2675)
* Add scrollbars to inspector views [#2671](https://github.com/flutter/devtools/pull/2671)
* Prevent SelectableText widgets in the debugger code view from scrolling [#2670](https://github.com/flutter/devtools/pull/2670)
* Added support for expandable object inspection in the debugger console [#2666](https://github.com/flutter/devtools/pull/2666)
* Support selection within the TextView and fix bug showing pause location [#2665](https://github.com/flutter/devtools/pull/2665)
* Stop using rounded and sharp icons [#2659](https://github.com/flutter/devtools/pull/2659)

## 0.9.7+2
* Fix issue where DevTools would fail to connect to an application with no DDS instance [#2650](https://github.com/flutter/devtools/pull/2650)

## 0.9.7
* Button cleanup and polish [#2645](https://github.com/flutter/devtools/pull/2645)
* Make layout explorer the default tab in the inspector [#2644](https://github.com/flutter/devtools/pull/2644)
* Added settings dialog for memory page [#2637](https://github.com/flutter/devtools/pull/2637)
* Bundle canvaskit with the release binary so that DevTools can be used without internet [#2634](https://github.com/flutter/devtools/pull/2634)
* Add support for visualizing fixed layouts in the layout explorer [#2633](https://github.com/flutter/devtools/pull/2633)
* Listen for logs with event history in logging page and error badge manager [#2629](https://github.com/flutter/devtools/pull/2629)
* Add app events, extension events, and chart selection hover card to live memory view [#2605](https://github.com/flutter/devtools/pull/2605)
* Correctly process large HTTP responses in network profiler [#2602](https://github.com/flutter/devtools/pull/2602)
* Fallback to port 0 if we cannot connect the DevTools server to ports 9100+ [#2600](https://github.com/flutter/devtools/pull/2600)
* Add tooltips to CPU profiler column titles [#2599](https://github.com/flutter/devtools/pull/2599)
* Add timeline grid to CPU Profiler flame chart [#2593](https://github.com/flutter/devtools/pull/2593)
* Migrate to new material buttons [#2592](https://github.com/flutter/devtools/pull/2592)

## 0.9.6+3
* Support null safe `package:intl` version `>=0.17.x`.

## 0.9.6+2
* Support null safe `package:vm_service` version `>=6.x.x`.

## 0.9.6+1
* Fallback to port 0 if we cannot connect the DevTools server to ports 9100-9109 #2600

## 0.9.6
* Remove use of Flutter service worker [#2586](https://github.com/flutter/devtools/pull/2586)
* Badge performance tab when UI jank is detected and add a setting to enable/disable this functionality. [#2580](https://github.com/flutter/devtools/pull/2580)
* Badge inspector tab for structured inspector errors (Flutter.error) [#2576](https://github.com/flutter/devtools/pull/2576)
* Badge the Network tab when we receive failed network requests. [#2567](https://github.com/flutter/devtools/pull/2567)
* Badge logging page with error counts from logs and stderr [#2566](https://github.com/flutter/devtools/pull/2566)
* Add scrollbar to flutter frames chart [#2565](https://github.com/flutter/devtools/pull/2565)
* Rename "Timeline" page to "Performance" and populate CPU profile on frame selection [#2563](https://github.com/flutter/devtools/pull/2563)
* Rename "Performance" page to "CPU profiler" [#2562](https://github.com/flutter/devtools/pull/2562)
* Support truncated frames with a corresponding `SHOW ALL` button for faster flutter web stepping [#2545](https://github.com/flutter/devtools/pull/2545)
* Better x-axis labeling on the memory page [#2539](https://github.com/flutter/devtools/pull/2539)
* Add VM Tools screen with initial VM and Isolate statistics tabs [#2499](https://github.com/flutter/devtools/pull/2499)

## 0.9.5
* Add padding between columns and add minWidth for flexible columns. [#2526](https://github.com/flutter/devtools/pull/2526)
* Fix import bug. [#2528](https://github.com/flutter/devtools/pull/2528)
* Support loading app size files from query parameters and local storage [#2510](https://github.com/flutter/devtools/pull/2510)
* Remove use of mp_flutterchart and use new charting subsystem. [#2517](https://github.com/flutter/devtools/pull/2517)
* Fix null error in service manager [#2515](https://github.com/flutter/devtools/pull/2515)
* Expose information about oversized images [#2509](https://github.com/flutter/devtools/pull/2509)
* Fix race condition in service_manager. [#2501](https://github.com/flutter/devtools/pull/2501)
* Url and query param parsing cleanup [#2502](https://github.com/flutter/devtools/pull/2502)
* Add CenteredCircularProgressIndicator helper widget. [#2508](https://github.com/flutter/devtools/pull/2508)
* Add search and filter to the logging page; refactor filter code [#2493](https://github.com/flutter/devtools/pull/2493)
* Add a lower bound sdk constraint [#2511](https://github.com/flutter/devtools/pull/2511)
* New chart [#2498](https://github.com/flutter/devtools/pull/2498)
* Run pub upgrade and update VMService wrapper. [#2496](https://github.com/flutter/devtools/pull/2496)
* Restore socket profiling state after hot restart [#2481](https://github.com/flutter/devtools/pull/248)
* Add vm service connection info and option to connect to a new app [#2484](https://github.com/flutter/devtools/pull/2484)
* Add selection styling to Logs table [#2485](https://github.com/flutter/devtools/pull/2485)
* Add support for hide=debugger [#2487](https://github.com/flutter/devtools/pull/2487)
* Don't reuse embedded windows in launchDevTools [#2489](https://github.com/flutter/devtools/pull/2489)

## 0.9.4
* Fix NPE in VM flags table [#2472](https://github.com/flutter/devtools/pull/2472)
* Color failed network requests with red status codes [#2466](https://github.com/flutter/devtools/pull/2466)
* Fix bug with Expand All control in the CPU profiler [#2465](https://github.com/flutter/devtools/pull/2465)
* Add average FPS information to the Timeline [#2462](https://github.com/flutter/devtools/pull/2462)
* Increase number of try ports when launching DevTools [#2458](https://github.com/flutter/devtools/pull/2458)
* Prevent dart.io extensions from being called on paused isolates [#2450](https://github.com/flutter/devtools/pull/2450)
* Remove the max zoom level bound for flame charts [#2447](https://github.com/flutter/devtools/pull/2447)
* Fix an NPE in the memory page [#2443](https://github.com/flutter/devtools/pull/2443)
* Add prompt for Q4 DevTools survey [#2442](https://github.com/flutter/devtools/pull/2442)
* Improvements to the memory page controls [#2432](https://github.com/flutter/devtools/pull/2432)
* Usability improvements for the Timeline Flutter frames chart [#2419](https://github.com/flutter/devtools/pull/2419), [#2421](https://github.com/flutter/devtools/pull/2421)
* Use new routing API to support permalinks [#2406](https://github.com/flutter/devtools/pull/2406)

## 0.9.3+4
* Do not try to launch Chrome by default when running the server in `--machine` mode
* Prevent exceptions launching Chrome from terminate the server

## 0.9.3+3
* Remove flutter dependency from devtools_shared

## 0.9.3+2
* Fix a bug causing "null" statuses in the Network profiler

## 0.9.3+1
* Added meta dependency to devtools_shared
* Group GC events together in the timeline
* Restore http logging state after hot restart
* Cleanup for DevTools dialogs

## 0.9.3
* Add search to the Network profiler [#2333](https://github.com/flutter/devtools/pull/2333)
* Add filtering to the Network profiler [#2340](https://github.com/flutter/devtools/pull/2340)
* Fix timeline rendering issue for async instant events [#2342](https://github.com/flutter/devtools/pull/2342)
* Display call graph and dominator tree for diffs in app size tool [#2344](https://github.com/flutter/devtools/pull/2344)
* Fix NPE in banner messages [#2358](https://github.com/flutter/devtools/pull/2358)
* Add "Dart DevTools" window title to web app [#2359](https://github.com/flutter/devtools/pull/2359)
* Rename "code size tool" to "app size tool" [#2365](https://github.com/flutter/devtools/pull/2365)
* Add search to Performance page CPU profiler [#2368](https://github.com/flutter/devtools/pull/2368)
* Fix analytics bug giving the incorrect value for "first run" [#2369](https://github.com/flutter/devtools/pull/2369)
* Collect RasterCache estimates from the Flutter engine in the Memory profiler [#2371](https://github.com/flutter/devtools/pull/2371)
* Display HTTP and HTTPS response bodies in the Network profiler [#2374](https://github.com/flutter/devtools/pull/2374)
* Pause should still record memory stats just not update charts [#2382](https://github.com/flutter/devtools/pull/2382)
* Simplify the debugger's libraries view [#2386](https://github.com/flutter/devtools/pull/2386)
* Make inspector polyfill compatible with both null safe and legacy Flutter [#2387](https://github.com/flutter/devtools/pull/2387)
* Fixed RSS plotting and plotting RasterCache data [#2389](https://github.com/flutter/devtools/pull/2389)

## 0.9.2
* Fix a bug causing extra evaluation for primitive values
* Fix an issue handling google3: paths [#2288](https://github.com/flutter/devtools/pull/2288)
* Update dependencies to use package:vm_service 5.0.0+1

## 0.9.1
* Add opt-in for feature usage reporting
* Add Code Size Debugging Tools to DevTools
* Use MIME types for http requests in the Network profiler

## 0.9.0
* Add search functionality to Timeline flame chart [#2164](https://github.com/flutter/devtools/pull/2164)
* Add socket profiling to Network page [#2191](https://github.com/flutter/devtools/pull/2191)
* Support multiple memory snapshots and support automatic snapshots [#2105](https://github.com/flutter/devtools/pull/2105)
* Add memory events pane and support for tracking # allocations of each class without a full snapshot [#2166](https://github.com/flutter/devtools/pull/2166)
* Replace heatmap with treemap on the memory page [#2131](https://github.com/flutter/devtools/pull/2131)
* Have the cmd-p keybinding toggle the libraries debugger pane [#2187](https://github.com/flutter/devtools/pull/2187)
* Add support for non-primitive map keys [#2154](https://github.com/flutter/devtools/pull/2154)
* Add tooltips to list items in the Debugger Libraries pane [#2167](https://github.com/flutter/devtools/pull/2167)

## 0.8.0+1
* Build with fix for canvas kit crasher

## 0.8.0
* Ship Flutter Web version of DevTools by default
* Update package:vm_service dependency to ^4.1.0

## 0.2.5
* Persist connected app URI when switching to Flutter web version of DevTools [#1933](https://github.com/flutter/devtools/pull/1933)
* Fix CPU profiler bug where we were unintentionally mutating data [#1923](https://github.com/flutter/devtools/pull/1923)
* Add "Remove all breakpoints" functionality to debugger [#1914](https://github.com/flutter/devtools/pull/1914)

## 0.2.4+1
* Memory Snapshot [#1885](https://github.com/flutter/devtools/pull/1885)
* Added new debugger page.
* Added new Network page.
* Add selected row to TreeTableState [#1795](https://github.com/flutter/devtools/pull/1795)
* Add an info / about dialog [#1772](https://github.com/flutter/devtools/pull/1772)
* Add banner message warnings and errors [#1764](https://github.com/flutter/devtools/pull/1764)
* Implement scroll-to-zoom and alt+scroll for flame charts [#1747](https://github.com/flutter/devtools/pull/1747)
* Add sorting functionality to flutter tables [#1738](https://github.com/flutter/devtools/pull/1738)
* Enable toggling http logging from Timeline. [#1688](https://github.com/flutter/devtools/pull/1688)
* Merge frame-based timeline and full timeline [#1712](https://github.com/flutter/devtools/pull/1712)
* Stop skipping duplicate trace events in full timeline processor. [#1704](https://github.com/flutter/devtools/pull/1704)
* Fix bug causing import to fail when DevTools is not connected to an app [#1703](https://github.com/flutter/devtools/pull/1703)
* Update package:vm_service dependency to ^4.0.0

## 0.2.3
* Disable Q1 DevTools survey - postponing until Q2 [#1695](https://github.com/flutter/devtools/pull/1695)
* Fix async timeline event rendering bug [#1690](https://github.com/flutter/devtools/pull/1690)
* Update package:vm_service dependency to ^3.0.0 [#1696](https://github.com/flutter/devtools/pull/1696)

## 0.2.2
* Remove cpu profiling timeout [#1683]((https://github.com/flutter/devtools/pull/1683)
* Prep for Q1 DevTools survey [#1574](https://github.com/flutter/devtools/pull/1574)
* Use ExtentDelegateListView for flame chart rows [#1676](https://github.com/flutter/devtools/pull/1676)
* Make the layout explorer more null safe [#1681](https://github.com/flutter/devtools/pull/1681)
* Store survey data by quarter tags [#1660](https://github.com/flutter/devtools/pull/1660)
* Don't check for debugDidSendFirstFrameEvent when adding service extensions for Dart VM apps [#1670](https://github.com/flutter/devtools/pull/1670)
* Restructure HTTP code for shared use with Timeline and check http logging availability [#1668](https://github.com/flutter/devtools/pull/1668)
* Debugger file picker [#1652](https://github.com/flutter/devtools/pull/1652)
* Port CPU bottom up table to Flutter [#1659](https://github.com/flutter/devtools/pull/1659)
* Add extent_delegate_list supporting fast lists where each element has a known custom extent [#1646](https://github.com/flutter/devtools/pull/1646)
* Workaround VM Regression where first heap sample's rss value is null [#1662](https://github.com/flutter/devtools/pull/1662)
* Remove the dependency on package:recase [#1656](https://github.com/flutter/devtools/pull/1656)
* Polish SafeAccess extension methods to use getters and support Iterable [#1647](https://github.com/flutter/devtools/pull/1647)
* Updated mp_chart to 0.1.7 [#1654](https://github.com/flutter/devtools/pull/1654)
* Introduce a view for showing the source of a script in Flutter with the monospaced font [#1649](https://github.com/flutter/devtools/pull/1649)
* Load imported timeline files [#1644](https://github.com/flutter/devtools/pull/1644)
* Introduce an interface for the notification service for use in controller logic [#1645](https://github.com/flutter/devtools/pull/1645)
* Fix null error in timeline page [#1641](https://github.com/flutter/devtools/pull/1641)
* Stop disposing Notifications and Controllers from import_export [#1640](https://github.com/flutter/devtools/pull/1640)
* Remove dependency on package:flutter_widgets [#1636](https://github.com/flutter/devtools/pull/1636)
* Created CLI to write Flutter application memory profile statistics to a JSON file [#1628](https://github.com/flutter/devtools/pull/1628)
* Improve the error reporting on connection issues [#1635](https://github.com/flutter/devtools/pull/1635)
* Add import / export functionality and support drag-and-drop [#1631](https://github.com/flutter/devtools/pull/1631)
* Fix timeline bug throwing error for empty recording [#1630](https://github.com/flutter/devtools/pull/1630)
* Make the rollback help text consistent with the other commands [#1634](https://github.com/flutter/devtools/pull/1634)
* Introduce a rollback command that pulls an old devtools build and preps it for release [#1617](https://github.com/flutter/devtools/pull/1617)
* Add zoomable timeline grid and timestamps to flame chart [#1624](https://github.com/flutter/devtools/pull/1624)
* Use registerServiceExtension method instead of eval directly in layout explorer [#1531](https://github.com/flutter/devtools/pull/1531)
* Factor zoom level into flame chart node selection logic [#1623](https://github.com/flutter/devtools/pull/1623)
* Update to support devtools_server [#1622](https://github.com/flutter/devtools/pull/1622)
* Flame chart zoom and navigation with WASD keys [#1611](https://github.com/flutter/devtools/pull/1611)
* Updated to use package:devtools_shared [#1620](https://github.com/flutter/devtools/pull/1620))
* Initial devtools_shared package [#1619](https://github.com/flutter/devtools/pull/1619)
* Remove --trace-systrace flag from MacOs and Linux configs [#1614](https://github.com/flutter/devtools/pull/1614)

## 0.1.15
* Fix a stack overflow error that was caused by a change in Dart's RTI implementation [#1615](https://github.com/flutter/devtools/pull/1615).
* Hide annotations that Flutter re-exports [#1606](https://github.com/flutter/devtools/pull/1606)
* Update package:devtools_server dependency to 0.1.13 or newer [#1603](https://github.com/flutter/devtools/pull/1603)
* Update package:sse dependency to 3.1.2 or newer [#1601](https://github.com/flutter/devtools/pull/1601)

## 0.1.14
* Added collecting of Android Debug Bridge (adb) Java memory information see [PR](https://github.com/flutter/devtools/pull/1553).
* Added multiple charts to memory profiling (Dart VM and Java memory).
* Added display interval e.g., 1 minute, 5 minutes, 10 minutes for memory charts.
* More succinct memory detail marker (pop-up) for data points of a particular timestamp.
* Graceful resize buttons and drop-downs in memory profile for narrower windows.
* Updated exported JSON format both Dart VM and ADB memory information.
* Added timeline slider, to memory profile, for temporal navigation in charts.
* Added ‘Clear’ button, to memory profile, throws away all collected live data.
* Fix a number of charting bugs NaN, INF problems, axis scales, etc.
* Support saving and loading memory profile data.
* Add Track Widget Builds toggle to Timeline.
* Fix issues with async trace event rendering in Timeline.
* Add timing and id information in Timeline event summary.
* Improve hint text on connect screen.
* Update package:vm_service dependency to ^2.2.0.

## 0.1.13
* Fix crash opening macOS desktop apps in DevTools.
* Enable layout explorer.
* Hide legacy page content in the flutter version of DevTools.
* Fix offline import bug in Timeline.
* Use published version of mp_chart package.

## 0.1.12
* Enable testing the alpha version of DevTools written in Flutter. Click the "beaker" icon in the upper-right to launch DevTools in Flutter.
* Fix a regression that showed an inaccurate error on the connect screen.
* Fix bug causing async events with the same name to overlap each other in the Timeline.
* Include previously omitted args in Timeline event summary.
* Include "connected events" in the Timeline event summary, which are created via the dart:developer TimelineTask api.
* Reset debugger search bar on hot reload.
* Check for a debug service extension instead of using eval to distinguish between debug and profile builds.
* Depend on the latest `package:sse`.

## 0.1.11
* Add full timeline mode with support for async and recorded tracing.
* Add event summary section that shows metadata for non-ui events on the Timeline page.
* Enable full timeline for Dart CLI applications.
* Fix a message manager bug.
* Fix a bug with processing CPU profile responses.
* Reduce race conditions in integration tests.

## 0.1.10
* Change wording of DevTools survey prompt.

## 0.1.9
* Launched the Q3 DevTools Survey.
* Bug fixes related to layouts and logging.
* Update to use latest devtools_server 0.1.12.
* Remove usage of browser LocalStorage, previously used to store the user's answer to collect or not collect Analytics.
* Analytic's properties (firstRun, enabled) are now stored in local file ~/.devtools controlled by the devtools_server.
* Now devtools_app will request and set property values, in ~/.devtools, via HTTP requests to the devtools_server.
* Store survey properties on whether the user has answered or dismissed a survey in the ~/.devtools file too.

## 0.1.8
* Query a flutter isolate for the target frame rate (e.g. 60FPS vs 120FPS). Respect this value in the Timeline.
* Polish import / export flow for Timeline.
* Depend on latest `package:devtools_server`.

## 0.1.7
* Fix bug with profile mode detection.
* Enable expand all / collapse to selected functionality in the inspector (available in Flutter versions 1.10.1 or later).
* Fix analytics bug for apps running in profile mode.
* Fix bug in memory experiment handling.
* Hide Dart VM flags when the connected app is not running on the Dart VM (web apps).
* Former "Settings" screen is now the "Info" screen - updated icon accordingly.
* Various CSS fixes.
* Code health improvements.

## 0.1.6
* Add a page to show Flutter version and Dart VM flags details.
* Add settings dialog to memory page that supports filtering snapshots and enabling experiments.
* Various css fixes.
* CSS polish for cursors, hover, and misc.
* Use frame time in CPU profile unavailable message.
* Fixes to our splitter control.
* Rev to the latest version of `package:vm_service`.
* Remove the dependency on `package:mockito`.
* Remove the dependency on `package:rxdart`.
* Support `sse` and `sses` schemes for connection with a running app.
* Address an npe in the memory page.
* Polish button collapsing for small screen widths.
* Adjust some of the logging flutter.error presentation.
* Fix thread name bug.
* Support Ansi color codes in logging views.
* Add keyboard navigation to the inspector tree view.
* Enable structured errors by default.
* Fix NPE in the Debugger.
* Improve testing on Windows.

## 0.1.5
* Support expanding or collapsing all values in the Call Tree and Bottom Up views (parts of the CPU profiler).
* Support touchscreen scrolling and selection in flame charts.
* Display structured error messages in the Logging view when "show structured errors" is enabled.
* Search and filter dialogs are now case-insensitive.
* Link to Dart DevTools documentation from connect screen.
* Disable unsupported DevTools pages for Dart web apps.
* Debugger dark mode improvements.

## 0.1.4
* Add Performance page. This has a traditional CPU profiler for Dart applications.
* Add ability to specify the profile granularity for the CPU profiler.
* Bug fixes for DevTools tables, memory page, and cpu profiler.

## 0.1.3
* Link to new flutter.dev hosted DevTools documentation.
* Inspector UI improvements.

## 0.1.2
* Add Call Tree and Bottom Up views to CPU profiler.
* Pre-fetch CPU profiles so that we have profiling information for every frame in the timeline.
* Trim Mixins from class name reporting in the CPU profiler.
* Add searching for a particular class from all active classes in a Snapshot. After a snapshot, use the search button, located to left of snapshot button (or the shortcut CTRL+f ), to find and select the class in the classes list.
* Add ability to find which class and field hold a reference to the current instance.  Hovering on an instance's allocation icon (right-most side of the instance).  Clicking on a class/field entry in the hover card will locate that particular class instance that has a reference to the original instance being hovered.
* Expose hover card navigation via a memory navigation history areas (group of links below the classes/instances lists).
* Allow DevTools feedback to be submitted when DevTools is not connected to an app.
* Support URL encoded urls in the connection dialog.
* Add error handling for analytics.
* Cleanup warning message presentation.
* Bug fixes and improvements.

## 0.1.1
* Make timeline snapshot format compatible with trace viewers such as chrome://tracing.
* Add ability to import timeline snapshots via drag-and-drop.
* Memory instance viewer handles all InstanceKind lists.
* CPU profiler bug fixes and improvements.

## 0.1.0
* Expose functionality to export timeline trace and CPU profiles.
* Add "Clear" button to the timeline page.
* CPU profiler bug fixes and improvements.
* Inspector polish bug fixes. Handle very deep inspector trees and only show expand-collapse arrows on tree nodes where needed.
* Fix case where error messages remained on the startup screen after the error had been fixed.
* Add ability to inspect an instance of a memory object in the memory profiler page after a snapshot of active memory objects.
* First time DevTools is launched, prompt with an opt-in dialog to report DevTools usage statistics and crash reports of DevTools to Google.

## 0.0.19
* Update DevTools server to better handle failures when launching browsers.
* Support additional formats for VM service uris.
* Link to documentation from --track-widget-creation warning in the Inspector.

## 0.0.18
* Fix release bug (0.0.17-dev.1 did not include build folder).
* Add CPU profiler (preview) to timeline page.
* CPU flame chart UI improvements and bug fixes.
* Bug fixes for DevTools on Windows.
* DevTools server released with support for launching DevTools in Chrome.
* Dark mode improvements.

## 0.0.16
* Reduce the minimum Dart SDK requirements for activating DevTools to cover Flutter v1.2.1 (Dart v2.1)

## 0.0.15
* Warn users when they should be using a profile build of their application instead of a debug build.
* Warn users using Microsoft browsers (IE and Edge) that they should be using Chrome to run DevTools.
* Dark mode improvements.
* Open scripts in the debugger using ctrl + o.

## 0.0.14
* Dark mode is ready to use, add ```&theme=dark``` at the end of the URI used to open the DevTool in Chrome. We look forward to your feedback.
* Added event timeline to memory profiler to track DevTool's Snapshot and Reset events.
* Timeline CPU renamed to UI, janky defined as UI duration + GPU duration > 16 ms.
* Timeline frame chart removed 8 ms highwater line, only 16 ms highwater line, display 2 traces ui/gpu (instead of 4). Janky frames will have a red glow.
* Flame chart colors use a different set of palettes and timeline is sticky.
* Warn users when they are using an unsupported browser.
* Properly disable features that aren't supported for the connected application.
* Fix screens for different widths.

## 0.0.13
* Dark mode, still being polished, is available.  Add ```&theme=dark``` at the end of URI used to open DevTools in the Chrome browser.
* Added showing GCs on the timeline and leak detection.
* Fix bugs when events were received out of order.

## 0.0.1
- initial (pre-release) release
