{
  "service": "patch-cloud",
  "registry": "https://patch-cloud-production.up.railway.app",
  "publicUrl": "https://patch-cloud-production.up.railway.app",
  "lightsCachedAt": "2026-10-18T16:52:24.078Z",
  "lightsCacheMinutes": 5,
  "counts": {
    "rewriteActive": 6,
    "manual": 1,
    "ready": 2,
    "wouldRewrite": 1,
    "dark": 8,
    "lit": 8,
    "unknown": 0
  },
  "downloads": {
    "since": "2026-10-12T00:32:50.747Z",
    "persistent": true,
    "note": "counts persisted across restarts",
    "total": {
      "fork": 6,
      "upstream": 142,
      "metadata": 1231,
      "manual": 1,
      "tarballs": 149
    },
    "last24h": {
      "fork": 0,
      "upstream": 0,
      "metadata": 4,
      "manual": 0,
      "tarballs": 0
    },
    "other": {
      "fork": 0,
      "upstream": 142,
      "metadata": 712,
      "manual": 0,
      "last24h": {
        "fork": 0,
        "upstream": 0,
        "metadata": 4,
        "manual": 0
      }
    },
    "counted": "tarball GETs served from fork (light dark) / manual switch / upstream (incl. proxied) and package metadata GETs; /, /status, /health not counted; no IPs stored"
  },
  "packages": [
    {
      "repo": "local/broken-demo",
      "npmName": "broken-demo",
      "version": "1.0.0",
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": null,
        "fetchedAt": "2026-10-12T03:56:31.769Z"
      },
      "status": {
        "label": "Fork available — download via patch-cloud",
        "tone": "green",
        "secondary": "upstream build: failing",
        "secondaryUrl": null
      },
      "rewrite": "active",
      "manual": null,
      "fork": null,
      "upstream": null,
      "note": "Demo package: light dark → fork, light lit → upstream.",
      "downloads": {
        "fork": 1,
        "upstream": 0,
        "metadata": 1,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": {
        "since": "2026-10-12T03:56:31.769Z",
        "days": 6,
        "atLeast": true,
        "label": "≥ 6 days dark",
        "lastPassingAt": null
      },
      "npmWeeklyDownloads": null,
      "install": "npm install broken-demo@1.0.0 --registry https://patch-cloud-production.up.railway.app"
    },
    {
      "repo": "react/react",
      "npmName": "react",
      "version": "19.3.0",
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/react/react/actions/runs/38704272216",
        "fetchedAt": "2026-10-18T16:45:23.714Z"
      },
      "status": {
        "label": "Upstream OK — normal npm",
        "tone": "ok",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/react/react/actions/runs/38704272216"
      },
      "rewrite": "ready",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/react",
        "url": "https://github.com/fitzyracing1/react",
        "branch": "main",
        "branchUrl": "https://github.com/fitzyracing1/react/tree/main"
      },
      "upstream": null,
      "note": "Annotated upstream react; no code changes yet. While dark, serves upstream react@19.3.0 annotated with fork metadata (runtime identical to upstream); while lit, proxies registry.npmjs.org.",
      "downloads": {
        "fork": 0,
        "upstream": 0,
        "metadata": 0,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": null,
      "npmWeeklyDownloads": 115387152,
      "install": null
    },
    {
      "repo": "vercel/next.js",
      "npmName": "next",
      "version": "16.4.0",
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/vercel/next.js/actions/runs/39078618013",
        "fetchedAt": "2026-10-18T16:45:23.976Z"
      },
      "status": {
        "label": "Upstream OK — normal npm",
        "tone": "ok",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/vercel/next.js/actions/runs/39078618013"
      },
      "rewrite": "ready",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/next.js",
        "url": "https://github.com/fitzyracing1/next.js",
        "branch": "rspack-manifest-fix",
        "branchUrl": "https://github.com/fitzyracing1/next.js/tree/rspack-manifest-fix"
      },
      "upstream": {
        "url": "https://github.com/vercel/next.js/pull/100001",
        "kind": "pr",
        "state": "open",
        "label": "fix submitted upstream"
      },
      "note": "CI-only fix (Rspack test manifests). While dark, serves upstream next@16.4.0 annotated with fork/PR metadata (runtime identical to upstream); while lit, proxies registry.npmjs.org.",
      "downloads": {
        "fork": 0,
        "upstream": 0,
        "metadata": 0,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": null,
      "npmWeeklyDownloads": 40841184,
      "install": null
    },
    {
      "repo": "denoland/deno",
      "npmName": null,
      "version": null,
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": "https://github.com/denoland/deno/actions/runs/37514460953",
        "fetchedAt": "2026-10-18T16:45:23.748Z"
      },
      "status": {
        "label": "Upstream build failing — not an npm rewrite target",
        "tone": "warn",
        "secondary": "upstream build: failing",
        "secondaryUrl": "https://github.com/denoland/deno/actions/runs/37514460953"
      },
      "rewrite": "n/a",
      "manual": null,
      "fork": null,
      "upstream": {
        "url": "https://github.com/denoland/deno/issues/37009",
        "kind": "issue",
        "state": "open",
        "label": "issue filed upstream"
      },
      "note": "Runtime binary, not an npm install target. CI fix tracked upstream in https://github.com/denoland/deno/issues/37009; fix PRs: https://github.com/denoland/deno/pull/37010 (skip flaky http2 tests on macOS) and https://github.com/denoland/deno/pull/37011 (node_compat config cleanup).",
      "downloads": null,
      "dark": {
        "since": "2026-09-08T11:41:42Z",
        "days": 40,
        "atLeast": true,
        "label": "≥ 40 days dark",
        "lastPassingAt": null
      },
      "npmWeeklyDownloads": null,
      "install": null
    },
    {
      "repo": "nodejs/node",
      "npmName": null,
      "version": null,
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/nodejs/node/actions/runs/39131982657",
        "fetchedAt": "2026-10-18T16:45:23.874Z"
      },
      "status": {
        "label": "Upstream OK",
        "tone": "ok",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/nodejs/node/actions/runs/39131982657"
      },
      "rewrite": "n/a",
      "manual": null,
      "fork": null,
      "upstream": {
        "url": "https://github.com/nodejs/node/pull/66667#issuecomment-6114930332",
        "kind": "pr-comment",
        "state": "merged",
        "label": "upstream PR merged"
      },
      "note": "Not replaced via registry rewrite. Release-proposal CI fix proposed upstream.",
      "downloads": null,
      "dark": null,
      "npmWeeklyDownloads": null,
      "install": null
    },
    {
      "repo": "microsoft/vscode",
      "npmName": null,
      "version": null,
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/microsoft/vscode/actions/runs/39146177258",
        "fetchedAt": "2026-10-18T16:45:24.046Z"
      },
      "status": {
        "label": "Upstream OK",
        "tone": "ok",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/microsoft/vscode/actions/runs/39146177258"
      },
      "rewrite": "n/a",
      "manual": null,
      "fork": null,
      "upstream": null,
      "note": "Not a typical npm install of the whole editor.",
      "downloads": null,
      "dark": null,
      "npmWeeklyDownloads": null,
      "install": null
    },
    {
      "repo": "rust-lang/rust",
      "npmName": null,
      "version": null,
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/rust-lang/rust/actions/runs/39139774967",
        "fetchedAt": "2026-10-18T16:45:23.878Z"
      },
      "status": {
        "label": "Upstream OK",
        "tone": "ok",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/rust-lang/rust/actions/runs/39139774967"
      },
      "rewrite": "n/a",
      "manual": null,
      "fork": null,
      "upstream": null,
      "note": "Not an npm package.",
      "downloads": null,
      "dark": null,
      "npmWeeklyDownloads": null,
      "install": null
    },
    {
      "repo": "python/cpython",
      "npmName": null,
      "version": null,
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/python/cpython/actions/runs/39144927026",
        "fetchedAt": "2026-10-18T16:45:23.793Z"
      },
      "status": {
        "label": "Upstream OK",
        "tone": "ok",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/python/cpython/actions/runs/39144927026"
      },
      "rewrite": "n/a",
      "manual": null,
      "fork": null,
      "upstream": null,
      "note": "Not an npm package.",
      "downloads": null,
      "dark": null,
      "npmWeeklyDownloads": null,
      "install": null
    },
    {
      "repo": "fitzyracing1/fakegreen",
      "npmName": null,
      "version": null,
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/fitzyracing1/fakegreen/actions/runs/38778170209",
        "fetchedAt": "2026-10-18T16:45:23.429Z"
      },
      "status": {
        "label": "Upstream OK",
        "tone": "ok",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/fitzyracing1/fakegreen/actions/runs/38778170209"
      },
      "rewrite": "n/a",
      "manual": null,
      "fork": null,
      "upstream": null,
      "note": "Light-computer demo repo; not an npm package.",
      "downloads": null,
      "dark": null,
      "npmWeeklyDownloads": null,
      "install": null
    },
    {
      "repo": "ZJONSSON/node-unzipper",
      "npmName": "unzipper",
      "version": "0.12.5",
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": "https://github.com/ZJONSSON/node-unzipper/actions/runs/28748726826",
        "fetchedAt": "2026-10-18T16:45:23.361Z"
      },
      "status": {
        "label": "Fork available — download via patch-cloud",
        "tone": "green",
        "secondary": "upstream build: failing",
        "secondaryUrl": "https://github.com/ZJONSSON/node-unzipper/actions/runs/28748726826"
      },
      "rewrite": "active",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/node-unzipper",
        "url": "https://github.com/fitzyracing1/node-unzipper",
        "branch": "patch-cloud",
        "branchUrl": "https://github.com/fitzyracing1/node-unzipper/tree/patch-cloud"
      },
      "upstream": {
        "url": "https://github.com/ZJONSSON/node-unzipper/pull/331",
        "kind": "pr",
        "state": "open",
        "label": "upstream fix PR open (not merged)"
      },
      "note": "unzipper@0.12.5 with PR #331 by @zachstence: @aws-sdk/client-s3 moved to dependencies so Open.s3_v3 works after a normal install (issue #330). Trade-off: also installs the AWS SDK v3 S3 client. Light is dark from a Pages coverage-deploy job, not from this bug.",
      "downloads": {
        "fork": 1,
        "upstream": 0,
        "metadata": 120,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": {
        "since": "2026-07-05T17:23:45Z",
        "days": 104,
        "atLeast": false,
        "label": "104 days dark",
        "lastPassingAt": "2026-06-21T16:39:18Z"
      },
      "npmWeeklyDownloads": 15633094,
      "install": "npm install unzipper@0.12.5 --registry https://patch-cloud-production.up.railway.app"
    },
    {
      "repo": "jimp-dev/jimp",
      "npmName": "jimp",
      "version": "1.6.1",
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": "https://github.com/jimp-dev/jimp/actions/runs/24095927252",
        "fetchedAt": "2026-10-18T16:45:23.232Z"
      },
      "status": {
        "label": "Fork available — download via patch-cloud",
        "tone": "green",
        "secondary": "upstream build: failing",
        "secondaryUrl": "https://github.com/jimp-dev/jimp/actions/runs/24095927252"
      },
      "rewrite": "active",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/jimp",
        "url": "https://github.com/fitzyracing1/jimp",
        "branch": "patch-cloud",
        "branchUrl": "https://github.com/fitzyracing1/jimp/tree/patch-cloud"
      },
      "upstream": {
        "url": "https://github.com/jimp-dev/jimp/issues/1402",
        "kind": "issue",
        "state": "open",
        "label": "upstream issue open"
      },
      "note": "jimp@1.6.1 with the real browser bundle: the npm release shipped a 98-byte stub at dist/browser/index.js, so bundlers using the \"browser\" condition got no exports (issue #1402). Fork fixes the turbo build order that caused it; Node builds are byte-identical to upstream.",
      "downloads": {
        "fork": 1,
        "upstream": 0,
        "metadata": 70,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": {
        "since": "2026-04-07T17:47:08Z",
        "days": 193,
        "atLeast": false,
        "label": "193 days dark",
        "lastPassingAt": "2026-04-07T17:52:35Z"
      },
      "npmWeeklyDownloads": 1879734,
      "install": "npm install jimp@1.6.1 --registry https://patch-cloud-production.up.railway.app"
    },
    {
      "repo": "vercel/ms",
      "npmName": "ms",
      "version": "2.1.3",
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": "https://github.com/vercel/ms/actions/runs/26193334159",
        "fetchedAt": "2026-10-18T16:45:23.232Z"
      },
      "status": {
        "label": "Fork available — download via patch-cloud",
        "tone": "green",
        "secondary": "upstream build: failing",
        "secondaryUrl": "https://github.com/vercel/ms/actions/runs/26193334159"
      },
      "rewrite": "active",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/ms",
        "url": "https://github.com/fitzyracing1/ms",
        "branch": "patch-cloud",
        "branchUrl": "https://github.com/fitzyracing1/ms/tree/patch-cloud"
      },
      "upstream": {
        "url": "https://github.com/vercel/ms/pull/299",
        "kind": "pr",
        "state": "open",
        "label": "upstream fix PR open (not merged)"
      },
      "note": "ms@2.1.3 where format() no longer emits scientific notation that parse() cannot read (ports PR #299 by @Pitchfork-and-Torch; issue #284), plus the opt-in decimal option from PR #125 by @almandsky. Ordinary output is unchanged. 2.1.3 already caps parse() input at 100 chars (the #291 ReDoS mitigation). Only ms@2.1.3 is replaced; other ms versions come from npm.",
      "downloads": {
        "fork": 1,
        "upstream": 0,
        "metadata": 122,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": {
        "since": "2026-05-20T22:20:39Z",
        "days": 150,
        "atLeast": false,
        "label": "150 days dark",
        "lastPassingAt": "2026-05-20T22:21:08Z"
      },
      "npmWeeklyDownloads": 332045404,
      "install": "npm install ms@2.1.3 --registry https://patch-cloud-production.up.railway.app"
    },
    {
      "repo": "prebuild/prebuild-install",
      "npmName": "prebuild-install",
      "version": "7.1.3",
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": "https://github.com/prebuild/prebuild-install/actions/runs/21780088731",
        "fetchedAt": "2026-10-18T16:45:23.194Z"
      },
      "status": {
        "label": "Fork available — download via patch-cloud",
        "tone": "green",
        "secondary": "upstream build: failing",
        "secondaryUrl": "https://github.com/prebuild/prebuild-install/actions/runs/21780088731"
      },
      "rewrite": "active",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/prebuild-install",
        "url": "https://github.com/fitzyracing1/prebuild-install",
        "branch": "patch-cloud",
        "branchUrl": "https://github.com/fitzyracing1/prebuild-install/tree/patch-cloud"
      },
      "upstream": {
        "url": "https://github.com/prebuild/prebuild-install/pull/214",
        "kind": "pr",
        "state": "open",
        "label": "upstream fix PR open (not merged)"
      },
      "note": "prebuild-install@7.1.3 requiring tar-fs ^2.1.4 (PR #214 by @alichtman) so vulnerable tar-fs (CVE-2025-59343 / GHSA-vj76-c3g6-qr5v) cannot satisfy it, e.g. from a stale lockfile (issue #213).",
      "downloads": {
        "fork": 1,
        "upstream": 0,
        "metadata": 70,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": {
        "since": "2026-02-07T12:27:11Z",
        "days": 253,
        "atLeast": true,
        "label": "≥ 253 days dark",
        "lastPassingAt": null
      },
      "npmWeeklyDownloads": 13447425,
      "install": "npm install prebuild-install@7.1.3 --registry https://patch-cloud-production.up.railway.app"
    },
    {
      "repo": "ajv-validator/ajv",
      "npmName": "ajv",
      "version": null,
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": "https://github.com/ajv-validator/ajv/actions/runs/24892856278",
        "fetchedAt": "2026-10-18T16:45:23.340Z"
      },
      "status": {
        "label": "Upstream build failing — no fork yet",
        "tone": "warn",
        "secondary": "upstream build: failing",
        "secondaryUrl": "https://github.com/ajv-validator/ajv/actions/runs/24892856278"
      },
      "rewrite": "would rewrite",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/ajv",
        "url": "https://github.com/fitzyracing1/ajv",
        "branch": "patch-cloud",
        "branchUrl": "https://github.com/fitzyracing1/ajv/tree/patch-cloud"
      },
      "upstream": {
        "url": "https://github.com/ajv-validator/ajv/pull/2591",
        "kind": "pr",
        "state": "open",
        "label": "upstream fix PR open (not merged)"
      },
      "note": "Not rewritten. PR #2591 (v6 build script scripts/compile-dots.js) could not be verified as a ReDoS fix: the original regexes show no super-linear behaviour on adversarial input, and as written the PR changes the generated validator code. A corrected branch (output byte-identical to ajv@6.15.0) is on the fork for review; nothing is served.",
      "downloads": {
        "fork": 0,
        "upstream": 0,
        "metadata": 24,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": {
        "since": "2026-04-24T13:12:04Z",
        "days": 177,
        "atLeast": false,
        "label": "177 days dark",
        "lastPassingAt": "2026-04-24T07:42:45Z"
      },
      "npmWeeklyDownloads": 231966272,
      "install": null
    },
    {
      "repo": "cli-table/cli-table3",
      "npmName": "cli-table3",
      "version": "0.6.5",
      "light": {
        "state": "dark",
        "conclusion": "failure",
        "ci": "failing",
        "url": "https://github.com/cli-table/cli-table3/actions/runs/24635946804",
        "fetchedAt": "2026-10-18T16:45:23.211Z"
      },
      "status": {
        "label": "Fork available — download via patch-cloud",
        "tone": "green",
        "secondary": "upstream build: failing",
        "secondaryUrl": "https://github.com/cli-table/cli-table3/actions/runs/24635946804"
      },
      "rewrite": "active",
      "manual": null,
      "fork": {
        "repo": "fitzyracing1/cli-table3",
        "url": "https://github.com/fitzyracing1/cli-table3",
        "branch": "patch-cloud",
        "branchUrl": "https://github.com/fitzyracing1/cli-table3/tree/patch-cloud"
      },
      "upstream": {
        "url": "https://github.com/cli-table/cli-table3/pull/359",
        "kind": "pr",
        "state": "open",
        "label": "upstream fix PR open (not merged)"
      },
      "note": "cli-table3@0.6.5 with PR #359 by @spokodev: a rowSpan past the last row is clamped instead of throwing \"Cannot read properties of undefined (reading 'length')\".",
      "downloads": {
        "fork": 1,
        "upstream": 0,
        "metadata": 2,
        "manual": 0,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": {
        "since": "2026-04-20T00:07:51Z",
        "days": 181,
        "atLeast": true,
        "label": "≥ 181 days dark",
        "lastPassingAt": null
      },
      "npmWeeklyDownloads": 19872298,
      "install": "npm install cli-table3@0.6.5 --registry https://patch-cloud-production.up.railway.app"
    },
    {
      "repo": "iamkun/dayjs",
      "npmName": "dayjs",
      "version": "1.11.23",
      "light": {
        "state": "lit",
        "conclusion": "success",
        "ci": "passing",
        "url": "https://github.com/iamkun/dayjs/actions/runs/34964122521",
        "fetchedAt": "2026-10-18T16:45:23.759Z"
      },
      "status": {
        "label": "Fork available (manual: fix waiting upstream)",
        "tone": "green",
        "secondary": "upstream build: passing",
        "secondaryUrl": "https://github.com/iamkun/dayjs/actions/runs/34964122521"
      },
      "rewrite": "manual",
      "manual": {
        "label": "manual: fix available",
        "reason": "Upstream CI is green but the timezone-plugin performance fix (PR #2019, open since 2022) is unmerged; CI does not measure performance.",
        "since": "2026-10-11",
        "servingNow": true
      },
      "fork": {
        "repo": "fitzyracing1/dayjs",
        "url": "https://github.com/fitzyracing1/dayjs",
        "branch": "patch-cloud",
        "branchUrl": "https://github.com/fitzyracing1/dayjs/tree/patch-cloud"
      },
      "upstream": {
        "url": "https://github.com/iamkun/dayjs/pull/2019",
        "kind": "pr",
        "state": "open",
        "label": "upstream fix PR open (not merged)"
      },
      "note": "dayjs@1.11.23 with a cached Intl.DateTimeFormat in the timezone plugin (ports PR #2019 by @logeyG):.tz() about 5x faster, identical results. Upstream CI is green, so this is served via the labeled manual switch, not a dark light.",
      "downloads": {
        "fork": 0,
        "upstream": 0,
        "metadata": 110,
        "manual": 1,
        "last24h": {
          "fork": 0,
          "upstream": 0,
          "metadata": 0,
          "manual": 0
        }
      },
      "dark": null,
      "npmWeeklyDownloads": 44108117,
      "install": "npm install dayjs@1.11.23 --registry https://patch-cloud-production.up.railway.app"
    }
  ],
  "watchlist": {
    "scannedAt": "2026-10-12T03:04:39.258Z",
    "source": "npmmirror dark-CI scan (top npm + China-popular packages, 573 checked, 496 repos)",
    "downloadsNote": "npmmirror (China mirror) downloads for September 2026; the /week figure is npmjs.org",
    "darkDefinition": "dark = the latest push/schedule test-CI run on the default branch did not pass",
    "totalDarkRepos": 33,
    "note": "Snapshot from a one-off scan; these lights are not refreshed live and day counts are as of the scan date. A dark light means the latest upstream build did not pass — npm installs of these packages still work.",
    "entries": [
      {
        "rank": 1,
        "repo": "isaacs/node-lru-cache",
        "repoUrl": "https://github.com/isaacs/node-lru-cache",
        "packages": [
          {
            "name": "lru-cache",
            "mirrorDownloadsSep2026": 29072134
          }
        ],
        "npmWeeklyDownloads": 348735064,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/isaacs/node-lru-cache/actions/runs/35406875832",
          "latestRunAt": "2026-09-18T23:44:53Z",
          "redRunsInARow": 8,
          "redRunsCapped": false,
          "lastPassingAt": "2026-04-20T16:02:39Z"
        },
        "dark": {
          "daysAtLeast": 23,
          "lastPassingDaysAgo": 174,
          "exact": false,
          "label": "23–174 days dark"
        },
        "summary": "Windows-only (4/8 jobs): `tap` aborts with \"'@tapjs/clock' does not appear to be a tap plugin… Cannot find module '@tapjs/clock'\". `.taprc` lists the plugin but it is in neither devDependencies nor package-lock. Failing 8 pushes in a row since 2026-04-20.",
        "fixability": "easy (add @tapjs/clock devDep; verify on Windows)",
        "existingFix": "none (2 unrelated open PRs #410/#411)",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 2,
        "repo": "DefinitelyTyped/DefinitelyTyped",
        "repoUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped",
        "packages": [
          {
            "name": "@types/node",
            "mirrorDownloadsSep2026": 26876315
          },
          {
            "name": "@types/estree",
            "mirrorDownloadsSep2026": 9777480
          },
          {
            "name": "@types/react-dom",
            "mirrorDownloadsSep2026": 7152630
          },
          {
            "name": "@types/json-schema",
            "mirrorDownloadsSep2026": 5781592
          },
          {
            "name": "@types/yargs",
            "mirrorDownloadsSep2026": 4714706
          },
          {
            "name": "@types/three",
            "mirrorDownloadsSep2026": 806056
          }
        ],
        "npmWeeklyDownloads": 276103559,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/DefinitelyTyped/DefinitelyTyped/actions/runs/38138657366",
          "latestRunAt": "2026-10-11T12:16:45Z",
          "redRunsInARow": 1,
          "redRunsCapped": false,
          "lastPassingAt": "2026-10-11T10:01:20Z"
        },
        "dark": {
          "daysAtLeast": 0,
          "lastPassingDaysAgo": 0,
          "exact": true,
          "label": "0 days dark"
        },
        "summary": "Scheduled full `test-all` (8/16 shards) failed on dtslint errors in individual packages (e.g. falcor-router). Pushes before and after are green. One-off breakage in a huge monorepo.",
        "fixability": "hard / transient (not an outsider target)",
        "existingFix": "n/a",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 3,
        "repo": "sindresorhus/has-flag",
        "repoUrl": "https://github.com/sindresorhus/has-flag",
        "packages": [
          {
            "name": "has-flag",
            "mirrorDownloadsSep2026": 20098030
          }
        ],
        "npmWeeklyDownloads": 186534604,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/sindresorhus/has-flag/actions/runs/35384164371",
          "latestRunAt": "2026-09-18T19:07:33Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 23,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 23 days dark · no passing run in scan window"
        },
        "summary": "`tsd@0.14` (old bundled TypeScript) chokes on the latest transitive `@types/node` (`✖ 952:8 Required type parameters may not follow optional…`, `Cannot find name Http1Request`). CI matrix still Node 12/14 and actions@v2. Triggered by the 2026-09-18 \"Meta tweaks\" mass push.",
        "fixability": "easy technically (pin @types/node or bump tsd + matrix), low merge odds (sindresorhus legacy major)",
        "existingFix": "none (0 open PRs)",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 4,
        "repo": "tapjs/signal-exit",
        "repoUrl": "https://github.com/tapjs/signal-exit",
        "packages": [
          {
            "name": "signal-exit",
            "mirrorDownloadsSep2026": 19348607
          }
        ],
        "npmWeeklyDownloads": 176746346,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/tapjs/signal-exit/actions/runs/18807452684",
          "latestRunAt": "2025-10-25T19:21:41Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 351,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 351 days dark · no passing run in scan window"
        },
        "summary": "All 4 Node 18.x jobs failed (Linux/macOS/Windows) on the only push run (2025-10-25 \"BlueOak-1.0.0\"). Logs expired (HTTP 410); probably a devDep that no longer supports Node 18 (unconfirmed).",
        "fixability": "easy-medium (drop/bump 18.x in matrix; needs a local repro first)",
        "existingFix": "none (#86/#88 are feature fixes)",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 5,
        "repo": "sindresorhus/escape-string-regexp",
        "repoUrl": "https://github.com/sindresorhus/escape-string-regexp",
        "packages": [
          {
            "name": "escape-string-regexp",
            "mirrorDownloadsSep2026": 17194559
          }
        ],
        "npmWeeklyDownloads": 215803548,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/sindresorhus/escape-string-regexp/actions/runs/35383978815",
          "latestRunAt": "2026-09-18T19:05:34Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 23,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 23 days dark · no passing run in scan window"
        },
        "summary": "Same as has-flag: tsd@0.14 vs current @types/node on Node 12/14 after the 2026-09-18 \"Meta tweaks\" push.",
        "fixability": "easy, low merge odds",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 6,
        "repo": "isaacs/isexe",
        "repoUrl": "https://github.com/isaacs/isexe",
        "packages": [
          {
            "name": "isexe",
            "mirrorDownloadsSep2026": 16691373
          }
        ],
        "npmWeeklyDownloads": 192094024,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/isaacs/isexe/actions/runs/18807223003",
          "latestRunAt": "2025-10-25T19:01:37Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 351,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 351 days dark · no passing run in scan window"
        },
        "summary": "Same pattern as signal-exit: all Node 18.x jobs failed on the 2025-10-25 \"BlueOak-1.0.0\" push. Logs expired.",
        "fixability": "easy-medium (needs repro)",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 7,
        "repo": "sindresorhus/resolve-from",
        "repoUrl": "https://github.com/sindresorhus/resolve-from",
        "packages": [
          {
            "name": "resolve-from",
            "mirrorDownloadsSep2026": 16246574
          }
        ],
        "npmWeeklyDownloads": 142383375,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/sindresorhus/resolve-from/actions/runs/35384834115",
          "latestRunAt": "2026-09-18T19:14:41Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 23,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 23 days dark · no passing run in scan window"
        },
        "summary": "Same as has-flag (tsd@0.7 + Node 8–14 matrix vs current @types/node: `Cannot find module node:events`, `esnext.disposable`).",
        "fixability": "easy, low merge odds",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 8,
        "repo": "isaacs/inherits",
        "repoUrl": "https://github.com/isaacs/inherits",
        "packages": [
          {
            "name": "inherits",
            "mirrorDownloadsSep2026": 13940327
          }
        ],
        "npmWeeklyDownloads": 126104487,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/isaacs/inherits/actions/runs/18807217511",
          "latestRunAt": "2025-10-25T19:01:05Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 351,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 351 days dark · no passing run in scan window"
        },
        "summary": "Infra: `Unable to find Node version '12.x' for platform darwin and architecture arm64`. macos-latest is now arm64 and has no Node 12/14 builds.",
        "fixability": "easy (exclude macOS for 12/14 or use macos-13)",
        "existingFix": "#49 (2022, token permissions, unrelated)",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 9,
        "repo": "vitejs/vite",
        "repoUrl": "https://github.com/vitejs/vite",
        "packages": [
          {
            "name": "vite",
            "mirrorDownloadsSep2026": 11174489
          }
        ],
        "npmWeeklyDownloads": 118790515,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/vitejs/vite/actions/runs/37959466369",
          "latestRunAt": "2026-10-09T16:29:17Z",
          "redRunsInARow": 1,
          "redRunsCapped": false,
          "lastPassingAt": "2026-10-09T14:00:23Z"
        },
        "dark": {
          "daysAtLeast": 2,
          "lastPassingDaysAgo": 2,
          "exact": true,
          "label": "2 days dark"
        },
        "summary": "Windows flake: `hmr-ssr.spec.ts > nested dep propagation` timed out / `transport was disconnected`. 1 of 10 jobs; the run before passed.",
        "fixability": "hard (flaky HMR test; maintainers active)",
        "existingFix": "n/a",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 10,
        "repo": "sindresorhus/strip-bom",
        "repoUrl": "https://github.com/sindresorhus/strip-bom",
        "packages": [
          {
            "name": "strip-bom",
            "mirrorDownloadsSep2026": 10904176
          }
        ],
        "npmWeeklyDownloads": 91155338,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/sindresorhus/strip-bom/actions/runs/35384969025",
          "latestRunAt": "2026-09-18T19:16:03Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 23,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 23 days dark · no passing run in scan window"
        },
        "summary": "Same as has-flag (tsd@0.14 vs current @types/node).",
        "fixability": "easy, low merge odds",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 11,
        "repo": "jshttp/statuses",
        "repoUrl": "https://github.com/jshttp/statuses",
        "packages": [
          {
            "name": "statuses",
            "mirrorDownloadsSep2026": 10671616
          }
        ],
        "npmWeeklyDownloads": 117451116,
        "archived": false,
        "ci": {
          "workflow": "ci",
          "url": "https://github.com/jshttp/statuses/actions/runs/18132508943",
          "latestRunAt": "2025-09-30T14:00:58Z",
          "redRunsInARow": 2,
          "redRunsCapped": false,
          "lastPassingAt": "2025-09-16T10:01:05Z"
        },
        "dark": {
          "daysAtLeast": 376,
          "lastPassingDaysAgo": 390,
          "exact": false,
          "label": "376–390 days dark"
        },
        "summary": "`test (Node.js 22.x/24.x)` jobs exit 2 on the last 2 pushes (Dependabot action bumps). Last green 2025-09-16. Logs expired (410).",
        "fixability": "medium (needs repro)",
        "existingFix": "Dependabot #72/#75–#78 stuck since 2025",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 12,
        "repo": "Rich-Harris/magic-string",
        "repoUrl": "https://github.com/Rich-Harris/magic-string",
        "packages": [
          {
            "name": "magic-string",
            "mirrorDownloadsSep2026": 9893935
          }
        ],
        "npmWeeklyDownloads": 151693794,
        "archived": false,
        "ci": {
          "workflow": "Test",
          "url": "https://github.com/Rich-Harris/magic-string/actions/runs/34425110157",
          "latestRunAt": "2026-09-10T01:21:02Z",
          "redRunsInARow": 2,
          "redRunsCapped": false,
          "lastPassingAt": "2026-09-10T01:16:14Z"
        },
        "dark": {
          "daysAtLeast": 32,
          "lastPassingDaysAgo": 32,
          "exact": false,
          "label": "32 days dark"
        },
        "summary": "Lint: ESLint `style/arrow-parens` error on a JS snippet in README.md:355 (`Unexpected parentheses around single function argument…`). Failing since the v1.3.0 release push (2026-09-10).",
        "fixability": "easy (1-line README fix or `eslint --fix`)",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 13,
        "repo": "jestjs/jest",
        "repoUrl": "https://github.com/jestjs/jest",
        "packages": [
          {
            "name": "jest-worker",
            "mirrorDownloadsSep2026": 9252333
          },
          {
            "name": "pretty-format",
            "mirrorDownloadsSep2026": 7221347
          },
          {
            "name": "@jest/types",
            "mirrorDownloadsSep2026": 5308348
          },
          {
            "name": "jest-util",
            "mirrorDownloadsSep2026": 4231339
          },
          {
            "name": "jest-message-util",
            "mirrorDownloadsSep2026": 3317859
          },
          {
            "name": "@jest/schemas",
            "mirrorDownloadsSep2026": 3172426
          }
        ],
        "npmWeeklyDownloads": 69404726,
        "archived": false,
        "ci": {
          "workflow": "Node CI",
          "url": "https://github.com/jestjs/jest/actions/runs/36997594681",
          "latestRunAt": "2026-10-02T10:49:24Z",
          "redRunsInARow": 1,
          "redRunsCapped": false,
          "lastPassingAt": "2026-09-18T13:56:43Z"
        },
        "dark": {
          "daysAtLeast": 9,
          "lastPassingDaysAgo": 23,
          "exact": true,
          "label": "9 days dark"
        },
        "summary": "Windows flake: `e2e/crawlSymlinks.test.ts` `EBUSY: resource busy or locked, rmdir` on temp dir. 1/94 jobs; history alternates pass/fail.",
        "fixability": "medium (harden cleanup with rmSync maxRetries); maintainers active",
        "existingFix": "none found",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 14,
        "repo": "sindresorhus/pify",
        "repoUrl": "https://github.com/sindresorhus/pify",
        "packages": [
          {
            "name": "pify",
            "mirrorDownloadsSep2026": 8929685
          }
        ],
        "npmWeeklyDownloads": 61464300,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/sindresorhus/pify/actions/runs/35386043123",
          "latestRunAt": "2026-09-18T19:27:32Z",
          "redRunsInARow": 2,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 23,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 23 days dark · no passing run in scan window"
        },
        "summary": "xo/eslint crash: `TypeError: Cannot read properties of undefined (reading 'getAllComments')` in `unicorn/expiring-todo-comments` (eslint-plugin-unicorn drift vs eslint 8). Matrix Node 14/16/18.",
        "fixability": "easy-medium, low merge odds",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 15,
        "repo": "typescript-eslint/typescript-eslint",
        "repoUrl": "https://github.com/typescript-eslint/typescript-eslint",
        "packages": [
          {
            "name": "@typescript-eslint/types",
            "mirrorDownloadsSep2026": 8919230
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "mirrorDownloadsSep2026": 8886824
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "mirrorDownloadsSep2026": 8739247
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "mirrorDownloadsSep2026": 8542050
          },
          {
            "name": "@typescript-eslint/utils",
            "mirrorDownloadsSep2026": 7892556
          },
          {
            "name": "@typescript-eslint/tsconfig-utils",
            "mirrorDownloadsSep2026": 5941617
          }
        ],
        "npmWeeklyDownloads": 105883067,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/typescript-eslint/typescript-eslint/actions/runs/38124573123",
          "latestRunAt": "2026-10-11T08:22:31Z",
          "redRunsInARow": 3,
          "redRunsCapped": false,
          "lastPassingAt": "2026-10-11T08:01:20Z"
        },
        "dark": {
          "daysAtLeast": 0,
          "lastPassingDaysAgo": 0,
          "exact": false,
          "label": "0 days dark"
        },
        "summary": "`type-utils:build` TS2694 (scope-manager dist missing `CatchClauseDefinition` etc.) from a stale Nx remote cache; 3 pushes in a row on 2026-10-11, maintainers already pushing CI tweaks.",
        "fixability": "hard (internal cache/infra, transient)",
        "existingFix": "n/a",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 16,
        "repo": "sindresorhus/object-assign",
        "repoUrl": "https://github.com/sindresorhus/object-assign",
        "packages": [
          {
            "name": "object-assign",
            "mirrorDownloadsSep2026": 8803894
          }
        ],
        "npmWeeklyDownloads": 105389349,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/sindresorhus/object-assign/actions/runs/35384570366",
          "latestRunAt": "2026-09-18T19:11:52Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 23,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 23 days dark · no passing run in scan window"
        },
        "summary": "Ancient toolchain (ava 0.16 / xo 0.16, Node 0.10–0.12 jobs): `SyntaxError: Unexpected identifier`, setup-node can't fetch 0.1x.",
        "fixability": "easy technically, very low merge odds (frozen package)",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 17,
        "repo": "isaacs/chownr",
        "repoUrl": "https://github.com/isaacs/chownr",
        "packages": [
          {
            "name": "chownr",
            "mirrorDownloadsSep2026": 8422092
          }
        ],
        "npmWeeklyDownloads": 65593374,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/isaacs/chownr/actions/runs/19651473890",
          "latestRunAt": "2025-11-24T22:32:53Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 321,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 321 days dark · no passing run in scan window"
        },
        "summary": "Windows jobs (18.x/20.x) failed on the 2025-11-24 push. Logs expired.",
        "fixability": "medium (needs repro)",
        "existingFix": "none (#33/#34 Dependabot from 2023)",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 18,
        "repo": "tailwindlabs/tailwindcss",
        "repoUrl": "https://github.com/tailwindlabs/tailwindcss",
        "packages": [
          {
            "name": "tailwindcss",
            "mirrorDownloadsSep2026": 7383814
          }
        ],
        "npmWeeklyDownloads": 85265574,
        "archived": false,
        "ci": {
          "workflow": "Integration Tests",
          "url": "https://github.com/tailwindlabs/tailwindcss/actions/runs/37993256372",
          "latestRunAt": "2026-10-09T21:24:27Z",
          "redRunsInARow": 1,
          "redRunsCapped": false,
          "lastPassingAt": "2026-09-25T19:32:44Z"
        },
        "dark": {
          "daysAtLeast": 2,
          "lastPassingDaysAgo": 16,
          "exact": true,
          "label": "2 days dark"
        },
        "summary": "Integration test `integrations/vite/nuxt.test.ts:73` gets `''` instead of `.underline` on all 3 OSes (Nuxt vite-node `403 Forbidden` on a /node_modules path). First failing run is the push right after #20531 \"Release loader callbacks after compilation\": either a regression from that PR or Nuxt drift.",
        "fixability": "medium",
        "existingFix": "none found",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 19,
        "repo": "follow-redirects/follow-redirects",
        "repoUrl": "https://github.com/follow-redirects/follow-redirects",
        "packages": [
          {
            "name": "follow-redirects",
            "mirrorDownloadsSep2026": 7257486
          }
        ],
        "npmWeeklyDownloads": 63175222,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/follow-redirects/follow-redirects/actions/runs/37836068414",
          "latestRunAt": "2026-10-08T19:59:35Z",
          "redRunsInARow": 4,
          "redRunsCapped": false,
          "lastPassingAt": "2026-04-13T11:02:43Z"
        },
        "dark": {
          "daysAtLeast": 3,
          "lastPassingDaysAgo": 181,
          "exact": false,
          "label": "3–181 days dark"
        },
        "summary": "Only `test (24.x)` fails: `\"after each\" hook for \"set globally, on write\"` times out. Node 24.21.0 leaves the aborted POST connection open, so `server.close()` hangs. REPRODUCED locally on 24.21.0. Adding `server.closeAllConnections()` in test/server.js `stopServer` makes 257/257 pass on Node 24.21 and Node 20. Failing since 2026-10-01 (4 pushes).",
        "fixability": "easy (verified 3-line test-harness fix)",
        "existingFix": "none (#289 is an unrelated runtime fix)",
        "fork": "no patch-cloud fork yet"
      },
      {
        "rank": 20,
        "repo": "isaacs/fs.realpath",
        "repoUrl": "https://github.com/isaacs/fs.realpath",
        "packages": [
          {
            "name": "fs.realpath",
            "mirrorDownloadsSep2026": 5268916
          }
        ],
        "npmWeeklyDownloads": 55258194,
        "archived": false,
        "ci": {
          "workflow": "CI",
          "url": "https://github.com/isaacs/fs.realpath/actions/runs/18807190269",
          "latestRunAt": "2025-10-25T18:58:14Z",
          "redRunsInARow": 1,
          "redRunsCapped": true,
          "lastPassingAt": null
        },
        "dark": {
          "daysAtLeast": 351,
          "lastPassingDaysAgo": null,
          "exact": false,
          "label": "≥ 351 days dark · no passing run in scan window"
        },
        "summary": "Same infra issue as inherits: macOS arm64 has no Node 12.x/14.x.",
        "fixability": "easy",
        "existingFix": "none",
        "fork": "no patch-cloud fork yet"
      }
    ]
  },
  "merged": {
    "count": 1,
    "litCount": 1,
    "litDark": "https://fitzyracing1.github.io/lit-dark/#merged",
    "note": "Upstream pull requests merged by each project’s maintainers that took a dark light to lit upstream. Before and after are upstream CI runs, checked with the GitHub API.",
    "entries": [
      {
        "repo": "cnpm/cnpmcore",
        "repoUrl": "https://github.com/cnpm/cnpmcore",
        "pr": 1161,
        "url": "https://github.com/cnpm/cnpmcore/pull/1161",
        "title": "ci: run test-mysql57-s3-nfs against a local S3Mock instead of the remote bucket",
        "mergedAt": "2026-10-12T04:05:45Z",
        "mergedAtET": "Oct 12, 2026, 12:05 AM ET",
        "mergedBy": "fengmk2",
        "mergedByUrl": "https://github.com/fengmk2",
        "branch": "master",
        "light": "test-mysql57-s3-nfs",
        "before": {
          "light": "dark",
          "since": "2026-04-01T05:30:13Z",
          "sinceET": "Apr 1, 2026",
          "why": "The test-mysql57-s3-nfs job ran against a remote S3 bucket that answered every request with HTTP 530 (origin unreachable), so the job stayed dark on every master run.",
          "run": {
            "id": 37601763270,
            "url": "https://github.com/cnpm/cnpmcore/actions/runs/37601763270",
            "workflow": "Node.js CI",
            "branch": "master",
            "createdAt": "2026-10-07T09:36:20Z",
            "createdAtET": "Oct 7, 2026, 5:36 AM ET",
            "light": "dark",
            "jobs": [
              {
                "name": "test-mysql57-s3-nfs (24, ubuntu-latest)",
                "light": "dark",
                "url": "https://github.com/cnpm/cnpmcore/actions/runs/37601763270/job/112727569660"
              },
              {
                "name": "test-mysql57-s3-nfs (26, ubuntu-latest)",
                "light": "dark",
                "url": "https://github.com/cnpm/cnpmcore/actions/runs/37601763270/job/112727569843"
              },
              {
                "name": "test-mysql57-s3-nfs (22, ubuntu-latest)",
                "light": "dark",
                "url": "https://github.com/cnpm/cnpmcore/actions/runs/37601763270/job/112727570069"
              }
            ],
            "jobsLit": 0,
            "jobsDark": 3
          }
        },
        "fix": "The job now starts a local S3Mock container with the bucket pre-created and uses it instead of the remote bucket, plus a matching tweak to one download test.",
        "after": {
          "light": "lit",
          "label": "lit upstream now",
          "run": {
            "id": 38202391845,
            "url": "https://github.com/cnpm/cnpmcore/actions/runs/38202391845",
            "workflow": "Node.js CI",
            "branch": "master",
            "createdAt": "2026-10-12T04:05:48Z",
            "createdAtET": "Oct 12, 2026, 12:05 AM ET",
            "light": "lit",
            "jobs": [
              {
                "name": "test-mysql57-s3-nfs (26, ubuntu-latest)",
                "light": "lit",
                "url": "https://github.com/cnpm/cnpmcore/actions/runs/38202391845/job/114658399919"
              },
              {
                "name": "test-mysql57-s3-nfs (22, ubuntu-latest)",
                "light": "lit",
                "url": "https://github.com/cnpm/cnpmcore/actions/runs/38202391845/job/114658400082"
              },
              {
                "name": "test-mysql57-s3-nfs (24, ubuntu-latest)",
                "light": "lit",
                "url": "https://github.com/cnpm/cnpmcore/actions/runs/38202391845/job/114658400083"
              }
            ],
            "jobsLit": 3,
            "jobsDark": 0
          },
          "summary": "First master run after the merge: Node.js CI 38202391845, 3 of 3 test-mysql57-s3-nfs jobs lit."
        },
        "verifiedAt": "2026-10-12T04:31:49Z",
        "note": null
      }
    ]
  },
  "legend": {
    "lit": "Upstream OK — normal npm (CI passing → proxied / upstream)",
    "dark": "Upstream build failing → fork served when one is packaged",
    "manual": "Fork available (manual: fix waiting upstream) — labeled override; the CI light is shown as-is and is never faked",
    "rewrite": "active = serving fork now (light dark) · manual = serving fork via the labeled manual switch (light lit) · ready = packaged, light lit → upstream · would rewrite = dark but no fork packaged · n/a = not an npm rewrite target"
  },
  "optIn": {
    "install": "npm install <pkg> --registry https://patch-cloud-production.up.railway.app",
    "npmrc": "registry=https://patch-cloud-production.up.railway.app/",
    "status": "/status",
    "health": "/health"
  }
}