{
 "flight": {
  "id": 925731,
  "agent": "devin",
  "state": "merged",
  "title": "feat: Add Uniswap plugin Python implementation",
  "number": 258,
  "source": "aidev",
  "commits": 30,
  "debrief": "The agent (Devin) ports the Uniswap plugin from TypeScript to Python in goat-sdk/goat, adding check_approval, get_quote, and swap_tokens with Pydantic validation and support for major EVM networks. The change spans ten files across thirty commits, with 1866 additions and 391 deletions. It merged clean with no change requests after 139.18 hours.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:Devin"
  ],
  "index_ok": true,
  "additions": 1866,
  "closed_at": "2025-01-27T10:47:54+00:00",
  "deletions": 391,
  "merged_at": "2025-01-27T10:47:54+00:00",
  "opened_at": "2025-01-21T15:36:58+00:00",
  "task_type": "feat",
  "body_chars": 400,
  "confidence": "dataset",
  "updated_at": "2026-11-04T03:15:35.171698+00:00",
  "enriched_at": null,
  "body_excerpt": "Translates the Uniswap plugin from TypeScript to Python.\n\nKey changes:\n- Implement core Uniswap functionality (check_approval, get_quote, swap_tokens)\n- Add proper parameter validation using Pydantic\n- Support major EVM networks (Mainnet, Polygon, etc.)\n- Include tests for plugin instantiation\n- Cle",
  "review_count": 0,
  "files_changed": 10,
  "hours_to_merge": 139.18,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T03:15:35.171698+00:00",
  "reviewer_excerpt": "Adapt an example using the new plugin, test various input combinations and make sure the output makes sense, report it in the PR.",
  "review_comment_count": 0,
  "reviewer_excerpt_url": "https://github.com/goat-sdk/goat/pull/258#issuecomment-2605073901"
 },
 "repo": {
  "name": "goat",
  "owner": "goat-sdk",
  "stars": 1017,
  "license": "MIT",
  "full_name": "goat-sdk/goat",
  "primary_language": "TypeScript"
 },
 "author": {
  "login": "devin-ai-integration[bot]",
  "name": null,
  "github_profile": "https://github.com/devin-ai-integration[bot]",
  "page": null
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Devin AI"
  }
 ],
 "related": [
  {
   "agent": "devin",
   "state": "closed",
   "title": "Add Soneium mainnet send-and-receive-tokens example",
   "number": 486,
   "outcome": "burn",
   "index_ok": true,
   "additions": 246,
   "deletions": 12,
   "merged_at": null,
   "opened_at": "2025-04-22T22:56:44+00:00",
   "task_type": "feat",
   "files_changed": 6,
   "hours_to_merge": null
  },
  {
   "agent": "devin",
   "state": "merged",
   "title": "Add OpenGradient plugin",
   "number": 451,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 776,
   "deletions": 135,
   "merged_at": "2025-03-27T19:16:40+00:00",
   "opened_at": "2025-03-25T22:00:34+00:00",
   "task_type": "feat",
   "files_changed": 12,
   "hours_to_merge": 45.27
  },
  {
   "agent": "devin",
   "state": "merged",
   "title": "Update README with MPC wallet configuration and JSON schema information",
   "number": 437,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 33,
   "deletions": 3,
   "merged_at": "2025-03-20T10:36:21+00:00",
   "opened_at": "2025-03-20T09:18:13+00:00",
   "task_type": "docs",
   "files_changed": 2,
   "hours_to_merge": 1.3
  }
 ],
 "pr_url": "https://github.com/goat-sdk/goat/pull/258",
 "page": "https://agentriders.com/logs/goat-sdk/goat/258/"
}