)]}'
{
  "log": [
    {
      "commit": "e8a4348692a44c3a3a7157ede01d0407cb0dd034",
      "tree": "81562ee51c55b472e3eb012b7694c4f9065986c7",
      "parents": [
        "54624f998d64d74146c63e7f477bcc201d1c44e9"
      ],
      "author": {
        "name": "Sanghyuk Jung",
        "email": "benelog@gmail.com",
        "time": "Tue Aug 04 21:42:18 2026 +0900"
      },
      "committer": {
        "name": "Robert Griesemer",
        "email": "gri@google.com",
        "time": "Tue Aug 11 10:01:19 2026 -0700"
      },
      "message": "refactor/satisfy: fix \"the the\" typo\n\nRemove the duplicated word \"the\" in the package doc comment.\n\nChange-Id: I627976040a94c4b11c8a3ba03e097d0bf1fd2c65\nReviewed-on: https://go-review.googlesource.com/c/tools/+/810200\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "54624f998d64d74146c63e7f477bcc201d1c44e9",
      "tree": "d60680f9fc1c762a6f5df6093cdb146365091335",
      "parents": [
        "c117dde2d0e430d319f475cec3f637c2c9efb56f"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Aug 10 16:50:08 2026 -0400"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Aug 10 14:42:24 2026 -0700"
      },
      "message": "internal/typesinternal: suppress jsonv2 warning\n\nThe GOEXPERIMENT\u003djsonv2 added in Go1.25 allows\nimports of encoding/json/v2 and encoding/json/jsontext.\n\nIf the go version is at least 1.25, we should suppress\n\"too new\" warnings for symbols in these packages\nto avoid a false positive (since we don\u0027t know the specific\nbuild tags when determining the too new symbols).\n\nFixes golang/go#80691\n\nChange-Id: Id4f35e00c561f49d367da9e122c2bbc960c7f440\nReviewed-on: https://go-review.googlesource.com/c/tools/+/812840\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "c117dde2d0e430d319f475cec3f637c2c9efb56f",
      "tree": "e8d77157b2f06d4d3a86ece761d58ed045da9aef",
      "parents": [
        "b5b860c7f55cd9ece1dcfcc4a7def912351cb8e9"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Fri Jul 24 00:16:23 2026 +0800"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Aug 10 14:09:24 2026 -0700"
      },
      "message": "gopls/internal/golang: normalize instantiated fields before rename\n\nWhen a rename is initiated at a field selection on an instantiated\ngeneric type, go/types reports a synthetic *types.Var. The rename\noperation consequently updates other instantiated uses but misses the\noriginal field declaration.\n\nNormalize field targets to their origin before performing the rename.\nThis ensures that the declaration, selector uses, and keyed composite\nliterals are updated together.\n\nAdd a marker test for a rename initiated at an instantiated field\nselection.\n\nFixes golang/go#80542\n\nChange-Id: I8cdd107e6f4de584879f896ebf27d3c823b87473\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804901\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b5b860c7f55cd9ece1dcfcc4a7def912351cb8e9",
      "tree": "90b1c72ce31cca244a9b71a1bc9992158b0b47a7",
      "parents": [
        "bf54bcd2f14a330f0dcffa4cf631235de771bde2"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Sat Jul 25 15:11:03 2026 +0800"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Aug 10 14:08:08 2026 -0700"
      },
      "message": "gopls/internal/mcp: report one-based reference line numbers\n\nformatReferences currently embeds zero-based LSP line numbers in its\nhuman-readable output. This causes, for example, a declaration on the\nthird source line to be reported as being on line 2.\n\nConvert reference line numbers to one-based values for display while\nretaining zero-based indexing when reading the corresponding source\nline.\n\nUpdate the MCP marker tests accordingly.\n\nChange-Id: I9b7675756e8b828ac7f00fbe371d7e908cfe426c\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805820\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\n"
    },
    {
      "commit": "bf54bcd2f14a330f0dcffa4cf631235de771bde2",
      "tree": "37f39837b30ebbdb13cac48c3e37baa09802d894",
      "parents": [
        "4b32d669ce28c3b3e274a377a955063223a90350"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Mon Aug 03 12:52:38 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri Aug 07 07:59:35 2026 -0700"
      },
      "message": "gopls/internal/golang/completion: avoid SEGV from double deslicing\n\nCompleting at the cursor in\nfunc f[T ~[]int](x T) {var s string;  _ \u003d append(x, append(\u003ccursor\u003ex, x...)...)\ncauses an extra deslicing in expectedCallParamType which makes the\nexpected param type as both variadic and nil which produces []nil\nas the inner append\u0027s type, which gets matched against s\u0027s type\nfor completion, which seems to cause the panic.\n\nThe fix is to avoid slicing if there\u0027s a ..., in which case a slice is\nbeing passed directly, so the code doesn\u0027t need to deslice.\n\nFixes: golang/go#74564\nChange-Id: I4771417438969ba494ac51283c7932bbf26cb117\nReviewed-on: https://go-review.googlesource.com/c/tools/+/809600\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "4b32d669ce28c3b3e274a377a955063223a90350",
      "tree": "e0a24b84955eee71bc97aaed0ce9404dee521062",
      "parents": [
        "e6da7e43e166478a3fa31e18fe3c07fe1379c7db"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Sun Aug 02 09:15:36 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Thu Aug 06 11:00:48 2026 -0700"
      },
      "message": "refactor/satisfy/find.go: fix panic on type errors\n\nThis CL fixes a panic that occurs when trying to use the Type()\nwhen there is a type error in a dependency during a Rename operation.\n\nThere is also a new test, checking that some parts of a Rename still\nsucceeds.\n\nThere are new checks in two places where the code seemed overly\noptimistic.\n\nFixes: golang/go#71657\nChange-Id: I63a2128f8a34a8dc7eddc4165e45a406389e89aa\nReviewed-on: https://go-review.googlesource.com/c/tools/+/809220\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "e6da7e43e166478a3fa31e18fe3c07fe1379c7db",
      "tree": "f11a21afb8f3dc480693a4a5a9854f8efb34b94c",
      "parents": [
        "da22a7bb2f9a909d2663362e582cf97771eeefab"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Wed Aug 05 17:26:36 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Aug 06 10:24:14 2026 -0700"
      },
      "message": "gopls/internal/protocol/semtok: instructions for modifier/type changes\n\nGopls now honors the modifiers sent by the language client and only\nreturns modifiers if the language client supports them.\n\nWhen gopls add / delete custom modifiers, the vscode-go should be\nupdated as well to keep in sync.\n\nFor golang/go#80736\n\nChange-Id: Ib08d5a37f7e6ff8aceb1c06513b2da7f1d879303\nReviewed-on: https://go-review.googlesource.com/c/tools/+/811140\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "da22a7bb2f9a909d2663362e582cf97771eeefab",
      "tree": "6c9bfb9ba033244b57eca25caf94f41110341421",
      "parents": [
        "952c3dc896d9d9d3006ba2e9f2fe205129ba16c1"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Sat Aug 01 13:24:38 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Tue Aug 04 11:10:30 2026 -0700"
      },
      "message": "gopls/internal/golang/definition: find the right unsafe\n\nThe old code had a comment explaining why it was wrong.\nThe new code looks up the package \u0027unsafe\u0027 refers to.\n\nThe old code used a PackageID which might vary in other build systems,\nwhile the new code uses the package path.\n\nFixes: golang/go#71947\nChange-Id: Ie2ead938277df9cbb1e23dc1dd14cb0a3bd6bc24\nReviewed-on: https://go-review.googlesource.com/c/tools/+/809140\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "952c3dc896d9d9d3006ba2e9f2fe205129ba16c1",
      "tree": "ae04f766bf22c05516a824c970c5c3e29fbd0d9c",
      "parents": [
        "1f62bc851567b95a5a7d7bd01a3e6ac619d0e3f2"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Sat Jul 25 23:18:51 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Aug 03 12:59:35 2026 -0700"
      },
      "message": "cmd/present: fix obsolete flag in security warning\n\nThe warning printed when present exposes local code execution recommends\nusing -play_socket\u003dfalse, but that flag no longer exists.\n\nRecommend -use_playground\u003dtrue instead, which causes snippets to run\nusing the Go playground rather than on the local machine.\n\nFixes golang/go#80569\n\nChange-Id: Ic24a0049585cdc2c1a921d2ad96e9fdbb3ebd206\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805920\nReviewed-by: Sean Liao \u003csean@liao.dev\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nAuto-Submit: Sean Liao \u003csean@liao.dev\u003e\n"
    },
    {
      "commit": "1f62bc851567b95a5a7d7bd01a3e6ac619d0e3f2",
      "tree": "badacd6c95c4d8bfa4aee8bcf49777d987a10346",
      "parents": [
        "3081d33f82fe24d543b1fa0ea94f2587584b45fa"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Sat Jul 25 23:47:35 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 30 13:25:54 2026 -0700"
      },
      "message": "present: validate background directive arguments\n\nThe .background directive assumes that an image argument is always\npresent and accesses args[1] without first checking the argument count.\nAs a result, a directive with no argument causes Parse to panic, while\nextra arguments are silently ignored.\n\nRequire exactly one argument and return a parsing error for malformed\n.background directives. Add tests for missing and extra arguments.\n\nFixes golang/go#80570\n\nChange-Id: Iefeab0fd706fc11de6c2134d98fe4e3e9c836169\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805940\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Sean Liao \u003csean@liao.dev\u003e\nReviewed-by: Sean Liao \u003csean@liao.dev\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\n"
    },
    {
      "commit": "3081d33f82fe24d543b1fa0ea94f2587584b45fa",
      "tree": "177ea975743093d3852fe902929a637fdf1c3014",
      "parents": [
        "4e39c5fcb301a98ffac008e96fcea1304d6af5dc"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Sat Jul 25 23:56:16 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 30 13:19:32 2026 -0700"
      },
      "message": "present: correct documented time for dates\n\nDates without an explicit time are parsed as 11am UTC, but the package\ndocumentation incorrectly states that they are interpreted as 10am UTC.\n\nUpdate the documentation to match the existing implementation.\n\nChange-Id: I14f9ad788c317eded02d1a12b21ea5616fda5db5\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805960\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Michael Pratt \u003cmpratt@google.com\u003e\nReviewed-by: Sean Liao \u003csean@liao.dev\u003e\nAuto-Submit: Sean Liao \u003csean@liao.dev\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\n"
    },
    {
      "commit": "4e39c5fcb301a98ffac008e96fcea1304d6af5dc",
      "tree": "af60fe8a069951c17d0b4f8edeed68e8f4021901",
      "parents": [
        "d5b12d7337f5db9530cfb614beedf166e2c17e6b"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Sat Jul 25 16:59:31 2026 -0700"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Wed Jul 29 13:07:37 2026 -0700"
      },
      "message": "gopls/internal/test/integration/fake: integrate module cache\n\nThis CL introduces CacheFiles() parallel to ProxyFiles() as an option\nto include a txtar archive as the module cache for tests. Several\ntests build a temporary module cache from a txtar and explicitly\nconstruct the module cache index. The new option moves all that work\ninto the code that sets up the fake sandbox. Further,\nCleanModCache() is no longer necessary.\n\nWorking on: golang.org/go#74595\n\nChange-Id: Ie2a0abfb5f1c18175ed5bac6e8dedf8401410973\nReviewed-on: https://go-review.googlesource.com/c/tools/+/806040\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "d5b12d7337f5db9530cfb614beedf166e2c17e6b",
      "tree": "d13ac1d867256bb78af88ab0b7d71250d97de9ba",
      "parents": [
        "940d126d24300eb627a71d4aa332ebda5b9b12c8"
      ],
      "author": {
        "name": "Groot Guo",
        "email": "genyuan.guo@gmail.com",
        "time": "Tue Jul 28 10:51:54 2026 +0000"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Wed Jul 29 09:30:24 2026 -0700"
      },
      "message": "gopls: add assembly DocumentHighlight, fix label scoping\n\nThis adds DocumentHighlight for Go assembly files, and fixes a bug where\n  label definitions were not properly scoped to their enclosing TEXT function.\n\n  - Dispatch file.Asm in DocumentHighlight to goasm.Highlight.\n  - For a symbol or label under the cursor, same-name occurrences are\n    highlighted: definitions (TEXT, GLOBL, labels) as Write, references as Read.\n  - For a register, all occurrences within the enclosing TEXT function are\n    highlighted, approximating its def/use chain.\n  - Scope label definitions to the enclosing TEXT function, so Definition on\n    a label reference no longer jumps to a same-named label in a different\n    function.\n\n  For golang/go#71754\n\nChange-Id: I450d689f4cfc7052736dd5c5957375d2ae16484b\nGitHub-Last-Rev: 1e43c451da62f148f49408f4aec3c8a0056abc11\nGitHub-Pull-Request: golang/tools#661\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804760\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "940d126d24300eb627a71d4aa332ebda5b9b12c8",
      "tree": "002b2b48f1d51fa20fa63fe3a17516d037018510",
      "parents": [
        "f579934a72a353ca32d9e1c170e16e3627d09e53"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Fri Jul 24 00:00:37 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jul 28 13:52:02 2026 -0700"
      },
      "message": "gopls/internal/analysis/fillswitch: add missing fmt import\n\nThe fill switch code action generates a default case that calls\nfmt.Sprintf when the switch expression can be safely evaluated again.\nHowever, the action does not add an fmt import, so the resulting code\ndoes not compile unless fmt was already imported.\n\nUse refactor.AddImport to add or reuse an accessible fmt import, and use\nthe returned prefix when generating the Sprintf call.\n\nUpdate the marker tests to verify the import edit and add coverage for\nan existing renamed fmt import.\n\nFixes golang/go#80550\n\nChange-Id: Ice114529820671a14401c5c338e1300937219e38\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804940\nReviewed-by: Nooras Saba \u003cnoorassaba@google.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f579934a72a353ca32d9e1c170e16e3627d09e53",
      "tree": "0bca18b88730009386a639f59048f2b770fadfdd",
      "parents": [
        "63ec6f9ccb03c2a50c7e30d4e0ad29bf301e6d36"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Tue Jul 28 10:09:06 2026 +0800"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Tue Jul 28 07:21:28 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: fix stditerators example\n\nThe transformed loop in the stditerators documentation still refers to\nthe removed index variable and is missing a closing parenthesis.\n\nUse the iterator element directly and regenerate the gopls analyzer\ndocumentation.\n\nChange-Id: I1111e0a212d3397609a250ed3e2fc00d2d0a984a\nReviewed-on: https://go-review.googlesource.com/c/tools/+/806640\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "63ec6f9ccb03c2a50c7e30d4e0ad29bf301e6d36",
      "tree": "83d844517b917f5e0d6ae4864963376cd3f1989c",
      "parents": [
        "e46644d61437ef5190963fce14fa00545086272f"
      ],
      "author": {
        "name": "Mehdi Bounya",
        "email": "bounya9mehdi@gmail.com",
        "time": "Sat Jul 25 20:03:07 2026 +0100"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jul 27 07:33:12 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: add slicesclip analyzer\n\nThe new analyzer suggests replacing full slice expressions of the\nform x[:len(x):len(x)], which clip a slice\u0027s capacity to its length,\nwith the equivalent and more readable slices.Clip(x), added in Go 1.21.\n\nFixes golang/go#80438\n\nChange-Id: I1590af6f415b603f4bf737fb3ecd3f7f75aa3219\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805980\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e46644d61437ef5190963fce14fa00545086272f",
      "tree": "1e1bbdfb4d206c2e5562a0ec7143e197f8b4344c",
      "parents": [
        "95e150cc245a0423516f670aa2e15c8204e23294"
      ],
      "author": {
        "name": "Javier",
        "email": "pinklifeverde@gmail.com",
        "time": "Thu Jul 16 18:53:50 2026 +0200"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Mon Jul 27 07:13:37 2026 -0700"
      },
      "message": "gopls/internal/golang/completion: handle aliased func types in literal completion\n\naddCandidate only recognized *types.Named when deciding whether to\noffer a function-literal completion for a type name found via lexical\nsearch. Type aliases to func types (e.g. \"type F \u003d func(int) bool\")\nwere skipped, so completing a call argument of alias type fell back to\nan empty \"func() {}\" template instead of the correct signature.\n\nUse typesinternal.NamedOrAlias instead of *types.Named, restricted to\ntypes without type parameters since instantiated generic types are\nalready handled by injectType.\n\nFixes golang/go#80357\n\nChange-Id: I896fb24b4b80d111ab6e09dcdde0bcb4abd594f8\nReviewed-on: https://go-review.googlesource.com/c/tools/+/801660\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "95e150cc245a0423516f670aa2e15c8204e23294",
      "tree": "bea5342782d0ef57043b1633196509999635935f",
      "parents": [
        "c2f2d83b76d501e808897a55c4b0559e7bbaf2b2"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Fri Jul 24 01:02:11 2026 +0800"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 24 21:01:52 2026 -0700"
      },
      "message": "go/analysis/passes/printf: stop reporting trailing newlines in Println\n\nThe printf analyzer reports a redundant newline when the final string\nargument to a Println-like function ends in a newline.\n\nThe newline is not redundant: Println adds another newline, so the call\nproduces two line breaks. This may be intentional, for example when\nprinting a blank line after some text.\n\nRemove this diagnostic and update the existing test cases to verify that\nsuch calls are accepted.\n\nFixes golang/go#80256\n\nChange-Id: Ic2f43c5639ad21aa53546eba04842647d2047e72\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804941\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Carlos Amedee \u003ccarlos@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c2f2d83b76d501e808897a55c4b0559e7bbaf2b2",
      "tree": "6b32bbafdbd9f30915a68c03ae9476906c457bf2",
      "parents": [
        "ff1f5abae88ddc666b2e5b8e20080ae233a9b0f4"
      ],
      "author": {
        "name": "Karthik Bhat Adyathimar",
        "email": "karthik.bhata7@gmail.com",
        "time": "Thu Jul 23 22:08:32 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 24 20:30:14 2026 -0700"
      },
      "message": "go/types/typeutil: normalize instantiated callees\n\nCallee and StaticCallee promise to return the generic declaration\nfor instantiated functions and methods. Generic method selections\ninstead return the synthetic method on the instantiated receiver.\n\nNormalize function results to their Origin so both helpers honor\nthat contract. Update unusedresult diagnostics to use the generic\nreceiver name.\n\nFixes golang/go#80533\n\nChange-Id: Ic0ccc9d09e3aaf5ed8ab8f3dd55fb501a17fc630\nGitHub-Last-Rev: 75869bc2c0ab94131bfd25f65aeed139e7d9b072\nGitHub-Pull-Request: golang/tools#660\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804560\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Carlos Amedee \u003ccarlos@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "ff1f5abae88ddc666b2e5b8e20080ae233a9b0f4",
      "tree": "238d89b88e756ae9fc1396b627aa222b78563314",
      "parents": [
        "56e88b2da9a3594725d3e22ed812977426e98d33"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri Jul 24 10:27:16 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri Jul 24 16:58:36 2026 -0700"
      },
      "message": "gopls/test/completion: fix reported bug in collectCompletions\n\nThe bug reporter has reported multiple occurrences of an unexpected\ncase in determining completions, namely completing in\nnotypeinfo.(type)\n\nThis code handles that case, and tests that the requested completion\nno longer panics.\n\nFixes: golang/go#75192\nChange-Id: I191468430c7554301e0ecd7b17d24e97e1bbfa7d\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805221\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "56e88b2da9a3594725d3e22ed812977426e98d33",
      "tree": "616de4330e855c41d237355ca443544c8f13edc5",
      "parents": [
        "0ccfe933fab7ce45848ca08f2ec7ff59a1d920e8"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 24 14:19:08 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 24 12:12:50 2026 -0700"
      },
      "message": "gopls/internal/analysis/unusedfunc: use non-heuristic std check\n\nThis CL changes the logic for detecting whether a package is\npart of std, from packagepath.IsStdPackage (a purely formal\ncheck) to stdlib.HasPackage, which checks the manifest.\n\nAlso, rename IsStdPackage to MaybeStdPackage to indicate its\nheuristic nature, flag this in its documentation, and audit\nall other uses. And fix two tests that had the same latent\nbug.\n\nFixes golang/go#80555\n\nChange-Id: Ifc2bbc5ebaeddf45f3d59edef9c1a01fbe16ad9d\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805440\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "0ccfe933fab7ce45848ca08f2ec7ff59a1d920e8",
      "tree": "4d2d1a8f4d8ed4153474f61f062a42cdd206791e",
      "parents": [
        "776a9a2e23fcc209353c5adf39e297556acb7397"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Jul 21 21:57:44 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 24 11:19:00 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: document \u0027go fix\u0027 command\n\nUpdate the modernizer docs to recommend go fix in preference\nto the the multichecker-based modernize command.\n\nAlso, delete the gopls/internal/analysis/modernize/cmd/modernize\ncommand, which is internal and deprecated. This will break\n\u0027go run .../modernize@latest\u0027 at the next gopls release.\n\nFixes golang/go#80510\n\nChange-Id: I5b27787b3afdaf86c5c1222b3cc02ab45c138a38\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804000\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "776a9a2e23fcc209353c5adf39e297556acb7397",
      "tree": "09d9ceb280e4812f07d95436b9c0cdcef5634416",
      "parents": [
        "55fcfcaba30858d36aacedaa1df40dd538e88ac4"
      ],
      "author": {
        "name": "Melnikov Denis",
        "email": "melnikov.denis.aleksandrovich@gmail.com",
        "time": "Fri Jul 17 09:04:41 2026 +0300"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Fri Jul 24 10:19:56 2026 -0700"
      },
      "message": "go/analysis/passes/fieldalignment: add more information to output\n\nAdd information about struct names, size classes, wastage and large objects\n\nChange-Id: I6a01f7f0e3b5cfe7f9951290d071a661437f1975\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802020\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "55fcfcaba30858d36aacedaa1df40dd538e88ac4",
      "tree": "28d53a0537b9c0713b76c193ef66e22779a76e0c",
      "parents": [
        "86ff45d82e378996aa05790cb7110c298a7281b4"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Fri Jul 24 10:49:40 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 24 09:34:46 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: fix stringsseq panic\n\nThe stringsseq modernizer matches the call operand\nof a range statement against strings.Split,\nstrings.Fields, bytes.Split, or bytes.Fields. If the\ncall operand is a conversion, typeutil.Callee(call)\nwill return nil. If the current package does not import\n\"bytes\", the index.Object for bytes.Fields and bytes.Split\nwill also be nil, so it will match one of these cases and\ncreate a nil panic on obj.Name().\n\nAdd a switch case for nil so that we don\u0027t enter the\nwrong case when the CallExpr is a conversion.\n\nFixes golang/go#80554\n\nChange-Id: Ie4608a4103ca0d820cdef7450a8612a53a2e0ed9\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805280\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "86ff45d82e378996aa05790cb7110c298a7281b4",
      "tree": "b9edbcff0199d867c1b5ca1779783d2026a5320b",
      "parents": [
        "a3907ad7185d60911a77ecadf74b7011f360cb15"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Thu Jul 23 15:31:51 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri Jul 24 07:56:25 2026 -0700"
      },
      "message": "gopls/test/completion: construct index explicitly\n\nTestIssue61208 is flaky because it relies on a background go routine\nfinishing before the index is needed.\n\nInstead of hoping, explicity ensure the index exists.\n\nFixes: golang/go#80551\nChange-Id: I73512131277fd8f69e6fe9d80947288f9c2c3262\nReviewed-on: https://go-review.googlesource.com/c/tools/+/805040\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "a3907ad7185d60911a77ecadf74b7011f360cb15",
      "tree": "ca7bea94ca56fb817c09140bd0982b382b4fe0a2",
      "parents": [
        "1523a2a1834247a497906533ad2e052fa9657a71"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Wed Jul 22 17:59:16 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 23 08:31:04 2026 -0700"
      },
      "message": "go/loader: add concurrenc control\n\nIssue68216 notes flaky load failures of TestStdlib in\ngo/loader/stdlib_test.go. There is a channel used in the loader\nto bound the number of simultaneous IO operations, but it is not\nused for cgo processing. This CL adds code to change that.\n\nThis plausibly fixes the problem, as some packages in the standard\nlibrary use cgo. (e.g., os/user)\n\nMay fix: golang/go#68216\nChange-Id: Ie5f7a7f8778fc1fc1289022279a58fb672b3e0f5\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804860\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "1523a2a1834247a497906533ad2e052fa9657a71",
      "tree": "b8af32b553d11607553a0c3195157a1dcb8496ba",
      "parents": [
        "6696fb1b6d2e7e1dffdd601a4c954da4bfbebac8"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 22 12:19:57 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jul 23 08:28:47 2026 -0700"
      },
      "message": "go/analysis/analysistest: enable sanity-checking of fact encoding\n\nThis CL causes analysistest to set the SanityCheck flag, which\nexercises fact encoding and decoding, and (by doing it twice)\nthat encoding is deterministic. We should have been doing this\nall along, since the requirement for determinism has been there\nall along.\n\nFor golang/go#80237\n\nChange-Id: Ice71ad7e741719f3f3413bd2f6c49aa467bb663c\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804360\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "6696fb1b6d2e7e1dffdd601a4c954da4bfbebac8",
      "tree": "39a70ba576bc7f176b5297b17979137f0bc5f9fb",
      "parents": [
        "b85ca0725d34a508c9954c708d7d3e8c623f176a"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jun 15 14:09:55 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jul 23 08:25:36 2026 -0700"
      },
      "message": "go/types/internal/play: show Cursor path\n\n(e.g. File.Decls[0].(*ast.GenDecl) etc)\n\nAlso, add Cursor.GoString method that shows the complete path.\n\nUpdates golang/go#80024\n\nChange-Id: I437b7314ef19b5d3077256c25a4990a17ced53b6\nReviewed-on: https://go-review.googlesource.com/c/tools/+/790900\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "b85ca0725d34a508c9954c708d7d3e8c623f176a",
      "tree": "a5447df0025c9847526fc474c217c4c9366263b5",
      "parents": [
        "1b7563ab360ccc7d08fd22a296798f4cfc06ebeb"
      ],
      "author": {
        "name": "Mehdi Bounya",
        "email": "bounya9mehdi@gmail.com",
        "time": "Sat Jul 18 19:25:45 2026 +0100"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 23 07:52:38 2026 -0700"
      },
      "message": "internal/refactor/inline: make fact encoding deterministic\n\nThe gob encoding of an analysis fact must be deterministic\n(see the \"Modular analysis with Facts\" section of\ngolang.org/x/tools/go/analysis).\n\nThe inline callee fact was encoded non-deterministically because it\nderived data from the randomized iteration order of Go maps. This is\nnow fixed, and a test asserts that repeatedly analyzing and encoding a\ncallee produces byte-identical output.\n\nFixes golang/go#80237\n\nChange-Id: I6fe93314fe841f48013e3f02f147fd5455a74b0f\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802700\nReviewed-by: Carlos Amedee \u003ccarlos@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "1b7563ab360ccc7d08fd22a296798f4cfc06ebeb",
      "tree": "6e5e95c34b055c10557dfacc3afa49927f30b2cb",
      "parents": [
        "cc39f947d5be6cde1be57d13e6277c500e092738"
      ],
      "author": {
        "name": "qiulaidongfeng",
        "email": "2645477756@qq.com",
        "time": "Wed Jul 22 14:32:10 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 23 07:48:56 2026 -0700"
      },
      "message": "tools/go/analysis/passes/composite: fix test fail because flag.Flag new field\n\nFor golang/go#65675\n\nChange-Id: I7f609d23e058e54991d657dd9e92f5095f3c7d8f\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804080\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Carlos Amedee \u003ccarlos@golang.org\u003e\n"
    },
    {
      "commit": "cc39f947d5be6cde1be57d13e6277c500e092738",
      "tree": "ecd0c42ac626c7eddf79787684e2a179827f9936",
      "parents": [
        "345e24c514df74c3089cda67a724d683155fa503"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Sat Jul 18 14:58:52 2026 +0800"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Thu Jul 23 06:59:47 2026 -0700"
      },
      "message": "gopls/internal/analysis/fillswitch: support renamed package imports\n\nThe fill switch code action qualified generated case values using the\npackage\u0027s declared name. This name may differ from the name used by a\nrenamed import in the current file, causing the action to generate\nundefined identifiers.\n\nUse typesinternal.FileQualifier to qualify both generated cases and the\ncode action title according to the file\u0027s import environment.\n\nUpdate the analyzer and marker tests to cover a renamed import.\n\nFixes golang/go#80460\n\nChange-Id: Id6b781e26f0b07ba974c9fef22df93fcabab5d6e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802441\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Carlos Amedee \u003ccarlos@golang.org\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "345e24c514df74c3089cda67a724d683155fa503",
      "tree": "8bc7d1a4a11b4da53536bbfc3b60f99ba1c41686",
      "parents": [
        "749de1fc71edf058166614a0493f53dca845a21f"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Sat Jul 18 17:35:03 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Wed Jul 22 15:42:23 2026 -0700"
      },
      "message": "gopls/internal/cmd: use localhost:0 to avoid port race\n\nPreviously, TestMCPCommandHTTP executed in the following order:\n- grab a random port using net.Listen(\"tcp\", \"localhost:0\")\n- record the port number\n- close the listener socket\n- launch gopls with -listen\u003dlocalhost:\u003cport\u003e\n\nA race condition could occur between closing the listener and gopls\nstarting up, allowing another process to claim the port and causing\ngopls to fail with \"address already in use\".\n\nThis CL shifts port selection from the test function to gopls by\npassing -listen\u003dlocalhost:0 to gopls. Since net.Listen guarantees\natomic port allocation, gopls selects and binds the port directly,\nand the test reads the allocated listening address from gopls stderr\nlogs.\n\nFixes golang/go#79983\n\nChange-Id: Ic5be1881c74d8722a9661773984ad4e0ac0bf352\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802761\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "749de1fc71edf058166614a0493f53dca845a21f",
      "tree": "adf0ce3427ec9f268d7880796e2c3cd07d107a09",
      "parents": [
        "4b383f6231f0fbc8a3cb05c96a3ba30464e41495"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 22 15:38:36 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 22 13:05:31 2026 -0700"
      },
      "message": "go/analysis/suite/vet: add sqlrowserr, scannererr analyzers\n\nThese will be part of the vet suite in go1.28.\n\nFor golang/go#17747\n\nChange-Id: I385c59d5f0136c0b8009f6be42c0c85712c50618\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804480\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "4b383f6231f0fbc8a3cb05c96a3ba30464e41495",
      "tree": "9c94bfef8569d7b730c03e95eaf501d601aa8abc",
      "parents": [
        "ab304e8f24b9cceed70e128b72e1d3ce55ad6167"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 22 12:46:36 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 22 12:56:21 2026 -0700"
      },
      "message": "internal/typesinternal: add TupleOf helper\n\n...and use it in go/ssa and unusedresult.\n\nChange-Id: Id77f478d0a0f9e37bcf46033f14c3f126f02ca11\nReviewed-on: https://go-review.googlesource.com/c/tools/+/804460\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "ab304e8f24b9cceed70e128b72e1d3ce55ad6167",
      "tree": "c4b8b15835258807b069ff3c38ad405b00e8464a",
      "parents": [
        "0f72b2d23c2cc89f9843e6f9086a61e1ddc19c40"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Sat Jul 18 14:06:27 2026 +0800"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 22 12:34:12 2026 -0700"
      },
      "message": "gopls/internal/analysis/simplifycompositelit: preserve comments in fixes\n\nThe suggested fix for redundant pointer composite literals assumed that\nthe \u0026 token was immediately before the literal type. When a comment\nappeared between them, the edit removed the character before the type\ninstead of the \u0026, producing invalid Go code.\n\nDelete the \u0026 token and the redundant literal type using separate text\nedits. This preserves any comments between them and produces the same\nsimplification as gofmt -s.\n\nAdd a regression test for a comment between \u0026 and the literal type.\n\nFixes golang/go#80459\n\nChange-Id: I052a3ee901d9bc6f51473f9556c479d5eb837d4f\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802440\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Carlos Amedee \u003ccarlos@golang.org\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "0f72b2d23c2cc89f9843e6f9086a61e1ddc19c40",
      "tree": "762b868b29a355e6cc25197a5d4079ddfb2772be",
      "parents": [
        "b96d2a55a08943af1de2914a59fb88fe0acbb897"
      ],
      "author": {
        "name": "Oleksandr Redko",
        "email": "oleksandr.red@gmail.com",
        "time": "Tue Jul 14 19:52:06 2026 +0300"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 22 07:05:02 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: fix analyzer URLs\n\nRewrote every modernize#\u003cname\u003e fragment to modernize#hdr-Analyzer_\u003cname\u003e.\nIt\u0027s the format that pkg.go.dev generates.\n\nChange-Id: I6aead8e6e40f4ac0e9e4378c986790c74ee50395\nReviewed-on: https://go-review.googlesource.com/c/tools/+/800580\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "b96d2a55a08943af1de2914a59fb88fe0acbb897",
      "tree": "c1c03b73d667e4fda8b4067f53ddbe0578693e6d",
      "parents": [
        "23bbb39bb490e4f1289516a103237ed27be54ddd"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Fri Jul 17 14:45:07 2026 -0400"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Wed Jul 22 06:41:54 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: slicesbackward - skip if s[i] is mutated\n\nIn the slicesbackward modernizer, we replace backward loops over\nslices with a call to slices.Backward. However, if the index\nexpression s[i] is address-taken or mutated within the loop,\nwe should not offer this fix. For example:\n\nfor i :\u003d len(s) - 1; i \u003e 0; i-- {\n  s[i].n \u003d 5\n}\n\nfor _, v :\u003d range slices.Backward(s) {\n  v.n \u003d 5\n}\n\nv is a local copy, so the original s will not get mutated.\nTo avoid changing the program behavior, we should\nnot suggest a modernization.\n\nPromote a new function IsAssignedOrAddressTaken that replaces the uses\nof isScalarLValue in modernizers and isLValueUse\nin the inliner and add tests for it.\n\nFixes golang/go#80410\n\nChange-Id: I873afe8965dee39994547e16f284ca80541334d6\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802260\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "23bbb39bb490e4f1289516a103237ed27be54ddd",
      "tree": "c8e16ef22db92b55b978eba4949249da4eb72465",
      "parents": [
        "ae5216e6f6ee9c2aaacc672db5ba250b9732aa98"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Tue Jul 21 17:00:18 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jul 21 14:26:29 2026 -0700"
      },
      "message": "go/analysis/unitchecker: correct cfg.Compiler comment\n\nChange-Id: Ie978c886040beea7a3a6f4f2b023c90df76f3262\nReviewed-on: https://go-review.googlesource.com/c/tools/+/803820\nAuto-Submit: Mark Freeman \u003cmarkfreeman@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "ae5216e6f6ee9c2aaacc672db5ba250b9732aa98",
      "tree": "4914862a0ebf6285eba82a504032fad79c0a4580",
      "parents": [
        "748ebaaf0160a61467c80911bff2bb7a0b4ade8b"
      ],
      "author": {
        "name": "Mark Freeman",
        "email": "mark@golang.org",
        "time": "Tue Jul 21 16:10:35 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jul 21 13:55:56 2026 -0700"
      },
      "message": "go/analysis/unitchecker: fix unresolved import error message\n\nChange-Id: Id198ca219f0721661d6de1729a15ada45300eba3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/803782\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Mark Freeman \u003cmarkfreeman@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "748ebaaf0160a61467c80911bff2bb7a0b4ade8b",
      "tree": "38f1cbf98936ac95f4179de3c95d8d597ebc0ead",
      "parents": [
        "9ae340710c98776c94bad79257026474be374370"
      ],
      "author": {
        "name": "Groot Guo",
        "email": "genyuan.guo@gmail.com",
        "time": "Sun Jul 19 15:00:10 2026 +0000"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Tue Jul 21 09:41:26 2026 -0700"
      },
      "message": "gopls/internal/goasm: add Hover for assembly files\n\nDispatch file.Asm in server.Hover to goasm.Hover, which finds the\nidentifier under the cursor and reports its name and kind (text,\nglobal, data, ref, label).\n\nUpdates [golang/go#71754](https://github.com/golang/go/issues/71754)\n\nChange-Id: If43f9311dcfbf7117fd1f7fa6e74009042f92ed8\nGitHub-Last-Rev: 21113db7aafe5afcc8a0dc8b8c8c75e761ba76e2\nGitHub-Pull-Request: golang/tools#656\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798760\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9ae340710c98776c94bad79257026474be374370",
      "tree": "4c416d4f7774ee791c36bd0367cfd60b479f01cf",
      "parents": [
        "5ef01541a37f90d1b1d88d33bada03358853c8ac"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jul 20 22:42:51 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Jul 21 09:32:10 2026 -0700"
      },
      "message": "internal/more{maps,slices}: promote from gopls\n\nThese packages initially lived within gopls because its go.mod\nfile is one Go relase ahead of x/tools, but that no longer\nmatters, and other packages want these helpers.\n\nAlso, eliminate a few redundant x/tools helper functions.\n\nChange-Id: Iafc82838d3bffa3a236164a927e69fb62c5cd94d\nReviewed-on: https://go-review.googlesource.com/c/tools/+/803420\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "5ef01541a37f90d1b1d88d33bada03358853c8ac",
      "tree": "8047b0f75db56164d34a1898d36bc39fe79d9b6a",
      "parents": [
        "a2c572e032dc96f88422618a40dc138df741b199"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri Jul 17 16:23:03 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Tue Jul 21 09:09:46 2026 -0700"
      },
      "message": "gopls/test/integration/completion: Fix flaky test\n\nTestUnimportedCompletion() was reported flaky, as the module\ncache index was not yet ready when it was needed.\n\nIn tests the module cache index needs to be built, but gopls builds\nit using a background goroutine, which might not have finished\nby the time the index is needed. This CL contains code that\nguarantees that it will be ready.\n\nFixes: golang/go#78835\nChange-Id: Ibd95b65fe9508b5534478c96d2b59376bd818831\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802340\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "a2c572e032dc96f88422618a40dc138df741b199",
      "tree": "0ba8ea289fb48925d165478cdef8cd156b1fbffd",
      "parents": [
        "33eb337f9633cf3e04208b79577180b09c662a15"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Sat Jul 18 17:22:38 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Jul 20 10:27:33 2026 -0700"
      },
      "message": "gopls/internal/cmd: set timeout for mcp server start\n\nChange-Id: Ic1852d20f8fa58fbac2d957c1022f2bbfd9ef9de\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802760\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "33eb337f9633cf3e04208b79577180b09c662a15",
      "tree": "0a930820689f3db891af7cdaaad54a0ca48713fb",
      "parents": [
        "1255efc298064b9031e38b1e7317f20a340a9bec"
      ],
      "author": {
        "name": "Mateusz Poliwczak",
        "email": "mpoliwczak34@gmail.com",
        "time": "Sat Apr 25 09:20:26 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 20 08:36:53 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: use isScalarLvalue in stringscut modernizer\n\nFixes few issues in the existing hasModifyingUses:\n\n- missed unparen enclosing\n- missed range stmt handling\n- skipping based on position is invalid, since variables can\n  be captured in a closure.\n\nChange-Id: I6094b0114734ca90170001dba2477cac6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/770720\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Mateusz Poliwczak \u003cmpoliwczak34@gmail.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "1255efc298064b9031e38b1e7317f20a340a9bec",
      "tree": "0edaa4f2ccaa8ad3cda6d4981c93c06fd640192d",
      "parents": [
        "fe9001042f6eed0442ac6f65018f3275cefe2cda"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Tue Jul 14 17:18:49 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Sat Jul 18 11:21:27 2026 -0700"
      },
      "message": "gopls/internal/protocol: define enum string type for field kinds\n\nAddress comment:\nhttps://go-review.git.corp.google.com/c/proposal/+/765240/comment/78b90e73_035a7480/\n\nvscode-go CL 798504\n\nChange-Id: I5d3132b8bf4c293ac8ea1d07d1b2f571d61e3a75\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798503\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "fe9001042f6eed0442ac6f65018f3275cefe2cda",
      "tree": "63d24bebc0c764a4dac072e025831620d4d49e98",
      "parents": [
        "3d67034bd667e8c73a0374331f79db186b137bc3"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jul 16 10:49:43 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 17 13:27:49 2026 -0700"
      },
      "message": "go/callgraph/rta: use typesinternal.ForEachElement\n\nThis CL factors RTA to use the generic ForEachElement type\ntraversal. This makes it run ~13% faster on a benchmark\nof kubernetes/cmd/kubelet by a combination of early pruning\nand deduplicated method-set construction.\n\nThe whole computation of RuntimeTypes is basically unnecessary\nsince no-one (to my knowledge) uses it, but the existing API\ncommits us to it, including the awkward meaning of the boolean\nmap value, which requires exposing the \u0027skip\u0027 flag from\nForEachElement.\n\nThe sense of the \u0027skip bool\u0027 parameter was inverted to \u0027access\u0027,\nmeaning accessible to reflection.\n\nChange-Id: I4f583cf43c5b55c0b81f91fdaac14802fc414bd8\nReviewed-on: https://go-review.googlesource.com/c/tools/+/801621\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "3d67034bd667e8c73a0374331f79db186b137bc3",
      "tree": "3bd305d12e33db8d1d1f7af33ec534786e997381",
      "parents": [
        "cbdcbcc4bcc9833c70d2632620f4dcc57d0780fb"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jul 16 16:31:32 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 17 12:21:16 2026 -0700"
      },
      "message": "gopls/internal/analysis/simplifycompositelit: rewrite using types\n\nThis is mostly behavior-preserving change that rewrites the analyzer\nmore simply in terms of types.Types instead of AST and reflection.\nThe only change is that it emits a type-specific instead of a generic\nerror message.\n\nThis is a preparatory step for supporting go1.28 inference of\nliterals at toplevel and for structs.\n\nFor golang/go#12854\n\nChange-Id: I92f103e9884f9f9c5da5ebd4013b4b8477a5ccfe\nReviewed-on: https://go-review.googlesource.com/c/tools/+/801840\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "cbdcbcc4bcc9833c70d2632620f4dcc57d0780fb",
      "tree": "db229d1fe9692d27496b43c5fb1fc3df8523db08",
      "parents": [
        "c566b29b9e3e76344f871fc23310d0f75e22ca16"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Wed Jul 15 11:27:48 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 17 11:58:16 2026 -0700"
      },
      "message": "gopls/internal/golang: add Move Declaration skeleton\n\nAdd code action and command for Move Declaration feature,\nalong with an off-by-default setting to gate its use.\nUse interactive command to get the destination file.\n\nI will delete the MoveType code action in a follow-up\nCL, I thought it would be easier to review a clean\naddition versus renaming everything in MoveType.\n\nChange-Id: I2d8bafd29c376ba00a776c5ac441323f63e751b6\nReviewed-on: https://go-review.googlesource.com/c/tools/+/800940\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c566b29b9e3e76344f871fc23310d0f75e22ca16",
      "tree": "8cf715e99c2af1a4304b1a5889318040e9587f1d",
      "parents": [
        "f7a8132ac9802d7baab7d9c82d6d88066f4cc0f1"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 17 12:13:47 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 17 10:25:29 2026 -0700"
      },
      "message": "gopls/internal/debug: show Package.Scope symbols\n\nThis CL augments the \"type information\" view of a package\nto show the list of package-level symbols.\n\n(This was helpful (re-)diagnosing a problem of cross-module\ninconsistency arising from eglot creating a separate\nserver for each Go module.)\n\nChange-Id: I71a394d36e59e164a95d9f868e9dc9c87b2cbb0e\nReviewed-on: https://go-review.googlesource.com/c/tools/+/802200\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "f7a8132ac9802d7baab7d9c82d6d88066f4cc0f1",
      "tree": "0ecbf074b42d2dc546137250f5807dacbd223344",
      "parents": [
        "b441908e32e0ab864ca154c2ad1e183c95d0586d"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jul 16 15:50:32 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 17 10:05:49 2026 -0700"
      },
      "message": "gopls/internal/golang: InlayHint: permit \"ignore error\" alternatives\n\nThis change causes the ignoredError inlay hint to check for a\nvariety of common strings such as \"can\u0027t fail\". Any of them will\nsuppress the hint.\n\n+ test, doc\n\nChange-Id: I820848ce19f0b5332878922235025bdad2a3cbaf\nReviewed-on: https://go-review.googlesource.com/c/tools/+/801800\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b441908e32e0ab864ca154c2ad1e183c95d0586d",
      "tree": "6092364b19282e3e13777cc42d659327d738be62",
      "parents": [
        "591dfa620de7b00c9525c075f0e0ab6dec46d710"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 15 12:57:15 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jul 16 11:28:06 2026 -0700"
      },
      "message": "gopls/internal/analysis/ptrtoerror: support type assert and instances\n\nThe previous CL missed two important cases where syntax implies\nan implements relation between E (or *E) and the error interface:\n\n1. Type assertions and type switches\n      err.(E)\n      switch err.(type) { case E: }\n\n2. Instantiatio of type parameters\n     errors.AsType[E](err)\n\nThis change augments the \u0027conversions\u0027 iterator to return them too,\nand adds tests for the missing cases.\n\nUpdates golang/go#61342\nUpdates golang/go#70638\nUpdates golang/go#80159\n\nChange-Id: I7612aa0a9e38079ef4dec1b8eabff458e74ea81b\nReviewed-on: https://go-review.googlesource.com/c/tools/+/801000\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "591dfa620de7b00c9525c075f0e0ab6dec46d710",
      "tree": "22c2df00daca3d7d9eda95ba157b3fb256d0f734",
      "parents": [
        "7d18d5e6dc7d9283bb7003daa7fb5019e5d27407"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Jul 02 13:33:24 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 15 16:31:19 2026 -0700"
      },
      "message": "gopls: run filecache validation asynchronously in the background\n\nMove the filecache validation check (which hashes the executable and\nverifies cache access) from the synchronous startup path in main.go\ninto the background goroutine started by filecache.Start.\n\nBefore this CL, this check was run synchronously in main.go, blocking the\nstartup of all gopls commands (including quick commands like help and\nversion) for ~50ms while the executable was hashed.\n\nBy running the check asynchronously, short-lived commands can exit\nquickly before the check completes. Long-running commands (like serve)\nwill still be terminated via log.Fatalf if the validation fails (e.g.,\ndue to disk full / ENOSPC) once the background check finishes.\n\nConcurrent gopls processes (e.g., CLI and daemon) won\u0027t conflict\nbecause GC is delayed and concurrent writes to the shared cache are\nhandled safely.\n\nUpdates golang/go#67433\nUpdates golang/go#79906\n\nChange-Id: I63869dee81fa8ae176e762a291c765d148f67044\nReviewed-on: https://go-review.googlesource.com/c/tools/+/797082\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\n"
    },
    {
      "commit": "7d18d5e6dc7d9283bb7003daa7fb5019e5d27407",
      "tree": "6d1527dbcdb6b3080eeb960d6e6fb35d18685f97",
      "parents": [
        "b2768f2768c3db5ece926d307389b5491d3e846f"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Jul 01 23:47:49 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Jul 15 16:02:40 2026 -0700"
      },
      "message": "gopls/internal/cmd: revamp CLI flag parsing\n\nRevamp gopls command line argument normalization and flag parsing.\nSeparate global flags and subcommand arguments cleanly prior to flag parsing,\nand provide hierarchical contextual error messages for misplaced flags\nusing parent lineage strings.\n\nFor golang/go#79906\n\nChange-Id: Iad8685503dc48ba41b851cb4e3aea172b305a5b9\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794462\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b2768f2768c3db5ece926d307389b5491d3e846f",
      "tree": "2e22f40312879021e55c7abdd4376983f0f18896",
      "parents": [
        "a633660b7ebf9dfd3db6053b574ee1d4649a801a"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Jul 01 23:47:43 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Jul 15 16:02:26 2026 -0700"
      },
      "message": "gopls/internal/cmd: fix Parent lineage strings on remote subcommands\n\nUpdate the Parent() method on listSessions and startDebugging to return\nthe full parent lineage (\"gopls remote\") rather than just the root app name.\n\nFor golang/go#79906\n\nChange-Id: Ie1ad92bcd753602ea0ad3396a6951386ce463e69\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795681\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "a633660b7ebf9dfd3db6053b574ee1d4649a801a",
      "tree": "a2aa62828dc6ee84f3a0649ad208ac5d75205531",
      "parents": [
        "df85682b7b0118f2933cefe4c453660a10cd58b3"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Jun 29 16:34:05 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Jul 15 16:01:59 2026 -0700"
      },
      "message": "gopls/internal/cmd: absorb tool package harness into cmd\n\nMove the CLI execution harness from gopls/internal/tool into\ngopls/internal/cmd, removing package tool entirely. This addresses\nreview feedback to consolidate command interfaces, profiling flags,\nand execution runners into a single cohesive package before\nrestructuring CLI flag parsing.\n\nAnd unexport internal structs and fields in package cmd,\nroot application embeds unexported \u0027serve serve\u0027. This helps\nisolate server instance flags (-listen, -logfile, -debug, -mcp.listen)\nso they no longer pollute root \u0027gopls --help\u0027 usage output.\n\nFor golang/go#79906\n\nChange-Id: I62689ff6ff7fbf345c64d3c90e14c3510b0729b8\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795680\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "df85682b7b0118f2933cefe4c453660a10cd58b3",
      "tree": "6f9afc0cc8dd020686f97ed7daf33b5a97fe2138",
      "parents": [
        "982599486873670b25e1564e5f4780982fa61f77"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Jun 17 17:12:15 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 15 15:36:03 2026 -0700"
      },
      "message": "gopls/internal/tool: rename Application to Command\n\nThis relands 0fdde844a (CL 791980), which was reverted in 0602b3093\n(CL 793700) to stabilize the release.\n\nRename tool.Application to tool.Command and embed it in tool.Subcommand\nto clarify the structure, addressing a TODO left in Gerrit CL 788640.\n\nReferences to tool.Application are updated to tool.Command throughout\ngopls/internal/cmd and gopls/internal/tool.\n\nUpdates golang/go#79906\n\nChange-Id: I839a0d126dcf8d687b2271f86ea443995b176b2a\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794461\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "982599486873670b25e1564e5f4780982fa61f77",
      "tree": "8a028286e9e1b6c396ca241b7c007d0e33963be5",
      "parents": [
        "fcfa953ecaf1613c246b4c57d58942310755f040"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Jul 02 01:52:09 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 15 15:33:49 2026 -0700"
      },
      "message": "gopls/internal/cmd: group remote connection flags on Application\n\nThis centralizes remote LSP client connection flags, previously\nscattered in Application and Serve structs, into a common RemoteFlags\nstruct and embeds it directly on root Application rather than\non subcommands. This ensures all -remote* flags are accessible from\nall subcommands that support remote LSP client connections. The\nremote flags remain global, allowing wrapper scripts (e.g. `gopls\n-remote\u003dauto $@\" to work consistently across all subcommands.\n\nThis CL also unexports the \u0027serve\u0027 field from the Application,\nwhich hides the flags specific to \u0027gopls serve\u0027 from the gopls\ntop-level help message. The top-level help message shows only\nthe global flags.\n\nUpdates golang/go#79906\n\nChange-Id: I177198394c67c984effe360210c7dd76b50806bb\nReviewed-on: https://go-review.googlesource.com/c/tools/+/797080\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\n"
    },
    {
      "commit": "fcfa953ecaf1613c246b4c57d58942310755f040",
      "tree": "ec63c24a9132e736e7facc5514038ee55c4b79f3",
      "parents": [
        "b0dc4aefbf2ea447be555074f0bec76ccade8e2d"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 08 15:55:28 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Jul 14 07:20:42 2026 -0700"
      },
      "message": "gopls/internal/analysis/ptrtoerror: detect inconsistent use of E/*E as error\n\nThis CL adds an analyzer to gopls that reports inconsistency in the\nuse of a named type E that implements error. If both E and *E values\nare converted to error, a user of the package may be uncertain which\nof these two types they should test for using errors.As, errors.Is,\nand so on.\n\nWe use a heuristic: if the package that declares E uses it consistently\none way other the other, then we remember that way and apply it to\nclients; if it mixes the two, we report a problem with E itself;\nand if it doesn\u0027t use either way, we report the ambiguity and\nsuggest two alternative fixes to add declarations that force the\ndecision one way or another.\n\nThe package includes a pass over the syntax to gather conversions,\nmuch like the x/tools/refactor/satisfy package. Ideally this will\nbe eliminated when the types.Info.ImplicitConversions proposal\n(#70638) is done.\n\nThanks to Mateusz Poliwczak for the idea.\n\nUpdates golang/go#61342\nUpdates golang/go#70638\nUpdates golang/go#80159\n\nChange-Id: Id374ec53209f7aa0ad09da4a1ccfd9d6a1d227d5\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798580\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "b0dc4aefbf2ea447be555074f0bec76ccade8e2d",
      "tree": "7b3b77c356ba5b75ff31fbc67e68fb7ba81802e2",
      "parents": [
        "816ec5aa880a139d9592b0add28e87909580a9ab"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Fri Jul 10 16:00:40 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Mon Jul 13 09:41:57 2026 -0700"
      },
      "message": "gopls/internal/completion: fix issue 80268\n\nWhen completing the argument to func foo(_ *[10]int), the existing\ncode can produce syntactically invalid code because it discards\na conversion to slice.\n\nMore precisely: in\nfunc foo(p *[10]int) {}\nfunc bar() {\n\tvar array [10]int\n\tfoo(arr\u003ccursor\u003e)\n}\nthe completion at \u0027arr\u0027 was (*[10]int)(array), but the code should\nhave produced (*[10]int)(array[:]). [Even better would have been\n\u0026array, but that\u0027s not how the completion logic is organized.]\n\nFixes: golang/go#80268\nChange-Id: Ief2ccc963d30cd275d8383b110fbd3b40661534f\nReviewed-on: https://go-review.googlesource.com/c/tools/+/799560\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "816ec5aa880a139d9592b0add28e87909580a9ab",
      "tree": "85d2e2e642fce545acadfa4340b74d42947039bd",
      "parents": [
        "c03c6699f1be9813865edb67fb1c90020f6760de"
      ],
      "author": {
        "name": "davidteather",
        "email": "contact.davidteather@gmail.com",
        "time": "Fri Jul 10 23:02:33 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 13 09:25:08 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: skip WaitGroup.Go rewrite when defer can recover\n\nRewriting a goroutine\u0027s trailing wg.Done() to WaitGroup.Go moves the\nDone call into WaitGroup.Go\u0027s own deferred call. When the goroutine\ncan recover a panic, this changes behavior: the original may never\nreach wg.Done(), leaving Wait blocked forever. Only apply the rewrite\nwhen the goroutine cannot recover, that is, when every defer calls a\nfunction literal whose body does not call the built-in recover.\n\nFixes golang/go#77559\n\nChange-Id: If06676df83d29b33214e3866370774fd2e11c0be\nGitHub-Last-Rev: 5801eb41e2d09e84cd4c6ce8deeb14ef77b3dd8c\nGitHub-Pull-Request: golang/tools#653\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795980\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "c03c6699f1be9813865edb67fb1c90020f6760de",
      "tree": "2dca122f78302e39c05ef82042ead2dcb5b908d7",
      "parents": [
        "2b4da687bc20917b10f08f6d2dabf7667717170f"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 10 16:48:25 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jul 13 08:19:33 2026 -0700"
      },
      "message": "go/analysis/passes/stdversion: correctly format symbol names\n\nThe existing formatting completely forgot to include the\ntype name T in the name of a field or method pkg.T.name.\n\nSince this cannot be derived from a field *types.Var, we\nchange TooNewStdSymbols to return symbols, not just versions,\nthat we can then easily format.\n\nAlso, move the synctest workaround into TooNew, per TODO.\n\nFor golang/go#80363\n\nChange-Id: Iafe39fed017db9c82a35b4a2eb7bc3374be6b088\nReviewed-on: https://go-review.googlesource.com/c/tools/+/799600\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "2b4da687bc20917b10f08f6d2dabf7667717170f",
      "tree": "d0c60fbc6ce7e78806c82b436755fa3e815484ed",
      "parents": [
        "e227a53e73a48e01ef35342a18a1d7db44bb26ef"
      ],
      "author": {
        "name": "cuishuang",
        "email": "imcusg@gmail.com",
        "time": "Mon Jul 13 22:25:55 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 13 08:02:15 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: avoid errorsastype panic on package variables\n\nThe errorsastype analyzer assumes that the GenDecl containing an\nerrors.As target variable is always part of a local DeclStmt.\n\nFor a package-level variable, the GenDecl is instead a child of an\nast.File. Passing that cursor to refactor.DeleteStmt causes a panic\nbecause an ast.File is not an ast.Stmt.\n\nRequire the declaration to be part of a local DeclStmt before offering\nthe rewrite, and add a regression test for a package-level errors.As\ntarget.\n\nFixes golang/go#80383\n\nChange-Id: Ia842ca0232a1683cc1bcd87b12c0972eca084a67\nReviewed-on: https://go-review.googlesource.com/c/tools/+/800140\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "e227a53e73a48e01ef35342a18a1d7db44bb26ef",
      "tree": "bc328d9eda8287a722d3869e642092f4800ce34e",
      "parents": [
        "6cbeeacfcd0b3bed4bb186e13df86bb3fbc720c0"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue Jun 16 17:50:18 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 13 07:34:58 2026 -0700"
      },
      "message": "gopls/internal/golang: fix crash in ExtractToNewFile\n\nThe crash in ExtractToFile is caused by a known\nbug in the parser (#57490): when a declaration at EOF\nis not correctly terminated, the parser error recovery\nwill add the missing closing token, which makes the end\nposition of that node one more than EOF.\n\nExample:\nfunc foo() { var x // FuncDecl.End() \u003d EOF + 1\n\nThen in ExtractToFile, end - fileStart is out of bounds.\n\nIn CL 559436, we added a workaround so that methods\nthat depend on offsets/positions will adjust the values\nif needed to avoid this out of bounds issue.\n\nIf we use safetoken.Offsets to calculate the bounds\ninstead of directly using\npgf.Src[start-fileStart : end-fileStart]\nthen the offsets are adjusted for us. Instead of\nreporting a bug for the out of bounds error,\nExtractToFile will fail to format the extracted\nsource and return a more relevant error to the user.\n\nFixes golang/go#70553\n\nChange-Id: I2ef7f2d5e880e3e73e04da3f68c689887571d973\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798422\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "6cbeeacfcd0b3bed4bb186e13df86bb3fbc720c0",
      "tree": "d731b9f85374766a87639f61d3ab8640dcd77e02",
      "parents": [
        "34919215823f8900957fde0e1a20fffb9524db23"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 10 10:45:53 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 10 15:20:47 2026 -0700"
      },
      "message": "internal/typesinternal: avoid linkname hacks\n\nThis CL inverts the import relationship between typesinternal\nand the public typeutil package. Now: typeutil -\u003e typesinternal.\n\nThe implementations of Callee and StaticCallee were moved down\ninto typesinternal, and the linkname hack (a recipe for trouble)\nwas removed.\n\nThe typesinternal.ForEachElement function was simplified by\ncombining the \u0027yield\u0027 and \u0027de-dup\u0027 roles into a single\nparameter, breaking the dependency on typeutil.TypeMap;\nand the dependency on MethodSetCache was replaced by a\nclosure for the necessary method.\n\nAlso, in three places, Uses[UsedIdent()] was changed to do an\nexplicit nil check to save a doomed map lookup.\n\nThe only remaining use of linkname in x/tools is in go/ssa.\n\nChange-Id: Iae12162ad393d41e174bbbddb5fe5a3c142eab2f\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798881\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "34919215823f8900957fde0e1a20fffb9524db23",
      "tree": "a5698e9bf7a7a6c020fc770b56e4ab2c81d60ddd",
      "parents": [
        "fc7339dea31ae4e6854ff10b83d66653c13b5458"
      ],
      "author": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Fri Jul 10 13:59:09 2026 -0400"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Fri Jul 10 15:14:49 2026 -0700"
      },
      "message": "gopls/doc/release: semtok ClientCapabilities change release notes\n\nFunctionality added in CL 793083\n\nChange-Id: Id184824346bc777d150fa41b055cab496a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/799460\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "fc7339dea31ae4e6854ff10b83d66653c13b5458",
      "tree": "23779dd1b30c92dc5f9bc20bacaa46782cee7e8e",
      "parents": [
        "95f84b6d5f3a703d750e880d7215d673c400bd6d"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Tue Jul 07 13:01:57 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jul 10 09:50:32 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: embedlit - skip if no selections are embedded\n\nIf we have a type with no embedded fields, like:\n\ntype T struct {\n   x, y int\n}\n\nt :\u003d T{}\nt.x \u003d 1\n\nWe should not suggest combining the assignment into\nt :\u003d T{x: 1}\n\nbecause this is not directly related to the Go1.27 language\nfeature of direct access to embedded struct fields.\n\nIf at least one of the selections references an embedded field,\nwe should still suggest a modernization, like:\n\ntype T struct {\n  x int\n  Y\n}\n\ntype Y struct {\n  y int\n}\n\nt :\u003d T{}\nt.x \u003d 1 // non-embedded reference\nt.y \u003d 2 // embedded reference\n\n\u003d\u003e\nt :\u003d T{x: 1, y: 2}\n\nChange-Id: I8a1b83c8e60a6dc6f1cf609e8d6e5ba18b0f9225\nReviewed-on: https://go-review.googlesource.com/c/tools/+/797560\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "95f84b6d5f3a703d750e880d7215d673c400bd6d",
      "tree": "0de92632f93f569dfd7eebaf0de1edce765ee067",
      "parents": [
        "620a92aff1cf0862216c63d2e5ec0117ef0cb1a6"
      ],
      "author": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Mon Jun 29 16:45:49 2026 -0400"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Fri Jul 10 09:20:02 2026 -0700"
      },
      "message": "gopls: respect client capabilities for semtok enabled tokens and mods\n\nThe client capabilities for Semantic Tokens allows the client to specify\nthe maximum set of token types and modifiers that they support. gopls\nseparately then allows for users to specify their own subsets of those\ntwo lists that they want to further filter on (`gopls.semanticTokenTypes`\nand `gopls.semanticTokenModifiers`).\n\nPreviously we only checked the UI settings. It isn\u0027t the biggest issue\nto send clients tokens that they didn\u0027t support in the capabilities,\nbut it seems better to respect the protocol the client defined.\n\nSo now for a token or modifier to be returned from the server, it must:\n\n1. Be in the initial client capabilities list OR\n2. Be set true in (or absent from) the UI settings map \n\nFor the marker tests, I also added the \"capabilities.json\" changes to\nhighlight what a client needs to do to receive those tokens. I also\nadded them by default to the settings, but kept the capability override\nas well for visibility.\n\nFixes golang/go#80309\n\nChange-Id: I4ed8a89f06917ceb360de5eec65f34756a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795322\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "620a92aff1cf0862216c63d2e5ec0117ef0cb1a6",
      "tree": "c7b5e9eb19714155c47baae7d249c02ff78eb673",
      "parents": [
        "d568f18e846715d0bd0840cd3dbff678b9c698ce"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Thu Jul 09 13:19:59 2026 -0400"
      },
      "committer": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Fri Jul 10 07:45:04 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: embedlit - skip multi assigns and decls\n\nThe embedlit modernizer introduces a syntax error when\nattempting to combine an embedded field assignment\ninto its initialization if the initialization is\na multi-assignment or multi-declaration. This is because\nthe edits produced assume that there is only one\ncomp lit initialization:\n\n\tt1, t2 :\u003d T1{...}, T2{...}\n\tt1.x \u003d v\n\n\t\u003d\u003e\n\n\tt1, t2 :\u003d T1{, T2{}, x: v}\n\nFor now, don\u0027t modernize when we encounter a multi-assign\nor multi-decl, but leave a TODO because we could handle\nthis case by changing the way we calculate the edits.\n\n(Found this bug while running the embedlit modernizer\nin the ecosystem metrics pipeline, which we recently\nupdated to use the Go1.27rc1)\n\nChange-Id: I78135f02f88746d76561ba14d639878b3a05a312\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798880\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "d568f18e846715d0bd0840cd3dbff678b9c698ce",
      "tree": "0edf6ecb3984271b8e7f5a8c1a1a08b2fa0fde15",
      "parents": [
        "cd7d17b664fc3769ed34b444294ccb2eb2e3310e"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Wed Jul 01 12:30:40 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jul 10 07:11:59 2026 -0700"
      },
      "message": "gopls/internal/golang: freesymbols: use html/template\n\nContextual escaping is hard: even when you understand the problem\nand are trying to do the right thing, it\u0027s easy to make mistakes.\nThe template package eliminates opportunities for mistakes.\n\nThis CL reworks the freesymbols handler to use templating\nfor most of the HTML string operations.\n\nThe pkgdoc handler needs a similar treatement.\n\nFixes golang/go#80218\n\nChange-Id: I5dc4cfd6b7b958750c1556eacdf931ab889e9983\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796260\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "cd7d17b664fc3769ed34b444294ccb2eb2e3310e",
      "tree": "c1198f25709ef368dd2ba0c3dd7d952ee2e44945",
      "parents": [
        "687891a6772b75ef1b7f18b510eaed9879e366e8"
      ],
      "author": {
        "name": "Salih Muhammed",
        "email": "root@lr0.org",
        "time": "Thu Jul 09 21:48:29 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 09 15:01:45 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: add reflecttypeassert analyzer\n\nThe new analyzer suggests replacing two-valued type assertions on the\nresult of (reflect.Value).Interface, x, ok :\u003d v.Interface().(T), with\nreflect.TypeAssert[T](v), added in go1.25, which avoids allocating the\nintermediate interface value.\n\nSingle-valued assertions are not rewritten, since they panic when the\nassertion fails whereas TypeAssert does not, per the discussion on the\nissue. Pointer receivers and files below go1.25 are also skipped.\n\nFixes golang/go#75422\n\nChange-Id: Ia804899edc25e9291116614311ecf360126bfcf3\nGitHub-Last-Rev: c92ceb1ab2f2ab5ed4260f23dafdbf52beff5a31\nGitHub-Pull-Request: golang/tools#654\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796740\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nTryBot-Bypass: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "687891a6772b75ef1b7f18b510eaed9879e366e8",
      "tree": "6847bccd365d20df53d8e8993c84fb5431aaea1a",
      "parents": [
        "8229bb0b6d4823f9df8572d1ef7eff7ba21f9cc5"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jul 09 11:21:28 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 09 08:47:49 2026 -0700"
      },
      "message": "gopls/doc/release/v0.23.0.md: remove \"expected\"\n\nWe need to automate this step: I miss it every time.\n\nFor golang/go#79966\n\nChange-Id: Ic36a2cd08dc5127341aa99212a93a564e7579c32\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798840\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "8229bb0b6d4823f9df8572d1ef7eff7ba21f9cc5",
      "tree": "c6cfb3c49a2bccf2b49d7fd7ef4d3c1cf8b671a8",
      "parents": [
        "05f9cb5d358503005bd6f82b17916d226ca7b210"
      ],
      "author": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 09 08:08:26 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Jul 09 08:35:45 2026 -0700"
      },
      "message": "gopls/go.mod: update dependencies following the v0.23.0 release\n\nThis is an automated CL which updates the go.mod and go.sum.\n\nFor golang/go#80164\n\nChange-Id: I088a59406e0ae543e305ab11f33091ec51ddd4d4\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798820\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "05f9cb5d358503005bd6f82b17916d226ca7b210",
      "tree": "ca40a4b11d95c9392ef4a87520efea157c8aefb5",
      "parents": [
        "745d7ae955f815a23f71eea6c5825e1a60308578"
      ],
      "author": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 08 15:52:26 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 08 19:42:41 2026 -0700"
      },
      "message": "go.mod: update golang.org/x dependencies\n\nUpdate golang.org/x dependencies to their latest tagged versions.\n\nChange-Id: Ic2bcf3369062c735a51a1db5d4674344581425c2\nReviewed-on: https://go-review.googlesource.com/c/tools/+/798640\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\n"
    },
    {
      "commit": "745d7ae955f815a23f71eea6c5825e1a60308578",
      "tree": "c917a1f1a267cfb2ce3aaed386e78ef17ecdb84c",
      "parents": [
        "797ee67e8547c21742c14f38d01bf3e54dad6aad"
      ],
      "author": {
        "name": "Groot Guo",
        "email": "genyuan.guo@gmail.com",
        "time": "Thu Jul 02 04:01:27 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 08 08:33:39 2026 -0700"
      },
      "message": "gopls: add CompiledAsmFiles in cache.Package\n\nThe CompiledAsmFiles field supports storing assembly files.\n\nUpdate golang/go#71754\n\nChange-Id: I63966a3f432148f1e0ff2da858856bb63a856ec5\nGitHub-Last-Rev: bdeadb2f1550b79dc5d4c07554b18aabcd6ce376\nGitHub-Pull-Request: golang/tools#572\nReviewed-on: https://go-review.googlesource.com/c/tools/+/665018\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "797ee67e8547c21742c14f38d01bf3e54dad6aad",
      "tree": "5ca9ce0a8d804399b233b8c9920db8687dcd002d",
      "parents": [
        "9751125d7187ef7b7f3e66c20925c2099be7e934"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jun 26 16:56:42 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Jul 07 16:35:17 2026 -0700"
      },
      "message": "go/ssa: make Const(unsafe.Pointer, nil).IsNil() true\n\nFixes golang/go#80121\n\nChange-Id: I958f2849334eb5988e0e530a796fcd61559fb81d\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794881\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\n"
    },
    {
      "commit": "9751125d7187ef7b7f3e66c20925c2099be7e934",
      "tree": "11092efc9cb9928a6c8cf4dc44cf5f5023d5754a",
      "parents": [
        "8786a967dbbb73b985c6345d652594422f995717"
      ],
      "author": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Tue Jul 07 15:16:45 2026 -0400"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Tue Jul 07 14:03:11 2026 -0700"
      },
      "message": "gopls/internal/test: Completion benchmarks use empty range\n\nCL 728881 enforced that gopls completions that pass a `Range` in the\nTextDocumentPositionParams only do so with an empty range (start \u003d end).\nThe benchmark tests weren\u0027t enforcing that, so many have been failing.\n\nI fixed the failing tests and added a better error message to the test\ncode that encourages the regex string to only contain an empty group:\n`()`.\n\nUpdates golang/go#80113\n\nChange-Id: I1bdb82b4618e6c3eb04506eed93d81166a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/797720\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "8786a967dbbb73b985c6345d652594422f995717",
      "tree": "75891c0833e9817f7f8058f53f37c3b1a577b349",
      "parents": [
        "425085f6dee3cf40e111b5d2e8cc139ff52c55ee"
      ],
      "author": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jul 07 19:53:03 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jul 07 13:21:32 2026 -0700"
      },
      "message": "internal/stdlib: update stdlib index for Go 1.27 Release Candidate 2\n\nFor golang/go#38706.\n\n[git-generate]\ngo run golang.org/dl/go1.27rc2@latest download\ngo run golang.org/dl/go1.27rc2@latest generate ./internal/stdlib\n\nChange-Id: Ic0b599edbef6ac06de115a0cdb76ed2a0fc9a2ee\nReviewed-on: https://go-review.googlesource.com/c/tools/+/797821\nReviewed-by: Junyang Shao \u003cshaojunyang@google.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nAuto-Submit: Gopher Robot \u003cgobot@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "425085f6dee3cf40e111b5d2e8cc139ff52c55ee",
      "tree": "7689a6c43199d87fbcb97ade5a305e0bbfe614ec",
      "parents": [
        "30c4f871093496f7e4492bad5d49cac24587eeda"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Jul 07 15:38:13 2026 +0000"
      },
      "committer": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Jul 07 11:40:02 2026 -0700"
      },
      "message": "gopls/internal/server: modify return of parseAction\n\nGiven that T is always a string type, return \"\" instead.\n\nChange-Id: I1959b8941e24deb2ab52b342e17b0e4535297389\nReviewed-on: https://go-review.googlesource.com/c/tools/+/797500\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "30c4f871093496f7e4492bad5d49cac24587eeda",
      "tree": "6169816a8aa0367537dbc9ee610e042ea07b9c3f",
      "parents": [
        "9e6441dfc70bdc98114c748afe34d7cd49b2d0b0"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jun 26 17:39:41 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jul 07 10:21:16 2026 -0700"
      },
      "message": "go/analysis/passes/nilness: skip magic cgo functions\n\nThe annotation on this function, for example, indicates\nthat the _cgo_runtime_cgocall function is accessing the\nentire stack frame directly, so it may clobber r1 even\nthough the SSA representation suggests it is always nil.\n\n  //go:cgo_unsafe_args\n  func _cgo_cmalloc(p0 uint64) (r1 unsafe.Pointer) {\n\t_cgo_runtime_cgocall(_cgo_a202e8d7d4fb_Cfunc__Cmalloc, uintptr(unsafe.Pointer(\u0026p0)))\n\tif r1 \u003d\u003d nil {\n\t\truntime_throw(\"runtime: C malloc failed\")\n\t}\n\treturn\n  }\n\nThis is required to avoid false positives in the nilness\nanalysis when it starts reporting nil unsafe.Pointers after\nCL 794881 lands.\n\nFor golang/go#80121\n\nChange-Id: Ia0824f86a86e18ee6956fda492490a2faf138f12\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794883\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\n"
    },
    {
      "commit": "9e6441dfc70bdc98114c748afe34d7cd49b2d0b0",
      "tree": "270d18d02a3e7fe8e6d219e019afa02ba0e1d5b8",
      "parents": [
        "df9684197301c2e2c2a34a56a329f667fd93637b"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Thu Jul 02 14:14:56 2026 -0400"
      },
      "committer": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Mon Jul 06 17:17:28 2026 -0700"
      },
      "message": "gopls/internal/protocol/generate: remove manual rename overwritten\n\nFor golang/go#80200\n\nChange-Id: I49c68af0b82a0a580665e831574d68a7cdadc04a\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796600\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "df9684197301c2e2c2a34a56a329f667fd93637b",
      "tree": "f17d43d0b192b58e97909c4b016528c28d677359",
      "parents": [
        "278f0628682b5732f29a5ef0083c860de88c5b94"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jun 29 15:05:45 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 06 16:58:53 2026 -0700"
      },
      "message": "gopls/internal/protocol: use Debug log level\n\nFor golang/go#80200\n\nChange-Id: Ia07a291acf45fcaf38e55aea29b5e410319ae031\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795442\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "278f0628682b5732f29a5ef0083c860de88c5b94",
      "tree": "9e3b5da91ee5675dfbc29542f5e8095e0b320eee",
      "parents": [
        "eca3ccd7a578f20033ec4fa5404ae1369a9a1953"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jun 29 14:34:14 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 06 16:58:47 2026 -0700"
      },
      "message": "gopls/internal/protocol: update to LSP 3.18\n\nDiagnostic.Message is now a union of string and markdown, though\ngopls only produces strings.\n\nNote that we had to use an explicit commit hash instead of the\n3.18 tag because the upstream seems to have tagged prematurely.\nThis required a tweak to the generator script.\n\nFor golang/go#80200\n\nChange-Id: I9fdbc3eb53496224be26ee11e17cb4c7ebfad319\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795321\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "eca3ccd7a578f20033ec4fa5404ae1369a9a1953",
      "tree": "7b3472623a29ea8a178de97b6412f90da41a3300",
      "parents": [
        "ce0506d2accd1c2f179b84e2504e215622d862fe"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Fri Jun 26 17:13:57 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 06 16:58:39 2026 -0700"
      },
      "message": "gopls/internal/server: add memoryLimit setting\n\nThis setting imposes a soft limit on memory usage of the gopls\nprocess via the runtime/debug.SetMemoryLimit mechanism.\nThis feature is experimental. It may permit users to trade\nmore CPU for lower steady state memory usage; or it may cause\nGC thrashing if set too low.\n\nThanks to Brian Dillmann at Cockroach labs for contributing it.\n(See https://github.com/golang/tools/pull/651.)\n\n+ relnote\n\nChange-Id: Idaf6390787a8895336ec27071e67014f4a17982a\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794882\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ce0506d2accd1c2f179b84e2504e215622d862fe",
      "tree": "db1742ae11787ce9c2a281345e3772c720f20601",
      "parents": [
        "4b9a5fd414e6f0cfb7d0b0c2c711f330a293a997"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Jun 29 14:28:12 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 06 14:56:51 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: embedlit invalid fix\n\nOne of the text edits that the embedlit modernizer\nproduces is to delete the key value expression and\nopening brace in a redundant field type specifier:\n\nT{U: U{f: v, ...}}\n  -----\n\nIf the kv expression is on its own line, we need\nto delete the whole line to avoid leaving white\nspace:\nT{\n  U: U{\n   f: v,\n  }\n}\n\nPreviously, we deleted the whole line after checking\nthat the previous element is on a different line\n(prevLine \u003c curLine) and the closing brace of the\ninner literal is on a different line than its\nopening brace. However, this did not take\ninto account the location of the inner elements.\nIf the first inner field assignment starts\non the same line as the kv expression, deleting\nthe entire line produces\ninvalid code:\n\nB: B{b: 1\n}\n\nWe should verify that the first inner element\nstarts on a subsequent line before we delete\nthe entire line.\n\nFixes golang/go#80197\n\nChange-Id: Ia6623c8dc329e46626677c2b8157c58e2ee81d32\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795441\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "4b9a5fd414e6f0cfb7d0b0c2c711f330a293a997",
      "tree": "1bc1bbff870b3b47f00592ff2f1ae7b62ba53906",
      "parents": [
        "784924be0c22085beed24b7fa91a39e52d682c33"
      ],
      "author": {
        "name": "Saleh",
        "email": "root@lr0.org",
        "time": "Mon Jul 06 18:59:52 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jul 06 13:23:10 2026 -0700"
      },
      "message": "go/analysis/passes/modernize: add importcomment analyzer\n\nThe new analyzer removes canonical import path comments, such as\n\n\tpackage foo // import \"example.com/foo\"\n\nThe go command enforced these comments in GOPATH mode via \"go get\", but\nignores them once a package belongs to a module, so they are obsolete in\nmodule-based projects. The fix deletes the comment.\n\nThe analyzer only runs when pass.Module is set, matching the agreed\nbehavior of removing the comment when a go.mod is present without\ninspecting the import path.\n\nFixes golang/go#80049\n\nChange-Id: I0ad4eb113496a2fba03eb1052e615af3f804a347\nGitHub-Last-Rev: dbfa397f47d50fb487e38cacbe6c78da684b26ea\nGitHub-Pull-Request: golang/tools#655\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796860\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "784924be0c22085beed24b7fa91a39e52d682c33",
      "tree": "f564bb4ee592af13105c5671a917ff2d37b9190c",
      "parents": [
        "60d34eea07153ace1a013a6fc42651534a0922d5"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Wed Jul 01 19:01:40 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Mon Jul 06 08:30:39 2026 -0700"
      },
      "message": "gopls/internal/test/misc: Fix two flaky tests\n\nIn gopls the module index is maintained with background\ngo routines. Tests that depend on the module index will be flaky\nif the background work doesn\u0027t finish in time. Instead, construct\nthe module index deterministically.\n\nFixes: golang/go#77552\nFixes: golang/go#77894\nChange-Id: I9f458d02e044d5d708a49faeae41c7554d0e1498\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796440\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\n"
    },
    {
      "commit": "60d34eea07153ace1a013a6fc42651534a0922d5",
      "tree": "8f26d02cda72f21dd969117516903bd019b9adda",
      "parents": [
        "828b47a8e130b7a4c63289cb4f0d603ac648abb1"
      ],
      "author": {
        "name": "David du Colombier",
        "email": "0intro@gmail.com",
        "time": "Wed Jul 01 21:45:22 2026 +0200"
      },
      "committer": {
        "name": "David du Colombier",
        "email": "0intro@gmail.com",
        "time": "Thu Jul 02 10:52:56 2026 -0700"
      },
      "message": "internal/robustio: don\u0027t use syscall.Errno on Plan 9\n\nCL 795200 added plan9 to the build constraint of\nrobustio_flaky.go, whose retry function inspects\nsyscall.Errno to keep the error with the lowest\nerrno seen across retries.\n\nsyscall.Errno didn\u0027t exist on Plan 9 before Go 1.27,\nsince Plan 9 errors are strings rather than numeric\nerrnos. Building internal/robustio for Plan 9 with\nGo 1.26 or earlier, which x/tools still supports,\nfails with \"undefined: syscall.Errno\".\n\nExtract the errno through a per-platform getErrno\nhelper, so the shared retry code no longer names\nsyscall.Errno. On Plan 9, getErrno reports no\nerrno and retry keeps the first error, as it\nalready does elsewhere when the error carries no\nerrno.\n\nFixes golang/go#80225\n\nChange-Id: I9295e0e1a1acb95812c9a09396384cb5d3339b64\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796320\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nReviewed-by: Richard Miller \u003cmillerresearch@gmail.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "828b47a8e130b7a4c63289cb4f0d603ac648abb1",
      "tree": "0570397f3392f9fbb8b6e2d0d5821599ade5580f",
      "parents": [
        "1c54c8cd10afc53d097638705f00d683e43c1965"
      ],
      "author": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Tue Jun 30 12:14:02 2026 -0400"
      },
      "committer": {
        "name": "Alex Putman",
        "email": "aputman@golang.org",
        "time": "Wed Jul 01 11:18:02 2026 -0700"
      },
      "message": "gopls/internal/test: have semtok work with gopls@v0.11.0\n\nPreviously in gopls v0.11.0, the gopls server only registered SemanticTokens as a dynamic registration. Meaning that the option `capabilities.TextDocument.SemanticTokens.DynamicRegistration` had to be `true` and the client had to be set up to handle it being dynamically registered; i.e. in the `RegisterCapability` callback.\n\nSo by implementing this functionality again on the client (which shouldn\u0027t be an issue since it is just supporting an additional server configuration), the benchmarks now work again for the baseline version. Tested running the command:\n\n```\n\u003e cd gopls/internal/test/integration/bench\n\n\u003e go test -test.fullpath\u003dtrue -benchmem -run\u003d^$ -gopls_commit\u003dgopls/v0.11.0 -bench ^BenchmarkSemanticTokens$ golang.org/x/tools/gopls/internal/test/integration/bench  \n```\n\nChange-Id: Iecf9efad800e4c9d0322f6288ee2ee106a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795701\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "1c54c8cd10afc53d097638705f00d683e43c1965",
      "tree": "dc129eb66b9086708b51a90632614ddd1ae4a2ed",
      "parents": [
        "ce1ac030f27092a75b323f20611767330fee68f3"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Wed Jul 01 10:33:47 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Jul 01 08:14:36 2026 -0700"
      },
      "message": "cmd/goimports: skip TestCmd on js/wasm\n\nFixes golang/go#80203\n\nChange-Id: I1e7a0ae20fe2441a3cff44a0128a184cce3a2e99\nReviewed-on: https://go-review.googlesource.com/c/tools/+/796240\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ce1ac030f27092a75b323f20611767330fee68f3",
      "tree": "eb53c07594b68b40597d8dda07bd6e4b67ebe180",
      "parents": [
        "902c7a9c9294de0f4edaf715f55e2064f983a69c"
      ],
      "author": {
        "name": "Damien Neil",
        "email": "dneil@google.com",
        "time": "Tue Jun 30 15:19:50 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jun 30 15:47:57 2026 -0700"
      },
      "message": "gopls/internal/licenses: use //go:embed rather than a hand-embedded string\n\nAvoid surprising errors (and a not-very-useful code injection mechanism)\nwhen processing a license containing a back-quote.\n\nChange-Id: I6295a98ba4a037b3ea05e58599befc116a6a6964\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795880\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "902c7a9c9294de0f4edaf715f55e2064f983a69c",
      "tree": "02240609ecfb91d91904d566bd5c2a177c07fb18",
      "parents": [
        "c43693cde27affba1cb784068c554f1d07f90559"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Thu Jun 25 16:00:25 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Jun 30 11:48:01 2026 -0700"
      },
      "message": "gopls/internal/cache: share objectpath Encoder across batch\n\nThis CL causes an entire batch of type checking to share one\nobjectpath.Encoder. Since type checking is concurrent, this\nrequires serializing access to the encoder state. This could be\ndone by an external mutex, but it is cleaner to make Encoder\ndo the locking itself, since it can avoid it for most queries.\n\nThis reduces the CPU usage of objectpath.Encoder in a clean\n\u0027gopls check cmd/kubelet\u0027 from 22.0s to 10.4s.\n(It was previously about 16% of total CPU; now only 9%)\n\nSimilar amortizations are applied to various batched\nindex construction operations such as method-sets and xrefs.\n\nThanks to Brian Dillmann at Cockroach Labs for the idea\n(github.com/golang/tools/pull/651).\n\nChange-Id: Ie5284e01c7ddbd28baa52281908a5deca3908003\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794560\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c43693cde27affba1cb784068c554f1d07f90559",
      "tree": "f1641a7dd0d2dd110e82b389831a7cfb3b2cfd27",
      "parents": [
        "036adc105361b1169b871cebfee6f6f1792a5be3"
      ],
      "author": {
        "name": "David du Colombier",
        "email": "0intro@gmail.com",
        "time": "Mon Jun 29 20:26:33 2026 +0200"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Tue Jun 30 10:39:11 2026 -0700"
      },
      "message": "gopls/internal/test/integration/fake: retry reads of exclusive-use files\n\nThe fake editor detects file changes by polling.\nWorkdir.pollFiles reads every file in the working\ndirectory. On Plan 9 the go command opens go.mod and\nother files with the exclusive-use bit while reading\nthem through lockedfile, so while gopls loads the\nworkspace with concurrent go commands, the read of\ngo.mod in pollFiles intermittently fails with\n\"exclusive use file already open\" on ramfs, or\n\"exclusive lock\" on fossil.\n\nThe error propagates out of CheckForFileChanges, and\nApplyQuickFixes reported it as \"no quick fixes were\napplied\". This is how TestQuickFixIssue70755 fails on\nthe plan9-386 and plan9-amd64 builders.\n\nMake robustio retry these exclusive-use errors on\nPlan 9, recognizing the same lock strings as cmd/go\u0027s\nlockedfile, and read through robustio.ReadFile in\nWorkdir.ReadFile and pollFiles. Also make\nApplyQuickFixes return the underlying error instead of\nmasking it.\n\nChange-Id: Id55db2cc18f7b75e2ae12d016d1ae0413529ac21\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795200\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nCommit-Queue: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "036adc105361b1169b871cebfee6f6f1792a5be3",
      "tree": "9736648110091dd3f3347e00487cf3222117daf3",
      "parents": [
        "71604fc4d6ded9c038397c6d0f40e5150727e061"
      ],
      "author": {
        "name": "Jake Bailey",
        "email": "jacob.b.bailey@gmail.com",
        "time": "Sun Jun 28 15:42:17 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Jun 30 10:09:48 2026 -0700"
      },
      "message": "gopls/internal/cache: detect testmain without GOCACHE\n\nIf someone has a GOCACHEPROG, that GOCACHEPROG may place files outside\nof GOCACHE (since reasonably, an outside tool should not put stuff in\nGOCACHE; that\u0027s Go\u0027s domain).\n\nBut, isTestMain detected generated testmain files by looking for them\ninside GOCACHE, leading to odd errors like:\n\n    could not import testing/internal/testdeps (invalid use of internal package \"testing/internal/testdeps\")\n\nRather than checking GOCACHE, check and see if the loaded files are just\noutside pkg.Dir. In my testing, I was seeing:\n\n    pkg.Dir\u003d\"/home/jake/work/TypeScript-go/internal/parser\"\n    GoFiles\u003d[\"/home/jake/.cache/gocachez/v1/live/run-1630688891/0da230d43268bd7a7351aefd6900d761eed9c58cd4791093b331b16b6a3bce12-2791091722\"]\n\nWhich I think is enough of a signal to also be reliable.\n\nChange-Id: I563c10d4ef6dccbfe1cd0ffd5bbd49092b03adfc\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795221\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Junyang Shao \u003cshaojunyang@google.com\u003e\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "71604fc4d6ded9c038397c6d0f40e5150727e061",
      "tree": "d9dae8609e5dda21e7692d8d4cc37703dcdc57b5",
      "parents": [
        "7c877ec12335be84688f1fd956f07fd334e92421"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Sat Jun 27 10:58:58 2026 -0700"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Mon Jun 29 17:54:43 2026 -0700"
      },
      "message": "gopls/test/integration/mist: Fix flaky test\n\nTest61208 in imports_test.go is flaky because the module index does\nnot always exist when the test tries to read it. This is fixed by\nexplicitly making sure the index exists. Otherwise the index is\ncreated by a background goroutine when the View is initialized, and\noccasionally it would seem that the goroutine doesn\u0027t complete in time.\n\nFixes: golang/go#78680\nChange-Id: I61f012aa2fb236347c788f52a239f7c37231abe6\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795040\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n"
    },
    {
      "commit": "7c877ec12335be84688f1fd956f07fd334e92421",
      "tree": "d98d0dcc5a78afc38ad1591b6d715bb4320a237c",
      "parents": [
        "c6f56e20cafb14558b785679bda2967b609d989a"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jun 29 14:01:10 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jun 29 13:52:47 2026 -0700"
      },
      "message": "gopls: two mitigations for \"surplus bytes\" crash\n\nIn go.dev/issue/80166 a \"surplus bytes\" error was observed during\nfrob decoding. This \"cannot happen\" because Encode and Decode\nare strictly dual, and the design of the cache means that\nwe do not attempt to decode a file with the wrong checksum,\nso hardware faults or file system corruption is eliminated as\na cause.\n\nThis CL adds two defensive measures to try to resolve the mystery:\n1) frob encoding asserts that the number of map iterations\n   matches the length, in case the map was somehow concurrently\n   mutated. (Better to crash than write a corrupt cache entry.)\n2) during filecache creation, we record the complete SHA digest\n   of th executable, and check it on subsequent startups that\n   hit an existing directory, in case we have a case of the\n   birthday paradox (though with 32 bits this is exceeedingly\n   unlikely).\n\nAlso, simplify using sync.OnceValues.\n\nFor golang/go#80166\n\nChange-Id: I26625a806b10087070a4f4b67f78bd0156b48357\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795440\nAuto-Submit: Alan Donovan \u003cadonovan@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c6f56e20cafb14558b785679bda2967b609d989a",
      "tree": "71fd1f9ffb74cfbd7166df39f73a2e28e52cfc7f",
      "parents": [
        "c96ee2617deb28d78450276ad17e02e10a1deded"
      ],
      "author": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jun 29 12:54:59 2026 -0400"
      },
      "committer": {
        "name": "Alan Donovan",
        "email": "adonovan@google.com",
        "time": "Mon Jun 29 13:50:50 2026 -0700"
      },
      "message": "gopls/internal/cache: delete dead (gob) code\n\nThis code predates the switch from gob to frob encoding,\nand is no longer used. (The frob encoding of maps is\nnondeterministic.)\n\nChange-Id: I102de95dc92309e9c869437900ff2abeb1fe3bbc\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795400\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "c96ee2617deb28d78450276ad17e02e10a1deded",
      "tree": "43c0991c18aa4cdf9e67d621964d0644d567bc94",
      "parents": [
        "f3d2c8244b73107401b8d7d3a1b2bfde8fb9a6ab"
      ],
      "author": {
        "name": "Madeline Kalil",
        "email": "mkalil@google.com",
        "time": "Mon Jun 29 12:33:57 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jun 29 12:23:03 2026 -0700"
      },
      "message": "gopls/internal/test: address out of bounds panic in BenchmarkSemanticTokens\n\nWe are currently not generating any performance metrics for gopls\nbecause the benchmarks suite panics in BenchmarkSemanticTokens.\n\nSee go.dev/cl/794620 for more details.\n\nReport an error instead of panicing when the index is out of\nbounds for TokenTypes. (I still don\u0027t understand why we hit\nthis scenario).\n\nFor golang/go#80113\n\nChange-Id: Iba0eb06bcc439283a4f8924806fbc828aed0f6a3\nReviewed-on: https://go-review.googlesource.com/c/tools/+/795320\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\nAuto-Submit: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\n"
    },
    {
      "commit": "f3d2c8244b73107401b8d7d3a1b2bfde8fb9a6ab",
      "tree": "93c243b8602ec5955fb9a851400564b93d206960",
      "parents": [
        "5d24afaf9a823b46b0bf41d16c7c351a5cee1fbe"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Fri Jun 26 19:36:20 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Jun 29 11:36:11 2026 -0700"
      },
      "message": "gopls/internal/server: fix parsing vulncheck action\n\nPreviously, the action var in checkDepedencyChanges was being shadowed\nwithin an inner context. As a result, the outer action var\u0027s value\nremained null despite the inner action var being set correctly.\nTriggering govulncheck from the vulncheck_prompt works now.\n\nFixes golang/go#79826\n\nChange-Id: I431bcf381f55616a2a8ff325b7f23d2f07a7e9fd\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794880\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "5d24afaf9a823b46b0bf41d16c7c351a5cee1fbe",
      "tree": "65d7f17126c6911a30e22711aabae8c8e50abacc",
      "parents": [
        "acb27c67a4a3d4dec4fa02646af8c5494c34aa46"
      ],
      "author": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Thu Apr 16 12:13:52 2026 -0400"
      },
      "committer": {
        "name": "Peter Weinberger",
        "email": "pjw@google.com",
        "time": "Sat Jun 27 10:23:20 2026 -0700"
      },
      "message": "internal/imports: use module cache index if it exists\n\ngoimports can be very slow as the existing code\nscans the module cache. The new version uses\nthe index to the module cache if it exists.\n\nThe index usually exists if the user uses gopls.\n\nThere is a new test for the goimports command that\nuses just a module cache index, with no files in\nthe module cache.\n\nNone of the tests in internal/imports needed\nto be changed, as they do not create an index.\n\nOn my laptop the new code executes in .66 seconds\ninstead of 3.4 seconds.\n\ngolang/go#80087 discusses an unresolved edge case\n\nFixes: golang/go#78671\nFixes: golang/go#76310\n\nChange-Id: Ice9a6ef8075fbea9fa4220db2576da0a394e7b10\nReviewed-on: https://go-review.googlesource.com/c/tools/+/767881\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\n"
    },
    {
      "commit": "acb27c67a4a3d4dec4fa02646af8c5494c34aa46",
      "tree": "c5722ba460c8dcc629dcc9a9d72692b6382cf91a",
      "parents": [
        "fa6217556b22c3e9b83215e5d48adfe7027dab15"
      ],
      "author": {
        "name": "David du Colombier",
        "email": "0intro@gmail.com",
        "time": "Fri Jun 26 19:15:15 2026 +0200"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Jun 26 17:50:27 2026 -0700"
      },
      "message": "gopls/internal/telemetry: skip the telemetry test on Plan 9\n\nThe telemetry test relies on the counters from\ngolang.org/x/telemetry, which are stored in\nmemory-mapped files.\n\nPlan 9 does not support mmap, so the counters are\nnever persisted and always read back as zero, like\non js/wasm and wasip1, which are already excluded.\n\nAdd plan9 to the build constraint.\n\nChange-Id: I356f9d0115ace200de8c4ffa3a192ca18babeaba\nReviewed-on: https://go-review.googlesource.com/c/tools/+/794821\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nAuto-Submit: David du Colombier \u003c0intro@gmail.com\u003e\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nReviewed-by: Richard Miller \u003cmillerresearch@gmail.com\u003e\n"
    }
  ],
  "next": "fa6217556b22c3e9b83215e5d48adfe7027dab15"
}
