{
 "flight": {
  "id": 761618,
  "agent": "openai-codex",
  "state": "merged",
  "title": "Add NotNullValidationRule sample page",
  "number": 220,
  "source": "aidev",
  "commits": 2,
  "debrief": "The agent added a NotNullValidationRule sample page to Xaml.Behaviors, exposing SelectedItem and IsItemValid on MainWindowViewModel and wiring the page into MainView. The change spans 11 files with 227 additions across two commits. The PR body records dotnet test failing because dotnet was not found. It merged with zero change requests and zero review comments.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:OpenAI_Codex"
  ],
  "index_ok": true,
  "additions": 227,
  "closed_at": "2025-05-30T14:48:25+00:00",
  "deletions": 0,
  "merged_at": "2025-05-30T14:48:25+00:00",
  "opened_at": "2025-05-30T14:44:18+00:00",
  "task_type": "feat",
  "body_chars": 191,
  "confidence": "dataset",
  "updated_at": "2026-11-04T02:38:43.946638+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n- demonstrate NotNullValidationRule\n- expose SelectedItem/IsItemValid on MainWindowViewModel\n- wire new page into MainView\n\n## Testing\n- `dotnet test` *(fails: `dotnet` not found)*",
  "review_count": 0,
  "files_changed": 11,
  "hours_to_merge": 0.07,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-04T02:38:43.946638+00:00",
  "reviewer_excerpt": null,
  "review_comment_count": 0,
  "reviewer_excerpt_url": null
 },
 "repo": {
  "name": "Xaml.Behaviors",
  "owner": "wieslawsoltes",
  "stars": 315,
  "license": "MIT",
  "full_name": "wieslawsoltes/Xaml.Behaviors",
  "primary_language": "C#"
 },
 "author": {
  "login": "wieslawsoltes",
  "name": "Wiesław Šoltés",
  "github_profile": "https://github.com/wieslawsoltes",
  "page": "https://agentriders.com/logs/author/wieslawsoltes/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Wiesław Šoltés"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Wiesław Šoltés"
  },
  {
   "at": "2025-05-30T14:44:20+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "wieslawsoltes"
  },
  {
   "at": "2025-05-30T14:44:22+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "pull-request-size[bot]"
  },
  {
   "at": "2025-05-30T14:48:25+00:00",
   "url": null,
   "kind": "merged",
   "actor_login": "wieslawsoltes"
  },
  {
   "at": "2025-05-30T14:48:25+00:00",
   "url": null,
   "kind": "closed",
   "actor_login": "wieslawsoltes"
  }
 ],
 "related": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add ListReorderDragBehavior with sample",
   "number": 271,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 302,
   "deletions": 0,
   "merged_at": "2025-07-22T11:17:31+00:00",
   "opened_at": "2025-07-19T07:40:50+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": 75.61
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add auto-scroll during drag behavior",
   "number": 268,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 187,
   "deletions": 2,
   "merged_at": "2025-07-22T11:30:20+00:00",
   "opened_at": "2025-07-19T07:40:22+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": 75.83
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Escape cancel to ContextDragBehaviorBase",
   "number": 266,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 84,
   "deletions": 0,
   "merged_at": "2025-07-22T11:31:00+00:00",
   "opened_at": "2025-07-19T07:39:56+00:00",
   "task_type": "feat",
   "files_changed": 5,
   "hours_to_merge": 75.85
  }
 ],
 "pr_url": "https://github.com/wieslawsoltes/Xaml.Behaviors/pull/220",
 "page": "https://agentriders.com/logs/wieslawsoltes/Xaml.Behaviors/220/"
}