)]}'
{
  "commit": "57092b1ca3a553b9a17ea5478dc506b3f31786de",
  "tree": "a8b6ba2a10b189d8561d284c271f16acf5b1dfa5",
  "parents": [
    "d4bd8eaa2e6fdc7591df9fcbb6da8eb326fb0e15"
  ],
  "author": {
    "name": "Fabian Meumertzheim",
    "email": "fabian@meumertzhe.im",
    "time": "Tue Aug 25 19:25:34 2026 +0200"
  },
  "committer": {
    "name": "Fabian Meumertzheim",
    "email": "fabian@meumertzhe.im",
    "time": "Tue Aug 25 19:25:34 2026 +0200"
  },
  "message": "coverage: decode baseline block positions with covdata\n\nThe baseline coverage action ran cmd/cover\u0027s legacy single-file mode\nonce per source file and parsed the position table out of the generated\nGo source, because covdata was unavailable: Go 1.25 dropped the prebuilt\nbinary from the distribution, and the builder cannot decode a coverage\nmeta-data file in process since \"go build\" rejects the internal/coverage\nimports.\n\nBuild covdata from the SDK\u0027s own sources instead, alongside pack, which\nhas been built this way since Go 1.25 dropped its prebuilt binary too.\nThe bootstrap action already primes a Go build cache with most of the\nneeded dependencies, so the extra build is cheap, and a covdata compiled\nfrom its own SDK decodes whatever meta-data format that SDK emits by\nconstruction.\n\nWith covdata available, the action instruments the package once with\n-pkgcfg and EmitMetaFile, the mechanism \"go test -cover\" uses for a\npackage with no test files, and decodes the emitted meta-data file with\n\"covdata textfmt\". Local mode records each source file under the\nexec-root-relative name it was given on the command line, so the paths\ncome out right without any mapping. A package with no function bodies\nyields an empty meta file, which replaces re-parsing the sources as the\nstructural signal that there is genuinely nothing to cover, while an\nabsent meta file still fails the action loudly.\n\nThis drops the AST parsing of generated cover output entirely and runs\ntwo subprocesses per package instead of one per source file.\n\nClaude-Session: https://claude.ai/code/session_01CV2HNHjbahhjHBtW8N5Cfo\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5da612568be5da41a15c0ed67b7da5bbf15b2e52",
      "old_mode": 33188,
      "old_path": "go/private/actions/baseline_coverage.bzl",
      "new_id": "00fad249598f858ed0fa842a3509f1d5d93d9ea8",
      "new_mode": 33188,
      "new_path": "go/private/actions/baseline_coverage.bzl"
    },
    {
      "type": "modify",
      "old_id": "8cbcadd86923b9b5618359227a6fcb763eb87cf3",
      "old_mode": 33188,
      "old_path": "go/private/go_toolchain.bzl",
      "new_id": "e1430cd8af0dd7efea1e05fc62bc57b1e6ec0f24",
      "new_mode": 33188,
      "new_path": "go/private/go_toolchain.bzl"
    },
    {
      "type": "modify",
      "old_id": "9029ddffb3f86aea36046bae2ae4a1f824df42e2",
      "old_mode": 33188,
      "old_path": "go/private/rules/binary.bzl",
      "new_id": "c111ce5e564c543500e52e91dba82463a4aa450d",
      "new_mode": 33188,
      "new_path": "go/private/rules/binary.bzl"
    },
    {
      "type": "modify",
      "old_id": "4f055b26dc709e2b5287681aa377426c64985509",
      "old_mode": 33261,
      "old_path": "go/private/rules/binary_wrapper.sh",
      "new_id": "da8871d84d61bd0aa7fd5a723ce053593103d567",
      "new_mode": 33261,
      "new_path": "go/private/rules/binary_wrapper.sh"
    },
    {
      "type": "modify",
      "old_id": "beee5796d0831ab94f15ff74746bf557890dfcfa",
      "old_mode": 33188,
      "old_path": "go/private/sdk_build_defs.bzl",
      "new_id": "8a9db0c7ca7b22deec845659767702c3f5d1a66a",
      "new_mode": 33188,
      "new_path": "go/private/sdk_build_defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "ef25ba7d5b91f229bfe32b7395a403566b7a7254",
      "old_mode": 33188,
      "old_path": "go/tools/builders/baseline_coverage.go",
      "new_id": "5ee40c85e86be1a14fb67b34de883484bde2ad8c",
      "new_mode": 33188,
      "new_path": "go/tools/builders/baseline_coverage.go"
    }
  ]
}
