{
 "flight": {
  "id": 16226,
  "agent": "github-copilot",
  "state": "merged",
  "title": "[Blazor] Add IPersistentComponentStateSerializer<T> interface for custom serialization extensibility",
  "number": 62559,
  "source": "aidev",
  "commits": 22,
  "debrief": "GitHub Copilot, working in dotnet/aspnetcore, adds an IPersistentComponentStateSerializer<T> interface so developers can supply custom serializers beyond built-in JSON for declarative persistent component state. The change spans 19 files with 591 additions and 279 deletions across 22 commits. It merged clean after 96.1 hours, with zero change requests and 32 review comments.",
  "outcome": "merged_clean",
  "signals": [
   "aidev:Copilot"
  ],
  "index_ok": true,
  "additions": 591,
  "closed_at": "2025-07-07T16:01:16+00:00",
  "deletions": 279,
  "merged_at": "2025-07-07T16:01:16+00:00",
  "opened_at": "2025-07-03T15:55:11+00:00",
  "task_type": "feat",
  "body_chars": 2428,
  "confidence": "dataset",
  "updated_at": "2026-11-03T21:37:53.390532+00:00",
  "enriched_at": null,
  "body_excerpt": "This PR implements serialization extensibility for declarative persistent component state, allowing developers to provide custom serializers beyond the built-in JSON serialization.\n\n## Changes\n\n### New Interface\n```csharp\npublic interface IPersistentComponentStateSerializer<T>\n{\n    Task PersistAsyn",
  "review_count": 30,
  "files_changed": 19,
  "hours_to_merge": 96.1,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": "2026-11-03T21:37:53.390532+00:00",
  "reviewer_excerpt": "@copilot Extend and E2E test to cover this case. In the CanPersistPrerenderedStateDeclaratively_* tests [here](https://github.com/dotnet/aspnetcore/blob/e4d20daaa5c2dc81abcd26081bcbf7da7fcd3f5e/src/Components/test/E2ETest/ServerRenderingTests/InteractivityTest.cs#L1056-L1063) Look for `src/Components/test/testassets/TestContentPackage/DeclarativePersistStateComponent.razor` and add an additional property with `[PersistentState] public",
  "review_comment_count": 32,
  "reviewer_excerpt_url": "https://github.com/dotnet/aspnetcore/pull/62559#issuecomment-3033079963"
 },
 "repo": {
  "name": "aspnetcore",
  "owner": "dotnet",
  "stars": 38503,
  "license": "MIT",
  "full_name": "dotnet/aspnetcore",
  "primary_language": "C#"
 },
 "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": "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": "reviewed",
   "actor_login": null
  },
  {
   "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": "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": "committed",
   "actor_login": "copilot-swe-agent[bot]"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": "2025-07-03T15:55:32+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "dotnet-policy-service[bot]"
  }
 ],
 "related": [
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Update Browser-Testing Dependencies: Playwright 1.53.0 → 1.54.0",
   "number": 62877,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 2,
   "deletions": 2,
   "merged_at": "2025-07-23T15:13:14+00:00",
   "opened_at": "2025-07-23T10:03:45+00:00",
   "task_type": "build",
   "files_changed": 3,
   "hours_to_merge": 5.16
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Fix Blazor template HTTPS profile to include HTTP URL",
   "number": 62853,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 1,
   "deletions": 1,
   "merged_at": "2025-07-30T19:06:58+00:00",
   "opened_at": "2025-07-22T08:55:38+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 202.19
  },
  {
   "agent": "github-copilot",
   "state": "merged",
   "title": "Fix XML comments for return values on IAuthorizationService",
   "number": 62765,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 20,
   "deletions": 21,
   "merged_at": "2025-07-24T07:24:54+00:00",
   "opened_at": "2025-07-17T05:14:13+00:00",
   "task_type": "fix",
   "files_changed": 4,
   "hours_to_merge": 170.18
  }
 ],
 "pr_url": "https://github.com/dotnet/aspnetcore/pull/62559",
 "page": "https://agentriders.com/logs/dotnet/aspnetcore/62559/"
}