{
  "version": 1,
  "repo": "novuhq/novu",
  "builtAt": "2026-11-10T21:40:01.951Z",
  "baseRate": 0.10669975186104218,
  "prs": 1000,
  "labelled": 806,
  "bad": 86,
  "rules": [
    {
      "id": "learned.risk.hotspot-dir:packages/shared",
      "title": "Fragile area: packages/shared/",
      "category": "risk",
      "paths": [
        "packages/shared/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 122,
      "bad": 28,
      "rate": 0.22950819672131148,
      "lift": 2.150972169271826,
      "examples": [
        {
          "number": 13097,
          "title": "feat(@agentinbox/cli,human-dashboard,docs): conversation commands without the inbox group fixes NV-9208",
          "url": "https://github.com/novuhq/novu/pull/13097",
          "fixedBy": [
            {
              "number": 13118,
              "url": "https://github.com/novuhq/novu/pull/13118"
            }
          ],
          "reverted": false
        },
        {
          "number": 12932,
          "title": "feat(api-service,human-dashboard,@agentinbox/cli): create an Agent Inbox at the chosen address fixes NV-9032",
          "url": "https://github.com/novuhq/novu/pull/12932",
          "fixedBy": [
            {
              "number": 12970,
              "url": "https://github.com/novuhq/novu/pull/12970"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:apps/dashboard",
      "title": "Fragile area: apps/dashboard/",
      "category": "risk",
      "paths": [
        "apps/dashboard/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 173,
      "bad": 31,
      "rate": 0.1791907514450867,
      "lift": 1.6793923914504638,
      "examples": [
        {
          "number": 13073,
          "title": "fix(dashboard): update Mintlify assistant integration and improve trigger visibility handling fixes NV-9093",
          "url": "https://github.com/novuhq/novu/pull/13073",
          "fixedBy": [
            {
              "number": 13177,
              "url": "https://github.com/novuhq/novu/pull/13177"
            },
            {
              "number": 13241,
              "url": "https://github.com/novuhq/novu/pull/13241"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:apps/worker",
      "title": "Fragile area: apps/worker/",
      "category": "risk",
      "paths": [
        "apps/worker/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 88,
      "bad": 21,
      "rate": 0.23863636363636365,
      "lift": 2.2365221987315014,
      "examples": [
        {
          "number": 12932,
          "title": "feat(api-service,human-dashboard,@agentinbox/cli): create an Agent Inbox at the chosen address fixes NV-9032",
          "url": "https://github.com/novuhq/novu/pull/12932",
          "fixedBy": [
            {
              "number": 12970,
              "url": "https://github.com/novuhq/novu/pull/12970"
            }
          ],
          "reverted": false
        },
        {
          "number": 12896,
          "title": "feat(api-service): pin Agent Inbox mail to its own domain fixes NV-8908",
          "url": "https://github.com/novuhq/novu/pull/12896",
          "fixedBy": [
            {
              "number": 13006,
              "url": "https://github.com/novuhq/novu/pull/13006"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:libs/application-generic",
      "title": "Fragile area: libs/application-generic/",
      "category": "risk",
      "paths": [
        "libs/application-generic/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 136,
      "bad": 24,
      "rate": 0.17647058823529413,
      "lift": 1.6538987688098497,
      "examples": [
        {
          "number": 12932,
          "title": "feat(api-service,human-dashboard,@agentinbox/cli): create an Agent Inbox at the chosen address fixes NV-9032",
          "url": "https://github.com/novuhq/novu/pull/12932",
          "fixedBy": [
            {
              "number": 12970,
              "url": "https://github.com/novuhq/novu/pull/12970"
            }
          ],
          "reverted": false
        },
        {
          "number": 12896,
          "title": "feat(api-service): pin Agent Inbox mail to its own domain fixes NV-8908",
          "url": "https://github.com/novuhq/novu/pull/12896",
          "fixedBy": [
            {
              "number": 13006,
              "url": "https://github.com/novuhq/novu/pull/13006"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:libs/dal",
      "title": "Fragile area: libs/dal/",
      "category": "risk",
      "paths": [
        "libs/dal/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 74,
      "bad": 17,
      "rate": 0.22972972972972974,
      "lift": 2.153048397234444,
      "examples": [
        {
          "number": 13076,
          "title": "feat(@agentinbox/cli,human-dashboard,docs): agentinbox listen starts Claude Code on the operator's computer when a message comes fixes NV-9150",
          "url": "https://github.com/novuhq/novu/pull/13076",
          "fixedBy": [
            {
              "number": 13103,
              "url": "https://github.com/novuhq/novu/pull/13103"
            }
          ],
          "reverted": false
        },
        {
          "number": 12932,
          "title": "feat(api-service,human-dashboard,@agentinbox/cli): create an Agent Inbox at the chosen address fixes NV-9032",
          "url": "https://github.com/novuhq/novu/pull/12932",
          "fixedBy": [
            {
              "number": 12970,
              "url": "https://github.com/novuhq/novu/pull/12970"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/framework",
      "title": "Fragile area: packages/framework/",
      "category": "risk",
      "paths": [
        "packages/framework/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 71,
      "bad": 16,
      "rate": 0.22535211267605634,
      "lift": 2.1120209629872257,
      "examples": [
        {
          "number": 12847,
          "title": "feat(api-service,framework): stream self-hosted agent replies fixes NV-8219",
          "url": "https://github.com/novuhq/novu/pull/12847",
          "fixedBy": [
            {
              "number": 13082,
              "url": "https://github.com/novuhq/novu/pull/13082"
            }
          ],
          "reverted": false
        },
        {
          "number": 12148,
          "title": "feat(shared): push provider content overrides with Expo schema fixes NV-8454",
          "url": "https://github.com/novuhq/novu/pull/12148",
          "fixedBy": [
            {
              "number": 12895,
              "url": "https://github.com/novuhq/novu/pull/12895"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/dashboard/src/components/workflow-editor/steps/tool/tool-preview.tsx",
      "title": "Hotspot: apps/dashboard/src/components/workflow-editor/steps/tool/tool-preview.tsx",
      "category": "risk",
      "paths": [
        "apps/dashboard/src/components/workflow-editor/steps/tool/tool-preview.tsx"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 8,
      "bad": 5,
      "rate": 0.625,
      "lift": 5.857558139534884,
      "examples": [
        {
          "number": 12101,
          "title": "feat(providers): add Grafana endpoint-routed tool provider fixes NV-8455",
          "url": "https://github.com/novuhq/novu/pull/12101",
          "fixedBy": [
            {
              "number": 12197,
              "url": "https://github.com/novuhq/novu/pull/12197"
            },
            {
              "number": 12226,
              "url": "https://github.com/novuhq/novu/pull/12226"
            }
          ],
          "reverted": false
        },
        {
          "number": 12103,
          "title": "feat(shared): chat provider content overrides with Slack schema fixes NV-8397",
          "url": "https://github.com/novuhq/novu/pull/12103",
          "fixedBy": [
            {
              "number": 12184,
              "url": "https://github.com/novuhq/novu/pull/12184"
            },
            {
              "number": 12208,
              "url": "https://github.com/novuhq/novu/pull/12208"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/api/src/app/agents/conversation-runtime/ingress/inbound-turn.handler.ts",
      "title": "Hotspot: apps/api/src/app/agents/conversation-runtime/ingress/inbound-turn.handler.ts",
      "category": "risk",
      "paths": [
        "apps/api/src/app/agents/conversation-runtime/ingress/inbound-turn.handler.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 39,
      "bad": 11,
      "rate": 0.28205128205128205,
      "lift": 2.6434108527131785,
      "examples": [
        {
          "number": 12861,
          "title": "feat(api-service): give Human its own email inbox and send caps fixes NV-9021",
          "url": "https://github.com/novuhq/novu/pull/12861",
          "fixedBy": [
            {
              "number": 13001,
              "url": "https://github.com/novuhq/novu/pull/13001"
            }
          ],
          "reverted": false
        },
        {
          "number": 12470,
          "title": "refactor(root): rename Agent Chat channel to Web Chat fixes NV-8705",
          "url": "https://github.com/novuhq/novu/pull/12470",
          "fixedBy": [
            {
              "number": 12628,
              "url": "https://github.com/novuhq/novu/pull/12628"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/api/src/app/agents/conversation-runtime/egress/outbound.gateway.ts",
      "title": "Hotspot: apps/api/src/app/agents/conversation-runtime/egress/outbound.gateway.ts",
      "category": "risk",
      "paths": [
        "apps/api/src/app/agents/conversation-runtime/egress/outbound.gateway.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 23,
      "bad": 8,
      "rate": 0.34782608695652173,
      "lift": 3.2598584428715878,
      "examples": [
        {
          "number": 12411,
          "title": "feat(root): Add Photon (iMessage via Spectrum Cloud) channel and agent integration",
          "url": "https://github.com/novuhq/novu/pull/12411",
          "fixedBy": [
            {
              "number": 12649,
              "url": "https://github.com/novuhq/novu/pull/12649"
            }
          ],
          "reverted": false
        },
        {
          "number": 12627,
          "title": "feat(api-service): add outbound quote-reply payload fixes NV-8626",
          "url": "https://github.com/novuhq/novu/pull/12627",
          "fixedBy": [
            {
              "number": 12632,
              "url": "https://github.com/novuhq/novu/pull/12632"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/api/src/app/agents/conversation-runtime/ingress/chat-instance.registry.ts",
      "title": "Hotspot: apps/api/src/app/agents/conversation-runtime/ingress/chat-instance.registry.ts",
      "category": "risk",
      "paths": [
        "apps/api/src/app/agents/conversation-runtime/ingress/chat-instance.registry.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 23,
      "bad": 8,
      "rate": 0.34782608695652173,
      "lift": 3.2598584428715878,
      "examples": [
        {
          "number": 12861,
          "title": "feat(api-service): give Human its own email inbox and send caps fixes NV-9021",
          "url": "https://github.com/novuhq/novu/pull/12861",
          "fixedBy": [
            {
              "number": 13001,
              "url": "https://github.com/novuhq/novu/pull/13001"
            }
          ],
          "reverted": false
        },
        {
          "number": 12411,
          "title": "feat(root): Add Photon (iMessage via Spectrum Cloud) channel and agent integration",
          "url": "https://github.com/novuhq/novu/pull/12411",
          "fixedBy": [
            {
              "number": 12649,
              "url": "https://github.com/novuhq/novu/pull/12649"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/worker/src/app/workflow/usecases/run-job/run-job.usecase.ts",
      "title": "Hotspot: apps/worker/src/app/workflow/usecases/run-job/run-job.usecase.ts",
      "category": "risk",
      "paths": [
        "apps/worker/src/app/workflow/usecases/run-job/run-job.usecase.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 8,
      "bad": 4,
      "rate": 0.5,
      "lift": 4.686046511627907,
      "examples": [
        {
          "number": 12248,
          "title": "fix(worker): delete attachments from job payload after execution to optimize storage management fixes NV-8533",
          "url": "https://github.com/novuhq/novu/pull/12248",
          "fixedBy": [
            {
              "number": 12254,
              "url": "https://github.com/novuhq/novu/pull/12254"
            }
          ],
          "reverted": false
        },
        {
          "number": 12113,
          "title": "refactor(api-service, worker, dal): update job status handling for snooze and unsnooze operations to use DELAYED instead of PENDING, enhancing job recovery logic and ensuring proper handling of stranded jobs",
          "url": "https://github.com/novuhq/novu/pull/12113",
          "fixedBy": [
            {
              "number": 12248,
              "url": "https://github.com/novuhq/novu/pull/12248"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/js",
      "title": "Fragile area: packages/js/",
      "category": "risk",
      "paths": [
        "packages/js/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 42,
      "bad": 9,
      "rate": 0.21428571428571427,
      "lift": 2.0083056478405314,
      "examples": [
        {
          "number": 12591,
          "title": "feat(js,react,nextjs): improved rendering architecture fixes NV-8839",
          "url": "https://github.com/novuhq/novu/pull/12591",
          "fixedBy": [
            {
              "number": 12708,
              "url": "https://github.com/novuhq/novu/pull/12708"
            }
          ],
          "reverted": false
        },
        {
          "number": 12525,
          "title": "fix(js): type AgentCardPart.card as AgentCardElement fixes NV-8745",
          "url": "https://github.com/novuhq/novu/pull/12525",
          "fixedBy": [
            {
              "number": 12537,
              "url": "https://github.com/novuhq/novu/pull/12537"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/novu",
      "title": "Fragile area: packages/novu/",
      "category": "risk",
      "paths": [
        "packages/novu/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 47,
      "bad": 9,
      "rate": 0.19148936170212766,
      "lift": 1.7946561108362198,
      "examples": [
        {
          "number": 12848,
          "title": "fix(dashboard): skip chart elements in web chat cards fixes NV-9003",
          "url": "https://github.com/novuhq/novu/pull/12848",
          "fixedBy": [
            {
              "number": 13080,
              "url": "https://github.com/novuhq/novu/pull/13080"
            }
          ],
          "reverted": false
        },
        {
          "number": 12570,
          "title": "fix(novu): bootstrap Tailwind when merging Web Chat into bridge apps fixes NV-8770",
          "url": "https://github.com/novuhq/novu/pull/12570",
          "fixedBy": [
            {
              "number": 12592,
              "url": "https://github.com/novuhq/novu/pull/12592"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/providers",
      "title": "Fragile area: packages/providers/",
      "category": "risk",
      "paths": [
        "packages/providers/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 29,
      "bad": 7,
      "rate": 0.2413793103448276,
      "lift": 2.262229350441059,
      "examples": [
        {
          "number": 12148,
          "title": "feat(shared): push provider content overrides with Expo schema fixes NV-8454",
          "url": "https://github.com/novuhq/novu/pull/12148",
          "fixedBy": [
            {
              "number": 12895,
              "url": "https://github.com/novuhq/novu/pull/12895"
            }
          ],
          "reverted": false
        },
        {
          "number": 12411,
          "title": "feat(root): Add Photon (iMessage via Spectrum Cloud) channel and agent integration",
          "url": "https://github.com/novuhq/novu/pull/12411",
          "fixedBy": [
            {
              "number": 12649,
              "url": "https://github.com/novuhq/novu/pull/12649"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:docker/box/src/shared/contracts.ts",
      "title": "Hotspot: docker/box/src/shared/contracts.ts",
      "category": "risk",
      "paths": [
        "docker/box/src/shared/contracts.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 10,
      "bad": 4,
      "rate": 0.4,
      "lift": 3.748837209302326,
      "examples": [
        {
          "number": 12984,
          "title": "fix(root): a Novu Box restore that hangs is started again once fixes NV-9109",
          "url": "https://github.com/novuhq/novu/pull/12984",
          "fixedBy": [
            {
              "number": 13004,
              "url": "https://github.com/novuhq/novu/pull/13004"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:docker/box/src/cloud/box.ts",
      "title": "Hotspot: docker/box/src/cloud/box.ts",
      "category": "risk",
      "paths": [
        "docker/box/src/cloud/box.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 6,
      "bad": 3,
      "rate": 0.5,
      "lift": 4.686046511627907,
      "examples": [
        {
          "number": 12984,
          "title": "fix(root): a Novu Box restore that hangs is started again once fixes NV-9109",
          "url": "https://github.com/novuhq/novu/pull/12984",
          "fixedBy": [
            {
              "number": 13004,
              "url": "https://github.com/novuhq/novu/pull/13004"
            }
          ],
          "reverted": false
        },
        {
          "number": 12952,
          "title": "feat(root): Novu Box boxes on box.novu-staging.co, one Worker for all fixes NV-9059",
          "url": "https://github.com/novuhq/novu/pull/12952",
          "fixedBy": [
            {
              "number": 12981,
              "url": "https://github.com/novuhq/novu/pull/12981"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/dashboard/src/api/agents.ts",
      "title": "Hotspot: apps/dashboard/src/api/agents.ts",
      "category": "risk",
      "paths": [
        "apps/dashboard/src/api/agents.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 17,
      "bad": 5,
      "rate": 0.29411764705882354,
      "lift": 2.756497948016416,
      "examples": [
        {
          "number": 12411,
          "title": "feat(root): Add Photon (iMessage via Spectrum Cloud) channel and agent integration",
          "url": "https://github.com/novuhq/novu/pull/12411",
          "fixedBy": [
            {
              "number": 12649,
              "url": "https://github.com/novuhq/novu/pull/12649"
            }
          ],
          "reverted": false
        },
        {
          "number": 11923,
          "title": "feat(shared): add Tool channel with PagerDuty, Opsgenie and Webhook providers fixes NV-8284",
          "url": "https://github.com/novuhq/novu/pull/11923",
          "fixedBy": [
            {
              "number": 12164,
              "url": "https://github.com/novuhq/novu/pull/12164"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:libs/dal/src/repositories/conversation/conversation.repository.ts",
      "title": "Hotspot: libs/dal/src/repositories/conversation/conversation.repository.ts",
      "category": "risk",
      "paths": [
        "libs/dal/src/repositories/conversation/conversation.repository.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 11,
      "bad": 4,
      "rate": 0.36363636363636365,
      "lift": 3.408033826638478,
      "examples": [
        {
          "number": 12371,
          "title": "feat(api-service): structured workflow-origin hydration for agents fixes NV-8608",
          "url": "https://github.com/novuhq/novu/pull/12371",
          "fixedBy": [
            {
              "number": 12429,
              "url": "https://github.com/novuhq/novu/pull/12429"
            }
          ],
          "reverted": false
        },
        {
          "number": 12167,
          "title": "feat(api-service): adapter-owned web-chat live delivery and durable events fixes NV-8456",
          "url": "https://github.com/novuhq/novu/pull/12167",
          "fixedBy": [
            {
              "number": 12304,
              "url": "https://github.com/novuhq/novu/pull/12304"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:apps/agent-inbox-mcp",
      "title": "Fragile area: apps/agent-inbox-mcp/",
      "category": "risk",
      "paths": [
        "apps/agent-inbox-mcp/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 18,
      "bad": 5,
      "rate": 0.2777777777777778,
      "lift": 2.6033591731266155,
      "examples": [
        {
          "number": 13106,
          "title": "feat(agent-inbox-mcp): serve OpenAI's domain verification token fixes NV-9216",
          "url": "https://github.com/novuhq/novu/pull/13106",
          "fixedBy": [
            {
              "number": 13124,
              "url": "https://github.com/novuhq/novu/pull/13124"
            }
          ],
          "reverted": false
        },
        {
          "number": 13097,
          "title": "feat(@agentinbox/cli,human-dashboard,docs): conversation commands without the inbox group fixes NV-9208",
          "url": "https://github.com/novuhq/novu/pull/13097",
          "fixedBy": [
            {
              "number": 13118,
              "url": "https://github.com/novuhq/novu/pull/13118"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:packages/react/src/server/index.tsx",
      "title": "Hotspot: packages/react/src/server/index.tsx",
      "category": "risk",
      "paths": [
        "packages/react/src/server/index.tsx"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 12,
      "bad": 4,
      "rate": 0.3333333333333333,
      "lift": 3.124031007751938,
      "examples": [
        {
          "number": 12485,
          "title": "refactor(js,react): tighten Web Chat public API and JSDoc fixes NV-8710",
          "url": "https://github.com/novuhq/novu/pull/12485",
          "fixedBy": [
            {
              "number": 12519,
              "url": "https://github.com/novuhq/novu/pull/12519"
            },
            {
              "number": 12521,
              "url": "https://github.com/novuhq/novu/pull/12521"
            }
          ],
          "reverted": false
        },
        {
          "number": 12438,
          "title": "feat(react,js): rebuild useAgentChat on conversation runtime fixes NV-8641",
          "url": "https://github.com/novuhq/novu/pull/12438",
          "fixedBy": [
            {
              "number": 12480,
              "url": "https://github.com/novuhq/novu/pull/12480"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/react",
      "title": "Fragile area: packages/react/",
      "category": "risk",
      "paths": [
        "packages/react/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 29,
      "bad": 6,
      "rate": 0.20689655172413793,
      "lift": 1.939053728949479,
      "examples": [
        {
          "number": 12591,
          "title": "feat(js,react,nextjs): improved rendering architecture fixes NV-8839",
          "url": "https://github.com/novuhq/novu/pull/12591",
          "fixedBy": [
            {
              "number": 12708,
              "url": "https://github.com/novuhq/novu/pull/12708"
            }
          ],
          "reverted": false
        },
        {
          "number": 12485,
          "title": "refactor(js,react): tighten Web Chat public API and JSDoc fixes NV-8710",
          "url": "https://github.com/novuhq/novu/pull/12485",
          "fixedBy": [
            {
              "number": 12519,
              "url": "https://github.com/novuhq/novu/pull/12519"
            },
            {
              "number": 12521,
              "url": "https://github.com/novuhq/novu/pull/12521"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/api/src/app/agents/shared/dtos/agent-reply-payload.dto.ts",
      "title": "Hotspot: apps/api/src/app/agents/shared/dtos/agent-reply-payload.dto.ts",
      "category": "risk",
      "paths": [
        "apps/api/src/app/agents/shared/dtos/agent-reply-payload.dto.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 13,
      "bad": 4,
      "rate": 0.3076923076923077,
      "lift": 2.8837209302325584,
      "examples": [
        {
          "number": 11973,
          "title": "feat(dashboard,api-service,js,react,framework): novu copilot agent for slack fixes NV-8316",
          "url": "https://github.com/novuhq/novu/pull/11973",
          "fixedBy": [
            {
              "number": 12041,
              "url": "https://github.com/novuhq/novu/pull/12041"
            },
            {
              "number": 12044,
              "url": "https://github.com/novuhq/novu/pull/12044"
            },
            {
              "number": 12063,
              "url": "https://github.com/novuhq/novu/pull/12063"
            },
            {
              "number": 12112,
              "url": "https://github.com/novuhq/novu/pull/12112"
            }
          ],
          "reverted": false
        },
        {
          "number": 11987,
          "title": "fix(docs): change examples to example to fix broken spec",
          "url": "https://github.com/novuhq/novu/pull/11987",
          "fixedBy": [
            {
              "number": 11993,
              "url": "https://github.com/novuhq/novu/pull/11993"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/api/src/app/agents/conversation-runtime/conversation/agent-conversation.service.ts",
      "title": "Hotspot: apps/api/src/app/agents/conversation-runtime/conversation/agent-conversation.service.ts",
      "category": "risk",
      "paths": [
        "apps/api/src/app/agents/conversation-runtime/conversation/agent-conversation.service.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 23,
      "bad": 5,
      "rate": 0.21739130434782608,
      "lift": 2.037411526794742,
      "examples": [
        {
          "number": 12470,
          "title": "refactor(root): rename Agent Chat channel to Web Chat fixes NV-8705",
          "url": "https://github.com/novuhq/novu/pull/12470",
          "fixedBy": [
            {
              "number": 12628,
              "url": "https://github.com/novuhq/novu/pull/12628"
            }
          ],
          "reverted": false
        },
        {
          "number": 12371,
          "title": "feat(api-service): structured workflow-origin hydration for agents fixes NV-8608",
          "url": "https://github.com/novuhq/novu/pull/12371",
          "fixedBy": [
            {
              "number": 12429,
              "url": "https://github.com/novuhq/novu/pull/12429"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-file:apps/api/src/app/agents/web-chat/web-chat.controller.ts",
      "title": "Hotspot: apps/api/src/app/agents/web-chat/web-chat.controller.ts",
      "category": "risk",
      "paths": [
        "apps/api/src/app/agents/web-chat/web-chat.controller.ts"
      ],
      "kind": "hotspot-file",
      "fileLevel": true,
      "matched": 9,
      "bad": 3,
      "rate": 0.3333333333333333,
      "lift": 3.124031007751938,
      "examples": [
        {
          "number": 12470,
          "title": "refactor(root): rename Agent Chat channel to Web Chat fixes NV-8705",
          "url": "https://github.com/novuhq/novu/pull/12470",
          "fixedBy": [
            {
              "number": 12628,
              "url": "https://github.com/novuhq/novu/pull/12628"
            }
          ],
          "reverted": false
        },
        {
          "number": 12167,
          "title": "feat(api-service): adapter-owned web-chat live delivery and durable events fixes NV-8456",
          "url": "https://github.com/novuhq/novu/pull/12167",
          "fixedBy": [
            {
              "number": 12304,
              "url": "https://github.com/novuhq/novu/pull/12304"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:apps/inbound-mail",
      "title": "Fragile area: apps/inbound-mail/",
      "category": "risk",
      "paths": [
        "apps/inbound-mail/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 28,
      "bad": 5,
      "rate": 0.17857142857142858,
      "lift": 1.6735880398671097,
      "examples": [
        {
          "number": 12845,
          "title": "chore(root): update pnpm version and various dependencies",
          "url": "https://github.com/novuhq/novu/pull/12845",
          "fixedBy": [
            {
              "number": 12990,
              "url": "https://github.com/novuhq/novu/pull/12990"
            }
          ],
          "reverted": false
        },
        {
          "number": 12148,
          "title": "feat(shared): push provider content overrides with Expo schema fixes NV-8454",
          "url": "https://github.com/novuhq/novu/pull/12148",
          "fixedBy": [
            {
              "number": 12895,
              "url": "https://github.com/novuhq/novu/pull/12895"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/agentinbox",
      "title": "Fragile area: packages/agentinbox/",
      "category": "risk",
      "paths": [
        "packages/agentinbox/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 30,
      "bad": 5,
      "rate": 0.16666666666666666,
      "lift": 1.562015503875969,
      "examples": [
        {
          "number": 13097,
          "title": "feat(@agentinbox/cli,human-dashboard,docs): conversation commands without the inbox group fixes NV-9208",
          "url": "https://github.com/novuhq/novu/pull/13097",
          "fixedBy": [
            {
              "number": 13118,
              "url": "https://github.com/novuhq/novu/pull/13118"
            }
          ],
          "reverted": false
        },
        {
          "number": 13104,
          "title": "feat(human-dashboard,agent-inbox-mcp,@agentinbox/cli): the Connect step and drawer get a tab for each way in, and notice every agent that connects fixes NV-9217",
          "url": "https://github.com/novuhq/novu/pull/13104",
          "fixedBy": [
            {
              "number": 13147,
              "url": "https://github.com/novuhq/novu/pull/13147"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/chat-adapter-email",
      "title": "Fragile area: packages/chat-adapter-email/",
      "category": "risk",
      "paths": [
        "packages/chat-adapter-email/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 12,
      "bad": 3,
      "rate": 0.25,
      "lift": 2.3430232558139537,
      "examples": [
        {
          "number": 12258,
          "title": "feat(api-service,worker): correlate agent email replies via minted Message-ID fixes NV-8552",
          "url": "https://github.com/novuhq/novu/pull/12258",
          "fixedBy": [
            {
              "number": 12383,
              "url": "https://github.com/novuhq/novu/pull/12383"
            }
          ],
          "reverted": false
        },
        {
          "number": 11973,
          "title": "feat(dashboard,api-service,js,react,framework): novu copilot agent for slack fixes NV-8316",
          "url": "https://github.com/novuhq/novu/pull/11973",
          "fixedBy": [
            {
              "number": 12041,
              "url": "https://github.com/novuhq/novu/pull/12041"
            },
            {
              "number": 12044,
              "url": "https://github.com/novuhq/novu/pull/12044"
            },
            {
              "number": 12063,
              "url": "https://github.com/novuhq/novu/pull/12063"
            },
            {
              "number": 12112,
              "url": "https://github.com/novuhq/novu/pull/12112"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/chat-adapter",
      "title": "Fragile area: packages/chat-adapter/",
      "category": "risk",
      "paths": [
        "packages/chat-adapter/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 13,
      "bad": 3,
      "rate": 0.23076923076923078,
      "lift": 2.162790697674419,
      "examples": [
        {
          "number": 12645,
          "title": "feat(api-service): expose inbound message.replyTo fixes NV-8627",
          "url": "https://github.com/novuhq/novu/pull/12645",
          "fixedBy": [
            {
              "number": 12698,
              "url": "https://github.com/novuhq/novu/pull/12698"
            }
          ],
          "reverted": false
        },
        {
          "number": 12627,
          "title": "feat(api-service): add outbound quote-reply payload fixes NV-8626",
          "url": "https://github.com/novuhq/novu/pull/12627",
          "fixedBy": [
            {
              "number": 12632,
              "url": "https://github.com/novuhq/novu/pull/12632"
            }
          ],
          "reverted": false
        }
      ]
    },
    {
      "id": "learned.risk.hotspot-dir:packages/agent-event-protocol",
      "title": "Fragile area: packages/agent-event-protocol/",
      "category": "risk",
      "paths": [
        "packages/agent-event-protocol/**"
      ],
      "kind": "hotspot-dir",
      "fileLevel": false,
      "matched": 18,
      "bad": 3,
      "rate": 0.16666666666666666,
      "lift": 1.562015503875969,
      "examples": [
        {
          "number": 12627,
          "title": "feat(api-service): add outbound quote-reply payload fixes NV-8626",
          "url": "https://github.com/novuhq/novu/pull/12627",
          "fixedBy": [
            {
              "number": 12632,
              "url": "https://github.com/novuhq/novu/pull/12632"
            }
          ],
          "reverted": false
        },
        {
          "number": 12525,
          "title": "fix(js): type AgentCardPart.card as AgentCardElement fixes NV-8745",
          "url": "https://github.com/novuhq/novu/pull/12525",
          "fixedBy": [
            {
              "number": 12537,
              "url": "https://github.com/novuhq/novu/pull/12537"
            }
          ],
          "reverted": false
        }
      ]
    }
  ]
}
