{
  "unbreak_version": "0.1.2",
  "repo": "unbrkntruth/unbreak-demo",
  "pr": 1,
  "head_sha": "cc0cdb5fe5fd0b67491caa4b26ae856bf41d0e9f",
  "base_sha": "0c79b98fe1f120dedd5146f11543da9b34822853",
  "package": {
    "name": "express",
    "from": "4.19.2",
    "to": "5.2.1",
    "ecosystem": "npm"
  },
  "skill": "express-4-to-5",
  "outcome": "green",
  "billable": true,
  "baseline": {
    "passed": 18,
    "failed": 0,
    "flaky": []
  },
  "candidate": {
    "passed": 18,
    "failed": 0
  },
  "regressions": [],
  "characterization": {
    "generated": 0,
    "passed": 0
  },
  "changes": [
    {
      "file": "src/app.ts",
      "reason": "type LegacyApplication = Application & { del: Application[\"delete\"] }; → app.set(\"query parser\", \"extended\"); (+1 / -2 lines); (app as unknown as LegacyApplication).del(\"/api/items/:id\", (req, res) => { → app.delete(\"/api/items/:id\", (req, res) => {; app.all(\"*\", (req, res) => { → app.all(\"/{*splat}\", (req, res) => { — `src/app.ts`: `app.set(\"query parser\", \"extended\")` added (nested `filter[stat…"
    },
    {
      "file": "src/routes/items.ts",
      "reason": "function paginate(req: Request, _res: Response, next: NextFunction): void { → interface Pagination { (+8 / -5 lines); const page = Number(req.query.page); → const { page, limit } = res.locals.pagination as Pagination; (+1 / -2 lines) — `src/routes/items.ts`: `paginate` middleware no longer writes back into `req.query` (a getter in Express 5); it now publishes `{ page, limit }` on `res.locals.pagi…"
    }
  ],
  "forbidden_touches": [],
  "cost": {
    "input_tokens": 32210,
    "cached_tokens": 196798,
    "output_tokens": 2584,
    "usd": 0.1818
  },
  "turns": 10,
  "wall_seconds": 44,
  "attestation": "unsigned"
}
