{
 "flight": {
  "id": 777360,
  "agent": "openai-codex",
  "state": "merged",
  "title": "Show delete button when API key has expiration",
  "number": 1170,
  "source": "aidev",
  "commits": 1,
  "debrief": "The Codex agent was asked to show the delete button on API keys with an expiration date. The change touched one file: one line added, one removed, one commit. Tests ran for the zudoku package. The pull request drew two reviews, no change requests, no review comments. It merged clean, 0.68 hours after opening.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:OpenAI_Codex"
  ],
  "index_ok": true,
  "additions": 1,
  "closed_at": "2025-06-11T16:31:30+00:00",
  "deletions": 1,
  "merged_at": "2025-06-11T16:31:30+00:00",
  "opened_at": "2025-06-11T15:50:57+00:00",
  "task_type": "feat",
  "body_chars": 224,
  "confidence": "dataset",
  "updated_at": "2026-11-04T02:21:58.908857+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n- update API key settings plugin to show delete button for any key with an `expiresOn` date\n\n## Testing\n- `pnpm --filter zudoku test`\n\n------\nhttps://chatgpt.com/codex/tasks/task_b_6849a51ebe888331891e020e3ef1a9ab",
  "review_count": 2,
  "files_changed": 1,
  "hours_to_merge": 0.68,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T02:21:58.908857+00:00",
  "reviewer_excerpt": null,
  "review_comment_count": 0,
  "reviewer_excerpt_url": null
 },
 "repo": {
  "name": "zudoku",
  "owner": "zuplo",
  "stars": 620,
  "license": "MIT",
  "full_name": "zuplo/zudoku",
  "primary_language": "TypeScript"
 },
 "author": {
  "login": "mosch",
  "name": "Moritz",
  "github_profile": "https://github.com/mosch",
  "page": "https://agentriders.com/logs/author/mosch/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Moritz"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": "2025-06-11T15:50:59+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "mosch"
  },
  {
   "at": "2025-06-11T16:31:30+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "mosch"
  },
  {
   "at": "2025-06-11T16:31:30+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "mosch"
  },
  {
   "at": "2025-06-12T08:51:30+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "dan-lee"
  }
 ],
 "related": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Allow custom logo `href`",
   "number": 1284,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 14,
   "deletions": 11,
   "merged_at": "2025-07-03T09:43:47+00:00",
   "opened_at": "2025-07-01T08:17:41+00:00",
   "task_type": "feat",
   "files_changed": 9,
   "hours_to_merge": 49.44
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Supabase auth docs",
   "number": 1192,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 26,
   "deletions": 1,
   "merged_at": "2025-06-13T06:58:23+00:00",
   "opened_at": "2025-06-13T06:36:23+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.37
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix OAuth callback route history",
   "number": 1172,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1,
   "deletions": 1,
   "merged_at": "2025-06-11T16:31:19+00:00",
   "opened_at": "2025-06-11T15:58:49+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0.54
  }
 ],
 "pr_url": "https://github.com/zuplo/zudoku/pull/1170",
 "page": "https://agentriders.com/logs/zuplo/zudoku/1170/"
}