{
 "flight": {
  "id": 575022,
  "agent": "openai-codex",
  "state": "open",
  "title": "Add MQTT cleanup on node deletion",
  "number": 1167,
  "source": "aidev",
  "commits": 5,
  "debrief": null,
  "outcome": "stale",
  "signals": [
   "aidev:OpenAI_Codex"
  ],
  "index_ok": false,
  "additions": 208,
  "closed_at": null,
  "deletions": 67,
  "merged_at": null,
  "opened_at": "2025-06-07T14:26:03+00:00",
  "task_type": "feat",
  "body_chars": 1122,
  "confidence": "dataset",
  "updated_at": "2026-11-03T17:53:33.703657+00:00",
  "enriched_at": null,
  "body_excerpt": "## Summary\n- clear retained MQTT messages when a node is removed\n- update NodeSettingsStore and NodeTelemetryStore to send empty retained messages\n- make `DELETE /api/node/{id}` asynchronous\n- add Playwright dev dependency and rename tests so they run\n\n## Testing\n- `dotnet test ESPresense-companion.",
  "review_count": 2,
  "files_changed": 9,
  "hours_to_merge": null,
  "metrics_source": "aidev_commit_sum",
  "change_requests": 0,
  "og_generated_at": null,
  "reviewer_excerpt": null,
  "review_comment_count": 0,
  "reviewer_excerpt_url": null
 },
 "repo": {
  "name": "ESPresense-companion",
  "owner": "ESPresense",
  "stars": 224,
  "license": "Apache-2.0",
  "full_name": "ESPresense/ESPresense-companion",
  "primary_language": "C#"
 },
 "author": {
  "login": "DTTerastar",
  "name": "Darrell",
  "github_profile": "https://github.com/DTTerastar",
  "page": "https://agentriders.com/logs/author/dtterastar/"
 },
 "claim": null,
 "events": [
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Darrell"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Darrell"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Darrell"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Darrell"
  },
  {
   "at": null,
   "url": null,
   "kind": "committed",
   "actor_login": "Darrell"
  },
  {
   "at": null,
   "url": null,
   "kind": "reviewed",
   "actor_login": null
  },
  {
   "at": "2025-06-07T14:26:04+00:00",
   "url": null,
   "kind": "labeled",
   "actor_login": "DTTerastar"
  }
 ],
 "related": [
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Improve firmware update UI",
   "number": 1189,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 29,
   "deletions": 21,
   "merged_at": "2025-06-28T12:33:11+00:00",
   "opened_at": "2025-06-28T11:35:47+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": 0.96
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add d3-interpolate dependency",
   "number": 1165,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 14,
   "deletions": 6,
   "merged_at": "2025-06-05T19:32:44+00:00",
   "opened_at": "2025-06-05T19:30:44+00:00",
   "task_type": "build",
   "files_changed": 2,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Switch to pnpm",
   "number": 1160,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 54,
   "deletions": 7519,
   "merged_at": "2025-06-05T19:35:42+00:00",
   "opened_at": "2025-06-04T10:13:50+00:00",
   "task_type": "chore",
   "files_changed": 9,
   "hours_to_merge": 33.36
  }
 ],
 "pr_url": "https://github.com/ESPresense/ESPresense-companion/pull/1167",
 "page": "https://agentriders.com/logs/ESPresense/ESPresense-companion/1167/"
}