{
 "flight": {
  "id": 20915,
  "agent": "github-copilot",
  "state": "merged",
  "title": "Fix IEquatable<T> nullness contravariance to match C# behavior",
  "number": 18770,
  "source": "aidev",
  "commits": 10,
  "debrief": "GitHub Copilot, working in dotnet/fsharp, takes on a fix task: the F# compiler emits nullness warnings when casting non-nullable values to IEquatable<T>, unlike C#. The change touches 53 files with 330 additions and 178 deletions across 10 commits. It draws 14 reviews and zero change requests, and merges clean after 91.67 hours.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:Copilot"
  ],
  "index_ok": true,
  "additions": 330,
  "closed_at": "2025-07-25T10:24:04+00:00",
  "deletions": 178,
  "merged_at": "2025-07-25T10:24:04+00:00",
  "opened_at": "2025-07-21T14:43:52+00:00",
  "task_type": "fix",
  "body_chars": 4964,
  "confidence": "dataset",
  "updated_at": "2026-11-03T21:25:56.018812+00:00",
  "enriched_at": null,
  "body_excerpt": "## Problem\n\nThe F# compiler was emitting nullness warnings when casting non-nullable values to `IEquatable<T>`, while C# treats `IEquatable<T>` as contravariant for nullness purposes and suppresses such warnings. This inconsistency created friction when working with F# code that needed to match C# n",
  "review_count": 14,
  "files_changed": 53,
  "hours_to_merge": 91.67,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-03T21:25:56.018812+00:00",
  "reviewer_excerpt": "Good. Just add release notes instructions for this in the usual format in docs release notes. Treat this as \"fixed\" bug for upcasts to equatable.",
  "review_comment_count": 10,
  "reviewer_excerpt_url": "https://github.com/dotnet/fsharp/pull/18770#pullrequestreview-3042349082"
 },
 "repo": {
  "name": "fsharp",
  "owner": "dotnet",
  "stars": 4348,
  "license": "MIT",
  "full_name": "dotnet/fsharp",
  "primary_language": "F#"
 },
 "author": {
  "login": "Copilot",
  "name": null,
  "github_profile": "https://github.com/Copilot",
  "page": null
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Tomas Grosup"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  }
 ],
 "related": [
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Fix SignatureHash to include constant values in hash computation",
   "number": 18771,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 792,
   "deletions": 271,
   "merged_at": "2025-07-29T11:18:16+00:00",
   "opened_at": "2025-07-21T15:05:27+00:00",
   "task_type": "fix",
   "files_changed": 71,
   "hours_to_merge": 188.21
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Validate exception names for illegal characters using same mechanism as types/modules",
   "number": 18768,
   "outcome": "merged_after_rework",
   "index_ok": true,
   "additions": 318,
   "deletions": 165,
   "merged_at": "2025-07-29T10:26:12+00:00",
   "opened_at": "2025-07-21T13:27:01+00:00",
   "task_type": "fix",
   "files_changed": 20,
   "hours_to_merge": 188.99
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Eenable LanguageFeature.UnmanagedConstraintCsharpInterop for F# 10.0",
   "number": 18737,
   "outcome": "merged_after_rework",
   "index_ok": true,
   "additions": 553,
   "deletions": 389,
   "merged_at": "2025-07-11T17:11:37+00:00",
   "opened_at": "2025-07-07T10:59:49+00:00",
   "task_type": "fix",
   "files_changed": 53,
   "hours_to_merge": 102.2
  }
 ],
 "pr_url": "https://github.com/dotnet/fsharp/pull/18770",
 "page": "https://agentriders.com/logs/dotnet/fsharp/18770/"
}