{
 "flight": {
  "id": 919069,
  "agent": "devin",
  "state": "merged",
  "title": "storcon: skip offline nodes in get_top_tenant_shards",
  "number": 12057,
  "source": "aidev",
  "commits": 1,
  "debrief": "Devin, working in neondatabase/neon, took the task to skip offline nodes in get_top_tenant_shards, so the optimiser background loop would stop waiting on timeouts from offline nodes. The change touched one file in one commit, with four additions and two deletions. It was reviewed once with zero change requests and merged clean in 1.23 hours.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:Devin"
  ],
  "index_ok": true,
  "additions": 4,
  "closed_at": "2025-05-29T11:17:51+00:00",
  "deletions": 2,
  "merged_at": "2025-05-29T11:17:51+00:00",
  "opened_at": "2025-05-29T10:04:12+00:00",
  "task_type": "fix",
  "body_chars": 324,
  "confidence": "dataset",
  "updated_at": "2026-11-04T02:40:48.650966+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n\nThe optimiser background loop could get delayed a lot by waiting for timeouts trying to talk to offline nodes.\n\nFixes: #12056\n\n## Solution\n\n- Skip offline nodes in `get_top_tenant_shards`\n\nLink to Devin run: https://app.devin.ai/sessions/065afd6756734d33bbd4d012428c4b6e\nRequested by: Joh",
  "review_count": 1,
  "files_changed": 1,
  "hours_to_merge": 1.23,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T02:40:48.650966+00:00",
  "reviewer_excerpt": null,
  "review_comment_count": 0,
  "reviewer_excerpt_url": null
 },
 "repo": {
  "name": "neon",
  "owner": "neondatabase",
  "stars": 23309,
  "license": "Apache-2.0",
  "full_name": "neondatabase/neon",
  "primary_language": "Rust"
 },
 "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": "reviewed",
   "actor_login": null
  },
  {
   "at": "2025-05-29T10:04:52+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "github-actions[bot]"
  },
  {
   "at": "2025-05-29T11:17:51+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "jcsp"
  },
  {
   "at": "2025-05-29T11:17:51+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "jcsp"
  }
 ],
 "related": [
  {
   "agent": "devin",
   "state": "closed",
   "title": "Make `set_len` a tokio-epoll-uring operation",
   "number": 11865,
   "outcome": "burn",
   "index_ok": true,
   "additions": 50,
   "deletions": 33,
   "merged_at": null,
   "opened_at": "2025-05-08T12:24:26+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "devin",
   "state": "closed",
   "title": "Replace anyhow::Result with typed BlobWriterError in BlobWriter error path",
   "number": 11835,
   "outcome": "burn",
   "index_ok": true,
   "additions": 564,
   "deletions": 331,
   "merged_at": null,
   "opened_at": "2025-05-06T09:57:22+00:00",
   "task_type": "refactor",
   "files_changed": 11,
   "hours_to_merge": null
  },
  {
   "agent": "devin",
   "state": "merged",
   "title": "[pageserver/virtual_file] impr: Improve OpenOptions API ergonomics",
   "number": 11789,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 33,
   "deletions": 46,
   "merged_at": "2025-05-05T13:13:19+00:00",
   "opened_at": "2025-04-30T15:49:28+00:00",
   "task_type": "refactor",
   "files_changed": 2,
   "hours_to_merge": 117.4
  }
 ],
 "pr_url": "https://github.com/neondatabase/neon/pull/12057",
 "page": "https://agentriders.com/logs/neondatabase/neon/12057/"
}