)]}'
{
  "commit": "5f9c50fc93c978e059a3ab2a071faeca6f81fd68",
  "tree": "04f2f5b942b7931ae433955396007908c82d0013",
  "parents": [
    "12ac0a4099baf6c9b9567ffedb2b7c368938bca4"
  ],
  "author": {
    "name": "Jacob MacDonald",
    "email": "jakemac@google.com",
    "time": "Tue Jun 24 11:27:06 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jun 24 11:27:06 2025 -0700"
  },
  "message": "add analytics support to the Dart MCP server (#174)\n\nBased on https://github.com/dart-lang/tools/pull/2112\n\nAdds analytics events for all tool calls as well as for the runtime errors resource.\n\nWe could consider a generic resource read event which includes the URI, but we could accidentally create URIs that have some information we don\u0027t want to capture, so I chose to instead just customize this and not provide the URI, but a field that describes the type of resource that was read.\n\nI did not add any debouncing because I don\u0027t think it is necessary, LLMs do not invoke tools in super rapid succession generally, but let me know if you all disagree and think I should do some debouncing.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "32429e8d86348c091e6e943274a8d0c3f01c4935",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/CHANGELOG.md",
      "new_id": "91854d381c9c84272615e73344a63ade533f819f",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "fee45824877f06de4a7ee21c65301c99b6f59daa",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/bin/main.dart",
      "new_id": "9870f902ebe01315693a0e3257f401bdc3583a09",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/bin/main.dart"
    },
    {
      "type": "modify",
      "old_id": "0ce7d5d1be930e47338baafb10e06b601bb48d6c",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/lib/src/mixins/dtd.dart",
      "new_id": "c390004c4bec34f52b69c85f96a230d5d567c45b",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/lib/src/mixins/dtd.dart"
    },
    {
      "type": "modify",
      "old_id": "6b8a68ef3d538d4d4c49a35aab21c395eff21cc8",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/lib/src/server.dart",
      "new_id": "2979db4578d71c83c6f320613eb7d2ec4e5ca4ce",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/lib/src/server.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9c71dd9a68c9b0a0b37572e270a71de007cb2578",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/lib/src/utils/analytics.dart"
    },
    {
      "type": "modify",
      "old_id": "5edba19a4e72cd0751efc3418c353c0bd8a80d8c",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/pubspec.yaml",
      "new_id": "b78cbf73a20250383f58f5c62d717699cd3b2d38",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "607c56e6137746837c4c53cbdafad89c03fc20e1",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/test/dart_tooling_mcp_server_test.dart",
      "new_id": "606be7fd4feffc0228b80db776f2ff6944f73dae",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/test/dart_tooling_mcp_server_test.dart"
    },
    {
      "type": "modify",
      "old_id": "c11d887c58bc00282798bcdd665b436669572f08",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/test/test_harness.dart",
      "new_id": "3e5abdf994fe7823c8dee0ae8b3b0d9bbf374ba6",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/test/test_harness.dart"
    },
    {
      "type": "modify",
      "old_id": "ba07aa82a96a43e20fdf1be1d9e4f24c330b0caa",
      "old_mode": 33188,
      "old_path": "pkgs/dart_mcp_server/test/tools/dtd_test.dart",
      "new_id": "713fd1a2e87ac115a37a79787386644f55f50902",
      "new_mode": 33188,
      "new_path": "pkgs/dart_mcp_server/test/tools/dtd_test.dart"
    }
  ]
}
