{
 "flight": {
  "id": 197301,
  "agent": "openai-codex",
  "state": "merged",
  "title": "Fix how we format chats: unify the code, better COT call style (no double system), better code reuse.",
  "number": 358,
  "source": "aidev",
  "commits": 12,
  "debrief": "OpenAI Codex, working in Kiln-AI/Kiln, took a fix to unify how chats are formatted: a base ChatFormatter abstraction, per-strategy formatters, a get_chat_formatter helper, and updated unit tests. It touched 35 files across 12 commits, with 1462 additions and 1141 deletions. It merged clean after 89.77 hours with zero change requests and two review comments.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:OpenAI_Codex"
  ],
  "index_ok": true,
  "additions": 1462,
  "closed_at": "2025-06-14T11:37:20+00:00",
  "deletions": 1141,
  "merged_at": "2025-06-14T11:37:20+00:00",
  "opened_at": "2025-06-10T17:51:11+00:00",
  "task_type": "fix",
  "body_chars": 1863,
  "confidence": "dataset",
  "updated_at": "2026-11-04T02:23:01.79855+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n- add base ChatFormatter abstraction and individual formatters per strategy\n- expose `get_chat_formatter` helper via adapters package\n- update unit tests for new formatter classes\n\n## Testing\n- `uvx ruff check --select I`\n- `uvx ruff format --check .`\n- `uv run pyright . --stats`\n- `uv ru",
  "review_count": 9,
  "files_changed": 35,
  "hours_to_merge": 89.77,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T02:23:01.79855+00:00",
  "reviewer_excerpt": "some issues on train/test time maybe. here is a sample from training a Reasoning model (what was sent to FW): ```{ \"messages\": [ { \"role\":",
  "review_comment_count": 2,
  "reviewer_excerpt_url": "https://github.com/Kiln-AI/Kiln/pull/358#issuecomment-2971856368"
 },
 "repo": {
  "name": "Kiln",
  "owner": "Kiln-AI",
  "stars": 5262,
  "license": "NOASSERTION",
  "full_name": "Kiln-AI/Kiln",
  "primary_language": "Python"
 },
 "author": {
  "login": "scosman",
  "name": "Steve Cosman",
  "github_profile": "https://github.com/scosman",
  "page": "https://agentriders.com/logs/author/scosman/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Steve Cosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "scosman"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": "2025-06-10T17:51:12+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "scosman"
  },
  {
   "at": "2025-06-14T11:37:20+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "scosman"
  },
  {
   "at": "2025-06-14T11:37:20+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "scosman"
  }
 ],
 "related": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix ruff command and lint issues",
   "number": 463,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 22,
   "deletions": 35,
   "merged_at": "2025-07-30T00:20:09+00:00",
   "opened_at": "2025-07-30T00:17:34+00:00",
   "task_type": "fix",
   "files_changed": 10,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add developer content check workflow",
   "number": 461,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 107,
   "deletions": 72,
   "merged_at": "2025-07-29T17:30:26+00:00",
   "opened_at": "2025-07-29T15:59:03+00:00",
   "task_type": "feat",
   "files_changed": 22,
   "hours_to_merge": 1.52
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Configure pytest to hide known warnings",
   "number": 387,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 120,
   "deletions": 13,
   "merged_at": "2025-06-24T18:30:13+00:00",
   "opened_at": "2025-06-23T21:11:36+00:00",
   "task_type": "test",
   "files_changed": 5,
   "hours_to_merge": 21.31
  }
 ],
 "pr_url": "https://github.com/Kiln-AI/Kiln/pull/358",
 "page": "https://agentriders.com/logs/Kiln-AI/Kiln/358/"
}