{
  "contract": "libkungfu-dev-agent-output-comparison-editorial/v1",
  "asOf": "2026-08-12",
  "status": "bounded-first-party-analysis",
  "claimClass": "site-synthesis",
  "title": "One human. Agents. Two thirty-day windows.",
  "lead": "Google AX provides a professional multi-contributor Agent-runtime baseline. Kungfu provides two observable operating states: a v4 bootstrap before standardized settlement, and a full Buildchain operating window.",
  "premise": "The central question is not whether one project opened more pull requests. It is how much public engineering surface one accountable human could carry through Agents, and whether that capacity changed when delivery responsibility became systematic.",
  "sourceRefs": [
    "google-ax-v0.1.0-release",
    "google-ax-runtime-readme",
    "kungfu-v4-first-build",
    "kungfu-evolution-timeline",
    "kungfu-current-readme"
  ],
  "sourceAuthorities": [
    {
      "id": "google-ax-v0.1.0-release",
      "repository": "https://github.com/google/ax",
      "ref": "8946475c236a7ce30e81b47393937ae1b1855eed",
      "path": "README.md",
      "sha256": "0ec2759bf3021cd7fb659ecc0582e8b7001a9418923330b28d47240934b61066"
    },
    {
      "id": "google-ax-runtime-readme",
      "repository": "https://github.com/google/ax",
      "ref": "8ee3b7d734264b6e3c86b1afe63b08ba7f851284",
      "path": "README.md",
      "sha256": "512f605ecbf92346d79f3c4e6b4b48821abb6b01b3f5a875f86a6da28b176db1"
    },
    {
      "id": "kungfu-v4-first-build",
      "repository": "https://github.com/kungfu-systems/kungfu",
      "ref": "a20748de6117b627d8ad9e41551f53fe7fa9f5f2",
      "path": "framework/core/.v4/README.md",
      "sha256": "89733b0cbc7ff5befca1bbc1938dfc96054e08c850514e97c9f92f7dbb296be3"
    },
    {
      "id": "kungfu-evolution-timeline",
      "repository": "https://github.com/kungfu-systems/kungfu",
      "ref": "445b2fd84ec7f613ccbfc3d5f06980a3b07f0690",
      "path": "docs/evolution/timeline.md",
      "sha256": "134837a0aa6b49a92d22c015a7fdd1c1618c8e2816403710f6814ee42f92c4c6"
    },
    {
      "id": "kungfu-current-readme",
      "repository": "https://github.com/kungfu-systems/kungfu",
      "ref": "445b2fd84ec7f613ccbfc3d5f06980a3b07f0690",
      "path": "README.md",
      "sha256": "5324b9578d391bb452ee4e31d6302691fd706508886e3086bba4fac95a31834a"
    }
  ],
  "technicalBackground": {
    "heading": "Why these two projects belong in the same frame",
    "body": "Both are infrastructure for Agent execution that must outlive one prompt or process. Both make durable state, recovery, resumability, and inspection part of the runtime rather than an afterthought. They are not equivalent products, but their goals are sufficiently isomorphic to make the organizational contrast meaningful.",
    "points": [
      "Durable state below transient model context",
      "Recovery and continuation as normal runtime behavior",
      "Inspectable execution history and explicit consistency boundaries"
    ],
    "sourceRefs": [
      "google-ax-runtime-readme",
      "kungfu-current-readme"
    ]
  },
  "organizationFrame": {
    "ax": {
      "label": "Multi-contributor, single repository",
      "body": "The public windows contain five PR author accounts working in google/ax. Its three leading accounts carry most of the visible change, giving the comparison a strong, non-tail baseline."
    },
    "kungfu": {
      "label": "One human, Agents, multiple repositories",
      "body": "Keren declares product direction and engineering boundaries; Agents carry most implementation, testing, and integration work. One primary account remains responsible for more than 96% of the observed merged work across the public system."
    }
  },
  "interpretation": {
    "heading": "The anomaly is human leverage, not pull-request volume alone.",
    "body": "The public record does not prove labor productivity, feature value, or that Agent mediation alone caused the gap. It does show one accountable human carrying a radically larger visible engineering surface than the leading public contributors of a professional Agent-runtime project, with a second fixed window exposing the level sustained after Buildchain became operational."
  },
  "observedDataset": {
    "path": "/dogfood/agent-output-comparison-data.json",
    "sha256": "d355600f62371bec3b87e76974d0c449405037c8a50552f34c14a9ee5229ef29",
    "collectedAt": "2026-08-12T12:57:58.009Z",
    "window": {
      "id": "bootstrap",
      "label": "v4 bootstrap window",
      "startInclusive": "2026-06-16T00:00:00.000Z",
      "endExclusive": "2026-07-16T00:00:00.000Z",
      "githubQualifier": "merged:2026-06-16T00:00:00Z..2026-07-15T23:59:59Z",
      "duration": "P30D"
    },
    "subjects": {
      "ax": {
        "label": "Google AX",
        "scope": "one public repository",
        "query": "repo:google/ax is:pr is:merged merged:2026-06-16T00:00:00Z..2026-07-15T23:59:59Z",
        "organizationForm": "multiple public contributor accounts working in one repository",
        "summary": {
          "mergedPullRequests": 102,
          "activeRepositories": 1,
          "authorAccounts": 5,
          "activeMergeDays": 21,
          "totalAdditions": 15516,
          "totalDeletions": 22484,
          "totalChangedFiles": 541,
          "changeSize": {
            "median": 141,
            "p25": 31,
            "p75": 388,
            "p90": 1051
          },
          "authors": [
            {
              "name": "rakyll",
              "count": 53
            },
            {
              "name": "wjjclaud",
              "count": 18
            },
            {
              "name": "joycel-github",
              "count": 16
            },
            {
              "name": "anj-s",
              "count": 8
            },
            {
              "name": "zbl94",
              "count": 7
            }
          ],
          "repositories": [
            {
              "name": "google/ax",
              "count": 102
            }
          ],
          "daily": [
            {
              "name": "2026-06-16",
              "count": 7
            },
            {
              "name": "2026-06-17",
              "count": 9
            },
            {
              "name": "2026-06-18",
              "count": 6
            },
            {
              "name": "2026-06-22",
              "count": 3
            },
            {
              "name": "2026-06-23",
              "count": 3
            },
            {
              "name": "2026-06-24",
              "count": 2
            },
            {
              "name": "2026-06-25",
              "count": 7
            },
            {
              "name": "2026-06-26",
              "count": 9
            },
            {
              "name": "2026-06-27",
              "count": 5
            },
            {
              "name": "2026-06-29",
              "count": 5
            },
            {
              "name": "2026-06-30",
              "count": 2
            },
            {
              "name": "2026-07-01",
              "count": 6
            },
            {
              "name": "2026-07-06",
              "count": 6
            },
            {
              "name": "2026-07-07",
              "count": 6
            },
            {
              "name": "2026-07-08",
              "count": 2
            },
            {
              "name": "2026-07-09",
              "count": 8
            },
            {
              "name": "2026-07-10",
              "count": 4
            },
            {
              "name": "2026-07-11",
              "count": 1
            },
            {
              "name": "2026-07-13",
              "count": 3
            },
            {
              "name": "2026-07-14",
              "count": 3
            },
            {
              "name": "2026-07-15",
              "count": 5
            }
          ],
          "workTypes": [
            {
              "name": "unclassified",
              "count": 84
            },
            {
              "name": "antigravity",
              "count": 3
            },
            {
              "name": "docs",
              "count": 3
            },
            {
              "name": "feat",
              "count": 3
            },
            {
              "name": "ax",
              "count": 2
            },
            {
              "name": "ci",
              "count": 2
            },
            {
              "name": "fix",
              "count": 2
            },
            {
              "name": "refactor",
              "count": 2
            },
            {
              "name": "tui",
              "count": 1
            }
          ]
        },
        "defaultBranchActivity": {
          "repository": "google/ax",
          "branch": "main",
          "commits": 101,
          "activeDays": 21,
          "authorAccounts": 5,
          "rolling7": {
            "minimumCommits": 13,
            "maximumCommits": 34,
            "minimumActiveDays": 3,
            "maximumActiveDays": 6,
            "observations": [
              {
                "endDay": "2026-06-22",
                "commits": 25,
                "activeDays": 4
              },
              {
                "endDay": "2026-06-23",
                "commits": 21,
                "activeDays": 4
              },
              {
                "endDay": "2026-06-24",
                "commits": 14,
                "activeDays": 4
              },
              {
                "endDay": "2026-06-25",
                "commits": 15,
                "activeDays": 4
              },
              {
                "endDay": "2026-06-26",
                "commits": 24,
                "activeDays": 5
              },
              {
                "endDay": "2026-06-27",
                "commits": 29,
                "activeDays": 6
              },
              {
                "endDay": "2026-06-28",
                "commits": 29,
                "activeDays": 6
              },
              {
                "endDay": "2026-06-29",
                "commits": 31,
                "activeDays": 6
              },
              {
                "endDay": "2026-06-30",
                "commits": 30,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-01",
                "commits": 34,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-02",
                "commits": 27,
                "activeDays": 5
              },
              {
                "endDay": "2026-07-03",
                "commits": 18,
                "activeDays": 4
              },
              {
                "endDay": "2026-07-04",
                "commits": 13,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-05",
                "commits": 13,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-06",
                "commits": 14,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-07",
                "commits": 18,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-08",
                "commits": 14,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-09",
                "commits": 22,
                "activeDays": 4
              },
              {
                "endDay": "2026-07-10",
                "commits": 26,
                "activeDays": 5
              },
              {
                "endDay": "2026-07-11",
                "commits": 27,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-12",
                "commits": 27,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-13",
                "commits": 24,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-14",
                "commits": 21,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-15",
                "commits": 23,
                "activeDays": 6
              }
            ]
          },
          "daily": [
            {
              "name": "2026-06-16",
              "count": 7
            },
            {
              "name": "2026-06-17",
              "count": 9
            },
            {
              "name": "2026-06-18",
              "count": 6
            },
            {
              "name": "2026-06-22",
              "count": 3
            },
            {
              "name": "2026-06-23",
              "count": 3
            },
            {
              "name": "2026-06-24",
              "count": 2
            },
            {
              "name": "2026-06-25",
              "count": 7
            },
            {
              "name": "2026-06-26",
              "count": 9
            },
            {
              "name": "2026-06-27",
              "count": 5
            },
            {
              "name": "2026-06-29",
              "count": 5
            },
            {
              "name": "2026-06-30",
              "count": 2
            },
            {
              "name": "2026-07-01",
              "count": 6
            },
            {
              "name": "2026-07-06",
              "count": 6
            },
            {
              "name": "2026-07-07",
              "count": 6
            },
            {
              "name": "2026-07-08",
              "count": 2
            },
            {
              "name": "2026-07-09",
              "count": 8
            },
            {
              "name": "2026-07-10",
              "count": 4
            },
            {
              "name": "2026-07-11",
              "count": 1
            },
            {
              "name": "2026-07-13",
              "count": 3
            },
            {
              "name": "2026-07-14",
              "count": 3
            },
            {
              "name": "2026-07-15",
              "count": 4
            }
          ],
          "records": [
            {
              "sha": "cb4baf4e5a6ea2fd6f325f8c6d319a63f2243dcd",
              "url": "https://github.com/google/ax/commit/cb4baf4e5a6ea2fd6f325f8c6d319a63f2243dcd",
              "committedAt": "2026-06-16T04:13:22Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "go mod tidy (#88)",
              "message": "go mod tidy (#88)"
            },
            {
              "sha": "ff8242256523f0693917750afebb4e730964d0d8",
              "url": "https://github.com/google/ax/commit/ff8242256523f0693917750afebb4e730964d0d8",
              "committedAt": "2026-06-16T04:13:56Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove custom harness namespace and resources (#92)",
              "message": "Remove custom harness namespace and resources (#92)\n\n* Remove custom harness namespace and resources from deployment configuration\n\n* docs: simplify harness documentation and add support for custom antigravity images in install script\n\n* Remove the implementation details of the deployment script"
            },
            {
              "sha": "182eff8cbdff7e9a945807ab5277ffdfc5233d32",
              "url": "https://github.com/google/ax/commit/182eff8cbdff7e9a945807ab5277ffdfc5233d32",
              "committedAt": "2026-06-16T04:30:44Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "ci: add go mod tidy verification step to workflow (#94)",
              "message": "ci: add go mod tidy verification step to workflow (#94)"
            },
            {
              "sha": "5daa7a03a95b69f525c8f6a534e6cdcbd7451b20",
              "url": "https://github.com/google/ax/commit/5daa7a03a95b69f525c8f6a534e6cdcbd7451b20",
              "committedAt": "2026-06-16T05:40:44Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Use SubstrateHarness if AX_SUBSTRATE=1 (#89)",
              "message": "Use SubstrateHarness if AX_SUBSTRATE=1 (#89)\n\n* Use SubstrateHarness if AX_SUBSTRATE=1\n\nFixes #87.\n\n* Don't allow multiple antigravity harnesses\n\nFixes  #96.\n\n* refactor: cliutil registers the substrate implementation\n\n* refactor: move Antigravity harness initialization from config to cliutil\n\n* feat: add substrate template parameter to antigravity harness initialization\n\n* refactor: rename antigravity template to ax-harness-template and remove redundant constant definition\n\n* refactor: remove unused defaultPort constant from config\n\n* refactor: remove AX_SUBSTRATE_ENDPOINT configuration and dependency from substrate harness"
            },
            {
              "sha": "c281998ce7472849ca15373a957e436f8574bb0a",
              "url": "https://github.com/google/ax/commit/c281998ce7472849ca15373a957e436f8574bb0a",
              "committedAt": "2026-06-16T14:37:57Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "refactor: remove ate build tag and consolidate server implementation (#119)",
              "message": "refactor: remove ate build tag and consolidate server implementation (#119)"
            },
            {
              "sha": "5bf40bf3b32231c12d69e8ebc877c4a901923c9e",
              "url": "https://github.com/google/ax/commit/5bf40bf3b32231c12d69e8ebc877c4a901923c9e",
              "committedAt": "2026-06-16T14:38:19Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "docs: update actor template name in wait command example (#115)",
              "message": "docs: update actor template name in wait command example (#115)"
            },
            {
              "sha": "7f535c9e96a7b77431ae92eb011e40c14a378315",
              "url": "https://github.com/google/ax/commit/7f535c9e96a7b77431ae92eb011e40c14a378315",
              "committedAt": "2026-06-16T20:52:32Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Add e2e substrate tests with mocks. (#82)",
              "message": "Add e2e substrate tests with mocks. (#82)"
            },
            {
              "sha": "c9d7691a630f7f01d151a1a2e89e963b35e2a1a4",
              "url": "https://github.com/google/ax/commit/c9d7691a630f7f01d151a1a2e89e963b35e2a1a4",
              "committedAt": "2026-06-17T19:26:10Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Update the deployment script with ateom image and wait step. (#121)",
              "message": "Update the deployment script with ateom image and wait step. (#121)"
            },
            {
              "sha": "fce99efceb01ea6a08bd0086197be5bd47788f45",
              "url": "https://github.com/google/ax/commit/fce99efceb01ea6a08bd0086197be5bd47788f45",
              "committedAt": "2026-06-17T20:55:04Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove trace command and related UI utilities (#126)",
              "message": "Remove trace command and related UI utilities (#126)\n\nWe can add this capability back once the event log is stable."
            },
            {
              "sha": "5425c993f475e064aecae1e669a17456f0866cb7",
              "url": "https://github.com/google/ax/commit/5425c993f475e064aecae1e669a17456f0866cb7",
              "committedAt": "2026-06-17T21:16:21Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove forking capabilities until controller2 is stable (#130)",
              "message": "Remove forking capabilities until controller2 is stable (#130)\n\n* Remove forking capabilities until controller2 is stable\n\n* chore: add Apache 2.0 license headers to generated python protobuf files"
            },
            {
              "sha": "37f2a0845bb540ce96527e8983bf4d9ce493abe8",
              "url": "https://github.com/google/ax/commit/37f2a0845bb540ce96527e8983bf4d9ce493abe8",
              "committedAt": "2026-06-17T21:19:18Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "feat: reuse agent instance per conversation ID in antigravity harness server (#83)",
              "message": "feat: reuse agent instance per conversation ID in antigravity harness server (#83)"
            },
            {
              "sha": "afb7cb5a180ad85ce80f64070d0aac87e91f8950",
              "url": "https://github.com/google/ax/commit/afb7cb5a180ad85ce80f64070d0aac87e91f8950",
              "committedAt": "2026-06-17T21:21:53Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Build one comprehensive ax image for the ax-server and harness (#122)",
              "message": "Build one comprehensive ax image for the ax-server and harness (#122)"
            },
            {
              "sha": "c5d986c4f5b08cf462c86208c1b30c980b794d95",
              "url": "https://github.com/google/ax/commit/c5d986c4f5b08cf462c86208c1b30c980b794d95",
              "committedAt": "2026-06-17T21:28:42Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "fix(harness): improve error message when model API key is missing (#85)",
              "message": "fix(harness): improve error message when model API key is missing (#85)"
            },
            {
              "sha": "79b3c8acd528f29ddcf39bf27f6680f40b4a6fb8",
              "url": "https://github.com/google/ax/commit/79b3c8acd528f29ddcf39bf27f6680f40b4a6fb8",
              "committedAt": "2026-06-17T22:09:31Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "ax: implement monitor command and conversations API (#74)",
              "message": "ax: implement monitor command and conversations API (#74)"
            },
            {
              "sha": "da51f4b357e9c09c4dd34d016fa5a26cc92e778b",
              "url": "https://github.com/google/ax/commit/da51f4b357e9c09c4dd34d016fa5a26cc92e778b",
              "committedAt": "2026-06-17T22:19:46Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "ax: implement monitor dashboard Web UI (#75)",
              "message": "ax: implement monitor dashboard Web UI (#75)"
            },
            {
              "sha": "db4f6766ca4db6053f18ca3735732ae6142dbff7",
              "url": "https://github.com/google/ax/commit/db4f6766ca4db6053f18ca3735732ae6142dbff7",
              "committedAt": "2026-06-17T22:20:33Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "refactor: implement stateful Display and inject io.Writer (#84)",
              "message": "refactor: implement stateful Display and inject io.Writer (#84)"
            },
            {
              "sha": "20c3fbab9c744d670cf4cdfac9ef608dd264b10d",
              "url": "https://github.com/google/ax/commit/20c3fbab9c744d670cf4cdfac9ef608dd264b10d",
              "committedAt": "2026-06-18T05:53:41Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Build antigravity package directly from pip install. (#137)",
              "message": "Build antigravity package directly from pip install. (#137)\n\n* Build antigravity package directly from pip install.\n\n* Update script log and bump substrate version."
            },
            {
              "sha": "cc1e1ea85e1c1ebe30ce8570f53c0d43b19c8c70",
              "url": "https://github.com/google/ax/commit/cc1e1ea85e1c1ebe30ce8570f53c0d43b19c8c70",
              "committedAt": "2026-06-18T05:55:44Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Update ateomImage path in deployment manifest (#139)",
              "message": "Update ateomImage path in deployment manifest (#139)"
            },
            {
              "sha": "75f7232a0d9ccedfa4717cf3d05211d14bbf5cb2",
              "url": "https://github.com/google/ax/commit/75f7232a0d9ccedfa4717cf3d05211d14bbf5cb2",
              "committedAt": "2026-06-18T06:04:16Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove harness test fallback and delete harnesstest package (#138)",
              "message": "Remove harness test fallback and delete harnesstest package (#138)\n\nUpdates #77."
            },
            {
              "sha": "5bc08c4e5392c8a140de60d7a993c9ad701b5b7c",
              "url": "https://github.com/google/ax/commit/5bc08c4e5392c8a140de60d7a993c9ad701b5b7c",
              "committedAt": "2026-06-18T15:08:08Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Auto select KO_DOCKER_REPO and KO_DEFAULTPLATFORMS (#143)",
              "message": "Auto select KO_DOCKER_REPO and KO_DEFAULTPLATFORMS (#143)\n\n* Automate KO_DOCKER_REPO and KO_DEFAULTPLATFORMS configuration in installation script\n\n* Add runsc configuration for amd64 and arm64 in ax-deployment2 manifest\n\nFixes #144.\n\n* chore: remove redundant empty lines in install script\n\n* refactor: remove runsc configuration from deployment manifest\n\n* chore: remove redundant whitespace in ax-deployment2 manifest"
            },
            {
              "sha": "544db4c5608d8dc90dc153ceb61be51e5b8e5a6e",
              "url": "https://github.com/google/ax/commit/544db4c5608d8dc90dc153ceb61be51e5b8e5a6e",
              "committedAt": "2026-06-18T15:08:44Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove ATE agents (#148)",
              "message": "Remove ATE agents (#148)\n\nSubstrateHarness will replace this. SubstrateAgent is deadcode."
            },
            {
              "sha": "da9d20eccceef7ac23e6e877c11825f3e175c5b7",
              "url": "https://github.com/google/ax/commit/da9d20eccceef7ac23e6e877c11825f3e175c5b7",
              "committedAt": "2026-06-18T19:14:06Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove Colab agent support (#151)",
              "message": "Remove Colab agent support (#151)"
            },
            {
              "sha": "a470ffb0ebba3dd4d5c28c7cc415ea1daa08cb65",
              "url": "https://github.com/google/ax/commit/a470ffb0ebba3dd4d5c28c7cc415ea1daa08cb65",
              "committedAt": "2026-06-22T18:21:57Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Make controller2 use its own eventlog package (#153)",
              "message": "Make controller2 use its own eventlog package (#153)\n\n* Migrate controller2 to its own eventlog package\n\nThis will allow us to make schema changes to the event log easily without causing issues to the existing event log implementation.\n\n* refactor: update CLI harness to use eventlog from internal/controller2"
            },
            {
              "sha": "dc754ab7bdb3a939e84a479a8d78f41238c70a2b",
              "url": "https://github.com/google/ax/commit/dc754ab7bdb3a939e84a479a8d78f41238c70a2b",
              "committedAt": "2026-06-22T19:07:05Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Encapsulate event logging in a new logger (#154)",
              "message": "Encapsulate event logging in a new logger (#154)\n\n* Encapsulate event logging in a new logger\n\n- Extend ConversationEvent with harness metadata\n- Don't allow Exec requests to switch to a different harness\n\n* feat: add TODO for pending execution resumption logic in controller"
            },
            {
              "sha": "75d80d437ffb8032011bff5cfd351e228405289f",
              "url": "https://github.com/google/ax/commit/75d80d437ffb8032011bff5cfd351e228405289f",
              "committedAt": "2026-06-22T20:07:33Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "fix(antigravity): Buffer sequential thoughts and text tokens to prevent token-by-token streaming (#157)",
              "message": "fix(antigravity): Buffer sequential thoughts and text tokens to prevent token-by-token streaming (#157)"
            },
            {
              "sha": "edb5c97fbf6f2367c8117220ba992b2c48835968",
              "url": "https://github.com/google/ax/commit/edb5c97fbf6f2367c8117220ba992b2c48835968",
              "committedAt": "2026-06-23T04:16:53Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Bump substrate version and update documentation. (#158)",
              "message": "Bump substrate version and update documentation. (#158)\n\n* Bump substrate and update schema.\n\n* Update documentation for deployment.\n\n* Update command.\n\n* Add error message in the script."
            },
            {
              "sha": "2ac395bae293e5e2332a25e5c1efb20a15d51fff",
              "url": "https://github.com/google/ax/commit/2ac395bae293e5e2332a25e5c1efb20a15d51fff",
              "committedAt": "2026-06-23T05:04:59Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "Remove docker agent example (#159)",
              "message": "Remove docker agent example (#159)\n\nThe docker_agent example largely duplicates remote_agent (both\nimplement AX's native AgentService directly via gRPC). Removing it\nin favor of the simpler remote_agent example.\n\nFixes #132"
            },
            {
              "sha": "3438251c0415dc9db4dbaecf8a8078caa2f7b30d",
              "url": "https://github.com/google/ax/commit/3438251c0415dc9db4dbaecf8a8078caa2f7b30d",
              "committedAt": "2026-06-23T05:10:20Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "Remove A2A agent and bridge (#160)",
              "message": "Remove A2A agent and bridge (#160)\n\nRemoves the A2A protocol integration end-to-end:\n\n- examples/a2a_agent/ (Python coding agent example)\n- internal/experimental/a2abridge/ (A2A <-> AX bridge)\n- internal/experimental/agent/a2a.go (A2A agent client)\n- internal/auth/ (only used by A2A)\n- RemoteAgentConfig.Protocol/Auth/Headers/A2A fields and\n  Registry.registerA2A (the protocol switch collapses to AXP)\n- github.com/a2aproject/a2a-go/v2 dep (via go mod tidy)\n- A2A mentions in ax.yaml, README.md, .gitignore\n\nFixes #128"
            },
            {
              "sha": "22a9daeddf3ed83e5aa92fd1d20d867debb7dba4",
              "url": "https://github.com/google/ax/commit/22a9daeddf3ed83e5aa92fd1d20d867debb7dba4",
              "committedAt": "2026-06-24T07:49:02Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "feat: Support Postgres as database on substrate. (#163)",
              "message": "feat: Support Postgres as database on substrate. (#163)\n\n* Support postgres as database on substrate.\n\n* Add postgres config in yaml.\n\n* Remove lock from postgres.\n\n* Remove --delete-all option."
            },
            {
              "sha": "094f057d9ffafdf46a474ad4d40875b248f57522",
              "url": "https://github.com/google/ax/commit/094f057d9ffafdf46a474ad4d40875b248f57522",
              "committedAt": "2026-06-24T21:24:07Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove ununsed ExecutionEvent from controller2 (#165)",
              "message": "Remove ununsed ExecutionEvent from controller2 (#165)"
            },
            {
              "sha": "96a21ce0405e0c566974c58f39490d54ab20bf5a",
              "url": "https://github.com/google/ax/commit/96a21ce0405e0c566974c58f39490d54ab20bf5a",
              "committedAt": "2026-06-25T16:44:32Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Add Interactions API harness (#162)",
              "message": "Add Interactions API harness (#162)\n\n* Add Interactions API harness\n\nAdds a Harness implementation that drives an Antigravity agent through the\nVertex GenAI Interactions API over HTTPS + Server-Sent Events, using the\nsteps-based request format and the client-side (\"local\") environment.\n\nThe harness executes every tool the agent yields internally: built-in\nenvironment tools (view_file, run_command, list_dir, move, delete_dir, and the\ncreate/edit/multi_edit/delete_file family) run against the local filesystem and\nshell, while third-party function tools are dispatched to a pluggable\nThirdPartyExecutor (currently a banking example until tool injection is wired).\nRun drives the full interaction loop to completion and streams the agent's text\nvia the Handler.\n\nIt is exposed over the HarnessService gRPC contract via InteractionsAPIServer\nand the interactionsapi-harness-server command, so the harness can run as a\nstandalone server reachable by any HarnessService client -- the substrate-ready\ndeployment model.\n\n* Rename Interactions API harness to Antigravity Interactions\n\nRename the harness's identity from \"Interactions API harness\" to\n\"Antigravity Interactions\" (Antigravity driven via the Vertex GenAI\nInteractions API), which more clearly describes what it is. References to\nthe actual Google \"Interactions API\" are left intact.\n\n- InteractionsAPIHarness     -> AntigravityInteractionsHarness\n- InteractionsAPIConfig       -> AntigravityInteractionsConfig\n- NewInteractionsAPIHarness   -> NewAntigravityInteractionsHarness\n- interactionsExecution       -> antigravityInteractionsExecution\n- internal/harness/interactionsapi*.go -> antigravityinteractions*.go\n- cmd/e2e demo, agent id (\"antigravity-interactions\"), and\n  AX_INTERACTIONS_* -> AX_ANTIGRAVITY_INTERACTIONS_* env vars\n\nThe harness uses an oauth2 token source (ADC/impersonation) instead of\nshelling out to gcloud, which adds golang.org/x/oauth2 and\ngoogle.golang.org/api as direct deps (go.mod/go.sum). The standalone\ninteractions harness server and its command are removed; the harness is\nexercised in-process via cmd/e2e.\n\n* Use ADC-only auth and export FunctionTool\n\nDrop the ImpersonateServiceAccount config knob and the\ngoogle.golang.org/api/impersonate dependency: the harness now obtains its\nbearer token solely from Application Default Credentials (no gcloud shell-out).\nCallers needing impersonation or end-user credentials supply their own\noauth2.TokenSource via the existing TokenSource override, keeping the harness\nidentity-agnostic.\n\nExport functionTool as FunctionTool so external packages can implement the\nThirdPartyExecutor seam (Declarations returns []FunctionTool).\n\n* Improve debug output and drop /workspace Cwd fallback\n\nDebug mode now logs each Run turn as a hierarchical block: a turn separator\nheader, then per function call FC i/total <name> with one indented line per\nargument (keys sorted), followed by FR <name> with the indented result. This\nmakes the FC/FR exchange and turn boundaries easy to follow.\n\nrun_command now honors the requested Cwd directly instead of falling back when\nthe directory is absent. The fallback existed only to tolerate the agent's\nphantom /workspace sandbox; with the client-side environment no longer carrying\nthe server sandbox system instructions, that assumption is gone.\n\n* Support a system instruction in the harness config\n\nAdd AntigravityInteractionsConfig.SystemInstruction, sent as the interaction's\nsystem_instruction field on every turn (so it persists across resumes). This\nlets a caller supply a free-form system prompt that steers the agent in addition\nto the agent's own instructions.\n\n* Read project/location from env, fix endpoint to production\n\nRemove the Project, Location, and Endpoint config fields. Cloud project and\nlocation now come from the standard GOOGLE_CLOUD_PROJECT and\nGOOGLE_CLOUD_LOCATION environment variables (consistent with the rest of AX),\nand the endpoint is a fixed public-production constant rather than\nconfiguration.\n\n* Raise default MaxTurns from 20 to 100\n\n20 interaction round-trips is too few for non-trivial coding tasks, which can\nneed many tool-call turns. Default to 100 for more headroom while still bounding\nrunaway loops."
            },
            {
              "sha": "819bb83a8f8c5261f5fa0eeae3f6a86eba397ff5",
              "url": "https://github.com/google/ax/commit/819bb83a8f8c5261f5fa0eeae3f6a86eba397ff5",
              "committedAt": "2026-06-25T17:17:41Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Implement resumption  of pending executions (#167)",
              "message": "Implement resumption  of pending executions (#167)\n\n* Implement execution resumption  for pending\n\n* refactor: rename configurableExecution to testExecution in controller tests\n\n* refactor: simplify harness execution error messages in controller"
            },
            {
              "sha": "9949a45cba5da31e09a020c9685aeae6840de9ab",
              "url": "https://github.com/google/ax/commit/9949a45cba5da31e09a020c9685aeae6840de9ab",
              "committedAt": "2026-06-25T19:27:23Z",
              "author": "anj-s",
              "authorName": "anj-s",
              "committerName": "GitHub",
              "title": "feat: Support preinstalled skills in Antigravity harness (#173)",
              "message": "feat: Support preinstalled skills in Antigravity harness (#173)"
            },
            {
              "sha": "b60ee71e3303a17161e9b51e3b4312cb11fce73a",
              "url": "https://github.com/google/ax/commit/b60ee71e3303a17161e9b51e3b4312cb11fce73a",
              "committedAt": "2026-06-25T21:17:30Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "- Deleted the deprecated old manifests/ directory. (#174)",
              "message": "- Deleted the deprecated old manifests/ directory. (#174)"
            },
            {
              "sha": "2774e2dc875aabced574581a6905b9e8a1061688",
              "url": "https://github.com/google/ax/commit/2774e2dc875aabced574581a6905b9e8a1061688",
              "committedAt": "2026-06-25T22:04:33Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Update deployment config and readme. (#177)",
              "message": "Update deployment config and readme. (#177)"
            },
            {
              "sha": "9737fd7033dbcda61354b21856fc4d575e5d0a34",
              "url": "https://github.com/google/ax/commit/9737fd7033dbcda61354b21856fc4d575e5d0a34",
              "committedAt": "2026-06-25T22:21:28Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Migrate controller and registry to internal/controller2 (#176)",
              "message": "Migrate controller and registry to internal/controller2 (#176)\n\n* Cleanup the repo and move to controller2\n\n* Migrate controller and registry to internal/controller2\n\n- Remove the legacy harness build tag\n\n* refactor: move GeminiConfig definition from internal/config to internal/gemini package\n\n* test: replace controller registry with dummy implementation and update dependency constraints in go.mod\n\n* chore: remove harness build and test steps from GitHub Actions workflow"
            },
            {
              "sha": "4aad1a66058e00a1318573f68caf9aff9c02f01e",
              "url": "https://github.com/google/ax/commit/4aad1a66058e00a1318573f68caf9aff9c02f01e",
              "committedAt": "2026-06-25T22:32:21Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Consolidate controller and config packages by removing v2 suffixes (#179)",
              "message": "Consolidate controller and config packages by removing v2 suffixes (#179)\n\nAlso remove ununsed ExecutionEvent from proto."
            },
            {
              "sha": "e7d5e2c8c6dac7f9a8e1f357689be1bd16be03e2",
              "url": "https://github.com/google/ax/commit/e7d5e2c8c6dac7f9a8e1f357689be1bd16be03e2",
              "committedAt": "2026-06-26T15:41:45Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove ununsed axepp (#182)",
              "message": "Remove ununsed axepp (#182)"
            },
            {
              "sha": "6d3a5f1798a678c30bd8b142f73de820d75a14d9",
              "url": "https://github.com/google/ax/commit/6d3a5f1798a678c30bd8b142f73de820d75a14d9",
              "committedAt": "2026-06-26T15:42:18Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove AgentService (#186)",
              "message": "Remove AgentService (#186)"
            },
            {
              "sha": "fa2a34588eb116ded63949eb8b5d0898081fae2a",
              "url": "https://github.com/google/ax/commit/fa2a34588eb116ded63949eb8b5d0898081fae2a",
              "committedAt": "2026-06-26T19:41:38Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Pass harness config through the incoming request (#193)",
              "message": "Pass harness config through the incoming request (#193)\n\n* Pass harness config from exec input.\n\n* Update generated proto.\n\n* Add a flag for inline config json."
            },
            {
              "sha": "2abfec209d6ce4cabf60b61f849d1ccee8590509",
              "url": "https://github.com/google/ax/commit/2abfec209d6ce4cabf60b61f849d1ccee8590509",
              "committedAt": "2026-06-26T21:31:59Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove dead code from the earlier controller (#196)",
              "message": "Remove dead code from the earlier controller (#196)\n\n* Remove dead code from the earlier controller\n\nRemove the agent package, AgentService related proto messages, and Gemini agents in favor of the new universal agent harness.\n\n* feat: update proto definitions to use google.protobuf.Struct for harness_config and replace agent fields with harness fields in ExecRequest"
            },
            {
              "sha": "f39e1f23b498ff170335e3b837d2d05bf64f054c",
              "url": "https://github.com/google/ax/commit/f39e1f23b498ff170335e3b837d2d05bf64f054c",
              "committedAt": "2026-06-26T21:52:07Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove ununsed internal_only field (#197)",
              "message": "Remove ununsed internal_only field (#197)"
            },
            {
              "sha": "4a7f140d7cd486066c32d7c42093d4aea3060aea",
              "url": "https://github.com/google/ax/commit/4a7f140d7cd486066c32d7c42093d4aea3060aea",
              "committedAt": "2026-06-26T21:53:59Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Move cmd/e2e to internal/cmd/e2e (#199)",
              "message": "Move cmd/e2e to internal/cmd/e2e (#199)\n\nFixes #187."
            },
            {
              "sha": "5259c754e314d73d3e3a7b4c7d1bbb7a95ea04d0",
              "url": "https://github.com/google/ax/commit/5259c754e314d73d3e3a7b4c7d1bbb7a95ea04d0",
              "committedAt": "2026-06-26T21:54:26Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Rename agent references to harness in docs and update roadmap (#198)",
              "message": "Rename agent references to harness in docs and update roadmap (#198)"
            },
            {
              "sha": "fd3e6e16d55ad4de5fd1a27e0a9fa646731adc5f",
              "url": "https://github.com/google/ax/commit/fd3e6e16d55ad4de5fd1a27e0a9fa646731adc5f",
              "committedAt": "2026-06-26T22:44:05Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Change the harness working directory. (#200)",
              "message": "Change the harness working directory. (#200)"
            },
            {
              "sha": "c06192d8e6369f4f07e589761ff04142b64bd516",
              "url": "https://github.com/google/ax/commit/c06192d8e6369f4f07e589761ff04142b64bd516",
              "committedAt": "2026-06-26T23:14:18Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "Remove stateless-resumption hydration in antigravity harness server (#201)",
              "message": "Remove stateless-resumption hydration in antigravity harness server (#201)\n\nThe harness server had a dead code path for stateless resumption:\nclearing Conversation._steps each turn and rebuilding it from\nhistorical_messages = ax_messages[:-1]. But the ax controller never\nsends historical messages — it only sends the new turn's input — so\nhistorical_messages was always empty and the clear()+extend() was a\nno-op that reached into a private SDK attribute.\n\nThe Antigravity harness server is designed to be stateful: the cached\nAgent per conversation_id holds history across turns within the\nprocess lifetime. Make that intent explicit by:\n\n  - Deleting the unused hydrate_ax_history_to_steps helper.\n  - Removing the _steps.clear() + extend() block; replacing with a\n    comment explaining the stateful contract.\n  - Dropping now-unused Step/StepType/StepSource/StepTarget/StepStatus\n    imports.\n\nNo behavior change; the deleted block was a no-op against the SDK's\nreal conversation state (which lives in the Go-side localharness\nsubprocess, not in Python _steps)."
            },
            {
              "sha": "8ef2a047b0fcd05036c79daa2623847144ea5756",
              "url": "https://github.com/google/ax/commit/8ef2a047b0fcd05036c79daa2623847144ea5756",
              "committedAt": "2026-06-27T02:03:08Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Update skills dir on substrate. (#204)",
              "message": "Update skills dir on substrate. (#204)"
            },
            {
              "sha": "b6fe49a25db6319cbaef6cd110df26d768e2921f",
              "url": "https://github.com/google/ax/commit/b6fe49a25db6319cbaef6cd110df26d768e2921f",
              "committedAt": "2026-06-27T03:37:10Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Relocate antigravity agent source files from the examples directory (#205)",
              "message": "Relocate antigravity agent source files from the examples directory (#205)\n\n* Relocate antigravity agent source files from the examples directory\n\nFixes #188.\n\n* refactor: embed agent.py\n\n* chore: update default antigravity harness address from localhost to 127.0.0.1\n\n* refactor: remove unnecessary localhost resolution from harness server setup"
            },
            {
              "sha": "22153b43f6db848164ab232bec73d2375abb8d13",
              "url": "https://github.com/google/ax/commit/22153b43f6db848164ab232bec73d2375abb8d13",
              "committedAt": "2026-06-27T11:27:38Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove unused skills package (#209)",
              "message": "Remove unused skills package (#209)"
            },
            {
              "sha": "4aa817cccd77dc3cf1630e385fd50af4be080428",
              "url": "https://github.com/google/ax/commit/4aa817cccd77dc3cf1630e385fd50af4be080428",
              "committedAt": "2026-06-27T22:00:08Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Minimize the AX Docker image (1.35GB -> 360MB) for faster resumption on Substrate (#208)",
              "message": "Minimize the AX Docker image (1.35GB -> 360MB) for faster resumption on Substrate (#208)"
            },
            {
              "sha": "82bd8b2fc736811d719cf426b2b1f8724724dd1f",
              "url": "https://github.com/google/ax/commit/82bd8b2fc736811d719cf426b2b1f8724724dd1f",
              "committedAt": "2026-06-27T22:00:27Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Add a line with kubectl port-forward instructions (#211)",
              "message": "Add a line with kubectl port-forward instructions (#211)"
            },
            {
              "sha": "78f4a8f2299e03db6b93e352923794950fef21ea",
              "url": "https://github.com/google/ax/commit/78f4a8f2299e03db6b93e352923794950fef21ea",
              "committedAt": "2026-06-29T07:03:41Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Add structured Error in HarnessEnd (#215)",
              "message": "Add structured Error in HarnessEnd (#215)\n\n- Added Error message to proto\n- Removed error_message\n- Updated the autogenerated artifacts"
            },
            {
              "sha": "5067e191b2d41553f67b99ff07da922401aadf82",
              "url": "https://github.com/google/ax/commit/5067e191b2d41553f67b99ff07da922401aadf82",
              "committedAt": "2026-06-29T07:04:00Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Fix the auto collapsing traces (#216)",
              "message": "Fix the auto collapsing traces (#216)\n\nThe AX Dashboard uses live polling (every 3 seconds) to fetch updated trace data for the active conversation. Each time new trace data is retrieved, the dashboard completely regenerates the HTML for the execution trace cards using innerHTML. Because the cards were hardcoded to render with the collapsed and hidden classes by default, any cards the user had expanded would collapse every time the poll triggered. Since users are usually scrolling while reading the expanded trace details, this gave the impression that the history was collapsing during scrolling.\n\nFixes #202."
            },
            {
              "sha": "9ce12ed12cdfaaf17ed48b529a9be5b07d622ac5",
              "url": "https://github.com/google/ax/commit/9ce12ed12cdfaaf17ed48b529a9be5b07d622ac5",
              "committedAt": "2026-06-29T07:04:24Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Introduce version field to configuration with validation check (#218)",
              "message": "Introduce version field to configuration with validation check (#218)\n\nFixes #217."
            },
            {
              "sha": "b865df6568b4e1ea02c3abfda5ccbf7389ac55e1",
              "url": "https://github.com/google/ax/commit/b865df6568b4e1ea02c3abfda5ccbf7389ac55e1",
              "committedAt": "2026-06-29T17:19:08Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Update README based on the new controller implementation (#213)",
              "message": "Update README based on the new controller implementation (#213)\n\n* Update README based on the new controller implementation\n\n* Update the diagram with more details\n\n* Update README\n\n* Remove unncessary new line\n\n* Add changes to the roadmap\n\n* Update the extensions section\n\n* Add note about Agent Substrate\n\n* Add forking to the roadmap\n\n* Fix wording\n\n* Update tenancy model\n\n* Update wording\n\n* Update formatting\n\n* Add a History section\n\n* Update wording\n\n* Fix wording\n\n* Update wording\n\n* Update wording\n\n* update wording\n\n* Fix typo"
            },
            {
              "sha": "1743290c6c165a6c90e0388ed6f6dccb86eb9098",
              "url": "https://github.com/google/ax/commit/1743290c6c165a6c90e0388ed6f6dccb86eb9098",
              "committedAt": "2026-06-29T17:19:28Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Move Substrate package out of experimental (#214)",
              "message": "Move Substrate package out of experimental (#214)\n\nAgent Substrate is no longer experimental."
            },
            {
              "sha": "09beb2d12bc252bc070eebfc0e7780e9a2b2a69f",
              "url": "https://github.com/google/ax/commit/09beb2d12bc252bc070eebfc0e7780e9a2b2a69f",
              "committedAt": "2026-06-30T00:20:14Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Change bucket var name and bump substrate version. (#224)",
              "message": "Change bucket var name and bump substrate version. (#224)\n\n* Change bucket env var and bump substrate version.\n\n* Add TODO for atespace."
            },
            {
              "sha": "c6607d21ac3d5d0d8f251f2c12f1ea3f26217969",
              "url": "https://github.com/google/ax/commit/c6607d21ac3d5d0d8f251f2c12f1ea3f26217969",
              "committedAt": "2026-06-30T17:41:04Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "antigravity: forward GOOGLE_CLOUD_{PROJECT,LOCATION} env to AGY config (#223)",
              "message": "antigravity: forward GOOGLE_CLOUD_{PROJECT,LOCATION} env to AGY config (#223)\n\nThe AGY SDK requires vertex/project/location on its AgentConfig but does\nnot read these env vars itself. Setting GOOGLE_GENAI_USE_VERTEXAI=True\nplus GOOGLE_CLOUD_PROJECT/LOCATION per the README's auth instructions\ntherefore reaches the credential check, then dies later inside AGY with\na confusing 'project and location, or an API key' error.\n\nHave the sidecar forward the env vars to gemini_config at startup, with\nprogrammatic config taking precedence. Validate fail-fast: if vertex is\nrequested but project/location are missing, raise ValueError at startup\nnaming the missing env var, instead of failing per-request later."
            },
            {
              "sha": "ee1d8cfd8fe748c88ba163416a485c04279e176f",
              "url": "https://github.com/google/ax/commit/ee1d8cfd8fe748c88ba163416a485c04279e176f",
              "committedAt": "2026-07-01T05:47:56Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Initial commit of the OpenTelemetry trace exposition (#226)",
              "message": "Initial commit of the OpenTelemetry trace exposition (#226)\n\nRefactor telemetry configuration and resolve deprecated GCP metadata calls:\n- Replace deprecated `metadata.ProjectID()` and `metadata.OnGCE()` with context-aware versions.\n- Update `telemetry.SetTraceProvider` to accept variadic `otlptracegrpc.Option`s and remove the hardcoded endpoint parameter.\n- Add `telemetry.WithGCPCredentials()` helper to encapsulate GCP-specific credentials.\n- Isolate GCP-specific server telemetry configuration into a new `serve_gcp.go` file.\n\nFix premature gRPC stream cancellation in the harness execution clients:\n- Update the client receive loop to drain the stream until `io.EOF` after receiving the `HarnessEnd` frame, preventing `CANCELLED` errors in telemetry.\n- Encapsulate the stream draining and message dispatching logic into a shared `drainStream` helper in a new `stream.go` file.\n- Clean up unused `io` imports in `antigravity.go` and `substrate.go`.\n\nFollow-up:\n- End-to-end trace context propagation to HarnessService deployments\n- End-to-end trace context propagation to Substrate calls"
            },
            {
              "sha": "d9c3412063dbde07794a6c929ebd8b23f7589353",
              "url": "https://github.com/google/ax/commit/d9c3412063dbde07794a6c929ebd8b23f7589353",
              "committedAt": "2026-07-01T09:55:08Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Rename Harness Service to AX Harness Server (#227)",
              "message": "Rename Harness Service to AX Harness Server (#227)\n\nTo keep the style consistent with AX Server"
            },
            {
              "sha": "b0e97874a68ab503a1ed42eadef1ffa9ad5eed20",
              "url": "https://github.com/google/ax/commit/b0e97874a68ab503a1ed42eadef1ffa9ad5eed20",
              "committedAt": "2026-07-01T17:00:07Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Add durable conversation resumability to the Antigravity Interactions harness (#180)",
              "message": "Add durable conversation resumability to the Antigravity Interactions harness (#180)\n\n* Add durable conversation resumability to the Antigravity Interactions harness\n\nIntroduce a small durable key-value store and use it to persist each\nconversation's interaction-chain cursor (the last interaction id), so a\nconversation can resume after a process restart instead of starting a new chain.\n\n- internal/storage: a minimal Store interface (Get/Put/Delete + ErrNotFound)\n  with documented semantics (atomicity, read-after-write, not-found-vs-error,\n  durability) and a single-writer concurrency model. Includes a filesystem\n  implementation (FileStore) that writes atomically via temp-file + rename.\n- harness: add AntigravityInteractionsConfig.StateStore; Start loads any\n  persisted cursor and Run persists it after each successful turn, so a fresh\n  Execution for the same conversation continues the existing interaction chain.\n- harness: document the single-writer-per-conversation expectation on the\n  Harness interface (the controller guarantees it), which is what makes the\n  last-write-wins store correct.\n\nAlso includes related harness improvements:\n- Retry HTTP 429 (rate limit) with exponential backoff + jitter, honoring\n  Retry-After; only 429 is retried since it is rejected before any interaction\n  is created.\n- Terminology cleanup: the within-Run FC/FR loop is the \"interaction loop\"\n  (continuation turns chained via previous_interaction_id), distinct from an\n  AX-level resume.\n\n* Scope resume-cursor persistence into the Antigravity Interactions harness\n\nAddress PR review feedback: instead of a repo-level internal/storage\nkey-value abstraction, keep resume-cursor persistence local to the\nAntigravity Interactions harness.\n\n- Remove the internal/storage package (Store interface + FileStore).\n- Add a harness-local, file-based cursorStore (cursorstore.go) with\n  load/save of the per-conversation resumeCursor. resumeCursor stays a\n  struct so it can grow (e.g. partial function-call results for\n  mid-tool-loop recovery) later.\n- Replace Config.StateStore with Config.StateDir. StateDir is now\n  required: NewAntigravityInteractionsHarness returns an error if it is\n  empty, and the constructor now returns (*Harness, error).\n- Add tests with a fake Interactions API (an http.RoundTripper) that\n  records each request and returns a canned SSE stream, covering the\n  resume-across-restart CUJ (a fresh harness over the same StateDir sends\n  the persisted previous_interaction_id), same-harness resume, the\n  required-StateDir error, and a cursorStore load/save round-trip.\n\n* Clarify single-writer as a caller expectation, not a controller guarantee\n\nAddress PR review: the controller does not currently enforce one Execution\nper conversation, so the StateDir doc comment shouldn't claim it does. Phrase\nsingle-writer (last-write-wins, no CAS) as an expectation the caller/deployment\nmust satisfy -- e.g. sticky routing of a conversation id to one worker, or\nresuming a worker from that conversation's snapshot."
            },
            {
              "sha": "0088d37d807840427b17c87d2fe566560123a218",
              "url": "https://github.com/google/ax/commit/0088d37d807840427b17c87d2fe566560123a218",
              "committedAt": "2026-07-01T17:20:52Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove weather tool and the custom system instructions (#231)",
              "message": "Remove weather tool and the custom system instructions (#231)"
            },
            {
              "sha": "b8c87febf06ccc09e09e40ec57820120cb599643",
              "url": "https://github.com/google/ax/commit/b8c87febf06ccc09e09e40ec57820120cb599643",
              "committedAt": "2026-07-01T17:26:14Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Add traces to the SQL event log implementation (#234)",
              "message": "Add traces to the SQL event log implementation (#234)"
            },
            {
              "sha": "89276a1246de83843bc0d7fedc854a3da322c925",
              "url": "https://github.com/google/ax/commit/89276a1246de83843bc0d7fedc854a3da322c925",
              "committedAt": "2026-07-01T18:40:10Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "TUI: add interactive /config menu for per-request harness config (#235)",
              "message": "TUI: add interactive /config menu for per-request harness config (#235)"
            },
            {
              "sha": "701777e498ea53f5131b4fc789441f43d77407bb",
              "url": "https://github.com/google/ax/commit/701777e498ea53f5131b4fc789441f43d77407bb",
              "committedAt": "2026-07-06T05:47:49Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Regenerate proto files (#241)",
              "message": "Regenerate proto files (#241)\n\n* Regenerate proto files\n\nFixes #240.\n\n* chore: add Apache 2.0 license headers to generated Python protobuf files"
            },
            {
              "sha": "cec995b72f1c9199663cea5190df13d45630b8bf",
              "url": "https://github.com/google/ax/commit/cec995b72f1c9199663cea5190df13d45630b8bf",
              "committedAt": "2026-07-06T05:48:05Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Fix spacing between AGY harness responses (#239)",
              "message": "Fix spacing between AGY harness responses (#239)\n\nThe AGY harness streams each contiguous block of assistant text as a separate TextContent message, with tool calls in between. The CLI display (cmd/ax/internal/display.go) tracks a state field to decide when to insert separating newlines  but the Content_ToolCall case was a pure no-op that left state == stateText.\n\nFixes #233."
            },
            {
              "sha": "a02465de3384fb7673b0369b9b58cd560bf708c6",
              "url": "https://github.com/google/ax/commit/a02465de3384fb7673b0369b9b58cd560bf708c6",
              "committedAt": "2026-07-06T17:13:18Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Make Postgres optional on substrate deployments (#236)",
              "message": "Make Postgres optional on substrate deployments (#236)\n\n* Make postgres optional.\n\n* Default requires postgres DSN from user."
            },
            {
              "sha": "72b51a4893f342eeb5857da21bc11ab5e4acc930",
              "url": "https://github.com/google/ax/commit/72b51a4893f342eeb5857da21bc11ab5e4acc930",
              "committedAt": "2026-07-06T17:30:46Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Rename ControllerService to ExecutionService (#242)",
              "message": "Rename ControllerService to ExecutionService (#242)"
            },
            {
              "sha": "e39b1232b2c90e09341b5d9366dd3762287312cf",
              "url": "https://github.com/google/ax/commit/e39b1232b2c90e09341b5d9366dd3762287312cf",
              "committedAt": "2026-07-06T21:00:57Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Move Harness implementations to their own packages (#243)",
              "message": "Move Harness implementations to their own packages (#243)\n\n* Move Harness implementations to their own packages\n\nFixes #232.\n\n* Shorten the constructor names"
            },
            {
              "sha": "b2cfc9bc0b9415910d6935801c38170058762564",
              "url": "https://github.com/google/ax/commit/b2cfc9bc0b9415910d6935801c38170058762564",
              "committedAt": "2026-07-06T22:18:42Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "harness/python: normalize thought summary whitespace (#244)",
              "message": "harness/python: normalize thought summary whitespace (#244)\n\nModel thought summaries often contain runs of blank lines between\nsection headers (**Section A**\\n\\n\\n**Section B**) and trailing\nnewlines.\n\nPreviously, the Python AGY harness streamed these verbatim over gRPC.\nThis placed the burden of whitespace cleanup on downstream clients (like\ndisplay.go and the Web Dashboard), and caused visible 3+ newline runs\nand compounding newlines at the thought->text transition boundary.\n\nCollapse runs of 3+ newlines to a single blank line and strip\ntrailing newlines inside the Python adapter before sending over the wire.\nAppend exactly one trailing newline to ensure clients generate clean\nseparators when transitioning to text blocks.\n\nFixes #191."
            },
            {
              "sha": "948ca05b5233dcf8b5e4d48e598a332186ab46a8",
              "url": "https://github.com/google/ax/commit/948ca05b5233dcf8b5e4d48e598a332186ab46a8",
              "committedAt": "2026-07-07T01:04:28Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Serve /readyz from ax harness server. (#254)",
              "message": "Serve /readyz from ax harness server. (#254)\n\n* Serve readyz from ax harness.\n\n* Surface the correct error message from server."
            },
            {
              "sha": "ab717703a1165949ffea2eaea29e5dd1ea5b5aa1",
              "url": "https://github.com/google/ax/commit/ab717703a1165949ffea2eaea29e5dd1ea5b5aa1",
              "committedAt": "2026-07-07T01:12:23Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove examples/skills/ from the Dockerfile (#256)",
              "message": "Remove examples/skills/ from the Dockerfile (#256)\n\nFixes #253."
            },
            {
              "sha": "cca34eaa7676f7db3b89806a064f7ced3bb54b1d",
              "url": "https://github.com/google/ax/commit/cca34eaa7676f7db3b89806a064f7ced3bb54b1d",
              "committedAt": "2026-07-07T01:12:38Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Use /axharness folder in the snapshots bucket (#255)",
              "message": "Use /axharness folder in the snapshots bucket (#255)\n\nThe ax harness server will provide more than Antigravity."
            },
            {
              "sha": "ad6a89ebaad32ffdb5543d6e602bdfdc41fc3c82",
              "url": "https://github.com/google/ax/commit/ad6a89ebaad32ffdb5543d6e602bdfdc41fc3c82",
              "committedAt": "2026-07-07T01:13:46Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Rename KO_DOCKER_REPO to AX_IMAGE_REPO (#257)",
              "message": "Rename KO_DOCKER_REPO to AX_IMAGE_REPO (#257)\n\nFixes #247."
            },
            {
              "sha": "2ce514f6d61c62046cbd7da786081f8d4332f7d2",
              "url": "https://github.com/google/ax/commit/2ce514f6d61c62046cbd7da786081f8d4332f7d2",
              "committedAt": "2026-07-07T02:43:02Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Make /workspace the default working directory on Substrate (#259)",
              "message": "Make /workspace the default working directory on Substrate (#259)\n\nFixes #258."
            },
            {
              "sha": "c507098025f6619ce611bcf0f2b14386eb846fc4",
              "url": "https://github.com/google/ax/commit/c507098025f6619ce611bcf0f2b14386eb846fc4",
              "committedAt": "2026-07-07T23:50:17Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Introduce pythonsidecar package (#273)",
              "message": "Introduce pythonsidecar package (#273)\n\n* Introduce pythonsidecar package\n\n* chore: add Apache 2.0 license headers to pythonsidecar files\n\n* chore: add development todo notes to sidecar configuration struct"
            },
            {
              "sha": "e764d366a5c660315a6827f065ae1c13cd4a97a3",
              "url": "https://github.com/google/ax/commit/e764d366a5c660315a6827f065ae1c13cd4a97a3",
              "committedAt": "2026-07-08T16:42:27Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Serve the Antigravity Interactions harness over HarnessService (#274)",
              "message": "Serve the Antigravity Interactions harness over HarnessService (#274)\n\n* Serve the Antigravity Interactions harness over HarnessService\n\nAdd a Go HarnessService server for the Antigravity Interactions harness so\nit can run as a substrate actor, alongside the existing Python sidecar path.\n\n- internal/harness/antigravityinteractions/server.go: Serve(...) stands up\n  the gRPC HarnessService (plus gRPC health) and an HTTP /readyz endpoint\n  reflecting this server's own serving state, with graceful shutdown on\n  ctx-cancel or SIGINT/SIGTERM. Connect adapts the harness onto the wire\n  contract: a start frame drives one turn (Start -> Queue -> Run), each agent\n  message is streamed as a HarnessResponse{outputs} frame, and the stream\n  terminates with exactly one HarnessResponse{end} (COMPLETED/FAILED/\n  CANCELED); a mid-stream cancel frame cancels the run.\n- cmd/ax/harness.go: add a thin runAntigravityInteractionsHarness(ctx,\n  systemInstructions) entrypoint that builds the config and calls Serve; the\n  dispatch layer decides when to invoke it.\n- server_test.go: bufconn tests for the start->end contract and rejection of\n  a non-start first frame.\n\n* Persist resume cursors under .ax/cursors in the work dir\n\nPlace the Antigravity Interactions harness resume-cursor StateDir in a\ndedicated \".ax/cursors\" subdirectory under the actor working directory,\nrather than the work dir root. This keeps AX internal state out of the\nagent-visible workspace (so it isn't surfaced by list_dir and can't collide\nwith the agent's files) while staying within the snapshotted filesystem so\nit survives snapshot/restore.\n\n* Document why steering is not supported over Connect\n\nAdd a comment in the HarnessService Connect loop explaining that mid-run\nsteering is intentionally unsupported: the execution can accept steering via\nQueue, but the HarnessRequest oneof only defines {start, cancel}, so there is\nno wire frame to deliver input after start. Multi-turn conversation is\nexpressed as separate Connect executions that resume via the persisted cursor.\n\n* Persist resume cursors under ~/.ax/cursors\n\nMove the resume-cursor StateDir out of the agent's working directory to a\ndedicated ~/.ax/cursors under the user's home directory. The working directory\nis the agent's operating surface (it reads and edits files there, including\nhidden ones), so keeping AX internal state separate avoids the agent seeing or\nclobbering it. If the home directory cannot be resolved, the harness now fails\nwith an error rather than silently falling back to the current directory."
            },
            {
              "sha": "e1400ea634880eec0ed10fcbf7bd407abef65382",
              "url": "https://github.com/google/ax/commit/e1400ea634880eec0ed10fcbf7bd407abef65382",
              "committedAt": "2026-07-08T19:37:59Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "Auto-start Antigravity Python sidecar from ax exec (#275)",
              "message": "Auto-start Antigravity Python sidecar from ax exec (#275)\n\nLocal mode (the default for ax exec) now forks the Antigravity Python\nsidecar via the pythonsidecar package (introduced in #273) so users\ndon't need to launch the harness server out of band. Modeled after\ncmd/ax/harness.go.\n\nAntigravityHarness.New takes an autoStart bool:\n- true  (cliutil, local mode): fork the sidecar, wait for TCPReady,\n  and install a signal handler that stops the sidecar on\n  ctrl-C / SIGTERM. Full lifecycle stays inside antigravity.go so\n  callers don't need a registry -> controller -> antigravity\n  teardown chain.\n- false (e2e demo, unit tests against harnesstest.MockHarnessServer):\n  pure gRPC-client constructor, no fork.\n\nClose stops the forked sidecar; the signal-handler goroutine is the\nprimary caller today.\n\nTests:\n- internal/harness/antigravity/antigravity_test.go covers both\n  autoStart paths via TestNew_AutoStartTrue_StubServer_ForksSidecar\n  (drives the real fork against a minimal stub Python module on\n  PYTHONPATH) and TestNew_AutoStartFalse_NilSidecar.\n- cmd/ax/internal/cliutil/cliutil_test.go's DefaultHarness test uses\n  the same stub-Python trick to exercise the end-to-end wiring\n  through NewControllerFromConfig.\n\ne2e demo (internal/cmd/e2e/main.go) still uses autoStart=false; TODO\nnotes a companion autoStart=true demo as follow-up."
            },
            {
              "sha": "3ed25c7ec5f315748683ddca9bd209a0ad777b8d",
              "url": "https://github.com/google/ax/commit/3ed25c7ec5f315748683ddca9bd209a0ad777b8d",
              "committedAt": "2026-07-09T00:43:48Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Antigravity interactions harness registry and config (#277)",
              "message": "Antigravity interactions harness registry and config (#277)"
            },
            {
              "sha": "81c84f77b2b205b921aa2a287b1a8f54547ffd85",
              "url": "https://github.com/google/ax/commit/81c84f77b2b205b921aa2a287b1a8f54547ffd85",
              "committedAt": "2026-07-09T02:28:18Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Embed python artifacts into ax (#276)",
              "message": "Embed python artifacts into ax (#276)\n\n* Embed python artifacts into ax\n\nAnd setup the AGY harness service at runtime.\n\n* refactor: remove directory and file filtering logic from setup walk function\n\n* refactor: rename installRequirements to install in python sidecar setup\n\n* refactor: simplify Sidecar configuration by passing PYTHONPATH directly to Start method and removing unnecessary environment and binary options\n\n* feat: configure pip install to use local site-packages and filter unwanted files during setup\n\n* feat: support appending to PYTHONPATH and update Python setup path resolution\n\n* refactor: remove redundant file filtering in sidecar setup directory traversal\n\n* refactor: simplify python package installation and add PyPI index URL to pip command\n\n* fix: remove extra index URL from pip install command\n\n* refactor: remove Sidecar.Setup method and move asset extraction logic to external standalone function\n\n* refactor: remove PythonPath configuration field from sidecar.Config in favor of direct global pythonPath usage\n\n* test: remove integration test for antigravity sidecar auto-start logic\n\n* fix: add pypi.org extra-index-url to python package installation command\n\n* refactor: remove Stdin support from pythonsidecar configuration and cleanup redundant harness definitions"
            },
            {
              "sha": "74731320788e8f21b3167b37ae52f48e3972190f",
              "url": "https://github.com/google/ax/commit/74731320788e8f21b3167b37ae52f48e3972190f",
              "committedAt": "2026-07-09T05:08:09Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Setup ~/.ax/antigravity once until a new update arrives (#278)",
              "message": "Setup ~/.ax/antigravity once until a new update arrives (#278)\n\n* Consolidate .ax directory path resolution into a centralized config helper\n\n* refactor: remove unused TargetDir field from SetupOptions in python sidecar tests\n\n* test: update setup test to use HOME directory and verify .ax subdirectory extraction\n\n* refactor: simplify directory path resolution and variable naming in python sidecar setup\n\n* perf: skip redundant file copying and pip installations when dependencies are up to date\n\n* fix: remove redundant check for non-existent requirements file in setup\n\n* refactor: track file updates during extraction to skip unnecessary pip installs\n\n* feat: add progress notification when installing Antigravity SDK\n\n* fix: ensure site-packages directory exists before returning path in setup\n\n* feat: add pypi simple index to pip install command for environment compatibility"
            },
            {
              "sha": "e1950e035ef48b7a8615575442d04115593bd922",
              "url": "https://github.com/google/ax/commit/e1950e035ef48b7a8615575442d04115593bd922",
              "committedAt": "2026-07-09T06:18:25Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Add instructions for accessing ax server via port-forwarding in install script (#280)",
              "message": "Add instructions for accessing ax server via port-forwarding in install script (#280)"
            },
            {
              "sha": "e84907da7936aabc1d89b10c3b828e67fde66c9f",
              "url": "https://github.com/google/ax/commit/e84907da7936aabc1d89b10c3b828e67fde66c9f",
              "committedAt": "2026-07-09T06:18:44Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "ax command should start without an ax.yaml (#279)",
              "message": "ax command should start without an ax.yaml (#279)\n\nFixes #260."
            },
            {
              "sha": "fef750f9065219139a7fdaa506e903fb51a889e5",
              "url": "https://github.com/google/ax/commit/fef750f9065219139a7fdaa506e903fb51a889e5",
              "committedAt": "2026-07-09T21:08:05Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Harden Antigravity Interactions harness HTTP client (#285)",
              "message": "Harden Antigravity Interactions harness HTTP client (#285)\n\n* Harden Antigravity Interactions harness HTTP client\n\nFix a substrate suspend/resume failure and tighten the config surface:\n\n- Disable HTTP keep-alives on the harness's default client. On substrate the\n  actor is suspended after a turn and resumed for the next (with a new routable\n  IP), which leaves any pooled keep-alive connection stale; reusing it made the\n  next turn's request fail. Opening a fresh connection per request avoids that\n  at the cost of an extra handshake.\n- Remove the public HTTPClient override from AntigravityInteractionsConfig.\n  External callers don't configure the harness's transport, and exposing it\n  risked silently reintroducing the keep-alive bug. New now always owns its\n  (keep-alive-disabled) client; tests inject a fake transport via an unexported\n  newWithHTTPClient seam.\n- Reorder AntigravityInteractionsConfig fields to list required (Agent,\n  StateDir) before optional, with clearer doc comments.\n\nBuild and package tests pass.\n\n* Explain why the HTTP transport is cloned, not newly created\n\nAddress review feedback: document that cloning DefaultTransport (rather than a\nbare &http.Transport{}) is intentional -- it inherits the production defaults\n(env proxy, dial/TLS/handshake timeouts, HTTP/2) and only overrides keep-alives.\nA fresh empty transport would silently drop those."
            },
            {
              "sha": "3f39ca3f917b01b10c39fe788e69ace363449360",
              "url": "https://github.com/google/ax/commit/3f39ca3f917b01b10c39fe788e69ace363449360",
              "committedAt": "2026-07-09T21:44:57Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Delete obsolete Makefile targets (#284)",
              "message": "Delete obsolete Makefile targets (#284)"
            },
            {
              "sha": "70a2581d4914d2481b3df0f4d7d76347b088df6e",
              "url": "https://github.com/google/ax/commit/70a2581d4914d2481b3df0f4d7d76347b088df6e",
              "committedAt": "2026-07-09T23:24:27Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Surface server error events in Antigravity Interactions harness (#288)",
              "message": "Surface server error events in Antigravity Interactions harness (#288)\n\nparseStreamedTurn only handled interaction.* and step.* SSE events; a\nserver-emitted \"error\" event fell through the switch and was silently\ndropped. The turn then returned as completed-but-empty, which:\n\n  - made a failure (e.g. INVALID_ARGUMENT for a malformed client tool\n    result) look like a blank \"no response\" turn, and\n  - persisted the failing interaction's id as a poisoned resume cursor.\n\nAdd an \"error\" case that returns a real error, plus a serverErrorMessage\nhelper that extracts message/status from the error payload. Now a\nturn-level server failure aborts the turn with a descriptive error\ninstead of being hidden.\n\nAdds tests for the error-event path and serverErrorMessage formatting."
            },
            {
              "sha": "fea5d230db6d6ef8cea3cf5fa19b69179f205d09",
              "url": "https://github.com/google/ax/commit/fea5d230db6d6ef8cea3cf5fa19b69179f205d09",
              "committedAt": "2026-07-10T00:44:00Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Run Antigravity Interactions as substrate actors (#287)",
              "message": "Run Antigravity Interactions as substrate actors (#287)\n\n* Run antigravity interactions as actor.\n\n* Add instructions for users.\n\n* Remove a comment.\n\n* Fix readme format."
            },
            {
              "sha": "65f0478ea1b0f503464d6aaf9ce5839105e7a01b",
              "url": "https://github.com/google/ax/commit/65f0478ea1b0f503464d6aaf9ce5839105e7a01b",
              "committedAt": "2026-07-10T03:45:26Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "Replace Antigravity sidecar in-memory Agent cache with SDK-native resume (#289)",
              "message": "Replace Antigravity sidecar in-memory Agent cache with SDK-native resume (#289)\n\nThe Python sidecar previously kept a per-conversation Agent instance in\nan in-process dict (self._agents) with a lock, and relied on that cache\nto preserve conversation history across turns. This tied conversation\nstate to a single sidecar process lifetime: any restart, crash, or\nmulti-replica scaling would silently drop history.\n\nDelete the cache and use the Antigravity SDK's own per-conversation\npersistence instead. LocalAgentConfig accepts (conversation_id, save_dir);\nthe SDK's localharness persists trajectory state to\n{save_dir}/{sdk_conv_id}.db. Each turn now:\n\n1. Constructs a fresh Agent scoped to a per-AX-conversation save_dir\n   (~/.ax/antigravity/conversations/{ax_conv_id}/), so each AX\n   conversation gets its own directory with at most one .db file.\n2. If a .db exists there (from a prior turn), passes its stem as the\n   SDK's conversation_id to trigger resume. The SDK's conversation_id\n   is resume-only -- passing a non-existent id errors out -- hence\n   the discover-then-pass pattern.\n3. Runs the turn inside an async-with Agent(...) block, disposing at\n   the end. No process-level state.\n\nMirrors internal/harness/antigravityinteractions/DefaultStateDir()\nconvention (state under ~/.ax/, out of the agent's cwd/operating\nsurface). A TODO references issues #269 and #203 for the eventual\ncontroller-injected save_dir via harness_config.\n\nTest replaces test_grpc_connect_agent_reused (which asserted cache\nbehavior) with test_grpc_connect_agent_per_turn_with_save_dir, which\nasserts per-turn Agent construction and deterministic per-conv save_dir\nnaming.\n\nVerified end-to-end with ax exec --conversation <id>: turn 2 correctly\nrecalls a name introduced in turn 1 across a fresh sidecar process,\nwith only one .db file per conversation on disk. Different --conversation\nids remain isolated."
            },
            {
              "sha": "b71ba523cc08e69980b497e67887f6b54bf23fab",
              "url": "https://github.com/google/ax/commit/b71ba523cc08e69980b497e67887f6b54bf23fab",
              "committedAt": "2026-07-10T21:23:47Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Use GOOGLE_CLOUD_PROJECT variable and remove PROJECT_ID usage (#293)",
              "message": "Use GOOGLE_CLOUD_PROJECT variable and remove PROJECT_ID usage (#293)\n\n* Update install script to use GOOGLE_CLOUD_PROJECT instead of PROJECT_ID\n\nFixes #290.\n\n* Use GOOGLE_CLOUD_PROJECT variable and remove PROJECT_ID usage\n\nFixes #290."
            },
            {
              "sha": "c48baf33a0e9ba1fbad97c3439f3f46b3732c248",
              "url": "https://github.com/google/ax/commit/c48baf33a0e9ba1fbad97c3439f3f46b3732c248",
              "committedAt": "2026-07-10T21:34:17Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Update GOOGLE_CLOUD_PROJECT for interactions path. (#294)",
              "message": "Update GOOGLE_CLOUD_PROJECT for interactions path. (#294)"
            },
            {
              "sha": "4846d9090b8748cf7fd4c9a85c4a604a7ce56793",
              "url": "https://github.com/google/ax/commit/4846d9090b8748cf7fd4c9a85c4a604a7ce56793",
              "committedAt": "2026-07-11T00:30:26Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "harness/python: fix stale thought summary test assertions (#291)",
              "message": "harness/python: fix stale thought summary test assertions (#291)\n\nPR #244 normalized thought summary text with a trailing '\\n' in\nharness_server.py but harness_server_test.py wasn't updated.\ntest_grpc_connect_success and test_grpc_connect_buffering assert\nagainst the pre-normalization strings and fail.\n\nThe drift went unnoticed because the Python tests aren't wired\ninto CI (.github/workflows/go.yml only runs go test ./...).\nWiring pytest into CI is the follow-up."
            },
            {
              "sha": "1b58b0943e5e1a4aab33e7d74edc083f1281cc1d",
              "url": "https://github.com/google/ax/commit/1b58b0943e5e1a4aab33e7d74edc083f1281cc1d",
              "committedAt": "2026-07-13T16:55:02Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "Antigravity sidecar state dir from config (#292)",
              "message": "Antigravity sidecar state dir from config (#292)\n\n* antigravity: plumb sidecar state_dir from ax.yaml\n\nSidecar's trajectory storage directory was hardcoded in Python. This\nplumbs it through as a yaml config that users can override, matching\nthe pattern already used for the Interactions harness's state_dir.\n\nFlow:\n- ax.yaml: harnesses.antigravity.state_dir (optional; empty = default)\n- config.go: AntigravityHarnessConfig.StateDir field (yaml surface only,\n  no default logic on the Go side)\n- cliutil.go: passes yaml value as-is (empty string when unset)\n- antigravity Go client: appends --state-dir arg only when non-empty\n- Python sidecar: argparse --state-dir with default\n  ~/.ax/antigravity/conversations. Default is a transitional fallback\n  for substrate mode (where ActorTemplate doesn't inject the flag yet).\n  Removable once substrate can set the field via ActorTemplate.\n\nServicer's state_dir is required (no fallback) -- production path always\nreceives it from argparse; tests pass tmp_path.\n\nVerified end-to-end with ax exec:\n- No yaml state_dir  -> ~/.ax/antigravity/conversations/{conv_id}/\n- yaml state_dir: X  -> X/{conv_id}/\n- Different conversations remain isolated across both paths.\n\nCloses part of the local-mode gap in issue #269 (harness_config\ncontract design); a follow-up will do the same for substrate via\nActorTemplate.\n\n* antigravity: address PR review comments (P1/P2/P3)\n\n- P1: two Python tests referenced tmp_path without declaring the fixture;\n  add tmp_path to their signatures.\n- P2: state_dir CLI arg was not tilde-expanded, so ~/.ax/... became a\n  literal ~ dir. Add .expanduser().\n- P3: no Go-side test asserted --state-dir forwarding. Extract\n  buildSidecarArgs() as a small pure helper and add table test for the\n  empty/non-empty cases, plus a yaml parse test for\n  AntigravityHarnessConfig.StateDir.\n\n* antigravity: inline sidecar args build instead of separate helper\n\nFollow-up to review feedback: buildSidecarArgs was overkill for a 3-line\nconditional. Move it back into New() inline. Also drops the associated\nTestBuildSidecarArgs (the arg-forwarding rule is now covered only by\nend-to-end verification)."
            },
            {
              "sha": "7437b2f63389bf2ad633fe3eb6b0bb2be81d7296",
              "url": "https://github.com/google/ax/commit/7437b2f63389bf2ad633fe3eb6b0bb2be81d7296",
              "committedAt": "2026-07-13T16:55:24Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "ci: run Python tests for the antigravity harness sidecar (#296)",
              "message": "ci: run Python tests for the antigravity harness sidecar (#296)\n\nThe 17 tests in python/antigravity/harness_server_test.py have never\nrun in CI. .github/workflows/go.yml only runs 'go test ./...' and the\nMakefile 'test' target likewise only runs Go. That let PR #244 land\nwith 2 stale assertions unnoticed (fixed in #291).\n\nAdds:\n- .github/workflows/python.yml -- dedicated Python workflow (kept\n  separate from the Go-only go.yml so each can evolve independently).\n- Makefile 'test-python' target for local parity.\n\nTest deps are inlined in the workflow rather than added as a separate\nrequirements-test.txt -- the diff is 2 packages ('pytest>=7.0',\n'pytest-timeout>=2.0'), not worth its own file. Version floors match\nthe upstream google-antigravity SDK's dev extras so this doesn't\ndrift as pytest evolves.\n\n--timeout=30 --timeout-method=thread guards against hung gRPC servers\nso a stuck test can't eat the whole workflow budget."
            },
            {
              "sha": "c7e9f295e392c7ae5f7336eb1fc0efbcc745bbfc",
              "url": "https://github.com/google/ax/commit/c7e9f295e392c7ae5f7336eb1fc0efbcc745bbfc",
              "committedAt": "2026-07-13T21:55:05Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "parse harness config from request (#295)",
              "message": "parse harness config from request (#295)\n\n* antigravity: parse and validate request harness_config\n\nParse HarnessStart.harness_config (JSON-in-bytes) and overlay it onto\nthe server's default LocalAgentConfig before each turn.\n\n- Blocks a request from overriding AX-owned persistence fields\n  (save_dir, conversation_id) via _AX_MANAGED_CONFIG_FIELDS; these are\n  injected last so a request can't redirect trajectory storage.\n- Reconstructs the config (not model_copy) so the SDK re-validates the\n  overlaid values and surfaces its own error; invalid config fails the\n  turn with INVALID_ARGUMENT instead of crashing.\n- save_dir derives from the injected state_dir (#292) as\n  state_dir / conversation_id.\n\n* antigravity: address harness_config review comments\n\n- Inline _parse_harness_config into _build_config_for so the parsed\n  dict stays a local intermediate; the method's only boundary type is\n  the validated LocalAgentConfig (no dict[str, object] across a helper\n  boundary). Addresses the \"introduce a type for the config\" comment.\n- Make per-conv save_dir test assertions portable: compare against\n  str(tmp_path / conversation_id) instead of hardcoding \"/conv-1\", and\n  drop the now-vestigial Path.home monkeypatch (save_dir derives from\n  the injected state_dir since #292). Addresses the Windows path\n  separator comment.\n\n_AX_MANAGED_CONFIG_FIELDS keeps guarding both conversation_id and\nsave_dir on purpose: harness_config is a separate client-controlled\nsurface from the request's conversation_id, so blocking it prevents a\nrequest from redirecting another conversation's trajectory storage."
            },
            {
              "sha": "a953396b6d2fb5e9740b3c7718ce4ca2ac1e6781",
              "url": "https://github.com/google/ax/commit/a953396b6d2fb5e9740b3c7718ce4ca2ac1e6781",
              "committedAt": "2026-07-14T00:04:49Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "antigravity: reject unknown harness_config fields (#301)",
              "message": "antigravity: reject unknown harness_config fields (#301)\n\nLocalAgentConfig uses pydantic's default extra=\"ignore\", so an\nunrecognized field in a request's harness_config -- e.g. a typo like\n\"system_instruction\" for \"system_instructions\" -- was silently dropped\nand the caller believed the override took effect when it did not.\n\nAdd _reject_disallowed_fields(overrides), which factors two key checks\ninto one helper and raises HarnessConfigError (mapped to\nINVALID_ARGUMENT) naming the offending field(s):\n  - fields that come from outside harness_config (_NON_HARNESS_CONFIG_\n    FIELDS: conversation_id from the runtime request, save_dir from the\n    server's state_dir), and\n  - unknown top-level fields.\n\nValidation is best-effort and top-level only: nested-key and value/type\nvalidation is delegated to the SDK's own LocalAgentConfig validation at\nconstruction time."
            },
            {
              "sha": "8eff724ca6833c507a5d8178bdbc9f13e5d9c280",
              "url": "https://github.com/google/ax/commit/8eff724ca6833c507a5d8178bdbc9f13e5d9c280",
              "committedAt": "2026-07-14T20:03:01Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Interactions actor reads config from yaml. (#302)",
              "message": "Interactions actor reads config from yaml. (#302)"
            },
            {
              "sha": "9873c8747553031a1df660964b688c73fc74254d",
              "url": "https://github.com/google/ax/commit/9873c8747553031a1df660964b688c73fc74254d",
              "committedAt": "2026-07-14T20:28:49Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "antigravity: stop exposing harness state_dir in ax.yaml (#304)",
              "message": "antigravity: stop exposing harness state_dir in ax.yaml (#304)\n\nstate_dir is an AGY SDK implementation detail (where trajectory /\nresume-cursor storage lives), not something AX users should configure.\nRemove the yaml surface for both built-in harnesses and derive the path\ninternally from config.AXAssetsDir().\n\n- config: drop StateDir from AntigravityHarnessConfig and\n  AntigravityInteractionsHarnessConfig.\n- antigravity: add DefaultStateDir() -> ~/.ax/antigravity/conversations,\n  mirroring antigravityinteractions.DefaultStateDir(). cliutil now passes\n  this into antigravity.New instead of the yaml value.\n- cliutil: interactions harness always uses DefaultStateDir(); drop the\n  yaml read + fallback.\n\nThe internal APIs (antigravity.New's stateDir arg, the required\nAntigravityInteractionsConfig.StateDir field, and the Python sidecar's\n--state-dir default) are unchanged -- only the user-facing ax.yaml knob\nis removed.\n\nAddresses rakyll's follow-up on #292."
            },
            {
              "sha": "37718e20bf2ee578eaa007e2a7709b71b19f6e87",
              "url": "https://github.com/google/ax/commit/37718e20bf2ee578eaa007e2a7709b71b19f6e87",
              "committedAt": "2026-07-15T00:40:31Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Add Gemini Enterprise Skill Registry integration for local harnesses (#300)",
              "message": "Add Gemini Enterprise Skill Registry integration for local harnesses (#300)\n\nMaterialize agentskills.io skills from the Gemini Enterprise Skill Registry\n(Vertex AI v1beta1) into on-disk folders before the harness starts, so the\nbuilt-in harnesses can use registry-hosted skills on the local `ax exec` /\n`ax serve` path.\n\n- internal/skills/geminienterprise: harness-agnostic package that reads\n  config.SkillsConfig, drives the registry client (ListSkills / GetSkill /\n  GetSkillRevision / skills:retrieve), safe-unzips payloads to\n  <target_dir>/<skill-id>/, and reports what it wrote. First-wins on\n  duplicate ids with a warning; fail-safe (a registry error never blocks\n  harness startup).\n- config: top-level `skills.registries[]` (harness-agnostic -- each actor\n  runs a single harness that consumes the materialized folder). Per-registry\n  selection (skills / query / all), required target_dir, and a validated\n  \"exactly one selection mode\" rule. Also wires the interactions harness's\n  system_instruction from ax.yaml.\n- cliutil: materializes skills once, up front, at controller construction;\n  for the interactions harness (no SKILLS_DIR concept) it appends a discovery\n  pointer to the system instruction.\n\nScope: local path only; the substrate/pod path does not yet read ax.yaml.\nVerified end-to-end against a live registry (by-id and by-query)."
            },
            {
              "sha": "4d38084e773bbdaf62072bde3b58976450dac570",
              "url": "https://github.com/google/ax/commit/4d38084e773bbdaf62072bde3b58976450dac570",
              "committedAt": "2026-07-15T17:27:16Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "antigravity: format harness_server.py with black (#311)",
              "message": "antigravity: format harness_server.py with black (#311)"
            },
            {
              "sha": "f14e57d896b2838b383821346f405d7f363a91cf",
              "url": "https://github.com/google/ax/commit/f14e57d896b2838b383821346f405d7f363a91cf",
              "committedAt": "2026-07-15T17:28:01Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "docs(readme): fix invalid harness in exec example (#309)",
              "message": "docs(readme): fix invalid harness in exec example (#309)\n\nThe exec example used `--harness coding`, but no \"coding\" harness\nexists; runHarness only accepts \"antigravity\" and\n\"antigravity-interactions\" and errors otherwise, so the command as\nwritten fails. Point the example at the real \"antigravity\" harness."
            },
            {
              "sha": "968348aea14492243d20837474d976fc1f714a98",
              "url": "https://github.com/google/ax/commit/968348aea14492243d20837474d976fc1f714a98",
              "committedAt": "2026-07-15T17:34:14Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Honor view_file line range and cap result size (#303)",
              "message": "Honor view_file line range and cap result size (#303)\n\n* Honor view_file line range and cap result size\n\nexecViewFile read the whole file and ignored the agent's StartLine/EndLine,\nso viewing a large file returned its entire content as the tool result --\na ~900KB blob for a 3k-line CSV stalled the following turn.\n\nImplement the Antigravity view_file contract (1-indexed inclusive line range\nwith slice-notation windowing) plus defensive caps:\n- StartLine/EndLine window (neither=first N lines; start-only=next N forward;\n  end-only=previous N backward; both=precise range, capped to N).\n- viewFileMaxLines / viewFileMaxBytes caps so a large file can never blob.\n- ContentOffset honored as the read position within the windowed content.\n\nThe result payload is just {\"content\": ...}; the view_file result schema is\ndefined server-side, so no extra fields are added.\n\nAdds intArg/intArgOK helpers and tests for windowing, byte cap, offset read,\nand range honoring.\n\n* view_file: UTF-8-safe byte cap + pagination metadata\n\nAddress review feedback on the byte cap:\n\n- applyByteWindow backs the cut off to the last complete UTF-8 rune so a\n  multi-byte character straddling viewFileMaxBytes is never split (raw byte\n  slicing could produce invalid UTF-8, corrupting the last char and JSON\n  serialization).\n- execViewFile returns the metadata the server needs to distinguish a\n  complete read from a paginated/byte-truncated one: content, start_line/\n  end_line (0-indexed inclusive served range), content_offset,\n  line_range_bytes (total bytes of the line range pre-byte-cap), and\n  num_lines/num_bytes. The server detects truncation via\n  content_offset+len(content) < line_range_bytes and prompts the model to\n  resume from that offset.\n\nA paired server change reads these fields instead of hardcoding\nstart_line=0/end_line=last.\n\nAdds tests for UTF-8 boundary capping, pagination metadata, and resume."
            }
          ]
        },
        "developmentAttribution": {
          "repository": "google/ax",
          "branch": "main",
          "window": {
            "id": "ax-history-before-cutoff",
            "label": "AX public default-branch history before the comparison cutoff",
            "startInclusive": "2026-01-01T00:00:00.000Z",
            "endExclusive": "2026-08-01T00:00:00.000Z",
            "duration": "P212D"
          },
          "windowRelation": "repository-history-outside-measured-windows",
          "totalCommitsScanned": 608,
          "explicitlyAttributedCommits": 7,
          "byAgent": [
            {
              "agent": "Gemini",
              "commits": 7,
              "markerTypes": [
                {
                  "name": "co-author-trailer",
                  "count": 7
                }
              ]
            }
          ],
          "records": [
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "5e030de39700fbfaabbcfafa9e9b7481bec5de4e",
              "url": "https://github.com/google/ax/commit/5e030de39700fbfaabbcfafa9e9b7481bec5de4e",
              "title": "Add a warning saying the project is in active development (#73)",
              "observedAt": "2026-02-27T19:14:42Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "423549a5409b2dee1f5c45ea10b0c6facce62dd1",
              "url": "https://github.com/google/ax/commit/423549a5409b2dee1f5c45ea10b0c6facce62dd1",
              "title": "Fix the README section about the Python agent (#104)",
              "observedAt": "2026-03-17T02:12:40Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "a5c1aff3a297808ae639d0bfdf37eb421aafdd4d",
              "url": "https://github.com/google/ax/commit/a5c1aff3a297808ae639d0bfdf37eb421aafdd4d",
              "title": "Small improvements in the exec loop. (#128)",
              "observedAt": "2026-03-24T01:30:19Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "d694866ec5dba1c5010a277da3a3f4ccb10c2bdb",
              "url": "https://github.com/google/ax/commit/d694866ec5dba1c5010a277da3a3f4ccb10c2bdb",
              "title": "Move experimental docs to experimental (#264)",
              "observedAt": "2026-04-30T15:48:52Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "a29c6e742e9c676baf47fd25ac2a0ffd6015e2f4",
              "url": "https://github.com/google/ax/commit/a29c6e742e9c676baf47fd25ac2a0ffd6015e2f4",
              "title": "Some more updates to the NOT section (#271)",
              "observedAt": "2026-04-30T18:42:30Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "b42d530c8e5aca8ddd3f2d3da4a550366a3b01af",
              "url": "https://github.com/google/ax/commit/b42d530c8e5aca8ddd3f2d3da4a550366a3b01af",
              "title": "Update wording in Substrate instructructions (#278)",
              "observedAt": "2026-05-04T19:04:10Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "f220cec527f394a31a2c14578a9b2d039dd41c9e",
              "url": "https://github.com/google/ax/commit/f220cec527f394a31a2c14578a9b2d039dd41c9e",
              "title": "sync code with latest substrate API changes (#348)",
              "observedAt": "2026-05-15T23:42:28Z"
            }
          ]
        }
      },
      "kungfu": {
        "label": "Kungfu Systems",
        "scope": "all public repositories in kungfu-systems with merged work in the window",
        "query": "org:kungfu-systems is:pr is:merged merged:2026-06-16T00:00:00Z..2026-07-15T23:59:59Z is:public",
        "organizationForm": "one human product owner directing Agent-mediated work across a public multi-repository system",
        "summary": {
          "mergedPullRequests": 2323,
          "activeRepositories": 11,
          "authorAccounts": 3,
          "activeMergeDays": 18,
          "totalAdditions": 1054380,
          "totalDeletions": 324206,
          "totalChangedFiles": 23395,
          "changeSize": {
            "median": 124,
            "p25": 10,
            "p75": 560,
            "p90": 1417
          },
          "authors": [
            {
              "name": "dongkeren",
              "count": 2261
            },
            {
              "name": "kungfu-origin",
              "count": 53
            },
            {
              "name": "app/kungfu-systems-release-bot",
              "count": 9
            }
          ],
          "repositories": [
            {
              "name": "kungfu-systems/buildchain",
              "count": 1072
            },
            {
              "name": "kungfu-systems/kungfu",
              "count": 695
            },
            {
              "name": "kungfu-systems/build-images",
              "count": 149
            },
            {
              "name": "kungfu-systems/kfd",
              "count": 108
            },
            {
              "name": "kungfu-systems/site-libkungfu-dev",
              "count": 58
            },
            {
              "name": "kungfu-systems/paper-observer-declared-timelines",
              "count": 57
            },
            {
              "name": "kungfu-systems/libnode",
              "count": 54
            },
            {
              "name": "kungfu-systems/paper-kfd-foundation-real-world-agent-work",
              "count": 52
            },
            {
              "name": "kungfu-systems/paper-kungfu-product-white-paper",
              "count": 46
            },
            {
              "name": "kungfu-systems/site-kungfu-tech",
              "count": 25
            },
            {
              "name": "kungfu-systems/homebrew-tap",
              "count": 7
            }
          ],
          "daily": [
            {
              "name": "2026-06-27",
              "count": 1
            },
            {
              "name": "2026-06-29",
              "count": 31
            },
            {
              "name": "2026-06-30",
              "count": 73
            },
            {
              "name": "2026-07-01",
              "count": 167
            },
            {
              "name": "2026-07-02",
              "count": 118
            },
            {
              "name": "2026-07-03",
              "count": 98
            },
            {
              "name": "2026-07-04",
              "count": 139
            },
            {
              "name": "2026-07-05",
              "count": 125
            },
            {
              "name": "2026-07-06",
              "count": 202
            },
            {
              "name": "2026-07-07",
              "count": 189
            },
            {
              "name": "2026-07-08",
              "count": 129
            },
            {
              "name": "2026-07-09",
              "count": 140
            },
            {
              "name": "2026-07-10",
              "count": 195
            },
            {
              "name": "2026-07-11",
              "count": 112
            },
            {
              "name": "2026-07-12",
              "count": 92
            },
            {
              "name": "2026-07-13",
              "count": 123
            },
            {
              "name": "2026-07-14",
              "count": 163
            },
            {
              "name": "2026-07-15",
              "count": 226
            }
          ],
          "workTypes": [
            {
              "name": "fix",
              "count": 482
            },
            {
              "name": "feat",
              "count": 445
            },
            {
              "name": "unclassified",
              "count": 430
            },
            {
              "name": "chore",
              "count": 368
            },
            {
              "name": "release",
              "count": 215
            },
            {
              "name": "docs",
              "count": 137
            },
            {
              "name": "ci",
              "count": 109
            },
            {
              "name": "refactor",
              "count": 67
            },
            {
              "name": "test",
              "count": 22
            },
            {
              "name": "build",
              "count": 19
            },
            {
              "name": "alpha",
              "count": 8
            },
            {
              "name": "shifu",
              "count": 6
            },
            {
              "name": "promote",
              "count": 4
            },
            {
              "name": "storage",
              "count": 4
            },
            {
              "name": "perf",
              "count": 3
            },
            {
              "name": "check",
              "count": 1
            },
            {
              "name": "diag",
              "count": 1
            },
            {
              "name": "rewind",
              "count": 1
            },
            {
              "name": "style",
              "count": 1
            }
          ]
        },
        "developmentAttribution": {
          "repository": "kungfu-systems/kungfu",
          "branch": "dev/v4/v4.0",
          "window": {
            "id": "kungfu-v4-through-operating-cutoff",
            "label": "Kungfu v4 public branch through the operating cutoff",
            "startInclusive": "2026-06-16T00:00:00.000Z",
            "endExclusive": "2026-08-01T00:00:00.000Z",
            "duration": "P46D"
          },
          "windowRelation": "overlaps-bootstrap-and-operating-observations",
          "totalCommitsScanned": 2908,
          "explicitlyAttributedCommits": 135,
          "byAgent": [
            {
              "agent": "Codex",
              "commits": 78,
              "markerTypes": [
                {
                  "name": "agent-field",
                  "count": 78
                }
              ]
            },
            {
              "agent": "Claude",
              "commits": 34,
              "markerTypes": [
                {
                  "name": "agent-field",
                  "count": 34
                }
              ]
            },
            {
              "agent": "Cursor",
              "commits": 21,
              "markerTypes": [
                {
                  "name": "co-author-trailer",
                  "count": 21
                }
              ]
            },
            {
              "agent": "Amp",
              "commits": 2,
              "markerTypes": [
                {
                  "name": "co-author-trailer",
                  "count": 2
                }
              ]
            }
          ],
          "records": [
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a20748de6117b627d8ad9e41551f53fe7fa9f5f2",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a20748de6117b627d8ad9e41551f53fe7fa9f5f2",
              "title": "build(v4): arm64 点亮 C++ 内核，conan2 + fmt10 现代化",
              "observedAt": "2026-06-16T10:01:10Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "01cf26faab988082b65bb0b37a8c35d87df50a6c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/01cf26faab988082b65bb0b37a8c35d87df50a6c",
              "title": "build(v4): Step 2 点亮 Python 绑定 pykungfu，journal 写读往返通过",
              "observedAt": "2026-06-16T10:51:20Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1599ab1cc50a2eeef0f7f4dfd54b8d2030f674b8",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1599ab1cc50a2eeef0f7f4dfd54b8d2030f674b8",
              "title": "build(v4): Step 3 点亮 Node 绑定 kungfu_node，三语言共享同一条 journal",
              "observedAt": "2026-06-16T11:29:29Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "5f3ab0786cba51bde94b6a075c8720c913bf6143",
              "url": "https://github.com/kungfu-systems/kungfu/commit/5f3ab0786cba51bde94b6a075c8720c913bf6143",
              "title": "build(v4): Step 4 点亮单进程三语言联动，技术终点达成",
              "observedAt": "2026-06-16T12:15:12Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d07fe5a894b55a4600c360e194b27206ac40ff69",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d07fe5a894b55a4600c360e194b27206ac40ff69",
              "title": "build(v4): .v4 跨平台适配 Linux(rpath/linker/测试脚本)",
              "observedAt": "2026-06-16T15:05:18Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "fa4feb44e7cc39bc71c6f53b44545e1c6a88bac7",
              "url": "https://github.com/kungfu-systems/kungfu/commit/fa4feb44e7cc39bc71c6f53b44545e1c6a88bac7",
              "title": "fix(yijinjing): time.h 显式 #include <cstdint> 修 gcc13 编译",
              "observedAt": "2026-06-16T15:17:33Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "77ee308fb5f66a6a7f57fb095da5f4d4a0dba4c5",
              "url": "https://github.com/kungfu-systems/kungfu/commit/77ee308fb5f66a6a7f57fb095da5f4d4a0dba4c5",
              "title": "fix(v4): Linux 单进程内嵌设 RTLD_GLOBAL，修 napi_* undefined symbol",
              "observedAt": "2026-06-16T16:01:07Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0e41c8e0257ed5c199f18de93be43bc925a54780",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0e41c8e0257ed5c199f18de93be43bc925a54780",
              "title": "build(v4): 去掉 FMT_USE_CONSTEVAL=0 workaround，恢复 fmt 编译期检查",
              "observedAt": "2026-06-16T22:40:50Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1775eb2378da27255bdb77916fe0453e0308ef22",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1775eb2378da27255bdb77916fe0453e0308ef22",
              "title": "docs(v4): 建 conan2 迁移理解与决策日志",
              "observedAt": "2026-06-17T02:38:14Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "326179cac308f91469e1fea8723ee555095bf269",
              "url": "https://github.com/kungfu-systems/kungfu/commit/326179cac308f91469e1fea8723ee555095bf269",
              "title": "refactor(core): conanfile.py 端口到 conan2 (Stage A-1)",
              "observedAt": "2026-06-17T02:54:15Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "77d126a3bc3abbbafa2c984921f100f5ab49bb49",
              "url": "https://github.com/kungfu-systems/kungfu/commit/77d126a3bc3abbbafa2c984921f100f5ab49bb49",
              "title": "refactor(core): 主 CMakeLists 适配 conan2 桥接 (Stage A-2a)",
              "observedAt": "2026-06-17T03:04:38Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6831fb222d47bb183752ff30560767bf251e2f01",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6831fb222d47bb183752ff30560767bf251e2f01",
              "title": "docs(v4): 摸清欠债② libnode→dist 真实形态并落档(排序调整)",
              "observedAt": "2026-06-17T03:15:30Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7f57c318d78aed8686f0b9642cd0a5e80eb0a6e0",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7f57c318d78aed8686f0b9642cd0a5e80eb0a6e0",
              "title": "docs(v4): 记录欠债② libnode→dist 双平台落位完成",
              "observedAt": "2026-06-17T03:25:08Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "103b66851dcaa647f1ca9a5abeb151e4a0828128",
              "url": "https://github.com/kungfu-systems/kungfu/commit/103b66851dcaa647f1ca9a5abeb151e4a0828128",
              "title": "docs(v4): 立 v4 产品长期目标与分阶段实施计划(恢复点)",
              "observedAt": "2026-06-17T03:53:41Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ad0f812e14e54e0f40ed1db5faa10112657347e6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ad0f812e14e54e0f40ed1db5faa10112657347e6",
              "title": "build(core): kungfu-core devDep 升级 + 真实绑定首编 (A-2b 进行中)",
              "observedAt": "2026-06-17T04:18:08Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0d5db708abbcf0fbb2c9fda9541a55d8d888e47b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0d5db708abbcf0fbb2c9fda9541a55d8d888e47b",
              "title": "docs(v4): A-2b cmake-js+conan2 集成打通(node+electron，Mac)",
              "observedAt": "2026-06-17T05:09:03Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f2a0bd93c4ab12363ad3bfab302f52daaff62609",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f2a0bd93c4ab12363ad3bfab302f52daaff62609",
              "title": "build(core): A-2b Mac 侧收尾(Python pin/run-conan conan2/electron) ①②③",
              "observedAt": "2026-06-17T06:38:24Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c859683a262e3912106e52140c4e7a4bb1e17a8c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c859683a262e3912106e52140c4e7a4bb1e17a8c",
              "title": "chore(core): gitignore conan2/cmake 构建工件",
              "observedAt": "2026-06-17T07:11:19Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2149a187862b65f92d7e62d80e12580beb8bb0ee",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2149a187862b65f92d7e62d80e12580beb8bb0ee",
              "title": "docs(v4): A-2b 双平台闭环完成(node+electron 真实绑定)",
              "observedAt": "2026-06-17T07:22:17Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ae8b29a0b96c90f10d8442b5de4502001b65363a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ae8b29a0b96c90f10d8442b5de4502001b65363a",
              "title": "docs(v4): Stage C(freeze+kfc)分析与前置决策",
              "observedAt": "2026-06-17T08:29:58Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2600b382b8ae2287d0c845023ddf41dadbe2b2c6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2600b382b8ae2287d0c845023ddf41dadbe2b2c6",
              "title": "build(core): Stage C 基础 — Python 栈现代化到 3.13(pyproject+Pipfile)",
              "observedAt": "2026-06-17T08:52:24Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "44c02919758ed7aaeb516106131e151ed6f4be18",
              "url": "https://github.com/kungfu-systems/kungfu/commit/44c02919758ed7aaeb516106131e151ed6f4be18",
              "title": "build(core): Stage C env bootstrap 通过 — Python 3.13 数据栈解析+安装成功",
              "observedAt": "2026-06-17T09:19:52Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6b95fe388cd83ccc531391613b627f6e8dded528",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6b95fe388cd83ccc531391613b627f6e8dded528",
              "title": "fix(python): kfc 适配 click 8.1.7+ (F→本地 TypeVar)",
              "observedAt": "2026-06-17T09:37:33Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "29f6685d18995d45a70bc96c1b4e2ab370ba0093",
              "url": "https://github.com/kungfu-systems/kungfu/commit/29f6685d18995d45a70bc96c1b4e2ab370ba0093",
              "title": "docs(v4): Stage C env bootstrap + kfc 运行验证完成(记录+下一步 Nuitka freeze)",
              "observedAt": "2026-06-17T09:41:43Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d0e969649e570a78a5e39d08fd2ab7c5d66d2db6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d0e969649e570a78a5e39d08fd2ab7c5d66d2db6",
              "title": "docs(v4): Nuitka freeze 进展与卡点(bundle 出+卡 certifi/stdlib)",
              "observedAt": "2026-06-17T12:43:27Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f0c2886a5fd8e2483b36c6575f093e9ffe02a04b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f0c2886a5fd8e2483b36c6575f093e9ffe02a04b",
              "title": "build(core): 数据栈加 plotly 6.8(kfc freeze include-package=plotly 需要)",
              "observedAt": "2026-06-17T12:48:37Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "28f4f9cadbc8219d2f66eaebee7948022bf335a1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/28f4f9cadbc8219d2f66eaebee7948022bf335a1",
              "title": "build(core): kfc Nuitka freeze 调通(升 4.1.2 修 certifi)，kfc.bin 独立运行",
              "observedAt": "2026-06-17T14:45:01Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4e4127d888d58228c0a1a085a0e64edabfb57d0e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4e4127d888d58228c0a1a085a0e64edabfb57d0e",
              "title": "chore(core): poetry.lock 重锁匹配 nuitka ~4.1(Linux freeze 用 4.1.2)",
              "observedAt": "2026-06-17T23:17:05Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4e85bf22a7c008b2c2e5d8e7268be0037b358109",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4e85bf22a7c008b2c2e5d8e7268be0037b358109",
              "title": "docs(core): 记录 Stage C Linux freeze 调通，双平台 kfc 独立运行完成",
              "observedAt": "2026-06-18T00:18:37Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "3ab57f1cdd170498ece61113a46a673f88338a1a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/3ab57f1cdd170498ece61113a46a673f88338a1a",
              "title": "build(core): Stage C 收尾 — freeze 入口脚本化 + kungfubuildinfo 自动化",
              "observedAt": "2026-06-18T01:20:53Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ddbaf32b2cddc266349641c544dee2e03cacc9bd",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ddbaf32b2cddc266349641c544dee2e03cacc9bd",
              "title": "build(core): Windows 端口 — libkungfu 改 STATIC 解 LNK1189，Stage D GUI 路径跑通",
              "observedAt": "2026-06-18T05:52:08Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4c26196e7826311273cbee0684cfc492a0eadc00",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4c26196e7826311273cbee0684cfc492a0eadc00",
              "title": "chore(core): .v4 退役 — bootstrap 删除，文档迁 framework/core/docs",
              "observedAt": "2026-06-18T11:17:43Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "faea6ad26076269f2608408924c382c6c3936595",
              "url": "https://github.com/kungfu-systems/kungfu/commit/faea6ad26076269f2608408924c382c6c3936595",
              "title": "chore(core): P0 收尾 — Windows cppstd=17 固化进 run-conan + ⑤⑦ 落档",
              "observedAt": "2026-06-18T14:23:05Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7f7aab5fa4c2d52a283e6b6e5192d79bf8e3c2c2",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7f7aab5fa4c2d52a283e6b6e5192d79bf8e3c2c2",
              "title": "feat(longfist,ledger): born-FB Asset(第四类型) + Position/Asset ledger 写侧 dual-write(默认 OFF)",
              "observedAt": "2026-06-22T11:02:39Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "8c51591dd3c0c834fa16d946752c51890cd7233e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/8c51591dd3c0c834fa16d946752c51890cd7233e",
              "title": "feat(config): make Kungfu config contract-first",
              "observedAt": "2026-07-06T03:12:14Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2132071b0c6efe8651026334fb789b009145be40",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2132071b0c6efe8651026334fb789b009145be40",
              "title": "feat(storage): move atlas integrity checks into core",
              "observedAt": "2026-07-08T15:37:01Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f93c90c726e13a15d2d82fc925fd5a9d4e0a8e66",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f93c90c726e13a15d2d82fc925fd5a9d4e0a8e66",
              "title": "docs(mission-control): design workspace product flow",
              "observedAt": "2026-07-11T15:46:26Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "42c0107dff94ad56485cd39a93cbd2172306b206",
              "url": "https://github.com/kungfu-systems/kungfu/commit/42c0107dff94ad56485cd39a93cbd2172306b206",
              "title": "perf(yijinjing): avoid transaction frame refcounts",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "eceb82e66481e5d8ea42e2ba112ee389c46233de",
              "url": "https://github.com/kungfu-systems/kungfu/commit/eceb82e66481e5d8ea42e2ba112ee389c46233de",
              "title": "fix(yijinjing): contain compatibility deprecation warnings",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a8393059cb18bf6ec3cf25ea23301b1da2697254",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a8393059cb18bf6ec3cf25ea23301b1da2697254",
              "title": "test(yijinjing): stabilize transaction qualification",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "26b97c3b9af68c808d5d0da89c0e3c50c1c5f080",
              "url": "https://github.com/kungfu-systems/kungfu/commit/26b97c3b9af68c808d5d0da89c0e3c50c1c5f080",
              "title": "perf(yijinjing): qualify lifetime ownership costs",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "527d8c1f954ba6bd540451e3b9f526be5ed5a28a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/527d8c1f954ba6bd540451e3b9f526be5ed5a28a",
              "title": "fix(yijinjing): isolate reader management snapshots",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e8d1d6d26d6199e39bccfb34118a595bb9ae5471",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e8d1d6d26d6199e39bccfb34118a595bb9ae5471",
              "title": "feat(yijinjing): add exception-safe writer transactions",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a296e6dfdf3a43340093accafbee646ef97ea821",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a296e6dfdf3a43340093accafbee646ef97ea821",
              "title": "fix(runtime): make error stop ownership local",
              "observedAt": "2026-07-12T08:55:18Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "3fd04734143d4ffb252aab33b3838fb8276c3eba",
              "url": "https://github.com/kungfu-systems/kungfu/commit/3fd04734143d4ffb252aab33b3838fb8276c3eba",
              "title": "docs(core): define strong durability and recovery path",
              "observedAt": "2026-07-12T09:46:09Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6ecd48e6b1a89097430c907122df88b27eabb848",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6ecd48e6b1a89097430c907122df88b27eabb848",
              "title": "feat(profile): add generic composition manager",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0cc689769fd74326856ec19bf63a8811ce72dfd4",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0cc689769fd74326856ec19bf63a8811ce72dfd4",
              "title": "feat(profile): bind assessments to exact query cuts",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "45ff4dfa94f0ee1d288cf8213f9f6d7529336a07",
              "url": "https://github.com/kungfu-systems/kungfu/commit/45ff4dfa94f0ee1d288cf8213f9f6d7529336a07",
              "title": "fix(profile): require installed composition schemas",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7353682b28e99229eb7b1e1ee531b854e2714e17",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7353682b28e99229eb7b1e1ee531b854e2714e17",
              "title": "feat(profile): expose composition query plans",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e554acf2ef58236af6b9c2c84fdf103352191bab",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e554acf2ef58236af6b9c2c84fdf103352191bab",
              "title": "feat(profile): start generic composition catalog",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0aa72aedc310b8b42d8fbc323406fcd034f63b32",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0aa72aedc310b8b42d8fbc323406fcd034f63b32",
              "title": "fix(gui): inject complete KFX shared-module contract",
              "observedAt": "2026-07-14T01:16:07Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b9862da2a0187316037b2f7774d20ca339c089a8",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b9862da2a0187316037b2f7774d20ca339c089a8",
              "title": "feat(project-cut): admit live completion episode",
              "observedAt": "2026-07-17T14:38:04Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "aa3cdede12708b95d3859e71361e06955dff0218",
              "url": "https://github.com/kungfu-systems/kungfu/commit/aa3cdede12708b95d3859e71361e06955dff0218",
              "title": "test(project-cut): seal live go completion episode",
              "observedAt": "2026-07-17T14:38:04Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7402-9d55-70f1-b562-1d2dfd86036b",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c1ab522675d653261962c5d66f016bd5e690ecb0",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c1ab522675d653261962c5d66f016bd5e690ecb0",
              "title": "fix(fact): harden portable protocol validation",
              "observedAt": "2026-07-20T14:20:14Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "9daacb38a91e406e07654ec6b1fdf4a9e833b0df",
              "url": "https://github.com/kungfu-systems/kungfu/commit/9daacb38a91e406e07654ec6b1fdf4a9e833b0df",
              "title": "chore(project-cut): bind linear invariant qualification",
              "observedAt": "2026-07-20T18:41:25Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a2762d18251f8630fdd0c9791ea4a5be2c13e5a8",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a2762d18251f8630fdd0c9791ea4a5be2c13e5a8",
              "title": "fix(invariant): qualify Fact native harness cross-platform",
              "observedAt": "2026-07-20T18:41:25Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "8aa1f9ab9a9eee6129be3e43ac6e0acb971da135",
              "url": "https://github.com/kungfu-systems/kungfu/commit/8aa1f9ab9a9eee6129be3e43ac6e0acb971da135",
              "title": "chore(project-cut): publish Agent Hub trunk successor",
              "observedAt": "2026-07-20T22:39:04Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ffe68d7ff52d71cb99cd486053cf298547811e17",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ffe68d7ff52d71cb99cd486053cf298547811e17",
              "title": "docs(core): bind queue-linear KFD-7 ABI cut",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b95b1f459d6ebf02fc5395fe5c05be3a1dfbd7ce",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b95b1f459d6ebf02fc5395fe5c05be3a1dfbd7ce",
              "title": "chore(project-cut): collapse superseded KFD-7 cuts",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c7df73a2bcf724709df552120e0ff2957f58fdca",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c7df73a2bcf724709df552120e0ff2957f58fdca",
              "title": "docs(core): bind rebased KFD-7 ABI successor cut",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "465c3b27dff85fe229b1f8cabb04bda92d703fd7",
              "url": "https://github.com/kungfu-systems/kungfu/commit/465c3b27dff85fe229b1f8cabb04bda92d703fd7",
              "title": "test(fact): preserve typed ledger boundary assertions",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "054148cbb45ff607d7cc5d282649485928814390",
              "url": "https://github.com/kungfu-systems/kungfu/commit/054148cbb45ff607d7cc5d282649485928814390",
              "title": "chore(project-cut): republish empty-delta cut on current merge base tip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4cfceb9392d90cb9cfb80b75afd45feb98579460",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4cfceb9392d90cb9cfb80b75afd45feb98579460",
              "title": "chore(project-cut): drop cut drifted by intervening merge-queue tip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "218a6cb16552950ae58699c8994a62d6d23f083a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/218a6cb16552950ae58699c8994a62d6d23f083a",
              "title": "chore(project-cut): republish empty-delta cut on merge-queue tip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "dbad3bdfe7b08c42bc70486f082961b846c8c640",
              "url": "https://github.com/kungfu-systems/kungfu/commit/dbad3bdfe7b08c42bc70486f082961b846c8c640",
              "title": "chore(project-cut): drop rebase-drifted empty-delta cut before republish",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "657a6131eb42f0e311c198b97de115d257b97a90",
              "url": "https://github.com/kungfu-systems/kungfu/commit/657a6131eb42f0e311c198b97de115d257b97a90",
              "title": "chore(project-cut): publish final empty-delta cut for native action authority",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6a411bd6bf428ec34531959f36de9c61033cf224",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6a411bd6bf428ec34531959f36de9c61033cf224",
              "title": "chore(project-cut): drop overlapping pre/post-rebase cut publications",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "64aa1f437e34dad40ae45de1695ef4740e405224",
              "url": "https://github.com/kungfu-systems/kungfu/commit/64aa1f437e34dad40ae45de1695ef4740e405224",
              "title": "fix(core): sync ADR-0123 delivery evidence and architecture health projections",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ff4232a65f43541bff65e2caca02602a2384e946",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ff4232a65f43541bff65e2caca02602a2384e946",
              "title": "fix(core): repair architecture projections after rebase",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2c59c4cf1ccd4351663d080e39565199eae324ca",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2c59c4cf1ccd4351663d080e39565199eae324ca",
              "title": "chore(project-cut): republish empty-delta cut after rebase onto dev/v4/v4.0",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0357cb17bb406af7e3846c13eb53c28eb0fab83d",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0357cb17bb406af7e3846c13eb53c28eb0fab83d",
              "title": "chore(project-cut): stage empty-delta cut for action-geometry native authority",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ff9dc497a8eb96cf99690c735497a3b41a24780e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ff9dc497a8eb96cf99690c735497a3b41a24780e",
              "title": "test(core): shadow-compare action_runtime and confirm authority flip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7691fff485bca47c03baad870bcd8374e6f49ec1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7691fff485bca47c03baad870bcd8374e6f49ec1",
              "title": "feat(core): wire action_runtime edge and Python shims",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a3795a79b7419167022b4d2505b0caf5b84ec136",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a3795a79b7419167022b4d2505b0caf5b84ec136",
              "title": "feat(core): port Profile action orchestration to libkungfu",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a2339161d158130190cbc86cc6ae674bd473f463",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a2339161d158130190cbc86cc6ae674bd473f463",
              "title": "feat(core): port Domain Profile engine to libkungfu",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "9b1bec9965c20d64fc1ae776aa1718261762368b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/9b1bec9965c20d64fc1ae776aa1718261762368b",
              "title": "feat(core): port Action Geometry evaluator to libkungfu",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "610ef7c9bb61953e85a8b8cd0972a49a0b32b9bb",
              "url": "https://github.com/kungfu-systems/kungfu/commit/610ef7c9bb61953e85a8b8cd0972a49a0b32b9bb",
              "title": "chore(xinfa): record portable shim cut",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ce3e846c10b07d1239bc5742e210aaf72a112815",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ce3e846c10b07d1239bc5742e210aaf72a112815",
              "title": "fix(xinfa): let Node invoke Windows shim",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "fadac5121d0b36b5a89b0c25d860447ff4ab5b36",
              "url": "https://github.com/kungfu-systems/kungfu/commit/fadac5121d0b36b5a89b0c25d860447ff4ab5b36",
              "title": "chore(xinfa): record Windows qualification cut",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "693a44d4927c1401b28f9e5bf079c4c3b04dd02f",
              "url": "https://github.com/kungfu-systems/kungfu/commit/693a44d4927c1401b28f9e5bf079c4c3b04dd02f",
              "title": "fix(xinfa): qualify wasm shim on Windows",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1a9e6355b4b162e37a1b9ef01c06b7cc91724038",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1a9e6355b4b162e37a1b9ef01c06b7cc91724038",
              "title": "chore(project-cut): bind refreshed Xinfa context",
              "observedAt": "2026-07-21T10:50:44Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "5e303f2c464b8ebe2d77f87c0a08be231afc212d",
              "url": "https://github.com/kungfu-systems/kungfu/commit/5e303f2c464b8ebe2d77f87c0a08be231afc212d",
              "title": "chore(project-cut): rebind workspace migration to current dev",
              "observedAt": "2026-07-21T10:50:44Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f4adf4c5dbd6c2a7781b8dc58182734585a0185c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f4adf4c5dbd6c2a7781b8dc58182734585a0185c",
              "title": "fix(storage): close workspace layout coverage gaps",
              "observedAt": "2026-07-21T20:24:42Z"
            },
            {
              "agent": "Amp",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Amp",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "8857b44ff5ced6328524508639f30353238f63ed",
              "url": "https://github.com/kungfu-systems/kungfu/commit/8857b44ff5ced6328524508639f30353238f63ed",
              "title": "chore(project-cut): publish composition-replay settlement witness for cut 551ba04b",
              "observedAt": "2026-07-21T22:44:42Z"
            },
            {
              "agent": "Amp",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Amp",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "152eaea082d506e0f24fc559707e9a538615e69e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/152eaea082d506e0f24fc559707e9a538615e69e",
              "title": "fix(project-cut): replay squash-published cut chains order-independently",
              "observedAt": "2026-07-21T22:44:42Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2901313005f7c9f7cfc31ac67cc4787bc979a74e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2901313005f7c9f7cfc31ac67cc4787bc979a74e",
              "title": "style(work): format facade contract test",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c09d3be1cf4a586ee1b15a4d56fdffd042f1693e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c09d3be1cf4a586ee1b15a4d56fdffd042f1693e",
              "title": "fix(work): preserve runtime and Cut authority boundaries",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "46df537e1b3c2868fb5eb1a70ed11281eafb59ff",
              "url": "https://github.com/kungfu-systems/kungfu/commit/46df537e1b3c2868fb5eb1a70ed11281eafb59ff",
              "title": "docs(adr): bind Project Cut facade delivery",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f5a9025a605feb4d57e2a386031a0da22d4499b5",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f5a9025a605feb4d57e2a386031a0da22d4499b5",
              "title": "docs(adr): define Project Cut Work facade",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "969f6148881f99da6a81b559efd69b8ad6bb4f04",
              "url": "https://github.com/kungfu-systems/kungfu/commit/969f6148881f99da6a81b559efd69b8ad6bb4f04",
              "title": "feat(work): bind managed runs and settlement plans",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f24b67efd285858d7c85c128cc37c844b35390e2",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f24b67efd285858d7c85c128cc37c844b35390e2",
              "title": "feat(work): add Project Cut facade read model",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "06fb9eb5465e14bfc3344e224a2f5e10baaca924",
              "url": "https://github.com/kungfu-systems/kungfu/commit/06fb9eb5465e14bfc3344e224a2f5e10baaca924",
              "title": "chore(project-cut): bind 088 queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6b753fa3633a75876da1b2e691c779f51f4fd186",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6b753fa3633a75876da1b2e691c779f51f4fd186",
              "title": "chore(project-cut): bind 0bee queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "445127935ff72c24a0e9e095ee718ffa507bb92e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/445127935ff72c24a0e9e095ee718ffa507bb92e",
              "title": "chore(project-cut): bind a297 queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "dcf11a4afdcd6d02e4f16f7985a46afca6551c43",
              "url": "https://github.com/kungfu-systems/kungfu/commit/dcf11a4afdcd6d02e4f16f7985a46afca6551c43",
              "title": "chore(project-cut): bind final rebased baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "bec10e401e7a404844f1f9802a75604ae14e3c7e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/bec10e401e7a404844f1f9802a75604ae14e3c7e",
              "title": "chore(project-cut): bind final queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e9fce77cef2b462bea2743edff00ef4500543445",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e9fce77cef2b462bea2743edff00ef4500543445",
              "title": "chore(project-cut): bind verified completion evidence",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "98c99300d0eff4e5cf1bd9391a3b59009d849207",
              "url": "https://github.com/kungfu-systems/kungfu/commit/98c99300d0eff4e5cf1bd9391a3b59009d849207",
              "title": "chore(project-cut): seal verified integration episode",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b5f3508b5a61e63c83e3442648d98739b48b2b3d",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b5f3508b5a61e63c83e3442648d98739b48b2b3d",
              "title": "chore(project-cut): admit queue integration",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "20dd3cc0b04b18bd621ce50bac7108cdb1987e6e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/20dd3cc0b04b18bd621ce50bac7108cdb1987e6e",
              "title": "chore(project-cut): seal queue integration evidence",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "25a0d13f081324101ecfcebed7fd1b4c6cf341cc",
              "url": "https://github.com/kungfu-systems/kungfu/commit/25a0d13f081324101ecfcebed7fd1b4c6cf341cc",
              "title": "chore(project-cut): bind protected queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "55d2ab229611dae8b18b76d5247f148024f4c73b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/55d2ab229611dae8b18b76d5247f148024f4c73b",
              "title": "chore(project-cut): bind latest dev baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4516a55d3f0ba8a4e2e1d9d7d4cd1fbcf768ef68",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4516a55d3f0ba8a4e2e1d9d7d4cd1fbcf768ef68",
              "title": "chore(project-cut): bind Windows fixture qualification",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "148a179d4b94a51641d733eafac9d9ca58367eb6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/148a179d4b94a51641d733eafac9d9ca58367eb6",
              "title": "test(core): make API fixture cleanup non-throwing",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b9b91128007cd92ea1717543849402175545244a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b9b91128007cd92ea1717543849402175545244a",
              "title": "chore(project-cut): bind locked source transport",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "026a0724115316faa28e3a2de26c344b8f02022c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/026a0724115316faa28e3a2de26c344b8f02022c",
              "title": "ci(gate): persist locked source transport policy",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex\\nGoal: 2026-07-23-agent-hub-binary-kfd123-passport-reference\\nMission: kungfu-technical-stewardship",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b82786544e4474aecd6095b78c641ea2868dfb22",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b82786544e4474aecd6095b78c641ea2868dfb22",
              "title": "fix(assignment): bind admitted work to native source",
              "observedAt": "2026-07-23T06:26:29Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "00bc84e9bc51aff1fc2bc1703853a323d3a9da44",
              "url": "https://github.com/kungfu-systems/kungfu/commit/00bc84e9bc51aff1fc2bc1703853a323d3a9da44",
              "title": "fix(assignment): reject partial source assemblies",
              "observedAt": "2026-07-24T00:23:19Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f6e6e3e74d64279bb50097decbb63636001522ca",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f6e6e3e74d64279bb50097decbb63636001522ca",
              "title": "fix(assignment): refresh initialized workspace identity",
              "observedAt": "2026-07-24T00:23:19Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e054d96a7b36fe9aa149108b2a007cc46f8cead9",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e054d96a7b36fe9aa149108b2a007cc46f8cead9",
              "title": "fix(assignment): preserve source admission diagnostics",
              "observedAt": "2026-07-24T00:23:19Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "50d169751e092b34955c4e42c696ca87bf09d3cc",
              "url": "https://github.com/kungfu-systems/kungfu/commit/50d169751e092b34955c4e42c696ca87bf09d3cc",
              "title": "fix(mission-control): authenticate native completion evidence",
              "observedAt": "2026-07-24T03:02:51Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "54ed3edce763f156d41991d55c83337abb3780cd",
              "url": "https://github.com/kungfu-systems/kungfu/commit/54ed3edce763f156d41991d55c83337abb3780cd",
              "title": "feat(core): admit native Work journal ownership",
              "observedAt": "2026-07-25T01:59:58Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "589bdf1fd2f794f67414549cf1c85dac2816ddda",
              "url": "https://github.com/kungfu-systems/kungfu/commit/589bdf1fd2f794f67414549cf1c85dac2816ddda",
              "title": "docs(primitive): record authority closure delivery",
              "observedAt": "2026-07-25T03:17:07Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "74d2f5f1894f26d33346ab26b6d2a3ef85a6596a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/74d2f5f1894f26d33346ab26b6d2a3ef85a6596a",
              "title": "feat(primitive): close authority consumption paths",
              "observedAt": "2026-07-25T03:17:07Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/pro-2088/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "cbcce6c49b20a6a14da7535ac0fbae9604cda485",
              "url": "https://github.com/kungfu-systems/kungfu/commit/cbcce6c49b20a6a14da7535ac0fbae9604cda485",
              "title": "feat(agent): add repository work experiment",
              "observedAt": "2026-07-27T14:37:40Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0ebf87ebdb5be31996b2ddb0dc0abf62b1bdafeb",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0ebf87ebdb5be31996b2ddb0dc0abf62b1bdafeb",
              "title": "fix(core): adopt Linux ARM64 libnode package",
              "observedAt": "2026-07-27T19:28:56Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "55c406c91c9ad37b55136a14426d7b31e28140ee",
              "url": "https://github.com/kungfu-systems/kungfu/commit/55c406c91c9ad37b55136a14426d7b31e28140ee",
              "title": "chore(release): refresh qualification projections",
              "observedAt": "2026-07-27T22:06:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d404ada50a2aeaee213436fa97ea95cd27d9cff3",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d404ada50a2aeaee213436fa97ea95cd27d9cff3",
              "title": "fix(release): scope ARM64 Hub qualification to CLI",
              "observedAt": "2026-07-27T22:06:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d22606161449e7c6c84fcbf890506594e55b1b62",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d22606161449e7c6c84fcbf890506594e55b1b62",
              "title": "fix(release): preserve execution context compatibility",
              "observedAt": "2026-07-27T23:06:13Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e097ed411cceb03a9a390f7b7428c145dc53b30b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e097ed411cceb03a9a390f7b7428c145dc53b30b",
              "title": "fix(deps): remove stale Buildchain KFD override",
              "observedAt": "2026-07-28T00:28:21Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "eb6e53284f7462208bf65b80e1c25e1b2cbcddf1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/eb6e53284f7462208bf65b80e1c25e1b2cbcddf1",
              "title": "fix(core): consume qualified libnode alpha.3",
              "observedAt": "2026-07-28T00:28:21Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d68fe84a5935780a933df4e19e6d094ee5fb06ab",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d68fe84a5935780a933df4e19e6d094ee5fb06ab",
              "title": "feat(ci): add dedicated local agent patrol",
              "observedAt": "2026-07-28T09:02:39Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ce9d80f9bec73813c230cc214c334716b7bc5ca7",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ce9d80f9bec73813c230cc214c334716b7bc5ca7",
              "title": "fix(ci): support rootless Patrol bind mounts",
              "observedAt": "2026-07-28T10:40:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e8cfee73d2569ed6321c7422dae72038ba027596",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e8cfee73d2569ed6321c7422dae72038ba027596",
              "title": "fix(readme): preserve public source signature",
              "observedAt": "2026-07-30T14:31:56Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c08720588a64c5f597e04bb620dbbbe11f81c488",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c08720588a64c5f597e04bb620dbbbe11f81c488",
              "title": "docs(readme): lead with agent work continuity",
              "observedAt": "2026-07-30T14:31:56Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b2d71e03f13e804f717182c0fd4cf8f72a2c771f",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b2d71e03f13e804f717182c0fd4cf8f72a2c771f",
              "title": "fix(signing): consume source-bound native identity",
              "observedAt": "2026-07-30T22:39:45Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e8853e3a364f7d6f76296d513300c8691910b1d1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e8853e3a364f7d6f76296d513300c8691910b1d1",
              "title": "perf(ci): add auditable Windows compiler cache",
              "observedAt": "2026-07-31T00:50:39Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b0eccac6a95e22ca5b5c1462451c3039ab6ca42c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b0eccac6a95e22ca5b5c1462451c3039ab6ca42c",
              "title": "fix(release): align Alpha sentinel with demo catalog",
              "observedAt": "2026-07-31T03:52:09Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7536ebf8a0157e1e09f92a0dc8bbdea69fae2608",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7536ebf8a0157e1e09f92a0dc8bbdea69fae2608",
              "title": "fix(signing): delegate notarization to Buildchain",
              "observedAt": "2026-07-31T04:32:17Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0e33bb0dd2b4a9246d0eaf493ec73ea32fa1b6d1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0e33bb0dd2b4a9246d0eaf493ec73ea32fa1b6d1",
              "title": "fix(release): pin signing lifecycle manifest authority",
              "observedAt": "2026-07-31T07:04:10Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d423cf756aa3668a0ee48e8e3215bd1740adf629",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d423cf756aa3668a0ee48e8e3215bd1740adf629",
              "title": "fix(kfx): admit Projects capability in Core policy",
              "observedAt": "2026-07-31T08:49:24Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a5e19ac2287ab0628553d31f81080ffd183429c3",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a5e19ac2287ab0628553d31f81080ffd183429c3",
              "title": "docs(shifu): bind Windows repair PR evidence",
              "observedAt": "2026-07-31T09:52:26Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1f46a9d43b675e83ac02909d35166b03848ae346",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1f46a9d43b675e83ac02909d35166b03848ae346",
              "title": "fix(shifu): bind Windows consumer to exact closure",
              "observedAt": "2026-07-31T09:52:26Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "99d4e2f2023e3c7b09ec68fc98757f4da0aca89b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/99d4e2f2023e3c7b09ec68fc98757f4da0aca89b",
              "title": "test(shifu): reject registrar artifact size drift",
              "observedAt": "2026-07-31T15:28:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "3ffa6a78bcccf56ec7a92d094858df0ab1359807",
              "url": "https://github.com/kungfu-systems/kungfu/commit/3ffa6a78bcccf56ec7a92d094858df0ab1359807",
              "title": "refactor(shifu): share local artifact identity validation",
              "observedAt": "2026-07-31T15:28:27Z"
            }
          ]
        }
      }
    },
    "comparison": {
      "pullRequestRatio": 22.77,
      "changedLinesRatio": 36.28,
      "changedFilesRatio": 43.24,
      "kungfuPrimaryAuthor": {
        "account": "dongkeren",
        "mergedPullRequests": 2261,
        "share": 0.9733
      },
      "publicAuthorLeverage": {
        "unit": "public output per accountable GitHub author identity over the fixed calendar window",
        "kungfuPrimary": {
          "account": "dongkeren",
          "mergedPullRequests": 2261,
          "activeMergeDays": 18,
          "totalAdditions": 1030962,
          "totalDeletions": 305150,
          "grossChangedLines": 1336112,
          "totalChangedFiles": 22703,
          "medianChangedLinesPerPullRequest": 129,
          "central90": {
            "pullRequests": 2035,
            "grossChangedLines": 708321,
            "meanChangedLinesPerPullRequest": 348.07
          },
          "topTenGrossChangedLinesShare": 0.1661
        },
        "axTopAuthor": {
          "account": "rakyll",
          "mergedPullRequests": 53,
          "activeMergeDays": 14,
          "totalAdditions": 4541,
          "totalDeletions": 16223,
          "grossChangedLines": 20764,
          "totalChangedFiles": 316,
          "medianChangedLinesPerPullRequest": 109,
          "central90": {
            "pullRequests": 49,
            "grossChangedLines": 13515,
            "meanChangedLinesPerPullRequest": 275.82
          },
          "topTenGrossChangedLinesShare": 0.7581
        },
        "axTopThree": {
          "accounts": [
            "rakyll",
            "wjjclaud",
            "joycel-github"
          ],
          "combined": {
            "mergedPullRequests": 87,
            "activeMergeDays": 21,
            "totalAdditions": 8470,
            "totalDeletions": 22276,
            "grossChangedLines": 30746,
            "totalChangedFiles": 495,
            "medianChangedLinesPerPullRequest": 118,
            "central90": {
              "pullRequests": 79,
              "grossChangedLines": 17972,
              "meanChangedLinesPerPullRequest": 227.49
            },
            "topTenGrossChangedLinesShare": 0.6313
          },
          "average": {
            "mergedPullRequests": 29,
            "grossChangedLines": 10248.67,
            "totalChangedFiles": 165
          }
        },
        "axAllAuthors": {
          "accounts": [
            "rakyll",
            "wjjclaud",
            "joycel-github",
            "anj-s",
            "zbl94"
          ],
          "combined": {
            "mergedPullRequests": 102,
            "activeMergeDays": 21,
            "totalAdditions": 15516,
            "totalDeletions": 22484,
            "grossChangedLines": 38000,
            "totalChangedFiles": 541,
            "medianChangedLinesPerPullRequest": 141,
            "central90": {
              "pullRequests": 92,
              "grossChangedLines": 23498,
              "meanChangedLinesPerPullRequest": 255.41
            },
            "topTenGrossChangedLinesShare": 0.559
          },
          "average": {
            "mergedPullRequests": 20.4,
            "grossChangedLines": 7600,
            "totalChangedFiles": 108.2
          }
        },
        "ratios": {
          "kungfuPrimaryToAxTopAuthor": {
            "mergedPullRequests": 42.66,
            "grossChangedLines": 64.35,
            "totalChangedFiles": 71.84
          },
          "kungfuPrimaryToAxTopThreeCombined": {
            "mergedPullRequests": 25.99,
            "grossChangedLines": 43.46,
            "totalChangedFiles": 45.86
          },
          "kungfuPrimaryToAxTopThreeAverage": {
            "mergedPullRequests": 77.97,
            "grossChangedLines": 130.37,
            "totalChangedFiles": 137.59
          },
          "kungfuPrimaryToAxAllAuthorsCombined": {
            "mergedPullRequests": 22.17,
            "grossChangedLines": 35.16,
            "totalChangedFiles": 41.96
          },
          "kungfuPrimaryToAxAllAuthorsAverage": {
            "mergedPullRequests": 110.83,
            "grossChangedLines": 175.8,
            "totalChangedFiles": 209.82
          }
        }
      }
    },
    "boundaries": [
      "A merged pull request is a public work item, not a feature, quality, maturity, or value unit.",
      "The comparison observes public GitHub delivery only. Google internal work and all other private work are outside the dataset.",
      "The scopes intentionally reflect the two real organization forms: AX is one product repository; Kungfu is a multi-repository product and release system.",
      "Author accounts are public GitHub identities. They do not by themselves identify whether a human or an Agent produced the underlying change.",
      "Per-author comparisons observe public responsibility identities, not verified team headcount, labor hours, employment roles, or individual authorship of every line.",
      "Kungfu pull requests operate as settlement objects while AX pull requests follow a conventional contribution workflow; their counts are visible responsibility throughput, not interchangeable feature units.",
      "Additions, deletions, and changed-file totals are gross PR statistics and may include generated files, vendored material, formatting, or repeated edits.",
      "Explicit attribution markers establish some Agent participation in both repositories. AX's Gemini co-author history predates the measured windows; Kungfu's census spans the v4 bootstrap through the operating cutoff.",
      "Attribution examples do not prove AI authorship of every change or isolate Agent use as the sole cause of the output difference.",
      "Different review, merge, and PR-splitting disciplines remain a confounder; the raw records are published so readers can test alternative measures."
    ]
  },
  "operatingDataset": {
    "path": "/dogfood/agent-output-comparison-operating-data.json",
    "sha256": "abb6711e92f731e03fab3bca1bad5cdb686fa1d3295b42bff956d2dddba7c58e",
    "collectedAt": "2026-08-12T13:00:17.837Z",
    "window": {
      "id": "operating",
      "label": "Buildchain operating window",
      "startInclusive": "2026-07-02T00:00:00.000Z",
      "endExclusive": "2026-08-01T00:00:00.000Z",
      "githubQualifier": "merged:2026-07-02T00:00:00Z..2026-07-31T23:59:59Z",
      "duration": "P30D"
    },
    "subjects": {
      "ax": {
        "label": "Google AX",
        "scope": "one public repository",
        "query": "repo:google/ax is:pr is:merged merged:2026-07-02T00:00:00Z..2026-07-31T23:59:59Z",
        "organizationForm": "multiple public contributor accounts working in one repository",
        "summary": {
          "mergedPullRequests": 52,
          "activeRepositories": 1,
          "authorAccounts": 4,
          "activeMergeDays": 15,
          "totalAdditions": 6821,
          "totalDeletions": 1563,
          "totalChangedFiles": 194,
          "changeSize": {
            "median": 92,
            "p25": 19,
            "p75": 184,
            "p90": 383
          },
          "authors": [
            {
              "name": "joycel-github",
              "count": 19
            },
            {
              "name": "rakyll",
              "count": 16
            },
            {
              "name": "wjjclaud",
              "count": 10
            },
            {
              "name": "zbl94",
              "count": 7
            }
          ],
          "repositories": [
            {
              "name": "google/ax",
              "count": 52
            }
          ],
          "daily": [
            {
              "name": "2026-07-06",
              "count": 6
            },
            {
              "name": "2026-07-07",
              "count": 6
            },
            {
              "name": "2026-07-08",
              "count": 2
            },
            {
              "name": "2026-07-09",
              "count": 8
            },
            {
              "name": "2026-07-10",
              "count": 4
            },
            {
              "name": "2026-07-11",
              "count": 1
            },
            {
              "name": "2026-07-13",
              "count": 3
            },
            {
              "name": "2026-07-14",
              "count": 3
            },
            {
              "name": "2026-07-15",
              "count": 5
            },
            {
              "name": "2026-07-16",
              "count": 6
            },
            {
              "name": "2026-07-17",
              "count": 3
            },
            {
              "name": "2026-07-18",
              "count": 2
            },
            {
              "name": "2026-07-20",
              "count": 1
            },
            {
              "name": "2026-07-21",
              "count": 1
            },
            {
              "name": "2026-07-28",
              "count": 1
            }
          ],
          "workTypes": [
            {
              "name": "unclassified",
              "count": 37
            },
            {
              "name": "antigravity",
              "count": 6
            },
            {
              "name": "docs",
              "count": 3
            },
            {
              "name": "interactions",
              "count": 2
            },
            {
              "name": "chore",
              "count": 1
            },
            {
              "name": "ci",
              "count": 1
            },
            {
              "name": "fix",
              "count": 1
            },
            {
              "name": "skills",
              "count": 1
            }
          ]
        },
        "defaultBranchActivity": {
          "repository": "google/ax",
          "branch": "main",
          "commits": 69,
          "activeDays": 14,
          "authorAccounts": 4,
          "rolling7": {
            "minimumCommits": 1,
            "maximumCommits": 30,
            "minimumActiveDays": 1,
            "maximumActiveDays": 6,
            "observations": [
              {
                "endDay": "2026-07-08",
                "commits": 14,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-09",
                "commits": 22,
                "activeDays": 4
              },
              {
                "endDay": "2026-07-10",
                "commits": 26,
                "activeDays": 5
              },
              {
                "endDay": "2026-07-11",
                "commits": 27,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-12",
                "commits": 27,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-13",
                "commits": 24,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-14",
                "commits": 21,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-15",
                "commits": 23,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-16",
                "commits": 21,
                "activeDays": 6
              },
              {
                "endDay": "2026-07-17",
                "commits": 17,
                "activeDays": 5
              },
              {
                "endDay": "2026-07-18",
                "commits": 16,
                "activeDays": 4
              },
              {
                "endDay": "2026-07-19",
                "commits": 16,
                "activeDays": 4
              },
              {
                "endDay": "2026-07-20",
                "commits": 13,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-21",
                "commits": 11,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-22",
                "commits": 30,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-23",
                "commits": 25,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-24",
                "commits": 25,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-25",
                "commits": 25,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-26",
                "commits": 25,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-27",
                "commits": 25,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-28",
                "commits": 25,
                "activeDays": 3
              },
              {
                "endDay": "2026-07-29",
                "commits": 2,
                "activeDays": 2
              },
              {
                "endDay": "2026-07-30",
                "commits": 1,
                "activeDays": 1
              },
              {
                "endDay": "2026-07-31",
                "commits": 1,
                "activeDays": 1
              }
            ]
          },
          "daily": [
            {
              "name": "2026-07-06",
              "count": 6
            },
            {
              "name": "2026-07-07",
              "count": 6
            },
            {
              "name": "2026-07-08",
              "count": 2
            },
            {
              "name": "2026-07-09",
              "count": 8
            },
            {
              "name": "2026-07-10",
              "count": 4
            },
            {
              "name": "2026-07-11",
              "count": 1
            },
            {
              "name": "2026-07-13",
              "count": 3
            },
            {
              "name": "2026-07-14",
              "count": 3
            },
            {
              "name": "2026-07-15",
              "count": 4
            },
            {
              "name": "2026-07-16",
              "count": 6
            },
            {
              "name": "2026-07-21",
              "count": 1
            },
            {
              "name": "2026-07-22",
              "count": 23
            },
            {
              "name": "2026-07-23",
              "count": 1
            },
            {
              "name": "2026-07-28",
              "count": 1
            }
          ],
          "records": [
            {
              "sha": "701777e498ea53f5131b4fc789441f43d77407bb",
              "url": "https://github.com/google/ax/commit/701777e498ea53f5131b4fc789441f43d77407bb",
              "committedAt": "2026-07-06T05:47:49Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Regenerate proto files (#241)",
              "message": "Regenerate proto files (#241)\n\n* Regenerate proto files\n\nFixes #240.\n\n* chore: add Apache 2.0 license headers to generated Python protobuf files"
            },
            {
              "sha": "cec995b72f1c9199663cea5190df13d45630b8bf",
              "url": "https://github.com/google/ax/commit/cec995b72f1c9199663cea5190df13d45630b8bf",
              "committedAt": "2026-07-06T05:48:05Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Fix spacing between AGY harness responses (#239)",
              "message": "Fix spacing between AGY harness responses (#239)\n\nThe AGY harness streams each contiguous block of assistant text as a separate TextContent message, with tool calls in between. The CLI display (cmd/ax/internal/display.go) tracks a state field to decide when to insert separating newlines  but the Content_ToolCall case was a pure no-op that left state == stateText.\n\nFixes #233."
            },
            {
              "sha": "a02465de3384fb7673b0369b9b58cd560bf708c6",
              "url": "https://github.com/google/ax/commit/a02465de3384fb7673b0369b9b58cd560bf708c6",
              "committedAt": "2026-07-06T17:13:18Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Make Postgres optional on substrate deployments (#236)",
              "message": "Make Postgres optional on substrate deployments (#236)\n\n* Make postgres optional.\n\n* Default requires postgres DSN from user."
            },
            {
              "sha": "72b51a4893f342eeb5857da21bc11ab5e4acc930",
              "url": "https://github.com/google/ax/commit/72b51a4893f342eeb5857da21bc11ab5e4acc930",
              "committedAt": "2026-07-06T17:30:46Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Rename ControllerService to ExecutionService (#242)",
              "message": "Rename ControllerService to ExecutionService (#242)"
            },
            {
              "sha": "e39b1232b2c90e09341b5d9366dd3762287312cf",
              "url": "https://github.com/google/ax/commit/e39b1232b2c90e09341b5d9366dd3762287312cf",
              "committedAt": "2026-07-06T21:00:57Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Move Harness implementations to their own packages (#243)",
              "message": "Move Harness implementations to their own packages (#243)\n\n* Move Harness implementations to their own packages\n\nFixes #232.\n\n* Shorten the constructor names"
            },
            {
              "sha": "b2cfc9bc0b9415910d6935801c38170058762564",
              "url": "https://github.com/google/ax/commit/b2cfc9bc0b9415910d6935801c38170058762564",
              "committedAt": "2026-07-06T22:18:42Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "harness/python: normalize thought summary whitespace (#244)",
              "message": "harness/python: normalize thought summary whitespace (#244)\n\nModel thought summaries often contain runs of blank lines between\nsection headers (**Section A**\\n\\n\\n**Section B**) and trailing\nnewlines.\n\nPreviously, the Python AGY harness streamed these verbatim over gRPC.\nThis placed the burden of whitespace cleanup on downstream clients (like\ndisplay.go and the Web Dashboard), and caused visible 3+ newline runs\nand compounding newlines at the thought->text transition boundary.\n\nCollapse runs of 3+ newlines to a single blank line and strip\ntrailing newlines inside the Python adapter before sending over the wire.\nAppend exactly one trailing newline to ensure clients generate clean\nseparators when transitioning to text blocks.\n\nFixes #191."
            },
            {
              "sha": "948ca05b5233dcf8b5e4d48e598a332186ab46a8",
              "url": "https://github.com/google/ax/commit/948ca05b5233dcf8b5e4d48e598a332186ab46a8",
              "committedAt": "2026-07-07T01:04:28Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Serve /readyz from ax harness server. (#254)",
              "message": "Serve /readyz from ax harness server. (#254)\n\n* Serve readyz from ax harness.\n\n* Surface the correct error message from server."
            },
            {
              "sha": "ab717703a1165949ffea2eaea29e5dd1ea5b5aa1",
              "url": "https://github.com/google/ax/commit/ab717703a1165949ffea2eaea29e5dd1ea5b5aa1",
              "committedAt": "2026-07-07T01:12:23Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Remove examples/skills/ from the Dockerfile (#256)",
              "message": "Remove examples/skills/ from the Dockerfile (#256)\n\nFixes #253."
            },
            {
              "sha": "cca34eaa7676f7db3b89806a064f7ced3bb54b1d",
              "url": "https://github.com/google/ax/commit/cca34eaa7676f7db3b89806a064f7ced3bb54b1d",
              "committedAt": "2026-07-07T01:12:38Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Use /axharness folder in the snapshots bucket (#255)",
              "message": "Use /axharness folder in the snapshots bucket (#255)\n\nThe ax harness server will provide more than Antigravity."
            },
            {
              "sha": "ad6a89ebaad32ffdb5543d6e602bdfdc41fc3c82",
              "url": "https://github.com/google/ax/commit/ad6a89ebaad32ffdb5543d6e602bdfdc41fc3c82",
              "committedAt": "2026-07-07T01:13:46Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Rename KO_DOCKER_REPO to AX_IMAGE_REPO (#257)",
              "message": "Rename KO_DOCKER_REPO to AX_IMAGE_REPO (#257)\n\nFixes #247."
            },
            {
              "sha": "2ce514f6d61c62046cbd7da786081f8d4332f7d2",
              "url": "https://github.com/google/ax/commit/2ce514f6d61c62046cbd7da786081f8d4332f7d2",
              "committedAt": "2026-07-07T02:43:02Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Make /workspace the default working directory on Substrate (#259)",
              "message": "Make /workspace the default working directory on Substrate (#259)\n\nFixes #258."
            },
            {
              "sha": "c507098025f6619ce611bcf0f2b14386eb846fc4",
              "url": "https://github.com/google/ax/commit/c507098025f6619ce611bcf0f2b14386eb846fc4",
              "committedAt": "2026-07-07T23:50:17Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Introduce pythonsidecar package (#273)",
              "message": "Introduce pythonsidecar package (#273)\n\n* Introduce pythonsidecar package\n\n* chore: add Apache 2.0 license headers to pythonsidecar files\n\n* chore: add development todo notes to sidecar configuration struct"
            },
            {
              "sha": "e764d366a5c660315a6827f065ae1c13cd4a97a3",
              "url": "https://github.com/google/ax/commit/e764d366a5c660315a6827f065ae1c13cd4a97a3",
              "committedAt": "2026-07-08T16:42:27Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Serve the Antigravity Interactions harness over HarnessService (#274)",
              "message": "Serve the Antigravity Interactions harness over HarnessService (#274)\n\n* Serve the Antigravity Interactions harness over HarnessService\n\nAdd a Go HarnessService server for the Antigravity Interactions harness so\nit can run as a substrate actor, alongside the existing Python sidecar path.\n\n- internal/harness/antigravityinteractions/server.go: Serve(...) stands up\n  the gRPC HarnessService (plus gRPC health) and an HTTP /readyz endpoint\n  reflecting this server's own serving state, with graceful shutdown on\n  ctx-cancel or SIGINT/SIGTERM. Connect adapts the harness onto the wire\n  contract: a start frame drives one turn (Start -> Queue -> Run), each agent\n  message is streamed as a HarnessResponse{outputs} frame, and the stream\n  terminates with exactly one HarnessResponse{end} (COMPLETED/FAILED/\n  CANCELED); a mid-stream cancel frame cancels the run.\n- cmd/ax/harness.go: add a thin runAntigravityInteractionsHarness(ctx,\n  systemInstructions) entrypoint that builds the config and calls Serve; the\n  dispatch layer decides when to invoke it.\n- server_test.go: bufconn tests for the start->end contract and rejection of\n  a non-start first frame.\n\n* Persist resume cursors under .ax/cursors in the work dir\n\nPlace the Antigravity Interactions harness resume-cursor StateDir in a\ndedicated \".ax/cursors\" subdirectory under the actor working directory,\nrather than the work dir root. This keeps AX internal state out of the\nagent-visible workspace (so it isn't surfaced by list_dir and can't collide\nwith the agent's files) while staying within the snapshotted filesystem so\nit survives snapshot/restore.\n\n* Document why steering is not supported over Connect\n\nAdd a comment in the HarnessService Connect loop explaining that mid-run\nsteering is intentionally unsupported: the execution can accept steering via\nQueue, but the HarnessRequest oneof only defines {start, cancel}, so there is\nno wire frame to deliver input after start. Multi-turn conversation is\nexpressed as separate Connect executions that resume via the persisted cursor.\n\n* Persist resume cursors under ~/.ax/cursors\n\nMove the resume-cursor StateDir out of the agent's working directory to a\ndedicated ~/.ax/cursors under the user's home directory. The working directory\nis the agent's operating surface (it reads and edits files there, including\nhidden ones), so keeping AX internal state separate avoids the agent seeing or\nclobbering it. If the home directory cannot be resolved, the harness now fails\nwith an error rather than silently falling back to the current directory."
            },
            {
              "sha": "e1400ea634880eec0ed10fcbf7bd407abef65382",
              "url": "https://github.com/google/ax/commit/e1400ea634880eec0ed10fcbf7bd407abef65382",
              "committedAt": "2026-07-08T19:37:59Z",
              "author": "joycel-github",
              "authorName": "JoyceLiu",
              "committerName": "GitHub",
              "title": "Auto-start Antigravity Python sidecar from ax exec (#275)",
              "message": "Auto-start Antigravity Python sidecar from ax exec (#275)\n\nLocal mode (the default for ax exec) now forks the Antigravity Python\nsidecar via the pythonsidecar package (introduced in #273) so users\ndon't need to launch the harness server out of band. Modeled after\ncmd/ax/harness.go.\n\nAntigravityHarness.New takes an autoStart bool:\n- true  (cliutil, local mode): fork the sidecar, wait for TCPReady,\n  and install a signal handler that stops the sidecar on\n  ctrl-C / SIGTERM. Full lifecycle stays inside antigravity.go so\n  callers don't need a registry -> controller -> antigravity\n  teardown chain.\n- false (e2e demo, unit tests against harnesstest.MockHarnessServer):\n  pure gRPC-client constructor, no fork.\n\nClose stops the forked sidecar; the signal-handler goroutine is the\nprimary caller today.\n\nTests:\n- internal/harness/antigravity/antigravity_test.go covers both\n  autoStart paths via TestNew_AutoStartTrue_StubServer_ForksSidecar\n  (drives the real fork against a minimal stub Python module on\n  PYTHONPATH) and TestNew_AutoStartFalse_NilSidecar.\n- cmd/ax/internal/cliutil/cliutil_test.go's DefaultHarness test uses\n  the same stub-Python trick to exercise the end-to-end wiring\n  through NewControllerFromConfig.\n\ne2e demo (internal/cmd/e2e/main.go) still uses autoStart=false; TODO\nnotes a companion autoStart=true demo as follow-up."
            },
            {
              "sha": "3ed25c7ec5f315748683ddca9bd209a0ad777b8d",
              "url": "https://github.com/google/ax/commit/3ed25c7ec5f315748683ddca9bd209a0ad777b8d",
              "committedAt": "2026-07-09T00:43:48Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Antigravity interactions harness registry and config (#277)",
              "message": "Antigravity interactions harness registry and config (#277)"
            },
            {
              "sha": "81c84f77b2b205b921aa2a287b1a8f54547ffd85",
              "url": "https://github.com/google/ax/commit/81c84f77b2b205b921aa2a287b1a8f54547ffd85",
              "committedAt": "2026-07-09T02:28:18Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Embed python artifacts into ax (#276)",
              "message": "Embed python artifacts into ax (#276)\n\n* Embed python artifacts into ax\n\nAnd setup the AGY harness service at runtime.\n\n* refactor: remove directory and file filtering logic from setup walk function\n\n* refactor: rename installRequirements to install in python sidecar setup\n\n* refactor: simplify Sidecar configuration by passing PYTHONPATH directly to Start method and removing unnecessary environment and binary options\n\n* feat: configure pip install to use local site-packages and filter unwanted files during setup\n\n* feat: support appending to PYTHONPATH and update Python setup path resolution\n\n* refactor: remove redundant file filtering in sidecar setup directory traversal\n\n* refactor: simplify python package installation and add PyPI index URL to pip command\n\n* fix: remove extra index URL from pip install command\n\n* refactor: remove Sidecar.Setup method and move asset extraction logic to external standalone function\n\n* refactor: remove PythonPath configuration field from sidecar.Config in favor of direct global pythonPath usage\n\n* test: remove integration test for antigravity sidecar auto-start logic\n\n* fix: add pypi.org extra-index-url to python package installation command\n\n* refactor: remove Stdin support from pythonsidecar configuration and cleanup redundant harness definitions"
            },
            {
              "sha": "74731320788e8f21b3167b37ae52f48e3972190f",
              "url": "https://github.com/google/ax/commit/74731320788e8f21b3167b37ae52f48e3972190f",
              "committedAt": "2026-07-09T05:08:09Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Setup ~/.ax/antigravity once until a new update arrives (#278)",
              "message": "Setup ~/.ax/antigravity once until a new update arrives (#278)\n\n* Consolidate .ax directory path resolution into a centralized config helper\n\n* refactor: remove unused TargetDir field from SetupOptions in python sidecar tests\n\n* test: update setup test to use HOME directory and verify .ax subdirectory extraction\n\n* refactor: simplify directory path resolution and variable naming in python sidecar setup\n\n* perf: skip redundant file copying and pip installations when dependencies are up to date\n\n* fix: remove redundant check for non-existent requirements file in setup\n\n* refactor: track file updates during extraction to skip unnecessary pip installs\n\n* feat: add progress notification when installing Antigravity SDK\n\n* fix: ensure site-packages directory exists before returning path in setup\n\n* feat: add pypi simple index to pip install command for environment compatibility"
            },
            {
              "sha": "e1950e035ef48b7a8615575442d04115593bd922",
              "url": "https://github.com/google/ax/commit/e1950e035ef48b7a8615575442d04115593bd922",
              "committedAt": "2026-07-09T06:18:25Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Add instructions for accessing ax server via port-forwarding in install script (#280)",
              "message": "Add instructions for accessing ax server via port-forwarding in install script (#280)"
            },
            {
              "sha": "e84907da7936aabc1d89b10c3b828e67fde66c9f",
              "url": "https://github.com/google/ax/commit/e84907da7936aabc1d89b10c3b828e67fde66c9f",
              "committedAt": "2026-07-09T06:18:44Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "ax command should start without an ax.yaml (#279)",
              "message": "ax command should start without an ax.yaml (#279)\n\nFixes #260."
            },
            {
              "sha": "fef750f9065219139a7fdaa506e903fb51a889e5",
              "url": "https://github.com/google/ax/commit/fef750f9065219139a7fdaa506e903fb51a889e5",
              "committedAt": "2026-07-09T21:08:05Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Harden Antigravity Interactions harness HTTP client (#285)",
              "message": "Harden Antigravity Interactions harness HTTP client (#285)\n\n* Harden Antigravity Interactions harness HTTP client\n\nFix a substrate suspend/resume failure and tighten the config surface:\n\n- Disable HTTP keep-alives on the harness's default client. On substrate the\n  actor is suspended after a turn and resumed for the next (with a new routable\n  IP), which leaves any pooled keep-alive connection stale; reusing it made the\n  next turn's request fail. Opening a fresh connection per request avoids that\n  at the cost of an extra handshake.\n- Remove the public HTTPClient override from AntigravityInteractionsConfig.\n  External callers don't configure the harness's transport, and exposing it\n  risked silently reintroducing the keep-alive bug. New now always owns its\n  (keep-alive-disabled) client; tests inject a fake transport via an unexported\n  newWithHTTPClient seam.\n- Reorder AntigravityInteractionsConfig fields to list required (Agent,\n  StateDir) before optional, with clearer doc comments.\n\nBuild and package tests pass.\n\n* Explain why the HTTP transport is cloned, not newly created\n\nAddress review feedback: document that cloning DefaultTransport (rather than a\nbare &http.Transport{}) is intentional -- it inherits the production defaults\n(env proxy, dial/TLS/handshake timeouts, HTTP/2) and only overrides keep-alives.\nA fresh empty transport would silently drop those."
            },
            {
              "sha": "3f39ca3f917b01b10c39fe788e69ace363449360",
              "url": "https://github.com/google/ax/commit/3f39ca3f917b01b10c39fe788e69ace363449360",
              "committedAt": "2026-07-09T21:44:57Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Delete obsolete Makefile targets (#284)",
              "message": "Delete obsolete Makefile targets (#284)"
            },
            {
              "sha": "70a2581d4914d2481b3df0f4d7d76347b088df6e",
              "url": "https://github.com/google/ax/commit/70a2581d4914d2481b3df0f4d7d76347b088df6e",
              "committedAt": "2026-07-09T23:24:27Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Surface server error events in Antigravity Interactions harness (#288)",
              "message": "Surface server error events in Antigravity Interactions harness (#288)\n\nparseStreamedTurn only handled interaction.* and step.* SSE events; a\nserver-emitted \"error\" event fell through the switch and was silently\ndropped. The turn then returned as completed-but-empty, which:\n\n  - made a failure (e.g. INVALID_ARGUMENT for a malformed client tool\n    result) look like a blank \"no response\" turn, and\n  - persisted the failing interaction's id as a poisoned resume cursor.\n\nAdd an \"error\" case that returns a real error, plus a serverErrorMessage\nhelper that extracts message/status from the error payload. Now a\nturn-level server failure aborts the turn with a descriptive error\ninstead of being hidden.\n\nAdds tests for the error-event path and serverErrorMessage formatting."
            },
            {
              "sha": "fea5d230db6d6ef8cea3cf5fa19b69179f205d09",
              "url": "https://github.com/google/ax/commit/fea5d230db6d6ef8cea3cf5fa19b69179f205d09",
              "committedAt": "2026-07-10T00:44:00Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Run Antigravity Interactions as substrate actors (#287)",
              "message": "Run Antigravity Interactions as substrate actors (#287)\n\n* Run antigravity interactions as actor.\n\n* Add instructions for users.\n\n* Remove a comment.\n\n* Fix readme format."
            },
            {
              "sha": "65f0478ea1b0f503464d6aaf9ce5839105e7a01b",
              "url": "https://github.com/google/ax/commit/65f0478ea1b0f503464d6aaf9ce5839105e7a01b",
              "committedAt": "2026-07-10T03:45:26Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "Replace Antigravity sidecar in-memory Agent cache with SDK-native resume (#289)",
              "message": "Replace Antigravity sidecar in-memory Agent cache with SDK-native resume (#289)\n\nThe Python sidecar previously kept a per-conversation Agent instance in\nan in-process dict (self._agents) with a lock, and relied on that cache\nto preserve conversation history across turns. This tied conversation\nstate to a single sidecar process lifetime: any restart, crash, or\nmulti-replica scaling would silently drop history.\n\nDelete the cache and use the Antigravity SDK's own per-conversation\npersistence instead. LocalAgentConfig accepts (conversation_id, save_dir);\nthe SDK's localharness persists trajectory state to\n{save_dir}/{sdk_conv_id}.db. Each turn now:\n\n1. Constructs a fresh Agent scoped to a per-AX-conversation save_dir\n   (~/.ax/antigravity/conversations/{ax_conv_id}/), so each AX\n   conversation gets its own directory with at most one .db file.\n2. If a .db exists there (from a prior turn), passes its stem as the\n   SDK's conversation_id to trigger resume. The SDK's conversation_id\n   is resume-only -- passing a non-existent id errors out -- hence\n   the discover-then-pass pattern.\n3. Runs the turn inside an async-with Agent(...) block, disposing at\n   the end. No process-level state.\n\nMirrors internal/harness/antigravityinteractions/DefaultStateDir()\nconvention (state under ~/.ax/, out of the agent's cwd/operating\nsurface). A TODO references issues #269 and #203 for the eventual\ncontroller-injected save_dir via harness_config.\n\nTest replaces test_grpc_connect_agent_reused (which asserted cache\nbehavior) with test_grpc_connect_agent_per_turn_with_save_dir, which\nasserts per-turn Agent construction and deterministic per-conv save_dir\nnaming.\n\nVerified end-to-end with ax exec --conversation <id>: turn 2 correctly\nrecalls a name introduced in turn 1 across a fresh sidecar process,\nwith only one .db file per conversation on disk. Different --conversation\nids remain isolated."
            },
            {
              "sha": "b71ba523cc08e69980b497e67887f6b54bf23fab",
              "url": "https://github.com/google/ax/commit/b71ba523cc08e69980b497e67887f6b54bf23fab",
              "committedAt": "2026-07-10T21:23:47Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "GitHub",
              "title": "Use GOOGLE_CLOUD_PROJECT variable and remove PROJECT_ID usage (#293)",
              "message": "Use GOOGLE_CLOUD_PROJECT variable and remove PROJECT_ID usage (#293)\n\n* Update install script to use GOOGLE_CLOUD_PROJECT instead of PROJECT_ID\n\nFixes #290.\n\n* Use GOOGLE_CLOUD_PROJECT variable and remove PROJECT_ID usage\n\nFixes #290."
            },
            {
              "sha": "c48baf33a0e9ba1fbad97c3439f3f46b3732c248",
              "url": "https://github.com/google/ax/commit/c48baf33a0e9ba1fbad97c3439f3f46b3732c248",
              "committedAt": "2026-07-10T21:34:17Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Update GOOGLE_CLOUD_PROJECT for interactions path. (#294)",
              "message": "Update GOOGLE_CLOUD_PROJECT for interactions path. (#294)"
            },
            {
              "sha": "4846d9090b8748cf7fd4c9a85c4a604a7ce56793",
              "url": "https://github.com/google/ax/commit/4846d9090b8748cf7fd4c9a85c4a604a7ce56793",
              "committedAt": "2026-07-11T00:30:26Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "harness/python: fix stale thought summary test assertions (#291)",
              "message": "harness/python: fix stale thought summary test assertions (#291)\n\nPR #244 normalized thought summary text with a trailing '\\n' in\nharness_server.py but harness_server_test.py wasn't updated.\ntest_grpc_connect_success and test_grpc_connect_buffering assert\nagainst the pre-normalization strings and fail.\n\nThe drift went unnoticed because the Python tests aren't wired\ninto CI (.github/workflows/go.yml only runs go test ./...).\nWiring pytest into CI is the follow-up."
            },
            {
              "sha": "1b58b0943e5e1a4aab33e7d74edc083f1281cc1d",
              "url": "https://github.com/google/ax/commit/1b58b0943e5e1a4aab33e7d74edc083f1281cc1d",
              "committedAt": "2026-07-13T16:55:02Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "Antigravity sidecar state dir from config (#292)",
              "message": "Antigravity sidecar state dir from config (#292)\n\n* antigravity: plumb sidecar state_dir from ax.yaml\n\nSidecar's trajectory storage directory was hardcoded in Python. This\nplumbs it through as a yaml config that users can override, matching\nthe pattern already used for the Interactions harness's state_dir.\n\nFlow:\n- ax.yaml: harnesses.antigravity.state_dir (optional; empty = default)\n- config.go: AntigravityHarnessConfig.StateDir field (yaml surface only,\n  no default logic on the Go side)\n- cliutil.go: passes yaml value as-is (empty string when unset)\n- antigravity Go client: appends --state-dir arg only when non-empty\n- Python sidecar: argparse --state-dir with default\n  ~/.ax/antigravity/conversations. Default is a transitional fallback\n  for substrate mode (where ActorTemplate doesn't inject the flag yet).\n  Removable once substrate can set the field via ActorTemplate.\n\nServicer's state_dir is required (no fallback) -- production path always\nreceives it from argparse; tests pass tmp_path.\n\nVerified end-to-end with ax exec:\n- No yaml state_dir  -> ~/.ax/antigravity/conversations/{conv_id}/\n- yaml state_dir: X  -> X/{conv_id}/\n- Different conversations remain isolated across both paths.\n\nCloses part of the local-mode gap in issue #269 (harness_config\ncontract design); a follow-up will do the same for substrate via\nActorTemplate.\n\n* antigravity: address PR review comments (P1/P2/P3)\n\n- P1: two Python tests referenced tmp_path without declaring the fixture;\n  add tmp_path to their signatures.\n- P2: state_dir CLI arg was not tilde-expanded, so ~/.ax/... became a\n  literal ~ dir. Add .expanduser().\n- P3: no Go-side test asserted --state-dir forwarding. Extract\n  buildSidecarArgs() as a small pure helper and add table test for the\n  empty/non-empty cases, plus a yaml parse test for\n  AntigravityHarnessConfig.StateDir.\n\n* antigravity: inline sidecar args build instead of separate helper\n\nFollow-up to review feedback: buildSidecarArgs was overkill for a 3-line\nconditional. Move it back into New() inline. Also drops the associated\nTestBuildSidecarArgs (the arg-forwarding rule is now covered only by\nend-to-end verification)."
            },
            {
              "sha": "7437b2f63389bf2ad633fe3eb6b0bb2be81d7296",
              "url": "https://github.com/google/ax/commit/7437b2f63389bf2ad633fe3eb6b0bb2be81d7296",
              "committedAt": "2026-07-13T16:55:24Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "ci: run Python tests for the antigravity harness sidecar (#296)",
              "message": "ci: run Python tests for the antigravity harness sidecar (#296)\n\nThe 17 tests in python/antigravity/harness_server_test.py have never\nrun in CI. .github/workflows/go.yml only runs 'go test ./...' and the\nMakefile 'test' target likewise only runs Go. That let PR #244 land\nwith 2 stale assertions unnoticed (fixed in #291).\n\nAdds:\n- .github/workflows/python.yml -- dedicated Python workflow (kept\n  separate from the Go-only go.yml so each can evolve independently).\n- Makefile 'test-python' target for local parity.\n\nTest deps are inlined in the workflow rather than added as a separate\nrequirements-test.txt -- the diff is 2 packages ('pytest>=7.0',\n'pytest-timeout>=2.0'), not worth its own file. Version floors match\nthe upstream google-antigravity SDK's dev extras so this doesn't\ndrift as pytest evolves.\n\n--timeout=30 --timeout-method=thread guards against hung gRPC servers\nso a stuck test can't eat the whole workflow budget."
            },
            {
              "sha": "c7e9f295e392c7ae5f7336eb1fc0efbcc745bbfc",
              "url": "https://github.com/google/ax/commit/c7e9f295e392c7ae5f7336eb1fc0efbcc745bbfc",
              "committedAt": "2026-07-13T21:55:05Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "parse harness config from request (#295)",
              "message": "parse harness config from request (#295)\n\n* antigravity: parse and validate request harness_config\n\nParse HarnessStart.harness_config (JSON-in-bytes) and overlay it onto\nthe server's default LocalAgentConfig before each turn.\n\n- Blocks a request from overriding AX-owned persistence fields\n  (save_dir, conversation_id) via _AX_MANAGED_CONFIG_FIELDS; these are\n  injected last so a request can't redirect trajectory storage.\n- Reconstructs the config (not model_copy) so the SDK re-validates the\n  overlaid values and surfaces its own error; invalid config fails the\n  turn with INVALID_ARGUMENT instead of crashing.\n- save_dir derives from the injected state_dir (#292) as\n  state_dir / conversation_id.\n\n* antigravity: address harness_config review comments\n\n- Inline _parse_harness_config into _build_config_for so the parsed\n  dict stays a local intermediate; the method's only boundary type is\n  the validated LocalAgentConfig (no dict[str, object] across a helper\n  boundary). Addresses the \"introduce a type for the config\" comment.\n- Make per-conv save_dir test assertions portable: compare against\n  str(tmp_path / conversation_id) instead of hardcoding \"/conv-1\", and\n  drop the now-vestigial Path.home monkeypatch (save_dir derives from\n  the injected state_dir since #292). Addresses the Windows path\n  separator comment.\n\n_AX_MANAGED_CONFIG_FIELDS keeps guarding both conversation_id and\nsave_dir on purpose: harness_config is a separate client-controlled\nsurface from the request's conversation_id, so blocking it prevents a\nrequest from redirecting another conversation's trajectory storage."
            },
            {
              "sha": "a953396b6d2fb5e9740b3c7718ce4ca2ac1e6781",
              "url": "https://github.com/google/ax/commit/a953396b6d2fb5e9740b3c7718ce4ca2ac1e6781",
              "committedAt": "2026-07-14T00:04:49Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "antigravity: reject unknown harness_config fields (#301)",
              "message": "antigravity: reject unknown harness_config fields (#301)\n\nLocalAgentConfig uses pydantic's default extra=\"ignore\", so an\nunrecognized field in a request's harness_config -- e.g. a typo like\n\"system_instruction\" for \"system_instructions\" -- was silently dropped\nand the caller believed the override took effect when it did not.\n\nAdd _reject_disallowed_fields(overrides), which factors two key checks\ninto one helper and raises HarnessConfigError (mapped to\nINVALID_ARGUMENT) naming the offending field(s):\n  - fields that come from outside harness_config (_NON_HARNESS_CONFIG_\n    FIELDS: conversation_id from the runtime request, save_dir from the\n    server's state_dir), and\n  - unknown top-level fields.\n\nValidation is best-effort and top-level only: nested-key and value/type\nvalidation is delegated to the SDK's own LocalAgentConfig validation at\nconstruction time."
            },
            {
              "sha": "8eff724ca6833c507a5d8178bdbc9f13e5d9c280",
              "url": "https://github.com/google/ax/commit/8eff724ca6833c507a5d8178bdbc9f13e5d9c280",
              "committedAt": "2026-07-14T20:03:01Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Interactions actor reads config from yaml. (#302)",
              "message": "Interactions actor reads config from yaml. (#302)"
            },
            {
              "sha": "9873c8747553031a1df660964b688c73fc74254d",
              "url": "https://github.com/google/ax/commit/9873c8747553031a1df660964b688c73fc74254d",
              "committedAt": "2026-07-14T20:28:49Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "antigravity: stop exposing harness state_dir in ax.yaml (#304)",
              "message": "antigravity: stop exposing harness state_dir in ax.yaml (#304)\n\nstate_dir is an AGY SDK implementation detail (where trajectory /\nresume-cursor storage lives), not something AX users should configure.\nRemove the yaml surface for both built-in harnesses and derive the path\ninternally from config.AXAssetsDir().\n\n- config: drop StateDir from AntigravityHarnessConfig and\n  AntigravityInteractionsHarnessConfig.\n- antigravity: add DefaultStateDir() -> ~/.ax/antigravity/conversations,\n  mirroring antigravityinteractions.DefaultStateDir(). cliutil now passes\n  this into antigravity.New instead of the yaml value.\n- cliutil: interactions harness always uses DefaultStateDir(); drop the\n  yaml read + fallback.\n\nThe internal APIs (antigravity.New's stateDir arg, the required\nAntigravityInteractionsConfig.StateDir field, and the Python sidecar's\n--state-dir default) are unchanged -- only the user-facing ax.yaml knob\nis removed.\n\nAddresses rakyll's follow-up on #292."
            },
            {
              "sha": "37718e20bf2ee578eaa007e2a7709b71b19f6e87",
              "url": "https://github.com/google/ax/commit/37718e20bf2ee578eaa007e2a7709b71b19f6e87",
              "committedAt": "2026-07-15T00:40:31Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Add Gemini Enterprise Skill Registry integration for local harnesses (#300)",
              "message": "Add Gemini Enterprise Skill Registry integration for local harnesses (#300)\n\nMaterialize agentskills.io skills from the Gemini Enterprise Skill Registry\n(Vertex AI v1beta1) into on-disk folders before the harness starts, so the\nbuilt-in harnesses can use registry-hosted skills on the local `ax exec` /\n`ax serve` path.\n\n- internal/skills/geminienterprise: harness-agnostic package that reads\n  config.SkillsConfig, drives the registry client (ListSkills / GetSkill /\n  GetSkillRevision / skills:retrieve), safe-unzips payloads to\n  <target_dir>/<skill-id>/, and reports what it wrote. First-wins on\n  duplicate ids with a warning; fail-safe (a registry error never blocks\n  harness startup).\n- config: top-level `skills.registries[]` (harness-agnostic -- each actor\n  runs a single harness that consumes the materialized folder). Per-registry\n  selection (skills / query / all), required target_dir, and a validated\n  \"exactly one selection mode\" rule. Also wires the interactions harness's\n  system_instruction from ax.yaml.\n- cliutil: materializes skills once, up front, at controller construction;\n  for the interactions harness (no SKILLS_DIR concept) it appends a discovery\n  pointer to the system instruction.\n\nScope: local path only; the substrate/pod path does not yet read ax.yaml.\nVerified end-to-end against a live registry (by-id and by-query)."
            },
            {
              "sha": "4d38084e773bbdaf62072bde3b58976450dac570",
              "url": "https://github.com/google/ax/commit/4d38084e773bbdaf62072bde3b58976450dac570",
              "committedAt": "2026-07-15T17:27:16Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "antigravity: format harness_server.py with black (#311)",
              "message": "antigravity: format harness_server.py with black (#311)"
            },
            {
              "sha": "f14e57d896b2838b383821346f405d7f363a91cf",
              "url": "https://github.com/google/ax/commit/f14e57d896b2838b383821346f405d7f363a91cf",
              "committedAt": "2026-07-15T17:28:01Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "docs(readme): fix invalid harness in exec example (#309)",
              "message": "docs(readme): fix invalid harness in exec example (#309)\n\nThe exec example used `--harness coding`, but no \"coding\" harness\nexists; runHarness only accepts \"antigravity\" and\n\"antigravity-interactions\" and errors otherwise, so the command as\nwritten fails. Point the example at the real \"antigravity\" harness."
            },
            {
              "sha": "968348aea14492243d20837474d976fc1f714a98",
              "url": "https://github.com/google/ax/commit/968348aea14492243d20837474d976fc1f714a98",
              "committedAt": "2026-07-15T17:34:14Z",
              "author": "zbl94",
              "authorName": "zbl94",
              "committerName": "GitHub",
              "title": "Honor view_file line range and cap result size (#303)",
              "message": "Honor view_file line range and cap result size (#303)\n\n* Honor view_file line range and cap result size\n\nexecViewFile read the whole file and ignored the agent's StartLine/EndLine,\nso viewing a large file returned its entire content as the tool result --\na ~900KB blob for a 3k-line CSV stalled the following turn.\n\nImplement the Antigravity view_file contract (1-indexed inclusive line range\nwith slice-notation windowing) plus defensive caps:\n- StartLine/EndLine window (neither=first N lines; start-only=next N forward;\n  end-only=previous N backward; both=precise range, capped to N).\n- viewFileMaxLines / viewFileMaxBytes caps so a large file can never blob.\n- ContentOffset honored as the read position within the windowed content.\n\nThe result payload is just {\"content\": ...}; the view_file result schema is\ndefined server-side, so no extra fields are added.\n\nAdds intArg/intArgOK helpers and tests for windowing, byte cap, offset read,\nand range honoring.\n\n* view_file: UTF-8-safe byte cap + pagination metadata\n\nAddress review feedback on the byte cap:\n\n- applyByteWindow backs the cut off to the last complete UTF-8 rune so a\n  multi-byte character straddling viewFileMaxBytes is never split (raw byte\n  slicing could produce invalid UTF-8, corrupting the last char and JSON\n  serialization).\n- execViewFile returns the metadata the server needs to distinguish a\n  complete read from a paginated/byte-truncated one: content, start_line/\n  end_line (0-indexed inclusive served range), content_offset,\n  line_range_bytes (total bytes of the line range pre-byte-cap), and\n  num_lines/num_bytes. The server detects truncation via\n  content_offset+len(content) < line_range_bytes and prompts the model to\n  resume from that offset.\n\nA paired server change reads these fields instead of hardcoding\nstart_line=0/end_line=last.\n\nAdds tests for UTF-8 boundary capping, pagination metadata, and resume."
            },
            {
              "sha": "2db183311358abb3fc2c2d9f18b6913123c78656",
              "url": "https://github.com/google/ax/commit/2db183311358abb3fc2c2d9f18b6913123c78656",
              "committedAt": "2026-07-16T03:24:21Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Handle default harness correctly. (#308)",
              "message": "Handle default harness correctly. (#308)"
            },
            {
              "sha": "7aa53e719af2bda2e9b3357c92ec78f768642e62",
              "url": "https://github.com/google/ax/commit/7aa53e719af2bda2e9b3357c92ec78f768642e62",
              "committedAt": "2026-07-16T16:19:08Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "docs(readme): refresh Antigravity setup, auth, and CLI usage (#317)",
              "message": "docs(readme): refresh Antigravity setup, auth, and CLI usage (#317)\n\n* docs(readme): refresh Antigravity setup, auth, and CLI usage\n\nRe-land the README refresh that was approved as #310 but never reached\nmain (it merged into #309's branch, which was then squash-merged, orphaning\nthis content).\n\n- Document the built-in Antigravity harness: local execution needs python3\n  and pip on PATH; AX auto-starts the Python sidecar and installs the pinned\n  SDK dependencies on first use.\n- Promote Authentication to its own top-level section (Google AI Studio and\n  Vertex AI / ADC).\n- Refresh Quick Start / Usage examples, document the --harness-config and\n  --harness-config-json flags, and add a per-request configuration example.\n\n* docs(readme): use gemini-3.5-flash in per-request config example\n\nUpdate the per-request harness config example from gemini-2.5-pro to a\ncurrent model, matching the model naming used in examples/skills."
            },
            {
              "sha": "de4792aed4dc1777bcb18a9367c6de6851b2849a",
              "url": "https://github.com/google/ax/commit/de4792aed4dc1777bcb18a9367c6de6851b2849a",
              "committedAt": "2026-07-16T17:03:30Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Separate container for python. (#305)",
              "message": "Separate container for python. (#305)"
            },
            {
              "sha": "6afbf90a8f3cbe057370278bfb02894a618a09a2",
              "url": "https://github.com/google/ax/commit/6afbf90a8f3cbe057370278bfb02894a618a09a2",
              "committedAt": "2026-07-16T20:25:39Z",
              "author": "wjjclaud",
              "authorName": "Junjie Wang",
              "committerName": "GitHub",
              "title": "Set workdir for interactions execution. (#324)",
              "message": "Set workdir for interactions execution. (#324)"
            },
            {
              "sha": "35958b273b62790504915653c59883c69cf458d8",
              "url": "https://github.com/google/ax/commit/35958b273b62790504915653c59883c69cf458d8",
              "committedAt": "2026-07-16T21:29:02Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "fix(harness): wire --state-dir for the Antigravity SDK harness on substrate (#322)",
              "message": "fix(harness): wire --state-dir for the Antigravity SDK harness on substrate (#322)\n\nrunAntigravityHarness (the `ax harness antigravity` path used by the\nsubstrate ActorTemplate) forked the Python sidecar with only --host/--port.\nThe sidecar then fell back to its own default state dir, so on a substrate\nactor per-conversation save_dir landed on a path AX does not control, which\nbreaks SDK-native resume across actor Run/Restore and snapshotting.\n\nDerive the trajectory dir via antigravity.DefaultStateDir() and pass it as\n--state-dir, mirroring the local path in antigravity.New and the interactions\nharness in runAntigravityInteractionsHarness (both own the path internally\nrather than taking it from ax.yaml/ActorTemplate).\n\nFixes #321"
            },
            {
              "sha": "d1e95fc2983f51b174ac3f5e8ccd5a250912eb8d",
              "url": "https://github.com/google/ax/commit/d1e95fc2983f51b174ac3f5e8ccd5a250912eb8d",
              "committedAt": "2026-07-16T23:28:13Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "GitHub",
              "title": "antigravity: bump google-antigravity 0.1.5 -> 0.1.7 (#326)",
              "message": "antigravity: bump google-antigravity 0.1.5 -> 0.1.7 (#326)\n\n0.1.7 reads GenAI credential env vars natively. Bump first; the\nsidecar override is removed in a follow-up (#325). Behavior unchanged\nhere since explicit override kwargs still take precedence.\n\nRef #325"
            },
            {
              "sha": "a34bbebf2de12c77bc6b45236c1fe2902baeea4a",
              "url": "https://github.com/google/ax/commit/a34bbebf2de12c77bc6b45236c1fe2902baeea4a",
              "committedAt": "2026-07-21T01:22:45Z",
              "author": "joycel-github",
              "authorName": "Joyce Liu",
              "committerName": "Jaana Dogan",
              "title": "antigravity: remove _resolve_localhost /etc/hosts hack (#328)",
              "message": "antigravity: remove _resolve_localhost /etc/hosts hack (#328)\n\ngoogle-antigravity 0.1.7's _connect_websocket retries both \"localhost\"\nand \"127.0.0.1\" when dialing localharness (local_connection.py:993), so\nthe sidecar no longer needs to patch /etc/hosts for substrate/gVisor\nenvironments where localhost may not resolve.\n\nRef #325\n\nantigravity: guard conversation_id for safe save_dir use (#312)\n\nharness_server uses the caller-supplied conversation_id directly as a\nper-conversation storage directory name (save_dir = state_dir /\nconversation_id) before the Antigravity harness ever sees it, so a value\nlike \"../escape\" could traverse outside state_dir. Reject an empty id or\none containing a path separator or a \".\" / \"..\" component at the boundary\nin _run_turn, returning an INVALID_ARGUMENT end frame.\n\nThis is intentionally only a path-safety guard, not the id-format\ncontract. The Antigravity harness owns that: it validates the forwarded\ncascade_id (length and character set) per cl/948016352. Keeping the\nformat rule in one place avoids the two layers drifting.\n\nchore: remove stale docs, gitignore, and Makefile entries (#329)\n\n- CONTRIBUTING.md: drop 'make run-remote' (no such Makefile target)\n- .gitignore: remove orphaned entries (local/remote_agent, sandbox-router,\n  tasklog, axepp, google-cloud-sdk, test-sandbox-config.yaml)\n- Makefile: add missing deps, clean-logs to .PHONY\n\nantigravity: remove vertex env-var override (superseded by AGY 0.1.7) (#331)\n\n* antigravity: remove vertex env-var override (superseded by AGY 0.1.7)\n\ngoogle-antigravity 0.1.7 reads GOOGLE_GENAI_USE_VERTEXAI /\nGOOGLE_GENAI_USE_ENTERPRISE + GOOGLE_CLOUD_{PROJECT,LOCATION} natively,\nso the sidecar no longer needs _vertex_kwargs_from_env to thread them\ninto LocalAgentConfig.\n\n- Delete _vertex_kwargs_from_env + VertexKwargs.\n- _build_default_config: bare LocalAgentConfig(system_instructions=...).\n- _has_credentials: read project/location from env (SDK hydrates them\n  onto VertexEndpoint, not LocalAgentConfig).\n- Update tests accordingly.\n\nRequires the 0.1.7 bump. Credential resolution is startup-only and\ndoes not touch the save_dir/state_dir resume path.\n\nRef #325\n\n* antigravity: drop stale _has_credentials docstring note about vertex env override\n\nInteractions: persist interactions harness with durable dir and resume from it (#327)\n\ninteractions: make WorkDir authoritative for run_command (#335)\n\nThe interactions harness executed run_command relative to the process's\nambient working directory, which is not reliably the agent's workspace: with\nno Cwd argument the command ran wherever the process cwd happened to be, and a\nmodel-supplied Cwd (including \"/\") was honored blindly. As a result tool calls\noften ran from \"/\" instead of the configured workspace (#332).\n\nMake the workspace directory authoritative in the executor rather than relying\non ambient process state:\n\n- Add AntigravityInteractionsConfig.WorkDir (defaults from AX_HARNESS_WORKDIR).\n- run_command now resolves its directory via resolveRunDir: no Cwd -> WorkDir;\n  relative Cwd -> joined under WorkDir; absolute Cwd -> honored as-is. Empty\n  WorkDir preserves the previous process-cwd behavior.\n- Add WorkspaceSystemInstruction to orient the agent about its working\n  directory so it emits workspace-relative paths, and wire it in cmd/ax.\n\nFixes #332\n\nRemove the binary (#334)\n\n* Remove the binary\n\n* chore: add e2e directory to .gitignore\n\n* refactor: migrate binary file check to a dedicated workflow file\n\n* fix: restrict binary file check to added, copied, or modified files"
            },
            {
              "sha": "10588c52ac413f499795389a7a65ffa50701ed94",
              "url": "https://github.com/google/ax/commit/10588c52ac413f499795389a7a65ffa50701ed94",
              "committedAt": "2026-07-22T15:43:07Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "fix(docs): update HarnessService description to clarify terminology",
              "message": "fix(docs): update HarnessService description to clarify terminology"
            },
            {
              "sha": "5ac275e373303d10c0e9723af5201c483e98ab00",
              "url": "https://github.com/google/ax/commit/5ac275e373303d10c0e9723af5201c483e98ab00",
              "committedAt": "2026-07-22T15:44:24Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "fix(docs): update Control API label to Actor Controller in README",
              "message": "fix(docs): update Control API label to Actor Controller in README"
            },
            {
              "sha": "bff324b7dbcf8579854388396a07e712ecd5d3d3",
              "url": "https://github.com/google/ax/commit/bff324b7dbcf8579854388396a07e712ecd5d3d3",
              "committedAt": "2026-07-22T17:02:05Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: remove obsolete Antigravity harness documentation from README",
              "message": "docs: remove obsolete Antigravity harness documentation from README"
            },
            {
              "sha": "6806eb99d7b976294cad2f3daeccee0d99096cbf",
              "url": "https://github.com/google/ax/commit/6806eb99d7b976294cad2f3daeccee0d99096cbf",
              "committedAt": "2026-07-22T17:02:24Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: remove deprecated BYOH and integrations items from roadmap",
              "message": "docs: remove deprecated BYOH and integrations items from roadmap"
            },
            {
              "sha": "e4c2fbda0015d34b33fdfff32a17244a43bc7161",
              "url": "https://github.com/google/ax/commit/e4c2fbda0015d34b33fdfff32a17244a43bc7161",
              "committedAt": "2026-07-22T17:04:03Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: remove temporary external contribution pause and contact email from README",
              "message": "docs: remove temporary external contribution pause and contact email from README"
            },
            {
              "sha": "1abc003dca8833fba084be6f67fe999487eaf8fb",
              "url": "https://github.com/google/ax/commit/1abc003dca8833fba084be6f67fe999487eaf8fb",
              "committedAt": "2026-07-22T17:09:23Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "feat: prevent sidecar startup when ReadyFunc indicates the endpoint is already in use",
              "message": "feat: prevent sidecar startup when ReadyFunc indicates the endpoint is already in use"
            },
            {
              "sha": "a0bfb5fb74dfe94f96d8feebf7755c6248856734",
              "url": "https://github.com/google/ax/commit/a0bfb5fb74dfe94f96d8feebf7755c6248856734",
              "committedAt": "2026-07-22T18:56:37Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "feat: add support for terminating existing orphan processes before starting the Python sidecar",
              "message": "feat: add support for terminating existing orphan processes before starting the Python sidecar"
            },
            {
              "sha": "701feadd055b872edd02c040531551e532e1b797",
              "url": "https://github.com/google/ax/commit/701feadd055b872edd02c040531551e532e1b797",
              "committedAt": "2026-07-22T19:01:27Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: rename CLI flags to --config and --ax-config for improved command naming consistency",
              "message": "refactor: rename CLI flags to --config and --ax-config for improved command naming consistency"
            },
            {
              "sha": "2fd20cd431259aa2bb3340d7c1e080cdcba2c630",
              "url": "https://github.com/google/ax/commit/2fd20cd431259aa2bb3340d7c1e080cdcba2c630",
              "committedAt": "2026-07-22T19:04:50Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: rename harness configuration flags to --config for inline JSON and --config-file for paths",
              "message": "refactor: rename harness configuration flags to --config for inline JSON and --config-file for paths"
            },
            {
              "sha": "24b2f399fa17572b9ffb64dd3e2ee1049a15aa7b",
              "url": "https://github.com/google/ax/commit/24b2f399fa17572b9ffb64dd3e2ee1049a15aa7b",
              "committedAt": "2026-07-22T19:05:48Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: update README features list to highlight MCP tools and custom environment support",
              "message": "docs: update README features list to highlight MCP tools and custom environment support"
            },
            {
              "sha": "bab973e877a32444af8283e4f850912ef7345a98",
              "url": "https://github.com/google/ax/commit/bab973e877a32444af8283e4f850912ef7345a98",
              "committedAt": "2026-07-22T19:13:19Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: rename seq to step across protocol and internal controller logic",
              "message": "refactor: rename seq to step across protocol and internal controller logic"
            },
            {
              "sha": "c0d8e5bf10c2ae0ecfefa93bc9c727b7eeed9714",
              "url": "https://github.com/google/ax/commit/c0d8e5bf10c2ae0ecfefa93bc9c727b7eeed9714",
              "committedAt": "2026-07-22T19:15:28Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: remove dashboard implementation and web assets",
              "message": "refactor: remove dashboard implementation and web assets"
            },
            {
              "sha": "5ec51983e13d18d8e7ead94972113f19942dad50",
              "url": "https://github.com/google/ax/commit/5ec51983e13d18d8e7ead94972113f19942dad50",
              "committedAt": "2026-07-22T19:19:30Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: move antigravity configuration to top-level and rename HarnessesConfig to RegistryConfig",
              "message": "refactor: move antigravity configuration to top-level and rename HarnessesConfig to RegistryConfig"
            },
            {
              "sha": "16db0d7a0fc3a3a96c44b2a7545754f5dfdb48ae",
              "url": "https://github.com/google/ax/commit/16db0d7a0fc3a3a96c44b2a7545754f5dfdb48ae",
              "committedAt": "2026-07-22T19:24:07Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: simplify CLI by removing the exec subcommand and moving its flags to the root command",
              "message": "refactor: simplify CLI by removing the exec subcommand and moving its flags to the root command"
            },
            {
              "sha": "d1a3da114281ec9438da0c3c98772433e392938e",
              "url": "https://github.com/google/ax/commit/d1a3da114281ec9438da0c3c98772433e392938e",
              "committedAt": "2026-07-22T19:25:38Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: format bash command examples for better readability in README.md",
              "message": "docs: format bash command examples for better readability in README.md"
            },
            {
              "sha": "b019d135ce1917c6e7defaf7653cca928384c3ea",
              "url": "https://github.com/google/ax/commit/b019d135ce1917c6e7defaf7653cca928384c3ea",
              "committedAt": "2026-07-22T19:27:26Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "chore: add Google LLC copyright headers to generated protocol buffer files",
              "message": "chore: add Google LLC copyright headers to generated protocol buffer files"
            },
            {
              "sha": "d4c5c352e034547fa7c5d2006d12e3a2c2ce2503",
              "url": "https://github.com/google/ax/commit/d4c5c352e034547fa7c5d2006d12e3a2c2ce2503",
              "committedAt": "2026-07-22T19:28:28Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "chore: rename --config flag to --ax-config for consistency",
              "message": "chore: rename --config flag to --ax-config for consistency"
            },
            {
              "sha": "f4ad177adbb697d8ff9458f23eca03e64c280719",
              "url": "https://github.com/google/ax/commit/f4ad177adbb697d8ff9458f23eca03e64c280719",
              "committedAt": "2026-07-22T19:30:30Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: rename --config flag to --ax-config in README examples",
              "message": "docs: rename --config flag to --ax-config in README examples"
            },
            {
              "sha": "19be3958f3dec9e0a7175ae85e053b323217ded9",
              "url": "https://github.com/google/ax/commit/19be3958f3dec9e0a7175ae85e053b323217ded9",
              "committedAt": "2026-07-22T19:31:28Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: remove specific harness and model controller descriptions from README",
              "message": "docs: remove specific harness and model controller descriptions from README"
            },
            {
              "sha": "0f8f36c8d5a7299099cfc8e6b9bec31be06fbde6",
              "url": "https://github.com/google/ax/commit/0f8f36c8d5a7299099cfc8e6b9bec31be06fbde6",
              "committedAt": "2026-07-22T19:32:24Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: simplify quickstart section and fix formatting in README.md",
              "message": "docs: simplify quickstart section and fix formatting in README.md"
            },
            {
              "sha": "d9a0f75ed243547c2df6c6e7fb68d888f27d92e8",
              "url": "https://github.com/google/ax/commit/d9a0f75ed243547c2df6c6e7fb68d888f27d92e8",
              "committedAt": "2026-07-22T19:38:41Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "docs: update usage documentation for ax execute and serve commands",
              "message": "docs: update usage documentation for ax execute and serve commands"
            },
            {
              "sha": "0f8d4c62ed00b6b2531fae1c14728d0a232d669c",
              "url": "https://github.com/google/ax/commit/0f8d4c62ed00b6b2531fae1c14728d0a232d669c",
              "committedAt": "2026-07-22T19:57:49Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: remove unused history confirmation utility functions",
              "message": "refactor: remove unused history confirmation utility functions"
            },
            {
              "sha": "4474dff3cd54303b442ec6eff4adf605e09a9273",
              "url": "https://github.com/google/ax/commit/4474dff3cd54303b442ec6eff4adf605e09a9273",
              "committedAt": "2026-07-22T19:59:02Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: move ate package from internal/k8s to internal/ to decouple from Kubernetes dependencies",
              "message": "refactor: move ate package from internal/k8s to internal/ to decouple from Kubernetes dependencies"
            },
            {
              "sha": "cbd2c564376d2e487ac0623d6e54650d929e17a7",
              "url": "https://github.com/google/ax/commit/cbd2c564376d2e487ac0623d6e54650d929e17a7",
              "committedAt": "2026-07-23T05:30:04Z",
              "author": "rakyll",
              "authorName": "Jaana Dogan",
              "committerName": "Jaana Dogan",
              "title": "refactor: update install script paths in documentation and manifest comments",
              "message": "refactor: update install script paths in documentation and manifest comments"
            },
            {
              "sha": "f327e23b5b842e9b700675ded9a6cdb79c505856",
              "url": "https://github.com/google/ax/commit/f327e23b5b842e9b700675ded9a6cdb79c505856",
              "committedAt": "2026-07-28T20:04:19Z",
              "author": "zbl94",
              "authorName": "Zhengbo Li",
              "committerName": "GitHub",
              "title": "skills: add local directory source alongside the registry (#316)",
              "message": "skills: add local directory source alongside the registry (#316)\n\nIntroduce a local skills source parallel to the Gemini Enterprise Skill\nRegistry integration. A local source points at a directory already on disk\n(a parent dir holding <skill-id>/SKILL.md subfolders, the same layout as\nexamples/skills and a registry's target_dir); nothing is fetched and the\ndirectory is used as-is.\n\n- New mode-agnostic result shape (internal/skills: Available/Group/Skill) so\n  both sources feed the same consumers without either depending on the other.\n- internal/skills/local.Discover enumerates enabled local paths, treating\n  immediate subfolders with a SKILL.md as skills (subfolder name = id). It is\n  fail-safe like registry materialization: a missing/unreadable/empty path is\n  logged and skipped, never blocking harness creation.\n- config.SkillsConfig gains Local []LocalSkillsConfig (enabled + path) with\n  validation; geminienterprise.Materialize now returns skills.Available.\n- cliutil combines registry and local groups into one system-instruction\n  pointer for the Antigravity Interactions harness. The Antigravity SDK\n  harness (SKILLS_DIR-based) is left as a TODO.\n\nOnly the interactions harness is wired; tests cover discovery, fail-safe\ndegradation, config validation, and the examples/skills fixture."
            }
          ]
        },
        "developmentAttribution": {
          "repository": "google/ax",
          "branch": "main",
          "window": {
            "id": "ax-history-before-cutoff",
            "label": "AX public default-branch history before the comparison cutoff",
            "startInclusive": "2026-01-01T00:00:00.000Z",
            "endExclusive": "2026-08-01T00:00:00.000Z",
            "duration": "P212D"
          },
          "windowRelation": "repository-history-outside-measured-windows",
          "totalCommitsScanned": 608,
          "explicitlyAttributedCommits": 7,
          "byAgent": [
            {
              "agent": "Gemini",
              "commits": 7,
              "markerTypes": [
                {
                  "name": "co-author-trailer",
                  "count": 7
                }
              ]
            }
          ],
          "records": [
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "5e030de39700fbfaabbcfafa9e9b7481bec5de4e",
              "url": "https://github.com/google/ax/commit/5e030de39700fbfaabbcfafa9e9b7481bec5de4e",
              "title": "Add a warning saying the project is in active development (#73)",
              "observedAt": "2026-02-27T19:14:42Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "423549a5409b2dee1f5c45ea10b0c6facce62dd1",
              "url": "https://github.com/google/ax/commit/423549a5409b2dee1f5c45ea10b0c6facce62dd1",
              "title": "Fix the README section about the Python agent (#104)",
              "observedAt": "2026-03-17T02:12:40Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "a5c1aff3a297808ae639d0bfdf37eb421aafdd4d",
              "url": "https://github.com/google/ax/commit/a5c1aff3a297808ae639d0bfdf37eb421aafdd4d",
              "title": "Small improvements in the exec loop. (#128)",
              "observedAt": "2026-03-24T01:30:19Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "d694866ec5dba1c5010a277da3a3f4ccb10c2bdb",
              "url": "https://github.com/google/ax/commit/d694866ec5dba1c5010a277da3a3f4ccb10c2bdb",
              "title": "Move experimental docs to experimental (#264)",
              "observedAt": "2026-04-30T15:48:52Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "a29c6e742e9c676baf47fd25ac2a0ffd6015e2f4",
              "url": "https://github.com/google/ax/commit/a29c6e742e9c676baf47fd25ac2a0ffd6015e2f4",
              "title": "Some more updates to the NOT section (#271)",
              "observedAt": "2026-04-30T18:42:30Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "b42d530c8e5aca8ddd3f2d3da4a550366a3b01af",
              "url": "https://github.com/google/ax/commit/b42d530c8e5aca8ddd3f2d3da4a550366a3b01af",
              "title": "Update wording in Substrate instructructions (#278)",
              "observedAt": "2026-05-04T19:04:10Z"
            },
            {
              "agent": "Gemini",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: gemini-code-assist[bot]",
              "repository": "google/ax",
              "branch": "main",
              "sha": "f220cec527f394a31a2c14578a9b2d039dd41c9e",
              "url": "https://github.com/google/ax/commit/f220cec527f394a31a2c14578a9b2d039dd41c9e",
              "title": "sync code with latest substrate API changes (#348)",
              "observedAt": "2026-05-15T23:42:28Z"
            }
          ]
        }
      },
      "kungfu": {
        "label": "Kungfu Systems",
        "scope": "all public repositories in kungfu-systems with merged work in the window",
        "query": "org:kungfu-systems is:pr is:merged merged:2026-07-02T00:00:00Z..2026-07-31T23:59:59Z is:public",
        "organizationForm": "one human product owner directing Agent-mediated work across a public multi-repository system",
        "summary": {
          "mergedPullRequests": 4065,
          "activeRepositories": 16,
          "authorAccounts": 4,
          "activeMergeDays": 30,
          "totalAdditions": 3130526,
          "totalDeletions": 567805,
          "totalChangedFiles": 53052,
          "changeSize": {
            "median": 106,
            "p25": 17,
            "p75": 542,
            "p90": 1640
          },
          "authors": [
            {
              "name": "dongkeren",
              "count": 3913
            },
            {
              "name": "app/kungfu-systems-release-bot",
              "count": 85
            },
            {
              "name": "kungfu-origin",
              "count": 65
            },
            {
              "name": "app/kungfu-paper-release-bot",
              "count": 2
            }
          ],
          "repositories": [
            {
              "name": "kungfu-systems/buildchain",
              "count": 1451
            },
            {
              "name": "kungfu-systems/kungfu",
              "count": 1333
            },
            {
              "name": "kungfu-systems/build-images",
              "count": 246
            },
            {
              "name": "kungfu-systems/kfd",
              "count": 232
            },
            {
              "name": "kungfu-systems/site-libkungfu-dev",
              "count": 171
            },
            {
              "name": "kungfu-systems/site-kungfu-tech",
              "count": 142
            },
            {
              "name": "kungfu-systems/libnode",
              "count": 94
            },
            {
              "name": "kungfu-systems/paper-kungfu-product-white-paper",
              "count": 87
            },
            {
              "name": "kungfu-systems/paper-observer-declared-timelines",
              "count": 65
            },
            {
              "name": "kungfu-systems/runtime-images",
              "count": 61
            },
            {
              "name": "kungfu-systems/paper-kfd-foundation-real-world-agent-work",
              "count": 60
            },
            {
              "name": "kungfu-systems/agent-hub-demo",
              "count": 54
            },
            {
              "name": "kungfu-systems/paper-kfd-machine-life-roadmap",
              "count": 47
            },
            {
              "name": "kungfu-systems/homebrew-tap",
              "count": 11
            },
            {
              "name": "kungfu-systems/paper-episodes-to-primitives",
              "count": 10
            },
            {
              "name": "kungfu-systems/.github",
              "count": 1
            }
          ],
          "daily": [
            {
              "name": "2026-07-02",
              "count": 118
            },
            {
              "name": "2026-07-03",
              "count": 98
            },
            {
              "name": "2026-07-04",
              "count": 139
            },
            {
              "name": "2026-07-05",
              "count": 125
            },
            {
              "name": "2026-07-06",
              "count": 202
            },
            {
              "name": "2026-07-07",
              "count": 189
            },
            {
              "name": "2026-07-08",
              "count": 129
            },
            {
              "name": "2026-07-09",
              "count": 140
            },
            {
              "name": "2026-07-10",
              "count": 195
            },
            {
              "name": "2026-07-11",
              "count": 112
            },
            {
              "name": "2026-07-12",
              "count": 92
            },
            {
              "name": "2026-07-13",
              "count": 123
            },
            {
              "name": "2026-07-14",
              "count": 163
            },
            {
              "name": "2026-07-15",
              "count": 226
            },
            {
              "name": "2026-07-16",
              "count": 98
            },
            {
              "name": "2026-07-17",
              "count": 77
            },
            {
              "name": "2026-07-18",
              "count": 91
            },
            {
              "name": "2026-07-19",
              "count": 92
            },
            {
              "name": "2026-07-20",
              "count": 64
            },
            {
              "name": "2026-07-21",
              "count": 130
            },
            {
              "name": "2026-07-22",
              "count": 161
            },
            {
              "name": "2026-07-23",
              "count": 144
            },
            {
              "name": "2026-07-24",
              "count": 205
            },
            {
              "name": "2026-07-25",
              "count": 153
            },
            {
              "name": "2026-07-26",
              "count": 134
            },
            {
              "name": "2026-07-27",
              "count": 119
            },
            {
              "name": "2026-07-28",
              "count": 150
            },
            {
              "name": "2026-07-29",
              "count": 119
            },
            {
              "name": "2026-07-30",
              "count": 115
            },
            {
              "name": "2026-07-31",
              "count": 162
            }
          ],
          "workTypes": [
            {
              "name": "fix",
              "count": 1195
            },
            {
              "name": "feat",
              "count": 834
            },
            {
              "name": "chore",
              "count": 746
            },
            {
              "name": "unclassified",
              "count": 450
            },
            {
              "name": "release",
              "count": 308
            },
            {
              "name": "docs",
              "count": 228
            },
            {
              "name": "ci",
              "count": 131
            },
            {
              "name": "refactor",
              "count": 82
            },
            {
              "name": "test",
              "count": 32
            },
            {
              "name": "build",
              "count": 21
            },
            {
              "name": "alpha",
              "count": 8
            },
            {
              "name": "promote",
              "count": 8
            },
            {
              "name": "perf",
              "count": 7
            },
            {
              "name": "shifu",
              "count": 6
            },
            {
              "name": "storage",
              "count": 4
            },
            {
              "name": "check",
              "count": 1
            },
            {
              "name": "diag",
              "count": 1
            },
            {
              "name": "merge",
              "count": 1
            },
            {
              "name": "rewind",
              "count": 1
            },
            {
              "name": "style",
              "count": 1
            }
          ]
        },
        "developmentAttribution": {
          "repository": "kungfu-systems/kungfu",
          "branch": "dev/v4/v4.0",
          "window": {
            "id": "kungfu-v4-through-operating-cutoff",
            "label": "Kungfu v4 public branch through the operating cutoff",
            "startInclusive": "2026-06-16T00:00:00.000Z",
            "endExclusive": "2026-08-01T00:00:00.000Z",
            "duration": "P46D"
          },
          "windowRelation": "overlaps-bootstrap-and-operating-observations",
          "totalCommitsScanned": 2908,
          "explicitlyAttributedCommits": 135,
          "byAgent": [
            {
              "agent": "Codex",
              "commits": 78,
              "markerTypes": [
                {
                  "name": "agent-field",
                  "count": 78
                }
              ]
            },
            {
              "agent": "Claude",
              "commits": 34,
              "markerTypes": [
                {
                  "name": "agent-field",
                  "count": 34
                }
              ]
            },
            {
              "agent": "Cursor",
              "commits": 21,
              "markerTypes": [
                {
                  "name": "co-author-trailer",
                  "count": 21
                }
              ]
            },
            {
              "agent": "Amp",
              "commits": 2,
              "markerTypes": [
                {
                  "name": "co-author-trailer",
                  "count": 2
                }
              ]
            }
          ],
          "records": [
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a20748de6117b627d8ad9e41551f53fe7fa9f5f2",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a20748de6117b627d8ad9e41551f53fe7fa9f5f2",
              "title": "build(v4): arm64 点亮 C++ 内核，conan2 + fmt10 现代化",
              "observedAt": "2026-06-16T10:01:10Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "01cf26faab988082b65bb0b37a8c35d87df50a6c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/01cf26faab988082b65bb0b37a8c35d87df50a6c",
              "title": "build(v4): Step 2 点亮 Python 绑定 pykungfu，journal 写读往返通过",
              "observedAt": "2026-06-16T10:51:20Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1599ab1cc50a2eeef0f7f4dfd54b8d2030f674b8",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1599ab1cc50a2eeef0f7f4dfd54b8d2030f674b8",
              "title": "build(v4): Step 3 点亮 Node 绑定 kungfu_node，三语言共享同一条 journal",
              "observedAt": "2026-06-16T11:29:29Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "5f3ab0786cba51bde94b6a075c8720c913bf6143",
              "url": "https://github.com/kungfu-systems/kungfu/commit/5f3ab0786cba51bde94b6a075c8720c913bf6143",
              "title": "build(v4): Step 4 点亮单进程三语言联动，技术终点达成",
              "observedAt": "2026-06-16T12:15:12Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d07fe5a894b55a4600c360e194b27206ac40ff69",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d07fe5a894b55a4600c360e194b27206ac40ff69",
              "title": "build(v4): .v4 跨平台适配 Linux(rpath/linker/测试脚本)",
              "observedAt": "2026-06-16T15:05:18Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "fa4feb44e7cc39bc71c6f53b44545e1c6a88bac7",
              "url": "https://github.com/kungfu-systems/kungfu/commit/fa4feb44e7cc39bc71c6f53b44545e1c6a88bac7",
              "title": "fix(yijinjing): time.h 显式 #include <cstdint> 修 gcc13 编译",
              "observedAt": "2026-06-16T15:17:33Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "77ee308fb5f66a6a7f57fb095da5f4d4a0dba4c5",
              "url": "https://github.com/kungfu-systems/kungfu/commit/77ee308fb5f66a6a7f57fb095da5f4d4a0dba4c5",
              "title": "fix(v4): Linux 单进程内嵌设 RTLD_GLOBAL，修 napi_* undefined symbol",
              "observedAt": "2026-06-16T16:01:07Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0e41c8e0257ed5c199f18de93be43bc925a54780",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0e41c8e0257ed5c199f18de93be43bc925a54780",
              "title": "build(v4): 去掉 FMT_USE_CONSTEVAL=0 workaround，恢复 fmt 编译期检查",
              "observedAt": "2026-06-16T22:40:50Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1775eb2378da27255bdb77916fe0453e0308ef22",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1775eb2378da27255bdb77916fe0453e0308ef22",
              "title": "docs(v4): 建 conan2 迁移理解与决策日志",
              "observedAt": "2026-06-17T02:38:14Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "326179cac308f91469e1fea8723ee555095bf269",
              "url": "https://github.com/kungfu-systems/kungfu/commit/326179cac308f91469e1fea8723ee555095bf269",
              "title": "refactor(core): conanfile.py 端口到 conan2 (Stage A-1)",
              "observedAt": "2026-06-17T02:54:15Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "77d126a3bc3abbbafa2c984921f100f5ab49bb49",
              "url": "https://github.com/kungfu-systems/kungfu/commit/77d126a3bc3abbbafa2c984921f100f5ab49bb49",
              "title": "refactor(core): 主 CMakeLists 适配 conan2 桥接 (Stage A-2a)",
              "observedAt": "2026-06-17T03:04:38Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6831fb222d47bb183752ff30560767bf251e2f01",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6831fb222d47bb183752ff30560767bf251e2f01",
              "title": "docs(v4): 摸清欠债② libnode→dist 真实形态并落档(排序调整)",
              "observedAt": "2026-06-17T03:15:30Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7f57c318d78aed8686f0b9642cd0a5e80eb0a6e0",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7f57c318d78aed8686f0b9642cd0a5e80eb0a6e0",
              "title": "docs(v4): 记录欠债② libnode→dist 双平台落位完成",
              "observedAt": "2026-06-17T03:25:08Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "103b66851dcaa647f1ca9a5abeb151e4a0828128",
              "url": "https://github.com/kungfu-systems/kungfu/commit/103b66851dcaa647f1ca9a5abeb151e4a0828128",
              "title": "docs(v4): 立 v4 产品长期目标与分阶段实施计划(恢复点)",
              "observedAt": "2026-06-17T03:53:41Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ad0f812e14e54e0f40ed1db5faa10112657347e6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ad0f812e14e54e0f40ed1db5faa10112657347e6",
              "title": "build(core): kungfu-core devDep 升级 + 真实绑定首编 (A-2b 进行中)",
              "observedAt": "2026-06-17T04:18:08Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0d5db708abbcf0fbb2c9fda9541a55d8d888e47b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0d5db708abbcf0fbb2c9fda9541a55d8d888e47b",
              "title": "docs(v4): A-2b cmake-js+conan2 集成打通(node+electron，Mac)",
              "observedAt": "2026-06-17T05:09:03Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f2a0bd93c4ab12363ad3bfab302f52daaff62609",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f2a0bd93c4ab12363ad3bfab302f52daaff62609",
              "title": "build(core): A-2b Mac 侧收尾(Python pin/run-conan conan2/electron) ①②③",
              "observedAt": "2026-06-17T06:38:24Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c859683a262e3912106e52140c4e7a4bb1e17a8c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c859683a262e3912106e52140c4e7a4bb1e17a8c",
              "title": "chore(core): gitignore conan2/cmake 构建工件",
              "observedAt": "2026-06-17T07:11:19Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2149a187862b65f92d7e62d80e12580beb8bb0ee",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2149a187862b65f92d7e62d80e12580beb8bb0ee",
              "title": "docs(v4): A-2b 双平台闭环完成(node+electron 真实绑定)",
              "observedAt": "2026-06-17T07:22:17Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ae8b29a0b96c90f10d8442b5de4502001b65363a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ae8b29a0b96c90f10d8442b5de4502001b65363a",
              "title": "docs(v4): Stage C(freeze+kfc)分析与前置决策",
              "observedAt": "2026-06-17T08:29:58Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2600b382b8ae2287d0c845023ddf41dadbe2b2c6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2600b382b8ae2287d0c845023ddf41dadbe2b2c6",
              "title": "build(core): Stage C 基础 — Python 栈现代化到 3.13(pyproject+Pipfile)",
              "observedAt": "2026-06-17T08:52:24Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "44c02919758ed7aaeb516106131e151ed6f4be18",
              "url": "https://github.com/kungfu-systems/kungfu/commit/44c02919758ed7aaeb516106131e151ed6f4be18",
              "title": "build(core): Stage C env bootstrap 通过 — Python 3.13 数据栈解析+安装成功",
              "observedAt": "2026-06-17T09:19:52Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6b95fe388cd83ccc531391613b627f6e8dded528",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6b95fe388cd83ccc531391613b627f6e8dded528",
              "title": "fix(python): kfc 适配 click 8.1.7+ (F→本地 TypeVar)",
              "observedAt": "2026-06-17T09:37:33Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "29f6685d18995d45a70bc96c1b4e2ab370ba0093",
              "url": "https://github.com/kungfu-systems/kungfu/commit/29f6685d18995d45a70bc96c1b4e2ab370ba0093",
              "title": "docs(v4): Stage C env bootstrap + kfc 运行验证完成(记录+下一步 Nuitka freeze)",
              "observedAt": "2026-06-17T09:41:43Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d0e969649e570a78a5e39d08fd2ab7c5d66d2db6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d0e969649e570a78a5e39d08fd2ab7c5d66d2db6",
              "title": "docs(v4): Nuitka freeze 进展与卡点(bundle 出+卡 certifi/stdlib)",
              "observedAt": "2026-06-17T12:43:27Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f0c2886a5fd8e2483b36c6575f093e9ffe02a04b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f0c2886a5fd8e2483b36c6575f093e9ffe02a04b",
              "title": "build(core): 数据栈加 plotly 6.8(kfc freeze include-package=plotly 需要)",
              "observedAt": "2026-06-17T12:48:37Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "28f4f9cadbc8219d2f66eaebee7948022bf335a1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/28f4f9cadbc8219d2f66eaebee7948022bf335a1",
              "title": "build(core): kfc Nuitka freeze 调通(升 4.1.2 修 certifi)，kfc.bin 独立运行",
              "observedAt": "2026-06-17T14:45:01Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4e4127d888d58228c0a1a085a0e64edabfb57d0e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4e4127d888d58228c0a1a085a0e64edabfb57d0e",
              "title": "chore(core): poetry.lock 重锁匹配 nuitka ~4.1(Linux freeze 用 4.1.2)",
              "observedAt": "2026-06-17T23:17:05Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4e85bf22a7c008b2c2e5d8e7268be0037b358109",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4e85bf22a7c008b2c2e5d8e7268be0037b358109",
              "title": "docs(core): 记录 Stage C Linux freeze 调通，双平台 kfc 独立运行完成",
              "observedAt": "2026-06-18T00:18:37Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "3ab57f1cdd170498ece61113a46a673f88338a1a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/3ab57f1cdd170498ece61113a46a673f88338a1a",
              "title": "build(core): Stage C 收尾 — freeze 入口脚本化 + kungfubuildinfo 自动化",
              "observedAt": "2026-06-18T01:20:53Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ddbaf32b2cddc266349641c544dee2e03cacc9bd",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ddbaf32b2cddc266349641c544dee2e03cacc9bd",
              "title": "build(core): Windows 端口 — libkungfu 改 STATIC 解 LNK1189，Stage D GUI 路径跑通",
              "observedAt": "2026-06-18T05:52:08Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4c26196e7826311273cbee0684cfc492a0eadc00",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4c26196e7826311273cbee0684cfc492a0eadc00",
              "title": "chore(core): .v4 退役 — bootstrap 删除，文档迁 framework/core/docs",
              "observedAt": "2026-06-18T11:17:43Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "faea6ad26076269f2608408924c382c6c3936595",
              "url": "https://github.com/kungfu-systems/kungfu/commit/faea6ad26076269f2608408924c382c6c3936595",
              "title": "chore(core): P0 收尾 — Windows cppstd=17 固化进 run-conan + ⑤⑦ 落档",
              "observedAt": "2026-06-18T14:23:05Z"
            },
            {
              "agent": "Claude",
              "markerType": "agent-field",
              "marker": "Agent: Claude (Code)",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7f7aab5fa4c2d52a283e6b6e5192d79bf8e3c2c2",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7f7aab5fa4c2d52a283e6b6e5192d79bf8e3c2c2",
              "title": "feat(longfist,ledger): born-FB Asset(第四类型) + Position/Asset ledger 写侧 dual-write(默认 OFF)",
              "observedAt": "2026-06-22T11:02:39Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "8c51591dd3c0c834fa16d946752c51890cd7233e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/8c51591dd3c0c834fa16d946752c51890cd7233e",
              "title": "feat(config): make Kungfu config contract-first",
              "observedAt": "2026-07-06T03:12:14Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2132071b0c6efe8651026334fb789b009145be40",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2132071b0c6efe8651026334fb789b009145be40",
              "title": "feat(storage): move atlas integrity checks into core",
              "observedAt": "2026-07-08T15:37:01Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f93c90c726e13a15d2d82fc925fd5a9d4e0a8e66",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f93c90c726e13a15d2d82fc925fd5a9d4e0a8e66",
              "title": "docs(mission-control): design workspace product flow",
              "observedAt": "2026-07-11T15:46:26Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "42c0107dff94ad56485cd39a93cbd2172306b206",
              "url": "https://github.com/kungfu-systems/kungfu/commit/42c0107dff94ad56485cd39a93cbd2172306b206",
              "title": "perf(yijinjing): avoid transaction frame refcounts",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "eceb82e66481e5d8ea42e2ba112ee389c46233de",
              "url": "https://github.com/kungfu-systems/kungfu/commit/eceb82e66481e5d8ea42e2ba112ee389c46233de",
              "title": "fix(yijinjing): contain compatibility deprecation warnings",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a8393059cb18bf6ec3cf25ea23301b1da2697254",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a8393059cb18bf6ec3cf25ea23301b1da2697254",
              "title": "test(yijinjing): stabilize transaction qualification",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "26b97c3b9af68c808d5d0da89c0e3c50c1c5f080",
              "url": "https://github.com/kungfu-systems/kungfu/commit/26b97c3b9af68c808d5d0da89c0e3c50c1c5f080",
              "title": "perf(yijinjing): qualify lifetime ownership costs",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "527d8c1f954ba6bd540451e3b9f526be5ed5a28a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/527d8c1f954ba6bd540451e3b9f526be5ed5a28a",
              "title": "fix(yijinjing): isolate reader management snapshots",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e8d1d6d26d6199e39bccfb34118a595bb9ae5471",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e8d1d6d26d6199e39bccfb34118a595bb9ae5471",
              "title": "feat(yijinjing): add exception-safe writer transactions",
              "observedAt": "2026-07-12T08:04:32Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a296e6dfdf3a43340093accafbee646ef97ea821",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a296e6dfdf3a43340093accafbee646ef97ea821",
              "title": "fix(runtime): make error stop ownership local",
              "observedAt": "2026-07-12T08:55:18Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "3fd04734143d4ffb252aab33b3838fb8276c3eba",
              "url": "https://github.com/kungfu-systems/kungfu/commit/3fd04734143d4ffb252aab33b3838fb8276c3eba",
              "title": "docs(core): define strong durability and recovery path",
              "observedAt": "2026-07-12T09:46:09Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6ecd48e6b1a89097430c907122df88b27eabb848",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6ecd48e6b1a89097430c907122df88b27eabb848",
              "title": "feat(profile): add generic composition manager",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0cc689769fd74326856ec19bf63a8811ce72dfd4",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0cc689769fd74326856ec19bf63a8811ce72dfd4",
              "title": "feat(profile): bind assessments to exact query cuts",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "45ff4dfa94f0ee1d288cf8213f9f6d7529336a07",
              "url": "https://github.com/kungfu-systems/kungfu/commit/45ff4dfa94f0ee1d288cf8213f9f6d7529336a07",
              "title": "fix(profile): require installed composition schemas",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7353682b28e99229eb7b1e1ee531b854e2714e17",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7353682b28e99229eb7b1e1ee531b854e2714e17",
              "title": "feat(profile): expose composition query plans",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e554acf2ef58236af6b9c2c84fdf103352191bab",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e554acf2ef58236af6b9c2c84fdf103352191bab",
              "title": "feat(profile): start generic composition catalog",
              "observedAt": "2026-07-12T18:40:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0aa72aedc310b8b42d8fbc323406fcd034f63b32",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0aa72aedc310b8b42d8fbc323406fcd034f63b32",
              "title": "fix(gui): inject complete KFX shared-module contract",
              "observedAt": "2026-07-14T01:16:07Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b9862da2a0187316037b2f7774d20ca339c089a8",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b9862da2a0187316037b2f7774d20ca339c089a8",
              "title": "feat(project-cut): admit live completion episode",
              "observedAt": "2026-07-17T14:38:04Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "aa3cdede12708b95d3859e71361e06955dff0218",
              "url": "https://github.com/kungfu-systems/kungfu/commit/aa3cdede12708b95d3859e71361e06955dff0218",
              "title": "test(project-cut): seal live go completion episode",
              "observedAt": "2026-07-17T14:38:04Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7402-9d55-70f1-b562-1d2dfd86036b",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c1ab522675d653261962c5d66f016bd5e690ecb0",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c1ab522675d653261962c5d66f016bd5e690ecb0",
              "title": "fix(fact): harden portable protocol validation",
              "observedAt": "2026-07-20T14:20:14Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "9daacb38a91e406e07654ec6b1fdf4a9e833b0df",
              "url": "https://github.com/kungfu-systems/kungfu/commit/9daacb38a91e406e07654ec6b1fdf4a9e833b0df",
              "title": "chore(project-cut): bind linear invariant qualification",
              "observedAt": "2026-07-20T18:41:25Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a2762d18251f8630fdd0c9791ea4a5be2c13e5a8",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a2762d18251f8630fdd0c9791ea4a5be2c13e5a8",
              "title": "fix(invariant): qualify Fact native harness cross-platform",
              "observedAt": "2026-07-20T18:41:25Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "8aa1f9ab9a9eee6129be3e43ac6e0acb971da135",
              "url": "https://github.com/kungfu-systems/kungfu/commit/8aa1f9ab9a9eee6129be3e43ac6e0acb971da135",
              "title": "chore(project-cut): publish Agent Hub trunk successor",
              "observedAt": "2026-07-20T22:39:04Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ffe68d7ff52d71cb99cd486053cf298547811e17",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ffe68d7ff52d71cb99cd486053cf298547811e17",
              "title": "docs(core): bind queue-linear KFD-7 ABI cut",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b95b1f459d6ebf02fc5395fe5c05be3a1dfbd7ce",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b95b1f459d6ebf02fc5395fe5c05be3a1dfbd7ce",
              "title": "chore(project-cut): collapse superseded KFD-7 cuts",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c7df73a2bcf724709df552120e0ff2957f58fdca",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c7df73a2bcf724709df552120e0ff2957f58fdca",
              "title": "docs(core): bind rebased KFD-7 ABI successor cut",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/019f7d00-2611-7603-bfa5-716304dfc6cc",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "465c3b27dff85fe229b1f8cabb04bda92d703fd7",
              "url": "https://github.com/kungfu-systems/kungfu/commit/465c3b27dff85fe229b1f8cabb04bda92d703fd7",
              "title": "test(fact): preserve typed ledger boundary assertions",
              "observedAt": "2026-07-20T22:42:22Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "054148cbb45ff607d7cc5d282649485928814390",
              "url": "https://github.com/kungfu-systems/kungfu/commit/054148cbb45ff607d7cc5d282649485928814390",
              "title": "chore(project-cut): republish empty-delta cut on current merge base tip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4cfceb9392d90cb9cfb80b75afd45feb98579460",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4cfceb9392d90cb9cfb80b75afd45feb98579460",
              "title": "chore(project-cut): drop cut drifted by intervening merge-queue tip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "218a6cb16552950ae58699c8994a62d6d23f083a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/218a6cb16552950ae58699c8994a62d6d23f083a",
              "title": "chore(project-cut): republish empty-delta cut on merge-queue tip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "dbad3bdfe7b08c42bc70486f082961b846c8c640",
              "url": "https://github.com/kungfu-systems/kungfu/commit/dbad3bdfe7b08c42bc70486f082961b846c8c640",
              "title": "chore(project-cut): drop rebase-drifted empty-delta cut before republish",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "657a6131eb42f0e311c198b97de115d257b97a90",
              "url": "https://github.com/kungfu-systems/kungfu/commit/657a6131eb42f0e311c198b97de115d257b97a90",
              "title": "chore(project-cut): publish final empty-delta cut for native action authority",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6a411bd6bf428ec34531959f36de9c61033cf224",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6a411bd6bf428ec34531959f36de9c61033cf224",
              "title": "chore(project-cut): drop overlapping pre/post-rebase cut publications",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "64aa1f437e34dad40ae45de1695ef4740e405224",
              "url": "https://github.com/kungfu-systems/kungfu/commit/64aa1f437e34dad40ae45de1695ef4740e405224",
              "title": "fix(core): sync ADR-0123 delivery evidence and architecture health projections",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ff4232a65f43541bff65e2caca02602a2384e946",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ff4232a65f43541bff65e2caca02602a2384e946",
              "title": "fix(core): repair architecture projections after rebase",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2c59c4cf1ccd4351663d080e39565199eae324ca",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2c59c4cf1ccd4351663d080e39565199eae324ca",
              "title": "chore(project-cut): republish empty-delta cut after rebase onto dev/v4/v4.0",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0357cb17bb406af7e3846c13eb53c28eb0fab83d",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0357cb17bb406af7e3846c13eb53c28eb0fab83d",
              "title": "chore(project-cut): stage empty-delta cut for action-geometry native authority",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ff9dc497a8eb96cf99690c735497a3b41a24780e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ff9dc497a8eb96cf99690c735497a3b41a24780e",
              "title": "test(core): shadow-compare action_runtime and confirm authority flip",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7691fff485bca47c03baad870bcd8374e6f49ec1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7691fff485bca47c03baad870bcd8374e6f49ec1",
              "title": "feat(core): wire action_runtime edge and Python shims",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a3795a79b7419167022b4d2505b0caf5b84ec136",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a3795a79b7419167022b4d2505b0caf5b84ec136",
              "title": "feat(core): port Profile action orchestration to libkungfu",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a2339161d158130190cbc86cc6ae674bd473f463",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a2339161d158130190cbc86cc6ae674bd473f463",
              "title": "feat(core): port Domain Profile engine to libkungfu",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "9b1bec9965c20d64fc1ae776aa1718261762368b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/9b1bec9965c20d64fc1ae776aa1718261762368b",
              "title": "feat(core): port Action Geometry evaluator to libkungfu",
              "observedAt": "2026-07-21T05:05:20Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "610ef7c9bb61953e85a8b8cd0972a49a0b32b9bb",
              "url": "https://github.com/kungfu-systems/kungfu/commit/610ef7c9bb61953e85a8b8cd0972a49a0b32b9bb",
              "title": "chore(xinfa): record portable shim cut",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ce3e846c10b07d1239bc5742e210aaf72a112815",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ce3e846c10b07d1239bc5742e210aaf72a112815",
              "title": "fix(xinfa): let Node invoke Windows shim",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "fadac5121d0b36b5a89b0c25d860447ff4ab5b36",
              "url": "https://github.com/kungfu-systems/kungfu/commit/fadac5121d0b36b5a89b0c25d860447ff4ab5b36",
              "title": "chore(xinfa): record Windows qualification cut",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "693a44d4927c1401b28f9e5bf079c4c3b04dd02f",
              "url": "https://github.com/kungfu-systems/kungfu/commit/693a44d4927c1401b28f9e5bf079c4c3b04dd02f",
              "title": "fix(xinfa): qualify wasm shim on Windows",
              "observedAt": "2026-07-21T06:57:59Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1a9e6355b4b162e37a1b9ef01c06b7cc91724038",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1a9e6355b4b162e37a1b9ef01c06b7cc91724038",
              "title": "chore(project-cut): bind refreshed Xinfa context",
              "observedAt": "2026-07-21T10:50:44Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "5e303f2c464b8ebe2d77f87c0a08be231afc212d",
              "url": "https://github.com/kungfu-systems/kungfu/commit/5e303f2c464b8ebe2d77f87c0a08be231afc212d",
              "title": "chore(project-cut): rebind workspace migration to current dev",
              "observedAt": "2026-07-21T10:50:44Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f4adf4c5dbd6c2a7781b8dc58182734585a0185c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f4adf4c5dbd6c2a7781b8dc58182734585a0185c",
              "title": "fix(storage): close workspace layout coverage gaps",
              "observedAt": "2026-07-21T20:24:42Z"
            },
            {
              "agent": "Amp",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Amp",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "8857b44ff5ced6328524508639f30353238f63ed",
              "url": "https://github.com/kungfu-systems/kungfu/commit/8857b44ff5ced6328524508639f30353238f63ed",
              "title": "chore(project-cut): publish composition-replay settlement witness for cut 551ba04b",
              "observedAt": "2026-07-21T22:44:42Z"
            },
            {
              "agent": "Amp",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Amp",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "152eaea082d506e0f24fc559707e9a538615e69e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/152eaea082d506e0f24fc559707e9a538615e69e",
              "title": "fix(project-cut): replay squash-published cut chains order-independently",
              "observedAt": "2026-07-21T22:44:42Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "2901313005f7c9f7cfc31ac67cc4787bc979a74e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/2901313005f7c9f7cfc31ac67cc4787bc979a74e",
              "title": "style(work): format facade contract test",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c09d3be1cf4a586ee1b15a4d56fdffd042f1693e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c09d3be1cf4a586ee1b15a4d56fdffd042f1693e",
              "title": "fix(work): preserve runtime and Cut authority boundaries",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "46df537e1b3c2868fb5eb1a70ed11281eafb59ff",
              "url": "https://github.com/kungfu-systems/kungfu/commit/46df537e1b3c2868fb5eb1a70ed11281eafb59ff",
              "title": "docs(adr): bind Project Cut facade delivery",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f5a9025a605feb4d57e2a386031a0da22d4499b5",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f5a9025a605feb4d57e2a386031a0da22d4499b5",
              "title": "docs(adr): define Project Cut Work facade",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "969f6148881f99da6a81b559efd69b8ad6bb4f04",
              "url": "https://github.com/kungfu-systems/kungfu/commit/969f6148881f99da6a81b559efd69b8ad6bb4f04",
              "title": "feat(work): bind managed runs and settlement plans",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f24b67efd285858d7c85c128cc37c844b35390e2",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f24b67efd285858d7c85c128cc37c844b35390e2",
              "title": "feat(work): add Project Cut facade read model",
              "observedAt": "2026-07-22T04:22:11Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "06fb9eb5465e14bfc3344e224a2f5e10baaca924",
              "url": "https://github.com/kungfu-systems/kungfu/commit/06fb9eb5465e14bfc3344e224a2f5e10baaca924",
              "title": "chore(project-cut): bind 088 queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "6b753fa3633a75876da1b2e691c779f51f4fd186",
              "url": "https://github.com/kungfu-systems/kungfu/commit/6b753fa3633a75876da1b2e691c779f51f4fd186",
              "title": "chore(project-cut): bind 0bee queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "445127935ff72c24a0e9e095ee718ffa507bb92e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/445127935ff72c24a0e9e095ee718ffa507bb92e",
              "title": "chore(project-cut): bind a297 queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "dcf11a4afdcd6d02e4f16f7985a46afca6551c43",
              "url": "https://github.com/kungfu-systems/kungfu/commit/dcf11a4afdcd6d02e4f16f7985a46afca6551c43",
              "title": "chore(project-cut): bind final rebased baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "bec10e401e7a404844f1f9802a75604ae14e3c7e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/bec10e401e7a404844f1f9802a75604ae14e3c7e",
              "title": "chore(project-cut): bind final queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e9fce77cef2b462bea2743edff00ef4500543445",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e9fce77cef2b462bea2743edff00ef4500543445",
              "title": "chore(project-cut): bind verified completion evidence",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "98c99300d0eff4e5cf1bd9391a3b59009d849207",
              "url": "https://github.com/kungfu-systems/kungfu/commit/98c99300d0eff4e5cf1bd9391a3b59009d849207",
              "title": "chore(project-cut): seal verified integration episode",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b5f3508b5a61e63c83e3442648d98739b48b2b3d",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b5f3508b5a61e63c83e3442648d98739b48b2b3d",
              "title": "chore(project-cut): admit queue integration",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "20dd3cc0b04b18bd621ce50bac7108cdb1987e6e",
              "url": "https://github.com/kungfu-systems/kungfu/commit/20dd3cc0b04b18bd621ce50bac7108cdb1987e6e",
              "title": "chore(project-cut): seal queue integration evidence",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "25a0d13f081324101ecfcebed7fd1b4c6cf341cc",
              "url": "https://github.com/kungfu-systems/kungfu/commit/25a0d13f081324101ecfcebed7fd1b4c6cf341cc",
              "title": "chore(project-cut): bind protected queue baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "55d2ab229611dae8b18b76d5247f148024f4c73b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/55d2ab229611dae8b18b76d5247f148024f4c73b",
              "title": "chore(project-cut): bind latest dev baseline",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "4516a55d3f0ba8a4e2e1d9d7d4cd1fbcf768ef68",
              "url": "https://github.com/kungfu-systems/kungfu/commit/4516a55d3f0ba8a4e2e1d9d7d4cd1fbcf768ef68",
              "title": "chore(project-cut): bind Windows fixture qualification",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "148a179d4b94a51641d733eafac9d9ca58367eb6",
              "url": "https://github.com/kungfu-systems/kungfu/commit/148a179d4b94a51641d733eafac9d9ca58367eb6",
              "title": "test(core): make API fixture cleanup non-throwing",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b9b91128007cd92ea1717543849402175545244a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b9b91128007cd92ea1717543849402175545244a",
              "title": "chore(project-cut): bind locked source transport",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "026a0724115316faa28e3a2de26c344b8f02022c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/026a0724115316faa28e3a2de26c344b8f02022c",
              "title": "ci(gate): persist locked source transport policy",
              "observedAt": "2026-07-23T01:16:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex\\nGoal: 2026-07-23-agent-hub-binary-kfd123-passport-reference\\nMission: kungfu-technical-stewardship",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b82786544e4474aecd6095b78c641ea2868dfb22",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b82786544e4474aecd6095b78c641ea2868dfb22",
              "title": "fix(assignment): bind admitted work to native source",
              "observedAt": "2026-07-23T06:26:29Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "00bc84e9bc51aff1fc2bc1703853a323d3a9da44",
              "url": "https://github.com/kungfu-systems/kungfu/commit/00bc84e9bc51aff1fc2bc1703853a323d3a9da44",
              "title": "fix(assignment): reject partial source assemblies",
              "observedAt": "2026-07-24T00:23:19Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "f6e6e3e74d64279bb50097decbb63636001522ca",
              "url": "https://github.com/kungfu-systems/kungfu/commit/f6e6e3e74d64279bb50097decbb63636001522ca",
              "title": "fix(assignment): refresh initialized workspace identity",
              "observedAt": "2026-07-24T00:23:19Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e054d96a7b36fe9aa149108b2a007cc46f8cead9",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e054d96a7b36fe9aa149108b2a007cc46f8cead9",
              "title": "fix(assignment): preserve source admission diagnostics",
              "observedAt": "2026-07-24T00:23:19Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "50d169751e092b34955c4e42c696ca87bf09d3cc",
              "url": "https://github.com/kungfu-systems/kungfu/commit/50d169751e092b34955c4e42c696ca87bf09d3cc",
              "title": "fix(mission-control): authenticate native completion evidence",
              "observedAt": "2026-07-24T03:02:51Z"
            },
            {
              "agent": "Cursor",
              "markerType": "co-author-trailer",
              "marker": "Co-authored-by: Cursor",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "54ed3edce763f156d41991d55c83337abb3780cd",
              "url": "https://github.com/kungfu-systems/kungfu/commit/54ed3edce763f156d41991d55c83337abb3780cd",
              "title": "feat(core): admit native Work journal ownership",
              "observedAt": "2026-07-25T01:59:58Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "589bdf1fd2f794f67414549cf1c85dac2816ddda",
              "url": "https://github.com/kungfu-systems/kungfu/commit/589bdf1fd2f794f67414549cf1c85dac2816ddda",
              "title": "docs(primitive): record authority closure delivery",
              "observedAt": "2026-07-25T03:17:07Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "74d2f5f1894f26d33346ab26b6d2a3ef85a6596a",
              "url": "https://github.com/kungfu-systems/kungfu/commit/74d2f5f1894f26d33346ab26b6d2a3ef85a6596a",
              "title": "feat(primitive): close authority consumption paths",
              "observedAt": "2026-07-25T03:17:07Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: codex/pro-2088/root",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "cbcce6c49b20a6a14da7535ac0fbae9604cda485",
              "url": "https://github.com/kungfu-systems/kungfu/commit/cbcce6c49b20a6a14da7535ac0fbae9604cda485",
              "title": "feat(agent): add repository work experiment",
              "observedAt": "2026-07-27T14:37:40Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0ebf87ebdb5be31996b2ddb0dc0abf62b1bdafeb",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0ebf87ebdb5be31996b2ddb0dc0abf62b1bdafeb",
              "title": "fix(core): adopt Linux ARM64 libnode package",
              "observedAt": "2026-07-27T19:28:56Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "55c406c91c9ad37b55136a14426d7b31e28140ee",
              "url": "https://github.com/kungfu-systems/kungfu/commit/55c406c91c9ad37b55136a14426d7b31e28140ee",
              "title": "chore(release): refresh qualification projections",
              "observedAt": "2026-07-27T22:06:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d404ada50a2aeaee213436fa97ea95cd27d9cff3",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d404ada50a2aeaee213436fa97ea95cd27d9cff3",
              "title": "fix(release): scope ARM64 Hub qualification to CLI",
              "observedAt": "2026-07-27T22:06:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d22606161449e7c6c84fcbf890506594e55b1b62",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d22606161449e7c6c84fcbf890506594e55b1b62",
              "title": "fix(release): preserve execution context compatibility",
              "observedAt": "2026-07-27T23:06:13Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e097ed411cceb03a9a390f7b7428c145dc53b30b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e097ed411cceb03a9a390f7b7428c145dc53b30b",
              "title": "fix(deps): remove stale Buildchain KFD override",
              "observedAt": "2026-07-28T00:28:21Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "eb6e53284f7462208bf65b80e1c25e1b2cbcddf1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/eb6e53284f7462208bf65b80e1c25e1b2cbcddf1",
              "title": "fix(core): consume qualified libnode alpha.3",
              "observedAt": "2026-07-28T00:28:21Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d68fe84a5935780a933df4e19e6d094ee5fb06ab",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d68fe84a5935780a933df4e19e6d094ee5fb06ab",
              "title": "feat(ci): add dedicated local agent patrol",
              "observedAt": "2026-07-28T09:02:39Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "ce9d80f9bec73813c230cc214c334716b7bc5ca7",
              "url": "https://github.com/kungfu-systems/kungfu/commit/ce9d80f9bec73813c230cc214c334716b7bc5ca7",
              "title": "fix(ci): support rootless Patrol bind mounts",
              "observedAt": "2026-07-28T10:40:53Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e8cfee73d2569ed6321c7422dae72038ba027596",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e8cfee73d2569ed6321c7422dae72038ba027596",
              "title": "fix(readme): preserve public source signature",
              "observedAt": "2026-07-30T14:31:56Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "c08720588a64c5f597e04bb620dbbbe11f81c488",
              "url": "https://github.com/kungfu-systems/kungfu/commit/c08720588a64c5f597e04bb620dbbbe11f81c488",
              "title": "docs(readme): lead with agent work continuity",
              "observedAt": "2026-07-30T14:31:56Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b2d71e03f13e804f717182c0fd4cf8f72a2c771f",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b2d71e03f13e804f717182c0fd4cf8f72a2c771f",
              "title": "fix(signing): consume source-bound native identity",
              "observedAt": "2026-07-30T22:39:45Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "e8853e3a364f7d6f76296d513300c8691910b1d1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/e8853e3a364f7d6f76296d513300c8691910b1d1",
              "title": "perf(ci): add auditable Windows compiler cache",
              "observedAt": "2026-07-31T00:50:39Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "b0eccac6a95e22ca5b5c1462451c3039ab6ca42c",
              "url": "https://github.com/kungfu-systems/kungfu/commit/b0eccac6a95e22ca5b5c1462451c3039ab6ca42c",
              "title": "fix(release): align Alpha sentinel with demo catalog",
              "observedAt": "2026-07-31T03:52:09Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "7536ebf8a0157e1e09f92a0dc8bbdea69fae2608",
              "url": "https://github.com/kungfu-systems/kungfu/commit/7536ebf8a0157e1e09f92a0dc8bbdea69fae2608",
              "title": "fix(signing): delegate notarization to Buildchain",
              "observedAt": "2026-07-31T04:32:17Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "0e33bb0dd2b4a9246d0eaf493ec73ea32fa1b6d1",
              "url": "https://github.com/kungfu-systems/kungfu/commit/0e33bb0dd2b4a9246d0eaf493ec73ea32fa1b6d1",
              "title": "fix(release): pin signing lifecycle manifest authority",
              "observedAt": "2026-07-31T07:04:10Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "d423cf756aa3668a0ee48e8e3215bd1740adf629",
              "url": "https://github.com/kungfu-systems/kungfu/commit/d423cf756aa3668a0ee48e8e3215bd1740adf629",
              "title": "fix(kfx): admit Projects capability in Core policy",
              "observedAt": "2026-07-31T08:49:24Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "a5e19ac2287ab0628553d31f81080ffd183429c3",
              "url": "https://github.com/kungfu-systems/kungfu/commit/a5e19ac2287ab0628553d31f81080ffd183429c3",
              "title": "docs(shifu): bind Windows repair PR evidence",
              "observedAt": "2026-07-31T09:52:26Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "1f46a9d43b675e83ac02909d35166b03848ae346",
              "url": "https://github.com/kungfu-systems/kungfu/commit/1f46a9d43b675e83ac02909d35166b03848ae346",
              "title": "fix(shifu): bind Windows consumer to exact closure",
              "observedAt": "2026-07-31T09:52:26Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "99d4e2f2023e3c7b09ec68fc98757f4da0aca89b",
              "url": "https://github.com/kungfu-systems/kungfu/commit/99d4e2f2023e3c7b09ec68fc98757f4da0aca89b",
              "title": "test(shifu): reject registrar artifact size drift",
              "observedAt": "2026-07-31T15:28:27Z"
            },
            {
              "agent": "Codex",
              "markerType": "agent-field",
              "marker": "Agent: Codex",
              "repository": "kungfu-systems/kungfu",
              "branch": "dev/v4/v4.0",
              "sha": "3ffa6a78bcccf56ec7a92d094858df0ab1359807",
              "url": "https://github.com/kungfu-systems/kungfu/commit/3ffa6a78bcccf56ec7a92d094858df0ab1359807",
              "title": "refactor(shifu): share local artifact identity validation",
              "observedAt": "2026-07-31T15:28:27Z"
            }
          ]
        }
      }
    },
    "comparison": {
      "pullRequestRatio": 78.17,
      "changedLinesRatio": 441.12,
      "changedFilesRatio": 273.46,
      "kungfuPrimaryAuthor": {
        "account": "dongkeren",
        "mergedPullRequests": 3913,
        "share": 0.9626
      },
      "publicAuthorLeverage": {
        "unit": "public output per accountable GitHub author identity over the fixed calendar window",
        "kungfuPrimary": {
          "account": "dongkeren",
          "mergedPullRequests": 3913,
          "activeMergeDays": 30,
          "totalAdditions": 2327162,
          "totalDeletions": 524869,
          "grossChangedLines": 2852031,
          "totalChangedFiles": 47662,
          "medianChangedLinesPerPullRequest": 119,
          "central90": {
            "pullRequests": 3523,
            "grossChangedLines": 1326994,
            "meanChangedLinesPerPullRequest": 376.67
          },
          "topTenGrossChangedLinesShare": 0.1604
        },
        "axTopAuthor": {
          "account": "joycel-github",
          "mergedPullRequests": 19,
          "activeMergeDays": 10,
          "totalAdditions": 1040,
          "totalDeletions": 615,
          "grossChangedLines": 1655,
          "totalChangedFiles": 44,
          "medianChangedLinesPerPullRequest": 67,
          "central90": {
            "pullRequests": 19,
            "grossChangedLines": 1655,
            "meanChangedLinesPerPullRequest": 87.11
          },
          "topTenGrossChangedLinesShare": 0.8767
        },
        "axTopThree": {
          "accounts": [
            "joycel-github",
            "rakyll",
            "wjjclaud"
          ],
          "combined": {
            "mergedPullRequests": 45,
            "activeMergeDays": 13,
            "totalAdditions": 3400,
            "totalDeletions": 1461,
            "grossChangedLines": 4861,
            "totalChangedFiles": 159,
            "medianChangedLinesPerPullRequest": 67,
            "central90": {
              "pullRequests": 41,
              "grossChangedLines": 4019,
              "meanChangedLinesPerPullRequest": 98.02
            },
            "topTenGrossChangedLinesShare": 0.5785
          },
          "average": {
            "mergedPullRequests": 15,
            "grossChangedLines": 1620.33,
            "totalChangedFiles": 53
          }
        },
        "axAllAuthors": {
          "accounts": [
            "joycel-github",
            "rakyll",
            "wjjclaud",
            "zbl94"
          ],
          "combined": {
            "mergedPullRequests": 52,
            "activeMergeDays": 15,
            "totalAdditions": 6821,
            "totalDeletions": 1563,
            "grossChangedLines": 8384,
            "totalChangedFiles": 194,
            "medianChangedLinesPerPullRequest": 92,
            "central90": {
              "pullRequests": 48,
              "grossChangedLines": 6127,
              "meanChangedLinesPerPullRequest": 127.65
            },
            "topTenGrossChangedLinesShare": 0.6156
          },
          "average": {
            "mergedPullRequests": 13,
            "grossChangedLines": 2096,
            "totalChangedFiles": 48.5
          }
        },
        "ratios": {
          "kungfuPrimaryToAxTopAuthor": {
            "mergedPullRequests": 205.95,
            "grossChangedLines": 1723.28,
            "totalChangedFiles": 1083.23
          },
          "kungfuPrimaryToAxTopThreeCombined": {
            "mergedPullRequests": 86.96,
            "grossChangedLines": 586.72,
            "totalChangedFiles": 299.76
          },
          "kungfuPrimaryToAxTopThreeAverage": {
            "mergedPullRequests": 260.87,
            "grossChangedLines": 1760.15,
            "totalChangedFiles": 899.28
          },
          "kungfuPrimaryToAxAllAuthorsCombined": {
            "mergedPullRequests": 75.25,
            "grossChangedLines": 340.18,
            "totalChangedFiles": 245.68
          },
          "kungfuPrimaryToAxAllAuthorsAverage": {
            "mergedPullRequests": 301,
            "grossChangedLines": 1360.7,
            "totalChangedFiles": 982.72
          }
        }
      }
    },
    "pullRequestAudit": {
      "contract": "libkungfu.pr-corpus-audit/v1",
      "window": {
        "id": "operating",
        "label": "Buildchain operating window",
        "startInclusive": "2026-07-02T00:00:00.000Z",
        "endExclusive": "2026-08-01T00:00:00.000Z",
        "githubQualifier": "merged:2026-07-02T00:00:00Z..2026-07-31T23:59:59Z",
        "duration": "P30D"
      },
      "totalPullRequests": 4065,
      "bodyCoverage": {
        "nonEmpty": 4065,
        "summarySection": 2787,
        "validationSection": 1011,
        "summaryAndValidation": 964
      },
      "sizeDistribution": {
        "median": 106,
        "p25": 17,
        "p75": 542,
        "p90": 1640
      },
      "totalChangedFiles": 53052,
      "zeroGrossChangedLines": 223,
      "botAuthored": 87,
      "sample": {
        "method": "For each declared Conventional Commit type, sort every matching PR by SHA-256(seed:type:repository#number) and select the lowest digest.",
        "seed": "kungfu-pr-audit-v1",
        "types": [
          "feat",
          "fix",
          "ci",
          "docs",
          "refactor",
          "release"
        ],
        "records": [
          {
            "type": "feat",
            "rank": "001ccd6f53e9ea0636126cdc7798a311894305be77931be6d7c2bcf505bee319",
            "repository": "kungfu-systems/kungfu",
            "number": 971,
            "url": "https://github.com/kungfu-systems/kungfu/pull/971",
            "title": "feat(core): govern public contract compatibility",
            "author": "dongkeren",
            "mergedAt": "2026-07-15T21:14:08Z",
            "additions": 1023,
            "deletions": 12,
            "changedFiles": 13,
            "summaryExcerpt": "Classify every exported Core contract and add executable compatibility evidence for stable C ABI, public headers, retained journal layout, binding parity, and deprecation policy...",
            "validationSectionPresent": false
          },
          {
            "type": "fix",
            "rank": "000cccf1549a4d4645169537542e4a4a8119ae628e85de63a7c4e28084967525",
            "repository": "kungfu-systems/buildchain",
            "number": 276,
            "url": "https://github.com/kungfu-systems/buildchain/pull/276",
            "title": "fix(release): keep active dev branch current",
            "author": "dongkeren",
            "mergedAt": "2026-07-02T07:08:26Z",
            "additions": 230,
            "deletions": 87,
            "changedFiles": 11,
            "summaryExcerpt": "update release promotion so the latest minor line moves the repository default branch to its dev branch",
            "validationSectionPresent": false
          },
          {
            "type": "ci",
            "rank": "0102e3ed78bea7143404f8adb3bc70cbf1e2fc6b541a95ae10ce82abcfa0f2ca",
            "repository": "kungfu-systems/site-kungfu-tech",
            "number": 13,
            "url": "https://github.com/kungfu-systems/site-kungfu-tech/pull/13",
            "title": "ci: enable standard Buildchain release flow",
            "author": "dongkeren",
            "mergedAt": "2026-07-04T01:15:36Z",
            "additions": 24,
            "deletions": 18,
            "changedFiles": 4,
            "summaryExcerpt": "enable Buildchain preview apply, preview cleanup apply, and staging apply for site-kungfu-tech",
            "validationSectionPresent": false
          },
          {
            "type": "docs",
            "rank": "00cc4658b214598575eb254784721f20707cd6193f3c0476b6d7c9719ca7a89b",
            "repository": "kungfu-systems/kungfu",
            "number": 232,
            "url": "https://github.com/kungfu-systems/kungfu/pull/232",
            "title": "docs(skill): define Kungfu Skill architecture",
            "author": "dongkeren",
            "mergedAt": "2026-07-05T02:25:40Z",
            "additions": 575,
            "deletions": 0,
            "changedFiles": 5,
            "summaryExcerpt": "add ADR-0015 for Kungfu Skill as the agent context layer above kfx",
            "validationSectionPresent": true
          },
          {
            "type": "refactor",
            "rank": "01e4838ff5702c310ffbb69b1cb9dcc51e1e4a5cc16574ced3bac08774b94c9d",
            "repository": "kungfu-systems/kungfu",
            "number": 227,
            "url": "https://github.com/kungfu-systems/kungfu/pull/227",
            "title": "refactor: fold the kfs SDK into the 'kungfu sdk' subcommand",
            "author": "dongkeren",
            "mergedAt": "2026-07-04T23:54:30Z",
            "additions": 156,
            "deletions": 221,
            "changedFiles": 44,
            "summaryExcerpt": "Retire the standalone kfs command and reach the application-assembly toolkit as 'kungfu sdk': rename developer/sdk to sdk.js, add the sdk console subcommand (runs the SDK throug...",
            "validationSectionPresent": false
          },
          {
            "type": "release",
            "rank": "0004eb583fbf03e7b9ff54621c452392f5b9e4428db022b0413b12c0fd807bcf",
            "repository": "kungfu-systems/build-images",
            "number": 186,
            "url": "https://github.com/kungfu-systems/build-images/pull/186",
            "title": "release(alpha): publish Aeron native qualification kit",
            "author": "dongkeren",
            "mergedAt": "2026-07-16T00:49:58Z",
            "additions": 855,
            "deletions": 1,
            "changedFiles": 9,
            "summaryExcerpt": "publish the first reviewed `aeron-native-kit` image family",
            "validationSectionPresent": true
          }
        ]
      },
      "boundaries": [
        "Changed-line and changed-file counts measure visible change surface, not quality or value.",
        "Generated files, repeated edits, release automation, and zero-line GitHub records remain in the full dataset.",
        "The deterministic sample is a navigation aid across declared work types, not proof that every PR has the same depth."
      ]
    },
    "boundaries": [
      "A merged pull request is a public work item, not a feature, quality, maturity, or value unit.",
      "The comparison observes public GitHub delivery only. Google internal work and all other private work are outside the dataset.",
      "The scopes intentionally reflect the two real organization forms: AX is one product repository; Kungfu is a multi-repository product and release system.",
      "Author accounts are public GitHub identities. They do not by themselves identify whether a human or an Agent produced the underlying change.",
      "Per-author comparisons observe public responsibility identities, not verified team headcount, labor hours, employment roles, or individual authorship of every line.",
      "Kungfu pull requests operate as settlement objects while AX pull requests follow a conventional contribution workflow; their counts are visible responsibility throughput, not interchangeable feature units.",
      "Additions, deletions, and changed-file totals are gross PR statistics and may include generated files, vendored material, formatting, or repeated edits.",
      "Explicit attribution markers establish some Agent participation in both repositories. AX's Gemini co-author history predates the measured windows; Kungfu's census spans the v4 bootstrap through the operating cutoff.",
      "Attribution examples do not prove AI authorship of every change or isolate Agent use as the sole cause of the output difference.",
      "Different review, merge, and PR-splitting disciplines remain a confounder; the raw records are published so readers can test alternative measures."
    ]
  },
  "sources": [
    {
      "id": "google-ax-v0.1.0-release",
      "owner": "google/ax",
      "kind": "git-document",
      "repository": "https://github.com/google/ax",
      "ref": "8946475c236a7ce30e81b47393937ae1b1855eed",
      "path": "README.md",
      "sha256": "0ec2759bf3021cd7fb659ecc0582e8b7001a9418923330b28d47240934b61066",
      "tag": "v0.1.0",
      "commit": "8946475c236a7ce30e81b47393937ae1b1855eed",
      "publishedAt": "2026-05-20T00:12:05Z",
      "url": "https://github.com/google/ax/releases/tag/v0.1.0"
    },
    {
      "id": "google-ax-runtime-readme",
      "owner": "google/ax",
      "kind": "git-document",
      "repository": "https://github.com/google/ax",
      "ref": "8ee3b7d734264b6e3c86b1afe63b08ba7f851284",
      "path": "README.md",
      "sha256": "512f605ecbf92346d79f3c4e6b4b48821abb6b01b3f5a875f86a6da28b176db1"
    },
    {
      "id": "kungfu-v4-first-build",
      "owner": "kungfu-systems/kungfu",
      "kind": "git-document",
      "repository": "https://github.com/kungfu-systems/kungfu",
      "ref": "a20748de6117b627d8ad9e41551f53fe7fa9f5f2",
      "path": "framework/core/.v4/README.md",
      "sha256": "89733b0cbc7ff5befca1bbc1938dfc96054e08c850514e97c9f92f7dbb296be3",
      "committedAt": "2026-06-16T18:01:10+08:00",
      "url": "https://github.com/kungfu-systems/kungfu/commit/a20748de6117b627d8ad9e41551f53fe7fa9f5f2"
    },
    {
      "id": "kungfu-evolution-timeline",
      "owner": "kungfu-systems/kungfu",
      "kind": "git-document",
      "repository": "https://github.com/kungfu-systems/kungfu",
      "ref": "445b2fd84ec7f613ccbfc3d5f06980a3b07f0690",
      "path": "docs/evolution/timeline.md",
      "sha256": "134837a0aa6b49a92d22c015a7fdd1c1618c8e2816403710f6814ee42f92c4c6"
    },
    {
      "id": "kungfu-current-readme",
      "owner": "kungfu-systems/kungfu",
      "kind": "git-document",
      "repository": "https://github.com/kungfu-systems/kungfu",
      "ref": "445b2fd84ec7f613ccbfc3d5f06980a3b07f0690",
      "path": "README.md",
      "sha256": "5324b9578d391bb452ee4e31d6302691fd706508886e3086bba4fac95a31834a"
    }
  ]
}
