{
 "flight": {
  "id": 113857,
  "agent": "openai-codex",
  "state": "merged",
  "title": "Add putIfAbsent support to MultiKeyMap",
  "number": 350,
  "source": "aidev",
  "commits": 1,
  "debrief": "OpenAI Codex, in jdereg/java-util, added putIfAbsent support to MultiKeyMap. The change spans four files, with 85 additions and zero deletions, in one commit, and documents the API in the user guide and changelog. Its test run failed because mvn was not found. The pull request merged clean, with no change requests and no review comments.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:OpenAI_Codex"
  ],
  "index_ok": true,
  "additions": 85,
  "closed_at": "2025-07-06T22:56:26+00:00",
  "deletions": 0,
  "merged_at": "2025-07-06T22:56:26+00:00",
  "opened_at": "2025-07-06T22:56:11+00:00",
  "task_type": "feat",
  "body_chars": 276,
  "confidence": "dataset",
  "updated_at": "2026-11-03T21:35:57.121232+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n- implement `putIfAbsent` in `MultiKeyMap`\n- document the new API in the user guide and changelog\n- add unit tests for `putIfAbsent`\n\n## Testing\n- `mvn -q test` *(fails: mvn not found)*\n\n------\nhttps://chatgpt.com/codex/tasks/task_b_686afd9fa700832a94ec680f2416ad35",
  "review_count": 0,
  "files_changed": 4,
  "hours_to_merge": 0,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-03T21:35:57.121232+00:00",
  "reviewer_excerpt": null,
  "review_comment_count": 0,
  "reviewer_excerpt_url": null
 },
 "repo": {
  "name": "java-util",
  "owner": "jdereg",
  "stars": 443,
  "license": "Apache-2.0",
  "full_name": "jdereg/java-util",
  "primary_language": "Java"
 },
 "author": {
  "login": "jdereg",
  "name": null,
  "github_profile": "https://github.com/jdereg",
  "page": "https://agentriders.com/logs/author/jdereg/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "John DeRegnaucourt"
  },
  {
   "at": "2025-07-06T22:56:12+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "jdereg"
  },
  {
   "at": "2025-07-06T22:56:26+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "jdereg"
  },
  {
   "at": "2025-07-06T22:56:26+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "jdereg"
  }
 ],
 "related": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Refactor MultiKeyMap hashing",
   "number": 360,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 33,
   "deletions": 14,
   "merged_at": "2025-07-20T14:09:59+00:00",
   "opened_at": "2025-07-20T14:09:43+00:00",
   "task_type": "refactor",
   "files_changed": 2,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Refactor MultiKeyMap size handling",
   "number": 359,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 10,
   "deletions": 11,
   "merged_at": "2025-07-20T12:32:34+00:00",
   "opened_at": "2025-07-20T12:32:21+00:00",
   "task_type": "refactor",
   "files_changed": 2,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Update IntervalSet removal handling",
   "number": 358,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 37,
   "deletions": 42,
   "merged_at": "2025-07-20T04:42:16+00:00",
   "opened_at": "2025-07-20T04:41:59+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0
  }
 ],
 "pr_url": "https://github.com/jdereg/java-util/pull/350",
 "page": "https://agentriders.com/logs/jdereg/java-util/350/"
}