{
  "generated_at": "2026-04-23T21:14:28.848163+00:00",
  "org": "codeflash-ai",
  "repos": [
    "codeflash",
    "codeflash-internal",
    "codeflash-agent",
    "github-workflows"
  ],
  "open_prs": [
    {
      "repo": "codeflash",
      "number": 2020,
      "title": "[JS] Improvements for benchmarking (reduce the noise)",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2020",
      "created_at": "2026-04-08T17:51:25Z",
      "updated_at": "2026-04-23T12:19:23Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1993,
      "title": "Fix: Use correct Jest config per-package in monorepo optimizations",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1993",
      "created_at": "2026-04-04T08:32:42Z",
      "updated_at": "2026-04-23T11:24:41Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1962,
      "title": "Fix Java instrumentation compilation error for generic methods",
      "state": "open",
      "author": "aseembits93",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1962",
      "created_at": "2026-04-02T00:15:38Z",
      "updated_at": "2026-04-23T11:14:52Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2062,
      "title": "fix: share CLI flags between main parser and optimize subparser",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2062",
      "created_at": "2026-04-10T21:45:23Z",
      "updated_at": "2026-04-23T08:45:57Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2066,
      "title": "fix: reject JDK < 11 early with clear error message",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2066",
      "created_at": "2026-04-10T21:47:26Z",
      "updated_at": "2026-04-21T02:05:38Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2068,
      "title": "Bump version to 0.20.6",
      "state": "open",
      "author": "aseembits93",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2068",
      "created_at": "2026-04-14T19:10:15Z",
      "updated_at": "2026-04-14T19:12:42Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2063,
      "title": "fix: detect JUnit 5 from submodule build files and default to JUnit 5",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2063",
      "created_at": "2026-04-10T21:45:54Z",
      "updated_at": "2026-04-10T21:45:54Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1918,
      "title": "feat: multi-language orchestration loop with per-language config discovery",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1918",
      "created_at": "2026-03-27T15:50:09Z",
      "updated_at": "2026-04-09T14:16:05Z",
      "merged_at": null,
      "draft": true
    },
    {
      "repo": "codeflash",
      "number": 1981,
      "title": "fix: resolve missing project JARs in Gradle multi-module classpath",
      "state": "open",
      "author": "HeshamHM28",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1981",
      "created_at": "2026-04-03T13:29:34Z",
      "updated_at": "2026-04-23T08:45:56Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2018,
      "title": "Tracer Docs",
      "state": "open",
      "author": "HeshamHM28",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2018",
      "created_at": "2026-04-07T12:51:39Z",
      "updated_at": "2026-04-09T08:22:56Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1947,
      "title": "fix: reject Java optimizations with unused additions and unchanged target method",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1947",
      "created_at": "2026-04-01T15:54:41Z",
      "updated_at": "2026-04-08T17:15:47Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1950,
      "title": "fix: reject optimizations that modify class members without changing target method",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1950",
      "created_at": "2026-04-01T16:16:26Z",
      "updated_at": "2026-04-08T17:15:38Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1951,
      "title": "fix: cap wildcard import expansion to avoid token explosion",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1951",
      "created_at": "2026-04-01T16:22:00Z",
      "updated_at": "2026-04-08T17:15:29Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1953,
      "title": "fix: scope field extraction to target class to prevent cross-class injection",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1953",
      "created_at": "2026-04-01T16:37:41Z",
      "updated_at": "2026-04-08T17:11:31Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1561,
      "title": "[WIP] react framework initial commit",
      "state": "open",
      "author": "Saga4",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1561",
      "created_at": "2026-02-20T02:48:33Z",
      "updated_at": "2026-04-07T14:42:01Z",
      "merged_at": null,
      "draft": true
    },
    {
      "repo": "codeflash",
      "number": 2011,
      "title": "Fix: Add TypeScript transformer to runtime Jest config",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2011",
      "created_at": "2026-04-06T20:11:07Z",
      "updated_at": "2026-04-06T20:11:08Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2010,
      "title": "Fix: Preserve moduleNameMapper from TypeScript Jest configs in monorepos",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2010",
      "created_at": "2026-04-06T17:53:00Z",
      "updated_at": "2026-04-06T17:53:00Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2009,
      "title": "Fix: Always disable Jest globalSetup/globalTeardown for Codeflash tests",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2009",
      "created_at": "2026-04-06T16:41:51Z",
      "updated_at": "2026-04-06T16:41:51Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2008,
      "title": "CRITICAL: Fix JavaScript code injection in Jest config generation (Issue #17)",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2008",
      "created_at": "2026-04-06T16:33:04Z",
      "updated_at": "2026-04-06T16:33:04Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2007,
      "title": "Fix TypeScript test files converted to CommonJS causing SyntaxError",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2007",
      "created_at": "2026-04-06T15:14:10Z",
      "updated_at": "2026-04-06T15:20:58Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2006,
      "title": "Disable globalSetup/globalTeardown in generated Jest configs",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2006",
      "created_at": "2026-04-06T12:59:36Z",
      "updated_at": "2026-04-06T12:59:36Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2005,
      "title": "Fix SyntaxError when requiring TypeScript Jest configs",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2005",
      "created_at": "2026-04-06T12:56:46Z",
      "updated_at": "2026-04-06T12:56:46Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2004,
      "title": "fix: install @babel/preset-typescript for TypeScript transformation when only Babel is available",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2004",
      "created_at": "2026-04-06T12:02:57Z",
      "updated_at": "2026-04-06T12:09:26Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2003,
      "title": "fix(js): detect TypeScript transformers beyond ts-jest",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2003",
      "created_at": "2026-04-06T11:44:58Z",
      "updated_at": "2026-04-06T11:50:37Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2002,
      "title": "Fix: Disable Jest globalSetup/globalTeardown to avoid external dependencies",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2002",
      "created_at": "2026-04-06T10:49:46Z",
      "updated_at": "2026-04-06T10:55:35Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2001,
      "title": "fix: Skip test_returns_none_for_unreadable_file when running as root",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2001",
      "created_at": "2026-04-06T10:34:16Z",
      "updated_at": "2026-04-06T10:36:25Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2000,
      "title": "Fix excessive logging in create_pr.py that creates 43MB+ log files",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2000",
      "created_at": "2026-04-05T03:20:21Z",
      "updated_at": "2026-04-05T03:23:25Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1998,
      "title": "Fix: Add language guard for Python-only code_repair endpoint",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1998",
      "created_at": "2026-04-04T14:18:57Z",
      "updated_at": "2026-04-04T14:24:20Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1997,
      "title": "Add language guards for Python-only endpoints",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1997",
      "created_at": "2026-04-04T13:09:04Z",
      "updated_at": "2026-04-04T13:13:24Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 1996,
      "title": "Fix TypeScript module system detection in CommonJS packages",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash/pull/1996",
      "created_at": "2026-04-04T13:05:53Z",
      "updated_at": "2026-04-04T13:09:54Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2612,
      "title": "Website refresh with messaging scratch pad and wireframes",
      "state": "open",
      "author": "misrasaurabh1",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2612",
      "created_at": "2026-04-23T01:22:48Z",
      "updated_at": "2026-04-23T08:41:47Z",
      "merged_at": null,
      "draft": true
    },
    {
      "repo": "codeflash-internal",
      "number": 2463,
      "title": "chore(deps): bump stripe from 18.5.0 to 20.4.0 in /js/common",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2463",
      "created_at": "2026-03-01T13:25:23Z",
      "updated_at": "2026-04-10T20:49:30Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2461,
      "title": "chore(deps-dev): bump prisma from 6.15.0 to 7.4.2 in /js/common",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2461",
      "created_at": "2026-03-01T13:24:43Z",
      "updated_at": "2026-04-10T20:49:28Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2460,
      "title": "chore(deps): bump express and @types/express in /js/cf-api",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2460",
      "created_at": "2026-03-01T13:24:27Z",
      "updated_at": "2026-04-10T20:49:27Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2458,
      "title": "chore(deps): bump marked from 16.2.1 to 17.0.3 in /js/cf-api",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2458",
      "created_at": "2026-03-01T13:24:11Z",
      "updated_at": "2026-04-10T20:49:24Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2457,
      "title": "chore(deps): bump @prisma/client from 6.15.0 to 7.4.2 in /js/common",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2457",
      "created_at": "2026-03-01T13:24:08Z",
      "updated_at": "2026-04-10T20:49:23Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2456,
      "title": "chore(deps): bump @octokit/plugin-rest-endpoint-methods from 15.0.0 to 17.0.0 in /js/cf-api",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2456",
      "created_at": "2026-03-01T13:24:03Z",
      "updated_at": "2026-04-10T20:49:22Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2453,
      "title": "chore(deps): bump @opentelemetry/context-async-hooks from 1.30.1 to 2.5.1 in /js/cf-api",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2453",
      "created_at": "2026-03-01T13:23:50Z",
      "updated_at": "2026-04-10T20:49:20Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2451,
      "title": "chore(deps): bump @azure/msal-node from 2.16.3 to 5.0.5 in /js/common",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2451",
      "created_at": "2026-03-01T13:23:42Z",
      "updated_at": "2026-04-10T20:49:18Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2450,
      "title": "chore(deps-dev): bump @tsconfig/node20 from 20.1.6 to 20.1.9 in /js/cf-api",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2450",
      "created_at": "2026-03-01T13:23:41Z",
      "updated_at": "2026-04-10T20:49:17Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2448,
      "title": "chore(deps-dev): bump globals from 16.3.0 to 17.4.0 in /js/common",
      "state": "open",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2448",
      "created_at": "2026-03-01T13:23:36Z",
      "updated_at": "2026-04-10T20:49:15Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2595,
      "title": "\u26a1\ufe0f Speed up function `validate_trace_id` by 456% in PR #2593 (`perf/sentry-driven-optimizations`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2595",
      "created_at": "2026-04-10T11:32:25Z",
      "updated_at": "2026-04-10T20:39:46Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2594,
      "title": "fix(ci): use GitHub App token so auto-format pushes retrigger required checks",
      "state": "open",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2594",
      "created_at": "2026-04-10T11:23:32Z",
      "updated_at": "2026-04-10T11:23:32Z",
      "merged_at": null,
      "draft": true
    },
    {
      "repo": "codeflash-internal",
      "number": 2507,
      "title": "fix: add JIT compiler awareness to Java optimizer prompt",
      "state": "open",
      "author": "mashraf-222",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2507",
      "created_at": "2026-04-01T16:08:51Z",
      "updated_at": "2026-04-07T22:07:17Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2434,
      "title": "react omni aiservice",
      "state": "open",
      "author": "Saga4",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2434",
      "created_at": "2026-02-20T19:07:58Z",
      "updated_at": "2026-04-07T14:41:23Z",
      "merged_at": null,
      "draft": true
    },
    {
      "repo": "codeflash-internal",
      "number": 2583,
      "title": "Fix: Preserve file path in multi-file fallback when LLM returns single block",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2583",
      "created_at": "2026-04-06T19:00:26Z",
      "updated_at": "2026-04-06T19:05:11Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2582,
      "title": "Fix RuntimeError: Event loop is closed on ASGI shutdown (Issue #16)",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2582",
      "created_at": "2026-04-06T16:21:55Z",
      "updated_at": "2026-04-06T17:56:17Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2578,
      "title": "Fix TOCTOU race condition in LLM client causing APIConnectionError",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2578",
      "created_at": "2026-04-05T04:36:18Z",
      "updated_at": "2026-04-06T03:16:15Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2580,
      "title": "\u26a1\ufe0f Speed up method `LLMClient.call` by 80% in PR #2578 (`fix/llm-client-toctou-race`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2580",
      "created_at": "2026-04-05T05:05:54Z",
      "updated_at": "2026-04-05T05:08:54Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2575,
      "title": "Fix race condition in LLM client recreation causing \"client closed\" errors",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2575",
      "created_at": "2026-04-05T03:24:00Z",
      "updated_at": "2026-04-05T03:29:20Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2574,
      "title": "\u26a1\ufe0f Speed up function `_detect_export_style_cached` by 472% in PR #2569 (`codeflash/optimize-pr2567-2026-04-04T18.17.07`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2574",
      "created_at": "2026-04-04T18:53:01Z",
      "updated_at": "2026-04-04T18:57:33Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2569,
      "title": "\u26a1\ufe0f Speed up function `build_javascript_prompt` by 760% in PR #2567 (`codeflash/optimize-pr2565-2026-04-04T18.07.28`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2569",
      "created_at": "2026-04-04T18:17:13Z",
      "updated_at": "2026-04-04T18:53:04Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2573,
      "title": "\u26a1\ufe0f Speed up function `_get_user_template` by 1,606% in PR #2570 (`codeflash/optimize-pr2566-2026-04-04T18.23.22`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2573",
      "created_at": "2026-04-04T18:38:11Z",
      "updated_at": "2026-04-04T18:42:56Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2570,
      "title": "\u26a1\ufe0f Speed up function `_render_user_template` by 18% in PR #2566 (`codeflash/optimize-pr2565-2026-04-04T17.55.22`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2570",
      "created_at": "2026-04-04T18:23:28Z",
      "updated_at": "2026-04-04T18:38:14Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2572,
      "title": "\u26a1\ufe0f Speed up function `_render_system_template` by 199% in PR #2569 (`codeflash/optimize-pr2567-2026-04-04T18.17.07`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2572",
      "created_at": "2026-04-04T18:32:55Z",
      "updated_at": "2026-04-04T18:36:17Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2567,
      "title": "\u26a1\ufe0f Speed up function `generate_javascript_tests_from_function` by 16% in PR #2565 (`fix/typescript-commonjs-import`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2567",
      "created_at": "2026-04-04T18:07:34Z",
      "updated_at": "2026-04-04T18:34:44Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2571,
      "title": "\u26a1\ufe0f Speed up function `_detect_export_style` by 73% in PR #2568 (`codeflash/optimize-pr2566-2026-04-04T18.13.20`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2571",
      "created_at": "2026-04-04T18:24:45Z",
      "updated_at": "2026-04-04T18:33:08Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2568,
      "title": "\u26a1\ufe0f Speed up function `_detect_export_style_cached` by 139% in PR #2566 (`codeflash/optimize-pr2565-2026-04-04T17.55.22`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2568",
      "created_at": "2026-04-04T18:13:26Z",
      "updated_at": "2026-04-04T18:24:48Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2566,
      "title": "\u26a1\ufe0f Speed up function `build_javascript_prompt` by 2,187% in PR #2565 (`fix/typescript-commonjs-import`)",
      "state": "open",
      "author": "codeflash-ai[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2566",
      "created_at": "2026-04-04T17:55:28Z",
      "updated_at": "2026-04-04T18:23:31Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2565,
      "title": "Fix TypeScript tests using require() in CommonJS packages",
      "state": "open",
      "author": "mohammedahmed18",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2565",
      "created_at": "2026-04-04T17:40:57Z",
      "updated_at": "2026-04-04T18:07:37Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 36,
      "title": "chore: add standup dashboard with CI audit integration",
      "state": "open",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/36",
      "created_at": "2026-04-23T14:26:03Z",
      "updated_at": "2026-04-23T21:06:26Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 7,
      "title": "Integrate codeflash-project-detector into workspace",
      "state": "open",
      "author": "HeshamHM28",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/7",
      "created_at": "2026-04-09T10:16:32Z",
      "updated_at": "2026-04-21T06:23:46Z",
      "merged_at": null,
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 27,
      "title": "Enhance Java Flow",
      "state": "open",
      "author": "HeshamHM28",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/27",
      "created_at": "2026-04-16T12:04:37Z",
      "updated_at": "2026-04-17T16:18:06Z",
      "merged_at": null,
      "draft": false
    }
  ],
  "merged_prs": [
    {
      "repo": "codeflash",
      "number": 2117,
      "title": "fix: pass CI bot secrets to tessl update workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2117",
      "created_at": "2026-04-23T13:04:31Z",
      "updated_at": "2026-04-23T13:04:55Z",
      "merged_at": "2026-04-23T13:04:53Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2116,
      "title": "fix: add permissions to tessl update caller workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2116",
      "created_at": "2026-04-23T12:50:20Z",
      "updated_at": "2026-04-23T12:50:40Z",
      "merged_at": "2026-04-23T12:50:39Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2115,
      "title": "chore: use reusable tessl update workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2115",
      "created_at": "2026-04-23T12:43:43Z",
      "updated_at": "2026-04-23T12:44:55Z",
      "merged_at": "2026-04-23T12:44:53Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2114,
      "title": "chore: initialize tessl with vendored tiles",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2114",
      "created_at": "2026-04-23T11:53:12Z",
      "updated_at": "2026-04-23T12:16:58Z",
      "merged_at": "2026-04-23T12:16:55Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2113,
      "title": "chore: rebuild .gitignore from GitHub templates",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2113",
      "created_at": "2026-04-23T11:37:20Z",
      "updated_at": "2026-04-23T11:38:19Z",
      "merged_at": "2026-04-23T11:38:16Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2112,
      "title": "chore: clean up tessl gitignore entries",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2112",
      "created_at": "2026-04-23T11:27:39Z",
      "updated_at": "2026-04-23T11:28:26Z",
      "merged_at": "2026-04-23T11:28:25Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2111,
      "title": "chore: remove tessl-managed agent config",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2111",
      "created_at": "2026-04-23T11:14:18Z",
      "updated_at": "2026-04-23T11:17:45Z",
      "merged_at": "2026-04-23T11:17:42Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2014,
      "title": "feat: display logo when running `codeflash --help`",
      "state": "closed",
      "author": "aseembits93",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2014",
      "created_at": "2026-04-06T23:07:06Z",
      "updated_at": "2026-04-23T11:11:15Z",
      "merged_at": "2026-04-23T11:11:13Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2102,
      "title": "chore(deps): bump better-sqlite3 from 12.6.2 to 12.9.0 in /packages/codeflash",
      "state": "closed",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2102",
      "created_at": "2026-04-23T09:16:02Z",
      "updated_at": "2026-04-23T10:33:00Z",
      "merged_at": "2026-04-23T10:32:58Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2104,
      "title": "Use shared workflows for change detection, prek, and gate job",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2104",
      "created_at": "2026-04-23T09:35:35Z",
      "updated_at": "2026-04-23T10:29:11Z",
      "merged_at": "2026-04-23T10:29:09Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2110,
      "title": "fix(ci): skip e2e tests on Dependabot PRs",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2110",
      "created_at": "2026-04-23T10:21:02Z",
      "updated_at": "2026-04-23T10:21:38Z",
      "merged_at": "2026-04-23T10:21:35Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2101,
      "title": "chore(deps): bump actions/cache from 4 to 5",
      "state": "closed",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2101",
      "created_at": "2026-04-23T09:15:48Z",
      "updated_at": "2026-04-23T10:19:47Z",
      "merged_at": "2026-04-23T10:19:46Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2100,
      "title": "chore(deps): bump actions/upload-artifact from 4 to 7",
      "state": "closed",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2100",
      "created_at": "2026-04-23T09:15:45Z",
      "updated_at": "2026-04-23T10:19:45Z",
      "merged_at": "2026-04-23T10:19:43Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2099,
      "title": "chore(deps): bump softprops/action-gh-release from 2 to 3",
      "state": "closed",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2099",
      "created_at": "2026-04-23T09:15:41Z",
      "updated_at": "2026-04-23T10:19:42Z",
      "merged_at": "2026-04-23T10:19:41Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2098,
      "title": "chore(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0",
      "state": "closed",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2098",
      "created_at": "2026-04-23T09:15:39Z",
      "updated_at": "2026-04-23T10:19:40Z",
      "merged_at": "2026-04-23T10:19:38Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2097,
      "title": "chore(deps): bump actions/github-script from 7 to 9",
      "state": "closed",
      "author": "dependabot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2097",
      "created_at": "2026-04-23T09:15:33Z",
      "updated_at": "2026-04-23T10:19:38Z",
      "merged_at": "2026-04-23T10:19:35Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2109,
      "title": "chore: triage dependabot alerts and fix flaky esm-async e2e",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2109",
      "created_at": "2026-04-23T10:12:18Z",
      "updated_at": "2026-04-23T10:13:01Z",
      "merged_at": "2026-04-23T10:12:58Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2108,
      "title": "chore: fix claude hooks and add LSP tool env",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2108",
      "created_at": "2026-04-23T10:08:58Z",
      "updated_at": "2026-04-23T10:09:50Z",
      "merged_at": "2026-04-23T10:09:47Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2107,
      "title": "chore: skip linked-issue check for org members",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2107",
      "created_at": "2026-04-23T10:01:32Z",
      "updated_at": "2026-04-23T10:06:56Z",
      "merged_at": "2026-04-23T10:06:54Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2105,
      "title": "feat(js): add JavaScript function tracer with Babel instrumentation",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2105",
      "created_at": "2026-04-23T09:38:05Z",
      "updated_at": "2026-04-23T10:00:25Z",
      "merged_at": "2026-04-23T10:00:22Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2106,
      "title": "chore: bump all dependency versions to latest",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2106",
      "created_at": "2026-04-23T09:43:56Z",
      "updated_at": "2026-04-23T09:44:39Z",
      "merged_at": "2026-04-23T09:44:37Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2103,
      "title": "chore: rebuild .claude config from scratch",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2103",
      "created_at": "2026-04-23T09:31:24Z",
      "updated_at": "2026-04-23T09:42:33Z",
      "merged_at": "2026-04-23T09:42:31Z",
      "draft": false
    },
    {
      "repo": "codeflash",
      "number": 2096,
      "title": "Remove test fixture lockfiles, re-enable Dependabot",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash/pull/2096",
      "created_at": "2026-04-23T09:14:34Z",
      "updated_at": "2026-04-23T09:15:00Z",
      "merged_at": "2026-04-23T09:14:57Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2624,
      "title": "chore: update tessl tiles 2026-04-23",
      "state": "closed",
      "author": "codeflash-ci-bot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2624",
      "created_at": "2026-04-23T13:06:26Z",
      "updated_at": "2026-04-23T13:15:44Z",
      "merged_at": "2026-04-23T13:15:41Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2625,
      "title": "fix: use proper tile names in missing-tiles.txt",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2625",
      "created_at": "2026-04-23T13:07:07Z",
      "updated_at": "2026-04-23T13:07:20Z",
      "merged_at": "2026-04-23T13:07:17Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2623,
      "title": "fix: pass CI bot secrets to tessl update workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2623",
      "created_at": "2026-04-23T13:04:32Z",
      "updated_at": "2026-04-23T13:04:58Z",
      "merged_at": "2026-04-23T13:04:56Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2622,
      "title": "fix: add permissions to tessl update caller workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2622",
      "created_at": "2026-04-23T12:50:21Z",
      "updated_at": "2026-04-23T12:50:44Z",
      "merged_at": "2026-04-23T12:50:41Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2621,
      "title": "chore: initialize tessl with vendored tiles",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2621",
      "created_at": "2026-04-23T12:43:44Z",
      "updated_at": "2026-04-23T12:46:14Z",
      "merged_at": "2026-04-23T12:44:56Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2620,
      "title": "Migrate aiservice-test to shared workflow with dynamic secret env",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2620",
      "created_at": "2026-04-23T10:56:39Z",
      "updated_at": "2026-04-23T11:00:14Z",
      "merged_at": "2026-04-23T11:00:11Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2618,
      "title": "Bump stale GitHub Actions versions",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2618",
      "created_at": "2026-04-23T10:44:15Z",
      "updated_at": "2026-04-23T10:49:20Z",
      "merged_at": "2026-04-23T10:49:17Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2617,
      "title": "Fix VSCode extension build: regenerate package-lock.json",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2617",
      "created_at": "2026-04-23T10:41:31Z",
      "updated_at": "2026-04-23T10:44:20Z",
      "merged_at": "2026-04-23T10:44:18Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2616,
      "title": "Remove old CI workflow files (consolidated into ci.yaml)",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2616",
      "created_at": "2026-04-23T10:30:30Z",
      "updated_at": "2026-04-23T10:32:32Z",
      "merged_at": "2026-04-23T10:32:30Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2614,
      "title": "Consolidate CI workflows into single ci.yaml with gate job",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2614",
      "created_at": "2026-04-23T09:23:01Z",
      "updated_at": "2026-04-23T10:26:08Z",
      "merged_at": "2026-04-23T10:26:05Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2613,
      "title": "Unpin claude-code-action from v1.0.89 to @v1",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2613",
      "created_at": "2026-04-23T09:08:54Z",
      "updated_at": "2026-04-23T09:10:13Z",
      "merged_at": "2026-04-23T09:10:11Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2611,
      "title": "fix: allow Monaco editor CDN in CSP for trace page diffs",
      "state": "closed",
      "author": "aseembits93",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2611",
      "created_at": "2026-04-21T06:54:23Z",
      "updated_at": "2026-04-21T22:39:45Z",
      "merged_at": "2026-04-21T22:37:40Z",
      "draft": false
    },
    {
      "repo": "codeflash-internal",
      "number": 2610,
      "title": "Codeflash RL Environment for Roboflow Inference to train AI Agents for optimization",
      "state": "closed",
      "author": "misrasaurabh1",
      "url": "https://github.com/codeflash-ai/codeflash-internal/pull/2610",
      "created_at": "2026-04-16T23:35:12Z",
      "updated_at": "2026-04-16T23:38:04Z",
      "merged_at": "2026-04-16T23:35:50Z",
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 38,
      "title": "fix: resolve all ruff lint errors across repo",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/38",
      "created_at": "2026-04-23T15:21:33Z",
      "updated_at": "2026-04-23T15:22:42Z",
      "merged_at": "2026-04-23T15:22:42Z",
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 35,
      "title": "chore: update tessl tiles 2026-04-23",
      "state": "closed",
      "author": "codeflash-ci-bot[bot]",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/35",
      "created_at": "2026-04-23T13:06:17Z",
      "updated_at": "2026-04-23T13:15:44Z",
      "merged_at": "2026-04-23T13:15:44Z",
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 34,
      "title": "fix: pass CI bot secrets to tessl update workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/34",
      "created_at": "2026-04-23T13:04:33Z",
      "updated_at": "2026-04-23T13:04:58Z",
      "merged_at": "2026-04-23T13:04:58Z",
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 33,
      "title": "fix: add permissions to tessl update caller workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/33",
      "created_at": "2026-04-23T12:50:22Z",
      "updated_at": "2026-04-23T12:50:43Z",
      "merged_at": "2026-04-23T12:50:43Z",
      "draft": false
    },
    {
      "repo": "codeflash-agent",
      "number": 32,
      "title": "chore: initialize tessl with vendored tiles",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/codeflash-agent/pull/32",
      "created_at": "2026-04-23T12:43:46Z",
      "updated_at": "2026-04-23T12:44:58Z",
      "merged_at": "2026-04-23T12:44:58Z",
      "draft": false
    },
    {
      "repo": "github-workflows",
      "number": 7,
      "title": "fix: use GitHub App token for PR creation",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/github-workflows/pull/7",
      "created_at": "2026-04-23T13:04:29Z",
      "updated_at": "2026-04-23T13:04:44Z",
      "merged_at": "2026-04-23T13:04:44Z",
      "draft": false
    },
    {
      "repo": "github-workflows",
      "number": 6,
      "title": "docs: add permissions block to tessl caller example",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/github-workflows/pull/6",
      "created_at": "2026-04-23T12:50:19Z",
      "updated_at": "2026-04-23T12:50:36Z",
      "merged_at": "2026-04-23T12:50:36Z",
      "draft": false
    },
    {
      "repo": "github-workflows",
      "number": 5,
      "title": "fix: heredoc syntax in tessl-update workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/github-workflows/pull/5",
      "created_at": "2026-04-23T12:47:54Z",
      "updated_at": "2026-04-23T12:48:00Z",
      "merged_at": "2026-04-23T12:48:00Z",
      "draft": false
    },
    {
      "repo": "github-workflows",
      "number": 4,
      "title": "feat: add reusable tessl tile update workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/github-workflows/pull/4",
      "created_at": "2026-04-23T12:43:42Z",
      "updated_at": "2026-04-23T12:44:55Z",
      "merged_at": "2026-04-23T12:44:44Z",
      "draft": false
    },
    {
      "repo": "github-workflows",
      "number": 3,
      "title": "Add determine-changes reusable workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/github-workflows/pull/3",
      "created_at": "2026-04-23T09:30:16Z",
      "updated_at": "2026-04-23T09:30:49Z",
      "merged_at": "2026-04-23T09:30:49Z",
      "draft": false
    },
    {
      "repo": "github-workflows",
      "number": 2,
      "title": "Add prek-lint reusable workflow",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/github-workflows/pull/2",
      "created_at": "2026-04-23T09:30:15Z",
      "updated_at": "2026-04-23T09:30:43Z",
      "merged_at": "2026-04-23T09:30:43Z",
      "draft": false
    },
    {
      "repo": "github-workflows",
      "number": 1,
      "title": "Add required-checks-gate composite action",
      "state": "closed",
      "author": "KRRT7",
      "url": "https://github.com/codeflash-ai/github-workflows/pull/1",
      "created_at": "2026-04-23T09:30:06Z",
      "updated_at": "2026-04-23T09:30:40Z",
      "merged_at": "2026-04-23T09:30:40Z",
      "draft": false
    }
  ],
  "notes": [
    {
      "date": "2026-04-23",
      "title": "Kevin \u2014 2026-04-23",
      "sections": {
        "done (yesterday)": [
          "CI audit across codeflash org: disabled Actions on 200+ forks, built interactive Dash cost report showing ~$12K/yr savings",
          "Scaffolded codeflash-api FastAPI rewrite (all 9 endpoints), unified sync/async code paths, set up Postgres integration tests with testcontainers, 78% coverage",
          "Project governance: enabled GitHub Discussions, created parent issue #2079 for 100% test coverage, filed coverage issue on typeagent-py",
          "Merged 5 PRs on codeflash: PR template + linked-issue policy (#2093), coverage CI with 60% floor (#2094), CODEOWNERS (#2095), 2 dependabot bumps",
          "Triaged ~28 open PRs, posted contributor follow-ups, closed stale PRs and reopened as issues",
          "Reimplemented JS function tracer from stale PR #1377 onto current main as PR #2105",
          "Bumped stale action versions across 3 repos (setup-uv, prek-action, gh-action-pypi-publish)",
          "Fixed 3-month-old VSCode extension build failure from out-of-sync package-lock.json (PR #2617)",
          "Extended shared ci-python-uv.yml with test-secret-env input, migrated aiservice-test job to use it (PR #2620)",
          "Initialized tessl (vendored mode) across codeflash, codeflash-internal, and codeflash-agent with weekly tile update workflows",
          "Created codeflash-ci-bot GitHub App for PR creation (enterprise GITHUB_TOKEN workaround)",
          "Added org-level ruleset requiring PR branches to be up to date with main",
          "Ran vulture dead-code audit (428/432 false positives), deleted 4 verified dead items, added vulture as dev dep",
          "Cleaned up 19 stale local branches and removed associated worktrees"
        ],
        "done (today)": [
          "Opened PRs #244 (tests for resolve_azure_model_name) and #245 (max_retries bump) on typeagent-py",
          "Fixed all ruff lint errors across codeflash-agent repo (PR #38, merged)",
          "Built this weekly eng meeting dashboard with auto-refresh, CI audit integration, and live note rendering"
        ],
        "blocked": [
          "Bedrock OIDC regression blocking unpin of claude-code-action",
          "~33 missing tessl tiles (internal + agent), waiting on tessl to publish"
        ],
        "asks": [
          "Hesham: Resume work on the universal detector",
          "Saurabh: Sync on PyCon USA booth, 1-1 on roadmap",
          "Sarthak: Update me on current work \u2014 I have no visibility right now",
          "Aseem: Sync on launched Claude Code plugin",
          "Ali: Clean up existing PRs, update me on current work",
          "Mohammed: Update me on JS optimization progress, get #2020 and #1993 ready to merge",
          "Everyone: If you have pending PRs or issues, get them ready to close"
        ],
        "next": [
          "Continue working on codeflash-agent repo, get backend ready for codeflash-agent",
          "Continue auditing codeflash / codeflash-internal",
          "Continue applying vertical optimization and learn GitHub org perms, Azure org perms, etc. so when they're ready to work with us we know exactly how to apply it"
        ],
        "in summary": [
          "Everything in \"Done (yesterday)\" was accomplished in a single 12-hour workday. I've developed a very effective strategy for increasing productivity while still maintaining quality. I'm still refining this approach since I've been focused on other things, but once I have it decently prepared I will onboard the entire team so we can all learn and be effective."
        ],
        "strategy: vertical optimization": [
          "What is vertical optimization? It's our approach to optimizing a client's entire technical stack, not just code in isolation. In order to apply vertical optimizations, we have to optimize not just the code, but the organization, the company, and the humans \u2014 E2E. We work from both the ground up (code \u2192 tooling \u2192 infra) and the top down (team \u2192 infra \u2192 tooling \u2192 code) simultaneously. This requires applying multiple disciplines \u2014 not just technical engineering, but also psychology, organizational design, and process engineering:",
          "Psychology: understanding how developers adopt new practices. You don't push \u2014 you contribute quality work and let people see the value. The typeagent example shows this: Guido resisted test coverage, but bmerkle saw value in it and started doing it independently. Influence without authority.",
          "Organizational design: shaping how teams operate \u2014 CODEOWNERS, PR templates, linked-issue policies, org-level rulesets, permission structures. The scaffolding that makes quality the default.",
          "Process engineering: optimizing the processes themselves \u2014 CI/CD pipelines, automated gates, workflow consolidation, build times. Eliminating friction so the team spends time on real work.",
          "Social engineering: building trust and relationships with external teams to open doors. Contributing upstream PRs that ask nothing in return, using trusted intermediaries (like PSF connections for pip), and making it easy for maintainers to say yes \u2014 include tests, docs, and benchmarks so merging is frictionless. The key is doing a lot of upfront work \u2014 solving real problems, shipping real improvements \u2014 so that when we come to the table, people are already willing to work with us because we've already delivered value. Once trust is established, deeper collaboration follows naturally.",
          "Security engineering: we currently have a terrible security posture and I want us to improve that \u2014 both in our personal lives and in our work lives. This means org-level secrets management, dependency vulnerability remediation (24 known Dependabot alerts), proper token scoping, 2FA enforcement, and building good security hygiene as a team habit.",
          "Technical engineering: the code-level work \u2014 profiling, benchmarking, lazy imports, batching, N+1 fixes. The foundation everything else builds on.",
          "There are 4 layers:",
          "Layer 1 \u2014 Code: function-level perf (lazy imports, batching, N+1 fixes, micro-opts)",
          "Layer 2 \u2014 Developer Tooling: CI/CD pipelines, GitHub Actions, build times, test infrastructure",
          "Layer 3 \u2014 Infrastructure: Docker images, Kubernetes memory, database queries, server architecture",
          "Layer 4 \u2014 Engineering Team: workflow alignment, environment standardization, developer productivity",
          "code:                      DISCIPLINES\n                      \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Layer 4: Engineering Team           \u2502  \u2190 psychology, org design\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502  Layer 3: Infrastructure             \u2502  \u2190 security, process eng\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502  Layer 2: Developer Tooling          \u2502  \u2190 process eng, security\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502  Layer 1: Code                       \u2502  \u2190 technical eng\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n  \u2195 social engineering spans all layers \u2195",
          "The goal \u2014 Unstructured case study: GH Actions jobs 301\u219233 (89% reduction), Docker image -2.5GB, infra cost ~90% reduction on a ~$1M/yr bill, DB queries 10s\u2192100ms."
        ],
        "strategy in action: typeagent-py": [
          "I'm already applying this strategy not just on our own org and repos, but externally on typeagent-py with Guido's team. Yesterday Guido merged my two perf PRs \u2014 batch SQLite inserts #230 (1.14x-1.16x indexing speedup) and batch metadata N+1 fix #232 (2.1x-2.6x query speedup). I suggested incremental test coverage requirements like we do internally. Guido pushed back, but his teammate bmerkle saw the value and independently kicked off a branch with additional function coverage tests. Today I also opened #244 (tests for resolve_azure_model_name) and #245 (max_retries bump). This is a real-time demo of the strategy in action \u2014 contribute quality work, demonstrate best practices, and let team members adopt them organically."
        ],
        "follow-ups": [
          "source:https://notes.granola.ai/t/f47117c5-4b11-4a0a-8bd8-a7428d42af56-008umkv4",
          "Migrate weekly sprint planning back to Linear \u2014 Saurabh: \"I think we should return back to use linear [...] we can return back to linear weekly and we can keep it as is\"",
          "Clarify meeting cadence: Mondays = formal weekly eng meeting, dailies = informal \u2014 Kevin: \"on Mondays, we have the engineering cycle planning [...] for stand up, it will be informal\"",
          "Publish the dashboard for the entire team to review async \u2014 Kevin: \"I will publish this site for everybody to review\"",
          "Collect standups from the team \u2014 demo ran long and nobody else presented \u2014 Saurabh: \"I think we're super over time, so I think we're just gonna skip the stand up\"",
          "Saurabh: sync with Sarthak on current work \u2014 Saurabh: \"Sartak, can I sync with you? I think I wanna sync on the work\"",
          "Everyone: come prepared with asks/blockers for next Monday's meeting \u2014 Kevin: \"I want you guys to come up with these things for me as well, so that I'm able to support you guys\"",
          "Keep dailies informal \u2014 Saurabh: \"the process should be to enable the work rather than becoming the work itself [...] stand ups are supposed to be super informal\"",
          "Focus on delivery accountability \u2014 Saurabh: \"what we're missing is the delivery accountability [...] we have to build up in a way that if we have talked about something, deliver rather than saying the same word in every scrum call\"",
          "Demo Linear + Notion setup for weekly coordination \u2014 Kevin: \"I want us to be using linear, notion more often so that we can keep track of what we're doing and we can coordinate between everybody\""
        ],
        "open questions": [
          "source:https://notes.granola.ai/t/f47117c5-4b11-4a0a-8bd8-a7428d42af56-008umkv4",
          "Sarthak: What's the concrete end goal of vertical optimization? \u2014 \"what's the end goal is to apply something where outcome is very relevant\"",
          "answer:Measurable, dollarized reduction in total engineering cost-of-operation \u2014 meaning we quantify every improvement in dollars saved or hours reclaimed. The Unstructured case study is the reference target: CI went from 301 jobs to 33 (89% reduction), Docker images shrank by 2.5GB, infrastructure spend dropped from ~$1M/yr to ~$100K/yr, and database queries went from 10s to 100ms. The deliverable at each layer is merged PRs with before/after benchmark numbers \u2014 not a report or a slide deck. If we can't measure it and merge it, it doesn't count. This is what we want to replicate for every client: walk in, audit all four layers, ship concrete optimizations, and hand them a dollarized summary of what changed.",
          "Sarthak: Has any startup actually applied this approach and seen results? \u2014 \"if any startup guy do have back before or if there's any kind of social backing he has done before, for the startup and that have boosted the [revenue]\"",
          "answer:What we're doing is, to the best of our research, unprecedented as a packaged service. No company currently sells integrated four-layer optimization (code, tooling, infra, team) with merged PRs and before/after benchmarks as the deliverable. The closest analogues are internal platform teams at large companies: Spotify built Backstage to unify developer tooling across hundreds of services, and Google's Engineering Productivity group (EngProd) optimizes builds, tests, and infrastructure at massive scale \u2014 but both are strictly internal efforts, not products or services they sell. On the consulting side, every existing player is either single-layer deep or multi-layer but advisory-only: CloudZero and Vantage do infrastructure cost dashboards (no code changes). Dagger and Earthly optimize CI (don't touch code perf or infra costs). Chainguard and Slim.AI optimize Docker supply chains (single layer). Thoughtworks and Slalom do broad DevOps transformation consulting that can span multiple layers, but their deliverable is recommendations and organizational change \u2014 not merged PRs with benchmark numbers. Even Brendan Gregg's performance consulting at Netflix is observability/profiling advisory at the code layer only. The \"merged PRs as deliverable\" constraint is what eliminates every existing player. The market gap is real: companies either hire specialized engineers internally to do this (like Unstructured did) or they don't do it at all. We're packaging that capability as a service.",
          "Sarthak: What specific processes are being introduced? \u2014 \"I would like to understand the process part there, like, what are the key process you are trying to include here\"",
          "answer:Here's what's already shipped: (1) CODEOWNERS files \u2014 every directory has a designated reviewer so PRs don't sit unreviewed. (2) PR templates with a linked-issue policy \u2014 every PR must reference an issue, so we can trace why changes were made. (3) Org-level rulesets requiring branches to be up-to-date with main before merging \u2014 prevents broken builds from stale branches. (4) Coverage CI with a 60% floor \u2014 PRs that drop test coverage below 60% are blocked from merging. (5) This weekly eng meeting dashboard with auto-refresh and live notes. (6) Tessl for dependency tracking across all repos \u2014 automated weekly tile updates so we know what's outdated. (7) CI audit process with a Dash cost report showing Actions spend and savings. (8) Shared reusable GitHub workflows (ci-python-uv.yml) so teams don't copy-paste CI configs. The common thread: these are all enforced automated guardrails, not wiki pages or Notion docs that people forget to read. The system blocks bad patterns by default rather than relying on people to remember best practices.",
          "Saurabh: Are we actually paying for GitHub Actions overages? \u2014 \"are currently not really paying for good of actions because our good of action used is under the whatever quota we get\"",
          "answer:Saurabh was right to push back. After pulling the real GitHub billing export (gh api /orgs/codeflash-ai/settings/billing/usage), here's what the data shows: our Enterprise plan fully discounts all Actions usage \u2014 netAmount is $0.00 every month. We are not paying cash overages. The original $12K figure used $0.008/min (the listed overage rate), but the actual billing rate is $0.006/min, and the discount covers 100% of it. The real before/after numbers from the billing API: Feb 2026 (peak before audit) was 198K min, Apr 2026 (after audit) is 93K min \u2014 a ~105K min/mo reduction. Even at the listed $0.006/min rate, the theoretical gross savings would be ~$7,600/yr, not $12K. The corrected framing: the audit eliminated ~105K wasted minutes/month and $625/mo in gross compute that GitHub is currently absorbing. If our plan changes or usage grows past the discount threshold, we'd start paying immediately \u2014 the audit prevents that. The real value was operational: 200+ fork Actions disabled, 13 ghost workflows eliminated, non-code PR runtime from $1.85 to $0.001, and 22 workflow files consolidated to 7.",
          "Saurabh: Are we still doing the written async standup format? \u2014 \"So we are not gonna do the writing thing that you were talking about earlier?\"",
          "answer:Not daily \u2014 I didn't have enough time to polish this up for a daily cadence, and honestly it's better this way. Building these notes takes real time and effort, so doing it once a week is the right tradeoff. Monday = formal weekly eng meeting where everyone presents what they did, what's blocked, and what's next. This dashboard is the centerpiece \u2014 live notes, CI data, follow-up tracking, all in one place. Dailies = informal verbal standups, no written prep required. The investment pays off because once a week we get a full picture of what everyone's working on, what's stuck, and what needs to happen next \u2014 and it compounds over time as we build a searchable history. Saurabh said it well: \"the process should be to enable the work rather than becoming the work itself.\" We'll keep iterating on the tooling to make standups a breeze \u2014 the goal is that preparing for Monday's meeting takes minutes, not hours."
        ],
        "dollar impact: what vertical optimization saves customers": [
          "Estimated annual savings for a mid-size engineering org (50-200 engineers, $5M-$20M cloud spend):",
          "### Layer 1 \u2014 Code: $200K-$800K/yr",
          "Function-level performance fixes reduce compute requirements. Faster code means fewer server instances needed to serve the same load. Industry data: 10-20% of cloud compute is consumed by inefficient application code (Google SRE, Netflix performance engineering). A 100x query speedup on a top-10 endpoint typically retires 30-50% of backend instances serving that path.",
          "Unstructured PRs in this layer:",
          "#1481: Reduce attribute lookups in elements_intersect_vertically",
          "#1464: Replace lazyproperty with functools.cached_property",
          "#4266: Fix O(N^2) text extraction (re-scanned full character list on every patch operation \u2014 quadratic on long documents)",
          "Result: End-to-end latency 50.8s to 44.3s (12.9% faster), text extraction from O(N^2) to O(N)",
          "### Layer 2 \u2014 Developer Tooling: $500K-$2M/yr",
          "The big number here isn't CI minutes \u2014 it's developer wait time. Developers spend 25-40% of their time waiting on builds and CI (Gradle 2023 survey, Spotify eng blog). At $250K fully-loaded cost, 50 engineers losing 30% = $3.75M in wait time. Direct CI spend savings are smaller ($50K-$200K) but the productivity recovery is massive.",
          "Codeflash org CI audit PRs in this layer:",
          "codeflash #2025: Replace wildcard path triggers on 12 E2E workflows (every README edit triggered ~2hrs of E2E tests)",
          "codeflash #2044: Consolidate 17 workflows into single ci.yaml with gate job (22 workflow files down to 7)",
          "codeflash #2050: npm cache, Maven consolidation, remove duplicate workflow",
          "codeflash-internal #2588: Fix deploy path filter (workflow edits were triggering production deploys)",
          "Disabled Actions on 200+ forks (burning ~960 noise runs/month)",
          "Result: ~$1.85 compute per non-code PR down to ~$0.001, ~105K min/mo reduction (~$7.6K/yr gross, currently discounted by Enterprise plan), 13 ghost workflows eliminated",
          "### Layer 3 \u2014 Infrastructure: $1.5M-$6M/yr",
          "This is where the biggest dollar amounts are. Flexera 2024 State of Cloud: orgs waste 28-32% of cloud spend on average. HashiCorp 2023: 94% of enterprises overprovision. For a $10M cloud bill, 30% waste = $3M recoverable. Smaller Docker images cut deploy times 40-60%, reducing incident MTTR.",
          "Unstructured PRs in this layer:",
          "#1502: Cap OCR workers to available CPUs \u2014 eliminated 4 idle workers each loading ~500MB of duplicate ONNX models",
          "#1448: Free page image before table extraction",
          "#1441: Resize-first numpy preprocessing for YOLOX",
          "#1503: Render PDF pages as BMP instead of PNG (eliminated unnecessary PNG compression for in-memory data)",
          "Result: K8s pod memory 32GB to 4GB (87.5% reduction), pods per node 5 to 46 (9.2x density), monthly compute $10K to $1.1K \u2014 **$107K/yr saved on a single service**",
          "### Layer 4 \u2014 Engineering Team: $400K-$1.5M/yr",
          "Stripe 2023 Developer Coefficient: developers lose 17.3 hours/week to bad tooling, maintenance, and tech debt \u2014 42% of their time. DORA research: elite teams ship 973x more frequently with 6,570x faster lead time. Standardizing environments recovers 5-10% of engineering capacity.",
          "Codeflash org PRs in this layer:",
          "codeflash #2093: PR template + linked-issue policy",
          "codeflash #2094: Coverage CI with 60% floor",
          "codeflash #2095: CODEOWNERS",
          "Org-level ruleset requiring branches to be up-to-date with main",
          "Tessl dependency tracking across all repos",
          "This weekly eng meeting dashboard",
          "Result: Every PR now requires an issue link, a reviewer, and passing coverage \u2014 automated guardrails instead of wiki pages",
          "### Total Potential Savings",
          "| Scenario | 50 eng / $5M cloud | 200 eng / $20M cloud |",
          "|---|---|---|",
          "| Layer 1 \u2014 Code | $200K | $800K |",
          "| Layer 2 \u2014 Dev Tooling | $500K | $2M |",
          "| Layer 3 \u2014 Infrastructure | $1.5M | $6M |",
          "| Layer 4 \u2014 Eng Team | $400K | $1.5M |",
          "| **Total** | **$2.6M/yr** | **$10.3M/yr** |",
          "Conservative midpoint for a typical engagement: **$4M-$6M/yr** in combined savings. Infrastructure dominates in raw dollars (cloud waste is real and measurable), but developer tooling has the highest ROI per dollar invested because it compounds \u2014 every minute saved on CI is saved for every engineer on every commit."
        ],
        "competitive landscape: codspeed and why we win": [
          "### What CodSpeed Does",
          "CodSpeed (codspeed.io) is a continuous benchmarking platform. They instrument your code, run benchmarks in CI, detect performance regressions on every PR, and show differential flamegraphs. Supports Rust, C++, Go, Python, and Node.js. Pricing: free for OSS, $15/user/mo for Pro, enterprise custom. Notable customers: Pydantic, Astral (ruff/uv), LangChain, Prisma, Vercel, ByteDance.",
          "### Where CodSpeed Stops",
          "CodSpeed is a **Layer 1 tool** \u2014 and only the detection half of Layer 1 at that. They tell you \"this PR made function X 15% slower.\" They don't:",
          "Fix the regression (no optimization, just alerting)",
          "Touch CI/CD costs (Layer 2)",
          "Optimize infrastructure (Layer 3)",
          "Improve engineering processes (Layer 4)",
          "Ship merged PRs with before/after benchmarks",
          "Their deliverable is a dashboard and PR checks. Ours is merged code.",
          "### How We're Different",
          "| | CodSpeed | Codeflash Vertical Optimization |",
          "|---|---|---|",
          "| Scope | Layer 1 detection only | All 4 layers, detection + remediation |",
          "| Deliverable | Dashboard + PR checks | Merged PRs with before/after benchmarks |",
          "| Model | SaaS product ($15/user/mo) | Service engagement with dollarized ROI |",
          "| Depth | \"This function got slower\" | Root cause analysis + fix + benchmark proof |",
          "| Coverage | Code perf regressions | Code, CI/CD, Docker, K8s, team processes |",
          "| Outcome | Alerts | Shipped optimizations with dollar savings |",
          "### How We Plan to Beat Them",
          "1. **CodSpeed is a complement, not a competitor.** We can recommend CodSpeed (or our own benchmarking tooling) as part of Layer 2 guardrails \u2014 continuous benchmarking becomes one of the automated gates we install, like coverage CI floors. We play at a different altitude.",
          "2. **We ship code, they ship alerts.** CodSpeed tells you there's a problem. We find the problem, fix it, benchmark the fix, and merge it. The Unstructured engagement is proof: 24 PRs merged, $107K/yr saved, 87.5% memory reduction \u2014 CodSpeed couldn't have done any of that.",
          "3. **We optimize the full stack.** CodSpeed's entire value is Layer 1 regression detection. Our Unstructured engagement found that the biggest savings weren't in code at all \u2014 they were in infrastructure (32GB pods \u2192 4GB, $107K/yr) and CI/CD ($12K/yr in wasted Actions). A CodSpeed subscription wouldn't have found any of those.",
          "4. **Our moat is depth + breadth.** Anyone can build a benchmarking SaaS. Nobody else combines code profiling, CI auditing, infrastructure right-sizing, and team process optimization into a single engagement with merged PRs as the deliverable. The market gap we identified is real: every existing player is either single-layer deep (CodSpeed, Vantage, Dagger) or multi-layer but advisory-only (Thoughtworks, Slalom). We're the first to do both.",
          "5. **We use AI to scale.** Our optimization workflow is AI-augmented \u2014 the same tooling we use internally (Claude Code, codeflash plugin, automated benchmarking) lets us move at a pace that traditional consulting can't match. The Unstructured engagement was 24 PRs across 5 repos in 7 weeks. A traditional consulting firm would quote 3-6 months for the same scope."
        ],
        "what's next for the team": [
          "I'll schedule onboarding sessions once the approach is more refined, but in the meantime \u2014 start thinking about what vertical optimization looks like for your own work. Where are the bottlenecks in the code you touch? In the CI pipelines? In the way we collaborate? The goal is for everyone on the team to be thinking this way, not just me."
        ]
      }
    }
  ],
  "summary": {
    "total_open": 63,
    "total_merged_7d": 48,
    "draft_count": 5,
    "repos_with_open_prs": 3
  },
  "ci_audit": {
    "codeflash_base": "https://github.com/codeflash-ai/codeflash/pull",
    "internal_base": "https://github.com/codeflash-ai/codeflash-internal/pull",
    "audit_date": "2026-04-09",
    "completion_date": "2026-04-23",
    "org": "codeflash-ai",
    "total_forks": 200,
    "active_forks": 26,
    "fork_runs_audit_period": 7012,
    "fork_runs_monthly": 23373,
    "fork_failing_monthly": 960,
    "fork_cost_yr": 248,
    "ghost_workflows_disabled": 13,
    "workflows_before": 22,
    "workflows_after": 7,
    "required_checks_before": 13,
    "required_checks_after": 1,
    "skip_savings_per_pr": 1.85,
    "fork_ci": [
      {
        "repo": "sglang",
        "runs": 4936,
        "cost_yr": 4,
        "runners": "Linux",
        "pattern": "CI Failure Monitor (cron, skips on fork)"
      },
      {
        "repo": "kornia",
        "runs": 308,
        "cost_yr": 226,
        "runners": "Linux + Windows + macOS",
        "pattern": "Daily scheduled CPU test matrix"
      },
      {
        "repo": "ray",
        "runs": 527,
        "cost_yr": 3,
        "runners": "Linux",
        "pattern": "Dependabot + Stale PR bot"
      },
      {
        "repo": "lerobot",
        "runs": 330,
        "cost_yr": 12,
        "runners": "Linux",
        "pattern": "Dependabot + Full Tests"
      },
      {
        "repo": "next.js",
        "runs": 217,
        "cost_yr": 3,
        "runners": "Linux",
        "pattern": "Dependabot only"
      },
      {
        "repo": "strapi",
        "runs": 118,
        "cost_yr": 1,
        "runners": "Linux",
        "pattern": "Dependabot (lodash x 20+ packages)"
      },
      {
        "repo": "rasa",
        "runs": 85,
        "cost_yr": 1,
        "runners": "Linux",
        "pattern": "Dependabot"
      },
      {
        "repo": "Rocket.Chat",
        "runs": 80,
        "cost_yr": 1,
        "runners": "Linux",
        "pattern": "Dependabot"
      },
      {
        "repo": "nest",
        "runs": 73,
        "cost_yr": 1,
        "runners": "Linux",
        "pattern": "Dependabot (@nestjs/core x 20+ samples)"
      },
      {
        "repo": "openclaw",
        "runs": 68,
        "cost_yr": 1,
        "runners": "Linux",
        "pattern": "Dependabot"
      },
      {
        "repo": "appsmith",
        "runs": 64,
        "cost_yr": 1,
        "runners": "Linux",
        "pattern": "Dependabot"
      },
      {
        "repo": "15 others",
        "runs": 206,
        "cost_yr": 1,
        "runners": "Linux",
        "pattern": "Dependabot / misc"
      }
    ],
    "findings": {
      "codeflash": [
        {
          "finding": "Wildcard path triggers on 12 E2E workflows",
          "impact": "Every PR triggered ~2hrs of E2E tests",
          "fix": "Targeted path filters",
          "pr": 2025
        },
        {
          "finding": "Broken claude-code-action (v1.0.90 Bedrock OIDC)",
          "impact": "60-100% failure rate on Claude Code workflows",
          "fix": "Pinned to v1.0.89",
          "pr": 2026
        },
        {
          "finding": "Dependabot scanning test fixtures",
          "impact": "70% of Dependabot runs failing",
          "fix": "Added dependabot.yml excluding code_to_optimize/",
          "pr": 2027
        },
        {
          "finding": "13 ghost workflows (deleted source files)",
          "impact": "Actions dashboard clutter, confusing signals",
          "fix": "gh workflow disable on all 13",
          "pr": null
        },
        {
          "finding": "17 separate workflow files, 13 required checks",
          "impact": "Workflow-only PRs stuck at Pending, admin merge required",
          "fix": "Single ci.yaml with gate job",
          "pr": 2044
        },
        {
          "finding": "No npm/Maven caching, duplicate workflows",
          "impact": "Slow JS/Java CI, redundant compute",
          "fix": "Consolidated + caching",
          "pr": 2050
        },
        {
          "finding": "Outdated action versions, broken Windows paths",
          "impact": "CI failures on Windows matrix",
          "fix": "Upgraded actions + fixed paths",
          "pr": 2052
        },
        {
          "finding": "Stale codeflash.yaml",
          "impact": "Superseded by codeflash-optimize.yaml",
          "fix": "Deleted",
          "pr": 2056
        }
      ],
      "codeflash-internal": [
        {
          "finding": "Deploy AI Service path included .github/workflows/**",
          "impact": "Any workflow edit triggered production deploy",
          "fix": "Scoped to actual service paths",
          "pr": 2588
        },
        {
          "finding": "Claude Code workflow had no path filters",
          "impact": "Fired on every PR/comment",
          "fix": "Added paths-ignore",
          "pr": 2588
        },
        {
          "finding": "Publish to PyPI permanently disabled (if: false)",
          "impact": "Skipped run noise on every push to main",
          "fix": "Disabled via API",
          "pr": 2588
        },
        {
          "finding": "Broken claude-code-action (same v1.0.90 regression)",
          "impact": "85% failure rate",
          "fix": "Pinned to v1.0.89",
          "pr": 2587
        }
      ]
    },
    "prs_merged": [
      {
        "pr": 2025,
        "repo": "codeflash",
        "date": "2026-04-09",
        "title": "Replace wildcard path triggers on 12 E2E workflows"
      },
      {
        "pr": 2026,
        "repo": "codeflash",
        "date": "2026-04-09",
        "title": "Pin claude-code-action to v1.0.89 (Bedrock auth fix)"
      },
      {
        "pr": 2027,
        "repo": "codeflash",
        "date": "2026-04-09",
        "title": "Exclude test fixtures from Dependabot"
      },
      {
        "pr": 2044,
        "repo": "codeflash",
        "date": "2026-04-09",
        "title": "Consolidate 17 workflows into single ci.yaml with gate job"
      },
      {
        "pr": 2047,
        "repo": "codeflash",
        "date": "2026-04-09",
        "title": "Path filters, validate-pr action, fetch-depth, continue-on-error"
      },
      {
        "pr": 2050,
        "repo": "codeflash",
        "date": "2026-04-09",
        "title": "npm cache, Maven consolidation, remove duplicate workflow"
      },
      {
        "pr": 2052,
        "repo": "codeflash",
        "date": "2026-04-10",
        "title": "Upgrade action versions, add uv cache, fix broken paths, DRY publish"
      },
      {
        "pr": 2053,
        "repo": "codeflash",
        "date": "2026-04-10",
        "title": "Fix shell: bash for Windows conditional install"
      },
      {
        "pr": 2056,
        "repo": "codeflash",
        "date": "2026-04-10",
        "title": "Delete disabled codeflash.yaml workflow"
      },
      {
        "pr": 2587,
        "repo": "codeflash-internal",
        "date": "2026-04-09",
        "title": "Pin claude-code-action to v1.0.89"
      },
      {
        "pr": 2588,
        "repo": "codeflash-internal",
        "date": "2026-04-09",
        "title": "Fix deploy path filter, Claude Code paths, disable PyPI"
      }
    ],
    "direct_actions": [
      {
        "action": "Disabled 13 ghost workflows",
        "date": "2026-04-09",
        "repo": "codeflash"
      },
      {
        "action": "Disabled Publish to PyPI workflow",
        "date": "2026-04-09",
        "repo": "codeflash-internal"
      },
      {
        "action": "Closed stale Dependabot PR #2012",
        "date": "2026-04-09",
        "repo": "codeflash"
      },
      {
        "action": "Migrated branch protection to rulesets",
        "date": "2026-04-09",
        "repo": "codeflash"
      },
      {
        "action": "Disabled Actions on 200+ forks",
        "date": "2026-04-23",
        "repo": "org-wide"
      }
    ],
    "operational_before_after": {
      "workflow_files": [
        22,
        7
      ],
      "required_checks": [
        13,
        1
      ],
      "non_code_pr_cost": [
        1.85,
        0.001
      ],
      "fork_failing_runs_monthly": [
        960,
        0
      ],
      "admin_merges_needed": true
    },
    "run_volume": {
      "codeflash_feb": 21307,
      "codeflash_apr_projected": 6219,
      "codeflash_reduction_pct": 71,
      "internal_feb": 2494,
      "internal_apr_projected": 3864,
      "total_eliminated_monthly": 16000
    },
    "billing": {
      "enterprise_included_min": 50000,
      "before_min_mo": 198285,
      "after_min_mo": 93256,
      "saved_min_mo": 105029,
      "rate_per_min_linux": 0.006,
      "gross_saved_monthly_usd": 630,
      "gross_saved_annual_usd": 7562,
      "net_cost_usd": 0,
      "note": "Enterprise plan fully discounts all Actions usage \u2014 netAmount $0.00. Source: gh api /orgs/codeflash-ai/settings/billing/usage 2026-04-23",
      "non_code_pr_before_sec": 780,
      "non_code_pr_after_sec": 8
    }
  }
}