{
 "repo": {
  "name": "homelab",
  "owner": "theepicsaxguy",
  "stars": 268,
  "license": "MIT",
  "full_name": "theepicsaxguy/homelab",
  "fetched_at": "2026-11-08T10:59:36.362537+00:00",
  "primary_language": "HCL"
 },
 "burns": [],
 "total": 55,
 "agents": [
  {
   "agent": "openai-codex",
   "merged": 47,
   "flights": 54,
   "burn_rate": 0,
   "merge_rate": 0.87,
   "last_flight_at": "2025-06-09T14:00:13+00:00",
   "median_hours_to_merge": 0.1
  },
  {
   "agent": "github-copilot",
   "merged": 0,
   "flights": 1,
   "burn_rate": 0,
   "merge_rate": 0,
   "last_flight_at": "2025-06-20T23:45:42+00:00",
   "median_hours_to_merge": null
  }
 ],
 "riders": [],
 "flights": [
  {
   "agent": "github-copilot",
   "state": "closed",
   "title": "feat(k8s): make cloudflared config portable via ExternalSecret templating",
   "number": 1076,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 58,
   "deletions": 9,
   "merged_at": null,
   "opened_at": "2025-06-20T23:45:42+00:00",
   "task_type": "feat",
   "files_changed": 5,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(k8s): add pdbs for critical services",
   "number": 875,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 41,
   "deletions": 0,
   "merged_at": "2025-06-09T14:02:47+00:00",
   "opened_at": "2025-06-09T14:00:13+00:00",
   "task_type": "feat",
   "files_changed": 7,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): enable HA for critical databases",
   "number": 874,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 5,
   "deletions": 4,
   "merged_at": "2025-06-09T14:02:12+00:00",
   "opened_at": "2025-06-09T13:04:48+00:00",
   "task_type": "fix",
   "files_changed": 5,
   "hours_to_merge": 0.96
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(auth): increase worker probe timeout",
   "number": 872,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 7,
   "deletions": 0,
   "merged_at": "2025-06-09T12:48:49+00:00",
   "opened_at": "2025-06-09T12:46:28+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): template Cloudflare provider credentials",
   "number": 871,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 20,
   "deletions": 6,
   "merged_at": "2025-06-09T12:48:05+00:00",
   "opened_at": "2025-06-09T12:45:50+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(infra): enable HA replicas",
   "number": 868,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 16,
   "deletions": 4,
   "merged_at": "2025-06-09T12:47:17+00:00",
   "opened_at": "2025-06-09T11:38:03+00:00",
   "task_type": "feat",
   "files_changed": 4,
   "hours_to_merge": 1.15
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(pedrobot): separate mongo backup storage",
   "number": 866,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 16,
   "deletions": 2,
   "merged_at": "2025-06-09T11:39:22+00:00",
   "opened_at": "2025-06-09T11:37:51+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(jellyfin): persist cache volume",
   "number": 865,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 18,
   "deletions": 3,
   "merged_at": "2025-06-09T11:37:04+00:00",
   "opened_at": "2025-06-09T11:33:30+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 0.06
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): make unrar liveness probe resilient to long extractions",
   "number": 864,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 3,
   "deletions": 3,
   "merged_at": "2025-06-09T11:39:08+00:00",
   "opened_at": "2025-06-09T11:33:08+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.1
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "ci(image-build): set minimal permissions",
   "number": 863,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 12,
   "deletions": 0,
   "merged_at": "2025-06-09T11:10:26+00:00",
   "opened_at": "2025-06-09T11:09:29+00:00",
   "task_type": "ci",
   "files_changed": 2,
   "hours_to_merge": 0.02
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(unrar): improve liveness probe",
   "number": 862,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 10,
   "deletions": 16,
   "merged_at": "2025-06-09T11:02:35+00:00",
   "opened_at": "2025-06-09T11:01:33+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.02
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "chore(k8s): remove unused babybuddy values file",
   "number": 861,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 3,
   "deletions": 49,
   "merged_at": "2025-06-09T11:02:48+00:00",
   "opened_at": "2025-06-09T11:01:00+00:00",
   "task_type": "chore",
   "files_changed": 2,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(k8s): add pod disruption budgets",
   "number": 860,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 47,
   "deletions": 9,
   "merged_at": "2025-06-09T11:02:24+00:00",
   "opened_at": "2025-06-09T11:00:30+00:00",
   "task_type": "feat",
   "files_changed": 7,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): limit kubechecks cpu",
   "number": 859,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 11,
   "deletions": 0,
   "merged_at": "2025-06-09T11:02:55+00:00",
   "opened_at": "2025-06-09T10:58:40+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(k8s): add probes and pvc updates",
   "number": 858,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 95,
   "deletions": 9,
   "merged_at": "2025-06-09T10:08:07+00:00",
   "opened_at": "2025-06-09T10:06:02+00:00",
   "task_type": "feat",
   "files_changed": 9,
   "hours_to_merge": 0.03
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): generate ArgoCD token without CLI",
   "number": 856,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 5,
   "deletions": 9,
   "merged_at": "2025-06-08T21:51:00+00:00",
   "opened_at": "2025-06-08T21:50:41+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "docs(website): expose changelog",
   "number": 855,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 14,
   "deletions": 0,
   "merged_at": "2025-06-08T20:20:33+00:00",
   "opened_at": "2025-06-08T20:04:44+00:00",
   "task_type": "docs",
   "files_changed": 2,
   "hours_to_merge": 0.26
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): relax probe intervals",
   "number": 854,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 119,
   "deletions": 113,
   "merged_at": "2025-06-08T20:04:10+00:00",
   "opened_at": "2025-06-08T19:52:46+00:00",
   "task_type": "fix",
   "files_changed": 20,
   "hours_to_merge": 0.19
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): set babybuddy port to 3000",
   "number": 850,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 11,
   "deletions": 6,
   "merged_at": "2025-06-08T13:05:40+00:00",
   "opened_at": "2025-06-08T13:05:25+00:00",
   "task_type": "fix",
   "files_changed": 5,
   "hours_to_merge": 0
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(k8s): add probes and backups",
   "number": 849,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 321,
   "deletions": 6,
   "merged_at": "2025-06-08T11:14:05+00:00",
   "opened_at": "2025-06-08T11:06:06+00:00",
   "task_type": "feat",
   "files_changed": 27,
   "hours_to_merge": 0.13
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "docs: fix configuration inconsistencies",
   "number": 848,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 52,
   "deletions": 87,
   "merged_at": null,
   "opened_at": "2025-06-08T09:05:01+00:00",
   "task_type": "docs",
   "files_changed": 8,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "docs(readme): fix links and quick start",
   "number": 846,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 35,
   "deletions": 218,
   "merged_at": "2025-06-07T23:24:27+00:00",
   "opened_at": "2025-06-07T23:19:30+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.08
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(website): replace local search plugin",
   "number": 845,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 6,
   "deletions": 4,
   "merged_at": "2025-06-07T22:56:55+00:00",
   "opened_at": "2025-06-07T22:50:17+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0.11
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website)!: remove blog",
   "number": 844,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 11,
   "deletions": 120,
   "merged_at": "2025-06-07T22:30:44+00:00",
   "opened_at": "2025-06-07T22:28:35+00:00",
   "task_type": "feat",
   "files_changed": 5,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): organize sidebar categories",
   "number": 843,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 56,
   "deletions": 23,
   "merged_at": "2025-06-07T22:01:29+00:00",
   "opened_at": "2025-06-07T21:55:36+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": 0.1
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(website): enable local search",
   "number": 842,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 14,
   "deletions": 1,
   "merged_at": "2025-06-07T21:55:03+00:00",
   "opened_at": "2025-06-07T21:54:21+00:00",
   "task_type": "feat",
   "files_changed": 3,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): set grafana oauth secret ids",
   "number": 841,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 22,
   "deletions": 2,
   "merged_at": "2025-06-07T19:14:42+00:00",
   "opened_at": "2025-06-07T19:10:33+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.07
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "k8s(controllers): embed token generator",
   "number": 837,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 107,
   "deletions": 133,
   "merged_at": "2025-06-07T08:41:18+00:00",
   "opened_at": "2025-06-07T08:38:32+00:00",
   "task_type": "feat",
   "files_changed": 8,
   "hours_to_merge": 0.05
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(k8s): update argocd rbac",
   "number": 836,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 41,
   "deletions": 31,
   "merged_at": null,
   "opened_at": "2025-06-07T08:15:11+00:00",
   "task_type": "feat",
   "files_changed": 2,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): update argocd token generator image",
   "number": 832,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 4,
   "deletions": 2,
   "merged_at": "2025-06-07T00:19:21+00:00",
   "opened_at": "2025-06-07T00:12:32+00:00",
   "task_type": "fix",
   "files_changed": 3,
   "hours_to_merge": 0.11
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): use Recreate strategy for PVC deployments",
   "number": 831,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 13,
   "deletions": 3,
   "merged_at": "2025-06-07T00:18:30+00:00",
   "opened_at": "2025-06-07T00:07:04+00:00",
   "task_type": "fix",
   "files_changed": 7,
   "hours_to_merge": 0.19
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "k8s(resources): tune workloads and add pedrobot db",
   "number": 829,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 554,
   "deletions": 446,
   "merged_at": "2025-06-06T23:53:29+00:00",
   "opened_at": "2025-06-06T23:38:47+00:00",
   "task_type": "feat",
   "files_changed": 31,
   "hours_to_merge": 0.25
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "k8s(authentik): update external secrets",
   "number": 828,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 24,
   "deletions": 54,
   "merged_at": "2025-06-06T23:17:37+00:00",
   "opened_at": "2025-06-06T22:46:44+00:00",
   "task_type": "chore",
   "files_changed": 1,
   "hours_to_merge": 0.51
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "k8s: automate kubechecks argocd token",
   "number": 825,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 173,
   "deletions": 15,
   "merged_at": "2025-06-05T12:22:08+00:00",
   "opened_at": "2025-06-05T12:14:45+00:00",
   "task_type": "feat",
   "files_changed": 9,
   "hours_to_merge": 0.12
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "feat(network): extend domain placeholders",
   "number": 824,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 1199,
   "deletions": 900,
   "merged_at": null,
   "opened_at": "2025-06-05T10:02:56+00:00",
   "task_type": "feat",
   "files_changed": 69,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "docs(website): update editUrl",
   "number": 823,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 4,
   "deletions": 6,
   "merged_at": null,
   "opened_at": "2025-06-05T09:19:25+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(network): update cilium helm repo",
   "number": 822,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 45,
   "deletions": 12,
   "merged_at": "2025-06-05T09:43:13+00:00",
   "opened_at": "2025-06-05T09:17:51+00:00",
   "task_type": "fix",
   "files_changed": 8,
   "hours_to_merge": 0.42
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "refactor(k8s): share arr deployment config",
   "number": 821,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 100,
   "deletions": 115,
   "merged_at": "2025-06-05T09:44:54+00:00",
   "opened_at": "2025-06-05T09:05:29+00:00",
   "task_type": "refactor",
   "files_changed": 11,
   "hours_to_merge": 0.66
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(k8s): specify cloudflare account name",
   "number": 820,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 2,
   "deletions": 1,
   "merged_at": "2025-06-05T06:04:02+00:00",
   "opened_at": "2025-06-04T23:23:09+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 6.68
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add CODE_OF_CONDUCT and fix README link",
   "number": 818,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 71,
   "deletions": 1,
   "merged_at": "2025-06-04T23:10:49+00:00",
   "opened_at": "2025-06-04T23:09:56+00:00",
   "task_type": "docs",
   "files_changed": 2,
   "hours_to_merge": 0.01
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "k8s(apps): verify resource constraints",
   "number": 817,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 234,
   "deletions": 192,
   "merged_at": "2025-06-04T22:55:01+00:00",
   "opened_at": "2025-06-04T22:53:52+00:00",
   "task_type": "chore",
   "files_changed": 6,
   "hours_to_merge": 0.02
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "docs(website): fix template links",
   "number": 816,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 16,
   "deletions": 9,
   "merged_at": "2025-06-04T22:55:19+00:00",
   "opened_at": "2025-06-04T22:46:35+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.15
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "docs(tofu): fix heading spacing",
   "number": 815,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 21,
   "deletions": 14,
   "merged_at": "2025-06-04T22:56:58+00:00",
   "opened_at": "2025-06-04T22:46:05+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.18
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "k8s(apps): add resource limits",
   "number": 814,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 257,
   "deletions": 215,
   "merged_at": null,
   "opened_at": "2025-06-04T22:41:09+00:00",
   "task_type": "feat",
   "files_changed": 6,
   "hours_to_merge": null
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(network): align coredns forwarders",
   "number": 813,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 5,
   "deletions": 2,
   "merged_at": "2025-06-04T22:51:23+00:00",
   "opened_at": "2025-06-04T22:36:30+00:00",
   "task_type": "fix",
   "files_changed": 2,
   "hours_to_merge": 0.25
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "feat(auth): add groups and users blueprints",
   "number": 812,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 191,
   "deletions": 39,
   "merged_at": "2025-06-04T22:50:39+00:00",
   "opened_at": "2025-06-04T22:34:16+00:00",
   "task_type": "feat",
   "files_changed": 7,
   "hours_to_merge": 0.27
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "fix(ci): monitor Dockerfile updates",
   "number": 811,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 7,
   "deletions": 3,
   "merged_at": "2025-06-04T22:47:57+00:00",
   "opened_at": "2025-06-04T22:28:58+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0.32
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Fix workspace schema paths",
   "number": 808,
   "outcome": "merged_clean",
   "index_ok": false,
   "additions": 2,
   "deletions": 3,
   "merged_at": "2025-06-04T15:24:03+00:00",
   "opened_at": "2025-06-04T15:21:40+00:00",
   "task_type": "fix",
   "files_changed": 1,
   "hours_to_merge": 0.04
  },
  {
   "agent": "openai-codex",
   "state": "merged",
   "title": "Add Codex agent guide",
   "number": 807,
   "outcome": "merged_clean",
   "index_ok": true,
   "additions": 45,
   "deletions": 0,
   "merged_at": "2025-06-04T15:24:17+00:00",
   "opened_at": "2025-06-04T15:16:11+00:00",
   "task_type": "docs",
   "files_changed": 1,
   "hours_to_merge": 0.14
  },
  {
   "agent": "openai-codex",
   "state": "closed",
   "title": "Improve upgrade workflow and reduce duplication",
   "number": 806,
   "outcome": "abandoned",
   "index_ok": false,
   "additions": 625,
   "deletions": 230,
   "merged_at": null,
   "opened_at": "2025-06-04T14:34:10+00:00",
   "task_type": "refactor",
   "files_changed": 20,
   "hours_to_merge": null
  }
 ],
 "indexed": 23,
 "monthly": [
  {
   "burns": 0,
   "month": "2025-06",
   "merged": 47,
   "flights": 55
  }
 ],
 "top_authors": [
  {
   "name": null,
   "login": "theepicsaxguy",
   "flights": 54,
   "indexed": 23
  }
 ],
 "page": "https://agentriders.com/logs/theepicsaxguy/homelab/"
}