)]}'
{
  "commit": "1af3032fa0ab85ab34fb0adc133602f087c01368",
  "tree": "c3f2928eb73d9ce197bd615fcd68bbc6d65bd66b",
  "parents": [
    "628b84260835513ccffdd640a3fc8e1134907dd5"
  ],
  "author": {
    "name": "Danny Tuppeny",
    "email": "danny@tuppeny.com",
    "time": "Wed Dec 17 12:14:14 2025 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Dec 17 12:14:14 2025 +0000"
  },
  "message": "Attempt to reconnect to DTD automatically if the connection drops (#9587)\n\n* Attempt to reconnect to DTD automatically if the connection drops\n\n- Repurposes the property editor \"ReconnectingOverlay\" as a more general \"Connecting Overlay\" also for the sidebar.\n- If a DTD connection drops, it will be retried up to 5 times (and the new connection sent to the ValueNotifier)\n- If the connection fails after all retries, a \"Retry\" button is shown to allow the user to restart connection attempts again\n- The periodic check for the connection being alive is now part of DTDManager instead of only the property editor\n- DTDManager now also emits state values so consumers can handle each state differently (rather than just connected/not connected)\n- Mock editor for Stager apps now has a \"Drop Connection\" button to similate DTD connection drops\n- Stager apps that use the mock editor now use a real DTDManager (since they connect to real DTD) and can simulate slow and failed connections\n- Removed the force refresh for reconnect, and instead just made the `_DtdConnectedScreen` use a `key` so that when the connection changes, the widget gets new state",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "496f860d970c75a5521288b0fb0e8e8bcf4d7b78",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/shared/editor/editor_client.dart",
      "new_id": "2c2136abda0a6050f96a8692be57b0d7ded7256f",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/shared/editor/editor_client.dart"
    },
    {
      "type": "modify",
      "old_id": "684fae414ed3a618b2f3dbef727916d5fbf3f2ec",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/property_editor_controller.dart",
      "new_id": "bad9c16e6aa11946de88109f9bc9b796371109ec",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/property_editor_controller.dart"
    },
    {
      "type": "modify",
      "old_id": "fafac06fba0fedf4da5926c0b27508c29a4d5825",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/property_editor_panel.dart",
      "new_id": "bf6e8893bb352e7e23343945e327a02910926260",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/property_editor_panel.dart"
    },
    {
      "type": "modify",
      "old_id": "66f9f3394b280c6ff530ecd1f4193f97b36c8e54",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/reconnecting_overlay.dart",
      "new_id": "aac701f039063202d4a5783eb2880dfa5b09b698",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/reconnecting_overlay.dart"
    },
    {
      "type": "modify",
      "old_id": "c8877868dee89d168e4778727d11f014e0a5bc1f",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/utils/utils.dart",
      "new_id": "cb824b077c496214d91cd1026940dd51401428e0",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/standalone_ui/ide_shared/property_editor/utils/utils.dart"
    },
    {
      "type": "modify",
      "old_id": "b1e1bfaff3d82571f7c1624097af29fe4691a5f0",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/lib/src/standalone_ui/standalone_screen.dart",
      "new_id": "6a1f64a7de1b7df55d3c19663391d5a8b6781d4d",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/lib/src/standalone_ui/standalone_screen.dart"
    },
    {
      "type": "modify",
      "old_id": "5e4353dd6921ae7a212c7769a01093ee9ec20830",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md",
      "new_id": "d5d4a6c8a0996d819004038544e7c1a1096f05f6",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/release_notes/NEXT_RELEASE_NOTES.md"
    },
    {
      "type": "modify",
      "old_id": "41c7eeec4378fca4e6d84f2f2579f12fa72477aa",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/editor_service/simulated_editor.dart",
      "new_id": "4a18e78421a53e32d0da6ea3e225b45d2f2c7ea1",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/editor_service/simulated_editor.dart"
    },
    {
      "type": "modify",
      "old_id": "2a331cb3811e62adf7361623eae1846033f5b45f",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/editor_sidebar.dart",
      "new_id": "57cbd4fa9e444d5bfd854ec8ac7b4ed24aecef5f",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/editor_sidebar.dart"
    },
    {
      "type": "modify",
      "old_id": "196401e8badf160e69b519e3f31852729bc44031",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/mock_editor_widget.dart",
      "new_id": "08329bab45c9d13738ad2e0a77f5571b55e4dd49",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/mock_editor_widget.dart"
    },
    {
      "type": "modify",
      "old_id": "6346811359d3e0d6b64e7eb4d94172e025874e5f",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/property_editor_sidebar.dart",
      "new_id": "889c170f2489b03d3c1026b61dda69c4d771badd",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/property_editor_sidebar.dart"
    },
    {
      "type": "modify",
      "old_id": "1edbd6f3b688eb887e9808a91d9655de580601f7",
      "old_mode": 33188,
      "old_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/shared/utils.dart",
      "new_id": "0156a7f2603255d81e58c92ebb13de02e88cb575",
      "new_mode": 33188,
      "new_path": "packages/devtools_app/test/test_infra/scenes/standalone_ui/shared/utils.dart"
    },
    {
      "type": "modify",
      "old_id": "43e8e8d83bb3d4e81125df4b490c694f87772668",
      "old_mode": 33188,
      "old_path": "packages/devtools_app_shared/lib/service.dart",
      "new_id": "608adefbeb3264c6a36f6e582ed569562a2a33dd",
      "new_mode": 33188,
      "new_path": "packages/devtools_app_shared/lib/service.dart"
    },
    {
      "type": "modify",
      "old_id": "e2e95085c8848fd4782ec0d61b25bf687af61d3f",
      "old_mode": 33188,
      "old_path": "packages/devtools_app_shared/lib/src/service/dtd_manager.dart",
      "new_id": "183ca530e137bbf36e13bb0e63b5ff1011b0025f",
      "new_mode": 33188,
      "new_path": "packages/devtools_app_shared/lib/src/service/dtd_manager.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f3d6008f76b1d87ba4de9e066ab6955f8840cce",
      "new_mode": 33188,
      "new_path": "packages/devtools_app_shared/lib/src/service/dtd_manager_connection_state.dart"
    }
  ]
}
