)]}'
{
  "log": [
    {
      "commit": "dc2757fc6e92e835125dd6e0d6a8d4fea85aba05",
      "tree": "e169df0e8ed3bed616c4acd23a69d3cc71bfd65b",
      "parents": [
        "e1e99e5868f1b61f9fc37e997b1ae981c8671033"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 26 14:19:00 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Nov 09 07:01:21 2026 -0800"
      },
      "message": "internal/postgres: limit imported-by-count updates\n\nAdd a query parameter that limits the total number of counts updated.\nThe intent is to limit the work that the endpoint does, to avoid\noverloading the system.\n\nChange-Id: I28b0031f171192870e84111714c72d996a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/854068\nReviewed-by: Nicholas Husin \u003cnsh@golang.org\u003e\nReviewed-by: 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: Nicholas Husin \u003chusin@google.com\u003e\n"
    },
    {
      "commit": "e1e99e5868f1b61f9fc37e997b1ae981c8671033",
      "tree": "e20612d1966951176ae09557b5dc7030dd916519",
      "parents": [
        "b5d395dd0f63a266c313026c9307cf1a938e4c99"
      ],
      "author": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Wed Oct 28 12:16:28 2026 -0400"
      },
      "committer": {
        "name": "Michael Matloob",
        "email": "matloob@google.com",
        "time": "Wed Nov 04 03:38:21 2026 -0800"
      },
      "message": "integration_test.go: on builders, only run postgres in a container\n\nIt\u0027s much faster to just start postgres in a docker container and\nrun the test itself outside the container.\n\nFor golang/go#82561\n\nChange-Id: I3dee7c7df2a4978d2b152da3babc22c66a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/856101\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Michael Matloob \u003cmatloob@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "b5d395dd0f63a266c313026c9307cf1a938e4c99",
      "tree": "b6906c4d0d993e82cfa63f660f9135280afbfc79",
      "parents": [
        "bc8a698b1432e95daec030346ccda97e725a2f5f"
      ],
      "author": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Thu Oct 29 14:05:37 2026 -0400"
      },
      "committer": {
        "name": "Michael Matloob",
        "email": "matloob@google.com",
        "time": "Tue Nov 03 13:10:09 2026 -0800"
      },
      "message": "devtools/docker.sh: propagate non-zero exit codes in podman-compose run\n\nWork around podman-compose \u003c 1.0.6 (shipped in Debian 12) swallowing\nnon-zero container exit codes on \"run\": check that its final output line\nis \"exit code: 0\", and only add \"--no-deps\" on the first \"run\" argument\nso container commands such as \"npm run lint\" are left untouched.\n\nFor golang/go#82561\n\nChange-Id: I28770e8a97039419821803d3659266b96a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/856441\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Michael Matloob \u003cmatloob@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": "bc8a698b1432e95daec030346ccda97e725a2f5f",
      "tree": "43c52e8612fc5be7878bae833e28eaec905bfb05",
      "parents": [
        "fb32d103a734d75ea28b6f96a3ef24e08c2b2e22"
      ],
      "author": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Thu Oct 29 05:56:53 2026 -0400"
      },
      "committer": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Tue Nov 03 09:40:54 2026 -0800"
      },
      "message": "devtools/cmd/wait_available: fail on timeout instead of running command\n\nPreviously, when wait_available exceeded --timeout waiting to dial\nhostport, it silently broke out of the retry loop and executed the\ntarget command anyway, masking readiness failures behind 300s delays.\n\nExit with a fatal error when the timeout expires, and guard command[0]\nwhen invoked without a trailing command.\n\nFor golang/go#82561\n\nChange-Id: Ia325f72a024b60fd9f4aa02d52facfa76a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/856105\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\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "fb32d103a734d75ea28b6f96a3ef24e08c2b2e22",
      "tree": "76b43315795496cfc7b097d054c1580d4a64eae6",
      "parents": [
        "890086f2d71bcf40c1c6d0687c0140c2ede9b369"
      ],
      "author": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Thu Oct 29 05:53:52 2026 -0400"
      },
      "committer": {
        "name": "Michael Matloob",
        "email": "matloob@google.com",
        "time": "Thu Oct 29 11:31:05 2026 -0700"
      },
      "message": "internal/frontend,internal/worker: use source.NewClientForTesting\n\nWe\u0027ve been using it in more places to improve testing speed so\ndo so here too, and replace some old attempts of a testing client.\n\nFor golang/go#82561\n\nChange-Id: Iaba6c9ecdbfce188e35c939d3cd99ac26a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/856081\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Michael Matloob \u003cmatloob@google.com\u003e\n"
    },
    {
      "commit": "890086f2d71bcf40c1c6d0687c0140c2ede9b369",
      "tree": "1a09b1202f868e41f2909b8e972515bfcc5300d3",
      "parents": [
        "008596ac21857db624e81affc45a1b9d5f700a2d"
      ],
      "author": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Wed Oct 28 12:16:01 2026 -0400"
      },
      "committer": {
        "name": "Michael Matloob",
        "email": "matloob@google.com",
        "time": "Wed Oct 28 14:30:59 2026 -0700"
      },
      "message": "devtools/docker: turn off postgres fsync in tests on builders\n\nThe builders are ephemeral so we don\u0027t care about crash recovery.\nTurn off off fsync in the tests to improve performance on podman,\nwhere filesystem access is slower.\n\nFor golang/go#82561\n\nChange-Id: I538bf03193a9c7717946d6e6207c1ea16a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/854509\nReviewed-by: Michael Matloob \u003cmatloob@google.com\u003e\nReviewed-by: 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\n"
    },
    {
      "commit": "008596ac21857db624e81affc45a1b9d5f700a2d",
      "tree": "265fd36b08e05f2cc72cad5217b6f614176bb84b",
      "parents": [
        "5227a654ddc1c15191bdf33a3339221664379115"
      ],
      "author": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Fri Oct 23 09:55:49 2026 -0400"
      },
      "committer": {
        "name": "Michael Matloob",
        "email": "matloob@golang.org",
        "time": "Wed Oct 28 13:48:07 2026 -0700"
      },
      "message": "devtools: allow running tests with podman instead of docker\n\nDocker isn\u0027t allowed to be installed in many environments due to\nsecurity reasons. We also have to work around some issues on the\nlinux-amd64 builders which have Debian 12.\n\nAlso add docker.io prefix because it\u0027s not assumed on podman.\n\nChange-Id: I9c9664cd5f18893d2bb731a87bb2ae5c6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/853345\nReviewed-by: Michael Matloob \u003cmatloob@google.com\u003e\nReviewed-by: 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\n"
    },
    {
      "commit": "5227a654ddc1c15191bdf33a3339221664379115",
      "tree": "058abfcb7173467a998b53e7a18128e8b934fe44",
      "parents": [
        "bc809f4f151f2b2be2ad9cab2434c60500df902a"
      ],
      "author": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Tue Oct 27 12:41:29 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Oct 27 13:09:06 2026 -0700"
      },
      "message": "internal/worker: skip redis cache invalidation when inserting modules\n\nThis reverts commit 540a05c44e04ec97f15e049f909a15c6b24df452.\n\nThis brings back CL 852148 which was reverted by the commit.\n\nReason for revert: the change was not the root cause. Backend is now stable.\n\nChange-Id: I6aec5b3e999e2e9227b0134d64608e485ab2f35a\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/854486\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Nicholas Husin \u003cnsh@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": "bc809f4f151f2b2be2ad9cab2434c60500df902a",
      "tree": "2e67cb6e131ff5685533ccac8bede3abbc72f997",
      "parents": [
        "dfc8d48358e3c0026de20c5dd3611c27e4579283"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Fri Oct 16 21:56:39 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Oct 27 11:44:45 2026 -0700"
      },
      "message": "CONTRIBUTING.md, tests/README.md: document screentest trybot footer\n\nDocument how to trigger the optional x_pkgsite-gotip-linux-amd64_docker-screentest\nLUCI trybot during presubmit using the Cq-Include-Trybots commit message footer.\n\nFor golang/go#71558.\n\nChange-Id: Iaa9dac4f1863fa50664188b15cbee5fc107a6b6b\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/850006\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\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: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\n"
    },
    {
      "commit": "dfc8d48358e3c0026de20c5dd3611c27e4579283",
      "tree": "f51dc8d696762107b79ebb92544e6b04a6351b1b",
      "parents": [
        "8b2f2a882f6f534451aca170185b5aeb6e28f930"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Oct 21 02:41:48 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Oct 26 10:15:28 2026 -0700"
      },
      "message": "static/frontend: append version param to static scripts\n\nPass AppVersionLabel in JavaScript script URLs to limit the browser\ncaching time. This prevents using stale cached scripts across\ndeployments. The same technique is used for CSS files.\n\nFor golang/go#82110\n\nChange-Id: I947cfd8026cbe37188c009f9511b3322b8b5343d\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/851965\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "8b2f2a882f6f534451aca170185b5aeb6e28f930",
      "tree": "e3c46dd5c66312d267c070ddd918e4ac635895fe",
      "parents": [
        "2469bddd910fd6cd6b3e7133c25be12dacc85dae"
      ],
      "author": {
        "name": "Nicholas S. Husin",
        "email": "nsh@golang.org",
        "time": "Fri Oct 23 20:21:05 2026 -0400"
      },
      "committer": {
        "name": "Nicholas Husin",
        "email": "nsh@golang.org",
        "time": "Fri Oct 23 19:43:36 2026 -0700"
      },
      "message": "internal/postgres: disable popularSearch\n\nWhen serving search requests, we currently hedge two queries:\npopularSearch (better when searching for popular terms like \"http\") and\ndeepSearch.\n\nMetric shows that for the majority of searches we handle (~99.5%),\ndeepSearch wins this race. When handling searches for popular terms,\ndeepSearch does take a longer amount of time (around 1-3 seconds), but\nRedis cache makes this longer search pretty rare.\n\nTherefore, disable popularSearch for now to avoid putting undue load on\nour database. This is a no-op since both searches return the same\nresult.\n\nChange-Id: Iec7a4f570c2545209693f04323b3c4b96a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/853466\nReviewed-by: Nicholas Husin \u003chusin@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: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\n"
    },
    {
      "commit": "2469bddd910fd6cd6b3e7133c25be12dacc85dae",
      "tree": "eddc4317f4eb951f95dd0e257c499d30014a1b00",
      "parents": [
        "5477d6c5b0fb3258fd892ba0741e970b827b2081"
      ],
      "author": {
        "name": "Ashwin Sarswat",
        "email": "ashwinsarswat14@gmail.com",
        "time": "Thu Oct 22 21:28:08 2026 +0530"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Oct 23 15:22:36 2026 -0700"
      },
      "message": "internal/source: preserve trailing slashes in repository URLs\n\nPreserve trailing slashes for repository URLs when no URL templates\nare available.\n\nFixes golang/go#79690\n\nChange-Id: Iaa1bf3f342c9f6de71ee09ef8ed4ffcf5ce8da42\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/852705\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@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": "5477d6c5b0fb3258fd892ba0741e970b827b2081",
      "tree": "cf85f23b52e7a33e40fee1ed112698367e5e9599",
      "parents": [
        "540a05c44e04ec97f15e049f909a15c6b24df452"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 22 10:59:14 2026 -0700"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 22 12:37:25 2026 -0700"
      },
      "message": "Revert \"internal/postgres: module counts prefer popular packages\"\n\nThis reverts commit f32a77646d7df491db781f4e78a22cd3d2bd1093.\n\nReason for revert: although the job finishes quickly and successfully, it results in huge amounts of replication logs, which pushes the replica CPUs over the alert threshold.\n\nChange-Id: I39ca5ab507d90a70fe3dc268b7d328fac97726f8\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/852885\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nTryBot-Bypass: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nReviewed-by: Nooras Saba \u003cnoorassaba@google.com\u003e\n"
    },
    {
      "commit": "540a05c44e04ec97f15e049f909a15c6b24df452",
      "tree": "9855422a4eecb8a507eb16d2204b728aa6432dda",
      "parents": [
        "09bbc2ef7dffece730f82f55f187b787f2f19bc6"
      ],
      "author": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Oct 21 09:23:21 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Oct 21 09:44:13 2026 -0700"
      },
      "message": "Revert \"internal/worker: skip redis cache invalidation when inserting modules\"\n\nThis reverts commit 646495411add9478071297ab0df4fce374197259.\n\nReason for revert: Redis Cache is OOMing and DB is also overwhelmed.\n\nChange-Id: I3281c0ce701e6426aa918b085551827e09219b6e\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/852148\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\nReviewed-by: Nicholas Husin \u003chusin@google.com\u003e\nReviewed-by: Nooras Saba \u003cnoorassaba@google.com\u003e\nReviewed-by: Nicholas Husin \u003cnsh@golang.org\u003e\n"
    },
    {
      "commit": "09bbc2ef7dffece730f82f55f187b787f2f19bc6",
      "tree": "3ccccd13e7cfe5d2f008ccbb1423d911a9473201",
      "parents": [
        "a643752d11b909ad1499db895927a48f4eeed6c5"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Tue Oct 20 01:05:51 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Oct 21 07:09:51 2026 -0700"
      },
      "message": "internal/frontend: remove Code Wiki links\n\nCode Wiki is no longer maintained. Remove the Code Wiki link from unit\npages, the /codewiki click-tracking redirect, the click metrics, and the\nlogo.\n\nFixes b/570622533\n\nChange-Id: I196e356f38051dfdbc2ad4d720e9231a6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/851106\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "a643752d11b909ad1499db895927a48f4eeed6c5",
      "tree": "723488049ed5fb2018ffc9efdd247f3b27cda757",
      "parents": [
        "f4193651462b3e92a913cf087b6bc41857f67b64"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Oct 21 13:45:43 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Oct 21 07:07:33 2026 -0700"
      },
      "message": "deploy: use Go 1.27.3 for builds and deployments\n\nChange-Id: Idd83e04c9d6d9be72ae0c8a2be9e61a4984f378a\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/852205\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\nReviewed-by: Nicholas Husin \u003cnsh@golang.org\u003e\nReviewed-by: Nicholas Husin \u003chusin@google.com\u003e\n"
    },
    {
      "commit": "f4193651462b3e92a913cf087b6bc41857f67b64",
      "tree": "1f72d406ed0f29937ca044b31ddea766169943af",
      "parents": [
        "3809f92af353fa595d9fa97def85c7496f7bed93"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Oct 21 02:38:11 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Tue Oct 20 20:10:06 2026 -0700"
      },
      "message": "internal/frontend: update 2026 Go Developer Survey banner schedule\n\nUpdate the survey start timestamp to 2026-10-21T14:00:00Z (10am EDT) and\nthe end timestamp to 2026-11-03T23:59:59Z so the banner opens at 10am ET\nand remains visible through the end of November 3 UTC.\n\nFor golang/go#82110\n\nChange-Id: Iaebbf18b79aef4e468826964151631df9d5198d2\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/851945\nReviewed-by: Cameron Balahan \u003ccbalahan@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": "3809f92af353fa595d9fa97def85c7496f7bed93",
      "tree": "92c1ece8a139902c1cd7e3d6d7852e168d290451",
      "parents": [
        "58158869139be61131bf1d472a0bcbc2e427afe8"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Tue Oct 20 19:27:41 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Oct 20 14:50:40 2026 -0700"
      },
      "message": "tests/screentest: hide survey banner before clicking page elements\n\nWhen running screentest against staging while a survey banner is active,\nthe fixed desktop survey card (.go-SurveyBanner) sits over the bottom-right\nof the viewport and intercepts the click on [data-test-id\u003d\"directories-toggle\"]\nin \"test x/net directories expanded\", preventing the directories table from\nexpanding.\n\nHide the banner and other dynamic elements before clicking page elements in\n\"test x/net directories expanded\", \"test empty jump to modal\", and \"test home\".\n\nFor golang/go#82110\n\nChange-Id: Ia8f9856e4761c7b36418209003b839f9bac324a5\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/851054\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": "58158869139be61131bf1d472a0bcbc2e427afe8",
      "tree": "815ea2b0e3234e486d3c22eeac54de27fb58ebe2",
      "parents": [
        "646495411add9478071297ab0df4fce374197259"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Sat Sep 12 16:05:21 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Oct 19 10:54:43 2026 -0700"
      },
      "message": "cmd/internal/doc: test that the server serves the stdlib and the current module\n\nTestServe builds the server the way \"go doc -http\" does and asks for\n/std, /errors, and the module in the current directory. CL 815900 broke\nall three, so this guards the configuration in serverConfig as we make\nfurther changes for golang/go#78459.\n\nThe test pins GOMODCACHE to an empty directory and GOPROXY to an empty\nfile:// proxy. These pages come from the current directory and from\nGOROOT, so a getter that stops answering must fail the test. Without the\npins, a download can supply a published copy of the module and the test\npasses for the wrong reason.\n\nFor golang/go#78459\n\nChange-Id: I8b2776b66f60967985767d256c8208a76a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831605\nReviewed-by: Sean Liao \u003csean@liao.dev\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@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": "646495411add9478071297ab0df4fce374197259",
      "tree": "bba05a665cc176235b72095ecfbfefc66339224b",
      "parents": [
        "e9ba60e8cdc2cae3632e74d03f206ee7a803ce37"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Oct 15 18:34:28 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Oct 19 07:19:45 2026 -0700"
      },
      "message": "internal/worker: skip redis cache invalidation when inserting modules\n\nWhen inserting the latest version of a module, Fetcher previously\ninvalidated matching keys in the Redis page cache using prefix scans\n(SCAN 0 MATCH \u003cprefix\u003e*). With ~700K keys in the production Redis\ncache, four full-keyspace prefix scans per module become expensive.\n\nAlternatives include optimizing prefix invalidation (e.g., combining\nthe four SCAN passes or indexing keys in an ordered data structure\nlike a ZSET) or splitting the details keyspace from longer-lived\nsearch and quota keys. However, because frontend details pages already\nhave a short fixed TTL (at most 10 minutes, and 1 minute for crawlers),\nexplicit worker cache invalidation on module insert is not worth the\nadded complexity. Remove cache invalidation from Fetcher and the\nnow-unused Delete and DeletePrefix methods from internal/cache, while\nretaining Server\u0027s /clear-cache endpoint.\n\nFor golang/go#82250\n\nChange-Id: I93bbad2bd4df2ee8408a03a0bc8791fc6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/849845\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "e9ba60e8cdc2cae3632e74d03f206ee7a803ce37",
      "tree": "6226d594302a21c252fc1ee74d03800cfcca907e",
      "parents": [
        "66df33225fe30a3d2e17990bacfd4a22e40af8d3"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Fri Oct 16 21:33:45 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Fri Oct 16 15:59:40 2026 -0700"
      },
      "message": "devtools/docker: fix GO_DISCOVERY_DISABLE_TEMPORARY_BANNER default\n\nThe default value in compose.yaml was written as \"true\" (quoted) inside\nthe ${...:-...} interpolation. Docker Compose keeps the quotes, so the\nfrontend saw the literal value \u0027\"true\"\u0027, which does not equal \"true\".\nThe survey banner was therefore shown in the CI screentests and broke\nthe golden comparisons.\n\nDrop the quotes so the variable is set to true.\n\nFor golang/go#82110\n\nChange-Id: Ib4442b106e89922ab5b92988cc25de826a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/850046\nReviewed-by: 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\n"
    },
    {
      "commit": "66df33225fe30a3d2e17990bacfd4a22e40af8d3",
      "tree": "87c64dc876ac8973f4d3f8b0e68967498f84ceb4",
      "parents": [
        "bfb229e693dcf410b5c1e2960c08ba2ab7caed5c"
      ],
      "author": {
        "name": "Zachary Spar",
        "email": "zachspar@gmail.com",
        "time": "Mon Oct 12 20:44:16 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Oct 16 12:46:38 2026 -0700"
      },
      "message": "doc/config: fix malformed env vars table\n\nThe separator row had three columns but the header had two,\nso the table rendered with an extra empty column.\n\nChange-Id: I0da327fe862594221081cdf331becd1d8b6a7c8f\nGitHub-Last-Rev: 380866e9bac761d73933b2104328bcb8b8c330ca\nGitHub-Pull-Request: golang/pkgsite#156\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/848646\nAuto-Submit: Carlos Amedee \u003ccarlos@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\nReviewed-by: Carlos Amedee \u003ccarlos@golang.org\u003e\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\n"
    },
    {
      "commit": "bfb229e693dcf410b5c1e2960c08ba2ab7caed5c",
      "tree": "c2bf95facb6c403412250d40770736eb8d40be6c",
      "parents": [
        "a4c2e078e6aff1fc6479d3e956998659e35f708f"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Sep 14 17:23:51 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Oct 16 10:05:41 2026 -0700"
      },
      "message": "deploy: drop the go mod tidy step\n\nCL 757920 added a \"Tidy private\" step to deploy.yaml and deploy-env.yaml,\nbecause a dependency bump in this repo leaves the private repo\u0027s go.mod\nstale, and the go command then refuses to build:\n\n\tgo: updates to go.mod needed; to update it:\n\t\tgo mod tidy\n\nPrivate repo CL 3139408 added a go.work file that includes this module,\nso the go command resolves dependencies from the union of the two modules\nand that go.mod no longer has to be tidy. The step has nothing left to do.\n\nThe step also only ever covered these two configs. sitemap.yaml and\nmigrate.yaml run the private repo\u0027s code as well, and they kept failing\non stale dependencies. The workspace covers all of them.\n\nChange-Id: Id04833aaad149db131048d60579ab0325887af3f\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832384\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@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": "a4c2e078e6aff1fc6479d3e956998659e35f708f",
      "tree": "8bb6ff7a10bf7ac611cbfba6024e5db2a23a9a60",
      "parents": [
        "d092222928e43da41293c8f25f81be271d426b9e"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Oct 08 20:55:24 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Fri Oct 16 07:27:26 2026 -0700"
      },
      "message": "static/shared/survey: reset survey banner state on /#survey-reset\n\nWhen visiting the homepage with #survey-reset, clear the survey banner\u0027s\nlocalStorage key and strip the hash from the address bar so the banner\ncan be easily re-tested.\n\nFor golang/go#82110\n\nChange-Id: Idab9da713d8562cca00a0863069bc0ff6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/847686\nReviewed-by: Jonathan Amsterdam \u003cjba@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": "d092222928e43da41293c8f25f81be271d426b9e",
      "tree": "a453ce46d96464e4d9dd147b2b4afa6f02df02c7",
      "parents": [
        "c2dd72d9c97dcb8e543a50278e2c0e8d6bb9222c"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Oct 05 15:35:47 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Fri Oct 16 07:26:45 2026 -0700"
      },
      "message": "internal/frontend, static: add 2026 Go Developer Survey banner\n\nShow a promotional banner for the upcoming 2026 Go Developer Survey.\n\nThe banner configuration (survey ID, title, target URL, and active start\nand end timestamps) is defined in internal/frontend/survey.json, embedded\ninto the frontend binary, and parsed when initializing the server. For\nrequests within the active window (or outside prod when previewing),\nBasePage.SurveyBanner is populated and rendered by survey.tmpl as static\nprompt text followed by a link to the survey.\n\n- On mobile (\u003c 48rem), render a 50px top banner above the header.\n- On desktop (\u003e\u003d 48rem), render a floating notification card in the\n  bottom-right corner (stacked above the cookie notice if active).\n  Clicking the minimize button or the survey link collapses it into a\n  sticky bottom-right pill (\u0027minimized\u0027 in localStorage).\n- Hide the banner in screentests (and via\n  GO_DISCOVERY_DISABLE_TEMPORARY_BANNER) so golden screenshots remain\n  stable.\n\nTo preview the banner locally:\n  go run ./cmd/frontend -dev -direct_proxy\n\nFor golang/go#82110\n\nChange-Id: I37382ec2423a54485a042bf14c7b28266a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/847685\nReviewed-by: 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\n"
    },
    {
      "commit": "c2dd72d9c97dcb8e543a50278e2c0e8d6bb9222c",
      "tree": "3e817a3dfde2537d4bc385243d027e3d07d3cb54",
      "parents": [
        "f32a77646d7df491db781f4e78a22cd3d2bd1093"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 05 17:21:27 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Oct 16 06:29:03 2026 -0700"
      },
      "message": "internal/frontend: show mod count on mod page\n\nOn the imported-by page for a package, display the module imported-by\ncount as well as the package count.\n\nFor an example of what this looks like, see\nhttps://github.com/golang/go/issues/80242#issuecomment-6082773162.\n\nWe don\u0027t display a list of modules, just the existing list of packages.\n\nFor golang/go#80242.\n\nChange-Id: Id580a6dc3ef6a3d26970d7265b144c296a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/847906\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "f32a77646d7df491db781f4e78a22cd3d2bd1093",
      "tree": "90784bb72c311c1c81c88d0db2302b04049476f9",
      "parents": [
        "7d8a5d9065f01a262c0df4ee8d3e3e484a68091b"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Oct 14 14:06:38 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Oct 16 05:40:35 2026 -0700"
      },
      "message": "internal/postgres: module counts prefer popular packages\n\nWhen collecting packages for which to compute module counts, we take\nthose that haven\u0027t been computed before first, as before. But within\nthat group, prefer those with more package importers.\n\nIt is going to take a long time to compute module counts for all\npackages. But if we compute the ones for packages we already know are\npopular, then we can make module counts useful sooner.\n\nChange-Id: I16ca3dbf52379456fc7e2bc640daca6a6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/849345\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "7d8a5d9065f01a262c0df4ee8d3e3e484a68091b",
      "tree": "3cb5c6d7c8d7e3c48cab92c3751efcb2e6867126",
      "parents": [
        "d11c5fcacf358721a4c9acb03bb8f37961461c0b"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Oct 13 19:44:22 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Oct 14 12:32:17 2026 -0700"
      },
      "message": "all.bash: add \u0027test\u0027 subcommand for CI\n\nExtract the Go continuous integration test suite in all.bash into a\nci_tests helper function and expose it via a new \u0027all.bash test\u0027\nsubcommand.\n\nIn integration_test.go, call \u0027allbash test\u0027 instead of \u0027allbash ci\u0027.\nTestLint already runs \u0027all.bash lint\u0027 on the host before TestIntegration\nstarts containers. When ci_tests runs \u0027go test\u0027 inside the container,\nTestLint skips because GO_DISCOVERY_TESTDB is set. Using \u0027all.bash test\u0027\navoids re-running standard_linters inside Docker and saves ~58s.\n\nExclude node_modules from package discovery in ci_tests so Go does not\ntraverse NPM-managed dependency trees.\n\nFor golang/go#82192.\n\nChange-Id: I0acc5b7edcf5dd42e5cebd8f763677a3fc8e4d90\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/849126\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@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": "d11c5fcacf358721a4c9acb03bb8f37961461c0b",
      "tree": "bc8a69012d1979aa7cdf36c8ed38451b85b6b952",
      "parents": [
        "8c69b643a272ee3423fa7011c281fb3aa8935ae0"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Oct 13 20:29:27 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Oct 14 12:04:08 2026 -0700"
      },
      "message": "internal/testing/integration: use source.NewClientForTesting\n\nIntegration tests in internal/testing/integration initialized\nsource.Client with http.DefaultClient instead of\nsource.NewClientForTesting(). While test modules under example.com/ are\nshort-circuited in source.ModuleInfo, the rsc.io/quote and\nrsc.io/quote/v3 test modules in internal/proxy/testdata do not match\nstatic patterns and triggered live external HTTP requests to rsc.io and\ngithub.com during module fetching.\n\nWhen those external requests stalled, TestEndToEndProcessing exceeded\nits 10-second context timeout while waiting for in-memory queue workers\nto finish, causing queue.WaitForTesting to panic with \u0027InMemory queue\ncontext done: context deadline exceeded\u0027.\n\nFixes golang/go#82137.\n\nChange-Id: Idf4a0414d94d3e2e8a477c65b86ed98df06ab24e\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/848369\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\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\n"
    },
    {
      "commit": "8c69b643a272ee3423fa7011c281fb3aa8935ae0",
      "tree": "b7a4034e090e67811eba750b01ece3f0ea95c406",
      "parents": [
        "f7f7466f9c661896ab127334b765a3e12611b25f"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Oct 13 19:44:36 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Oct 14 11:18:09 2026 -0700"
      },
      "message": "integration_test.go, devtools/nodejs: parallelize NPM stage\n\nRun the NPM suite concurrently with the container backend stages\n(AllBash and SearchTest) using t.Parallel(), taking NPM off the critical\npath and saving ~70s of wall-clock time in TestIntegration.\n\nPass CI\u003d\"${CI:-true}\" directly in devtools/nodejs.sh so the container\nreceives CI\u003dtrue without requiring host-level t.Setenv (which cannot be\ncalled inside parallel tests).\n\nFor golang/go#82192.\n\nChange-Id: Ic83d892f2deddc503972b79de9687ce22702828a\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/849127\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@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": "f7f7466f9c661896ab127334b765a3e12611b25f",
      "tree": "0f8570521a49bdd13d1db50eaa79f314a3286709",
      "parents": [
        "7310cce83d0ed6eb529d93e552a24991699e1fb5"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Oct 13 20:19:53 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Oct 14 10:36:13 2026 -0700"
      },
      "message": "internal/stdlib: retry git operations with backoff\n\nWhen fetching standard library repositories from go.googlesource.com,\ntransient RPC failures or HTTP 503 errors can cause git fetch or\nls-remote to fail without retry, causing flakiness in integration tests\nsuch as TestIntegration/SearchTest as well as worker module ingestion.\n\nAdd a retry loop with exponential backoff to remoteGoRepo.clone and\nremoteGoRepo.refs to tolerate transient network errors.\n\nFixes golang/go#82174.\n\nChange-Id: Ie539199074e27a42edc26eda57175064f75d1a0a\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/848368\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "7310cce83d0ed6eb529d93e552a24991699e1fb5",
      "tree": "7d9c0cac2f88cdd5177410b56b1f3228687cb1cd",
      "parents": [
        "0bb30ebcc4874cdce5bd49e017e57b31c16946f2"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 08 08:33:42 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Oct 14 10:35:31 2026 -0700"
      },
      "message": "internal/api: support field selectors in filters\n\nSupport selector expressions, like \u0027count.packages\u0027, in filters.\n\nTo be able to filter on the importer counts, filters must support\nselector expressions, because the counts are in a struct that is inside\nanother struct.\n\nFixes golang/go#82016.\n\nChange-Id: I624efb871aa039ee78c5b8e95cb8e0626a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/848025\nReviewed-by: 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\n"
    },
    {
      "commit": "0bb30ebcc4874cdce5bd49e017e57b31c16946f2",
      "tree": "e738313ae877314981ba1671010fa36d2fcc6ac7",
      "parents": [
        "0b0a79c8736d3415e52d07ca072b8d874e349b40"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 12 16:06:13 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Oct 14 10:35:09 2026 -0700"
      },
      "message": "internal/postgres: lock rows for imported-by counts\n\nThe LOCK TABLE for updating imported-by counts (added in CL 269238 to\navoid deadlocks with module inserts) blocked all other writes to\nsearch_documents while each batch ran, stalling module processing.\n\nInstead, select the batch of stale rows with FOR NO KEY UPDATE SKIP\nLOCKED. The rows stay locked for the rest of the transaction, and the\nsubsequent UPDATE touches only those rows, so the count transaction\nnever waits on another transaction for search_documents rows.\nRows that are skipped remain stale and are picked up by a later batch\nor run; the job is staleness-driven and idempotent, so that is fine.\nFOR NO KEY UPDATE suffices because no key columns change, and unlike\nFOR UPDATE it does not block foreign-key checks.\n\nDeadlock is still possible, though rare. When imported_by_count\nchanges, a trigger updates symbol_search_documents. A concurrent\nmodule insert may have already locked those rows (in\ndeleteOldSymbolSearchDocuments) and then wait for the search_documents\nrow that the count transaction holds. (The old LOCK TABLE had the same\nproblem.) If Postgres aborts the count transaction to break the\ndeadlock, retry instead of failing the whole run, giving up after 3\nconsecutive deadlocks. To support this, add database.IsDeadlock.\n\nUpdateSearchDocumentsImportedByCountWithCounts, which is test-only,\nnow updates without any lock.\n\nThere is no test that exercises the deadlock between the count update\nand module inserts, but TestIsDeadlock checks that a real deadlock\nerror is recognized with both the pq and pgx drivers.\n\nChange-Id: I0874a49bf7835b630a6df1efb060eb636a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/848865\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "0b0a79c8736d3415e52d07ca072b8d874e349b40",
      "tree": "cade32be070a2a70a956669fb2a59e735e040cdf",
      "parents": [
        "690d333e629a923827adb90aa14aa03dc797e471"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Oct 13 19:44:11 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Oct 13 16:58:18 2026 -0700"
      },
      "message": "devtools/docker, tests/search: mount gomodcache in allbash and optimize search runner\n\nMount the named volume gomodcache in the allbash service so Go modules\nare cached across container runs instead of being re-downloaded over the\nnetwork each time.\n\nMake the db host port mapping configurable via GO_DISCOVERY_DATABASE_PORT\n(defaulting to 5432) to prevent port conflicts on developer machines\nrunning a native PostgreSQL instance on 5432.\n\nDrop redundant \u0027dockercompose build \u0026\u0026\u0027 from tests/search/run.sh, as all\nreferenced services use prebuilt base images and contain no build blocks.\n\nShould save ~15-20 seconds per presubmit run.\n\nFor golang/go#82192.\n\nChange-Id: I6cddf524a2a5b0bbb21299384d9540fbff40e699\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/849125\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\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\n"
    },
    {
      "commit": "690d333e629a923827adb90aa14aa03dc797e471",
      "tree": "07fd9b994b8c7fba1f4f96e2ac2bae5fc83bdf20",
      "parents": [
        "6b8ad6c309c23f9873caad5ec4a979a62d88345e"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 08 08:33:42 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Tue Oct 13 12:50:00 2026 -0700"
      },
      "message": "internal/api: add import counts to search responses\n\nInclude the import counts in the response to the API search route.\n\nFor golang/go#82016.\n\nChange-Id: Ia1951e04f2f8ca5b98bd775ec79d38856a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/847708\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "6b8ad6c309c23f9873caad5ec4a979a62d88345e",
      "tree": "7267610704954926be57ae758f6062bd36fb7b1d",
      "parents": [
        "73bbcb97fedc303086233e953ebbd1cc0913a90b"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Oct 09 14:41:55 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Tue Oct 13 12:39:47 2026 -0700"
      },
      "message": "internal/postgres: favor module counts\n\nSpend more time computing the importer counts for modules than for\npackages. Modules are way behind, and also we want to start displaying\nthem on the main package page.\n\nChange-Id: I6a5fd21503c3bc2958e3f57f80b6f1936a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/848285\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "73bbcb97fedc303086233e953ebbd1cc0913a90b",
      "tree": "7f0f97d25b98e233498ad45d91231342619eba9b",
      "parents": [
        "96c9dd2002601a370af4e0cb23cb4742b6e62085"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Oct 13 17:27:47 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Oct 13 11:48:01 2026 -0700"
      },
      "message": "internal/middleware: drop payloads that exceed maxCachePayloadBytes\n\nPayloads larger than the max ~1MB limit for Redis are dropped. These\nwere never cached to begin with and timed out. Cache hit rate will\nremain the same. With less of these \"context deadline exceeded\" errors,\nthe connection pool will not be inundated with dead sockets.\n\nChange-Id: Idefd369d73743b0171f77dbad25a7ca08ec12414\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/849065\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": "96c9dd2002601a370af4e0cb23cb4742b6e62085",
      "tree": "c88a024067c0fc0910bd159ead2f3413e69ece85",
      "parents": [
        "a17c48e704dad0a83085d3b5bbd7c883a8346521"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 08 08:33:42 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 12 14:55:47 2026 -0700"
      },
      "message": "internal: return imported-by counts with search results\n\nEnhance the information returned from a search with imported-by\ncounts and their updated times.\n\nAlthough both package and module counts are returned from search,\nonly package counts are display in the UI and returned by the search\nendpoint.\n\nPreparation for adding this to the search API endpoint.\n\nFor golang/go#82016.\n\nChange-Id: I9028f55fc9d7b509e9a9e4301ba4cc406a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/847985\nReviewed-by: 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\n"
    },
    {
      "commit": "a17c48e704dad0a83085d3b5bbd7c883a8346521",
      "tree": "6fa070fd88ed19e2a0d1969c2c60557cda5431ac",
      "parents": [
        "e7df8f7a103a31c24c412f3c6582ac220ea65a31"
      ],
      "author": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Sat Oct 10 13:36:55 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Sat Oct 10 20:45:19 2026 -0700"
      },
      "message": "go.mod: update golang.org/x dependencies\n\nUpdate golang.org/x dependencies to their latest tagged versions.\n\nChange-Id: I641c0d6f40b3ec9c8d5244a061b09ed4c5a71c87\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/847793\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nAuto-Submit: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\n"
    },
    {
      "commit": "e7df8f7a103a31c24c412f3c6582ac220ea65a31",
      "tree": "7669e532b12ef07fd52045aa2ae2cd98c4e5c736",
      "parents": [
        "72ecc714b76c0835df61d7fa3971c520dcaf5562"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 08 08:09:55 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Oct 09 08:42:43 2026 -0700"
      },
      "message": "internal/api: add import counts to package route\n\nOptionally include imported-by counts in the response to the\npackage/{path} route.\n\nFor golang/go#82016.\n\nChange-Id: Ied328594e4fba325b1c912c59a8d044f6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/846945\nReviewed-by: 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\n"
    },
    {
      "commit": "72ecc714b76c0835df61d7fa3971c520dcaf5562",
      "tree": "5be1ecc73a54e8e57562907f89d27fee1e5c3466",
      "parents": [
        "121f89bec68c50f4dde2121fc54eee004e0c4ef4"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Fri Oct 09 03:53:17 2026 +0000"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Oct 09 03:58:12 2026 -0700"
      },
      "message": "internal/godoc/dochtml: fix TestExampleRender on gotip\n\nGo 1.28 (CL 655115) updated go/doc so playable examples no longer\ninclude a trailing blank line before the closing brace of main when\nan empty line precedes the Output comment.\n\nUpdate TestExampleRender\u0027s expected output and normalize the rendered\nHTML from older Go versions so the test passes on both release Go\nand gotip.\n\nUpdates golang/go#72098\n\nChange-Id: I8a6b2a3384b8e6908107b32ad7818ae96a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/847845\nReviewed-by: Jonathan Amsterdam \u003cjba@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": "121f89bec68c50f4dde2121fc54eee004e0c4ef4",
      "tree": "fb4d377a3a8974f5a89ebcf9aa7bcdb2bb41b3e0",
      "parents": [
        "0a8faf2cc2bd734a23f0363e3d6ef1596a8b70ff"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 05 12:08:44 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 08 11:37:15 2026 -0700"
      },
      "message": "internal/api: improve imported-by total\n\nDo more to provide an accurate count of importers.\n\n- If the results fit on one page, report the exact value.\n- If the count hasn\u0027t been computed yet, report -1.\n- Otherwise report the count, as before.\n\nFor golang/go#81965.\n\nChange-Id: I11653cad43e964b6f896dd7456cc55586a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/845046\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "0a8faf2cc2bd734a23f0363e3d6ef1596a8b70ff",
      "tree": "143d3922108eb2875f411bc3214cc0bf7b115fa1",
      "parents": [
        "e8b22f133316a21543f2a11d75557833e673f686"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 05 09:34:05 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Oct 07 11:56:13 2026 -0700"
      },
      "message": "internal/postgres: return all imported-by info\n\nThe method that formerly returned only package counts now returns\nboth package and module counts, and their last updated times. This\nprepares us to improve the UI and API with this additional information.\n\nChange-Id: I99055c401135ab34eb3cbd9a8941240d6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/844965\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "e8b22f133316a21543f2a11d75557833e673f686",
      "tree": "17ad060bda00346261a7ed53b80cec6f6c4648ef",
      "parents": [
        "16c0943645e1dd7e529ec49dbfcee2a085989734"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Oct 01 14:20:05 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Tue Oct 06 08:19:36 2026 -0700"
      },
      "message": "internal/postgres: simplify test-only import count func\n\nUpdateSearchDocumentsImportedByCountWithCounts is used only by\ntests/search. We can\u0027t get rid of it, but simplify it (there\u0027s no need\nfor batchSize) and write a simple unit test. Also move it to the bottom\nof the file so it\u0027s less distracting.\n\nFixes golang/go#81637.\n\nChange-Id: I4745993f519005dfb7b55354ca533aa66a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/843545\nReviewed-by: 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\n"
    },
    {
      "commit": "16c0943645e1dd7e529ec49dbfcee2a085989734",
      "tree": "eafb66a8db4f40468287e408fb7a338fc00de6bf",
      "parents": [
        "affa6d38d5b4247ac62e62aa2e35728855c224de"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 30 11:09:11 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 05 09:06:49 2026 -0700"
      },
      "message": "internal/postgres: remove importer counting globals\n\nConsolidate the batchSize argument and the two globals into a single\noptions struct, which is always passed around. This clarifies the logic\nof importer counting and removes state from tests, which can now run\nin parallel without races.\n\nChange-Id: Ifb53bee83636af324130d63548654e7b6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/842525\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nAuto-Submit: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "affa6d38d5b4247ac62e62aa2e35728855c224de",
      "tree": "9652c77e7e48fc48259ce6edbe0076fd573a36f1",
      "parents": [
        "3eadb5df1a8ef528cc48108d4d09f729b1563b5d"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Sun Sep 27 09:34:18 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Oct 05 09:06:28 2026 -0700"
      },
      "message": "internal/postgres: update stale package importers\n\nChange the logic for how package imported-by counts are calculated:\nupdate all counts that haven\u0027t been touched in a while (currently 7\ndays).\n\nThis brings the logic for package importers in line with that for module\nimporters.\n\nWe don\u0027t try to combine the two for several reasons:\n\n- For now at least, the updated_at times for the two are very different,\n  since module counts were recently added.\n\n- The module counts can proceed much more quickly by themselves because\n  the trigger that writes into symbol_search_documents never fires.\n\n- We may drop package counts altogether in the future.\n\nFor golang/go#81637.\n\nChange-Id: I4207b29fde28772fcc2cea2752d8bc6f6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/841245\nAuto-Submit: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: 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\nTryBot-Bypass: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "3eadb5df1a8ef528cc48108d4d09f729b1563b5d",
      "tree": "9c97317b042d5f0faef35d46b4d070840858d644",
      "parents": [
        "1effd40969acfa349871ece9fe5a2ae688697875"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Fri Oct 02 18:35:32 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Oct 05 08:13:12 2026 -0700"
      },
      "message": "devtools/ci: remove Kokoro artifact copying and references\n\nChange-Id: I5e5579172a341de4669b6ebd0cb6428c94a00dbc\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/843706\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: Jonathan Amsterdam \u003cjba@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "1effd40969acfa349871ece9fe5a2ae688697875",
      "tree": "dee7d38a8f2266487c7e342b4ba3fc6ae8e667c0",
      "parents": [
        "b0feb34c6d91fdea7d471ec6026383042ba8aa12"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Fri Oct 02 21:23:45 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Oct 05 06:03:49 2026 -0700"
      },
      "message": "go.mod: update golang.org/x/tools to v0.51.0\n\nUpdate golang.org/x/tools to v0.51.0 so go/packages and go/gcexportdata\ncan read the new \"i\" export data format enabled by default on gotip\n(CL 843186). This fixes staticcheck and unparam in TestLint on gotip\nbuilders.\n\nChange-Id: I92da6278fdea6df904adb25b211c8bbe9d7dfa94\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/844046\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\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: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "b0feb34c6d91fdea7d471ec6026383042ba8aa12",
      "tree": "138c01b46c98dbe9218a42bdedddc86aba6cd068",
      "parents": [
        "17c6cd89ee127543220112389d07fe7316b2f392"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Fri Sep 11 17:13:36 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Oct 01 05:53:58 2026 -0700"
      },
      "message": "internal/config: replace DBHost and DBSecondaryHost with DBHosts\n\nThe DSN now lists every host and pgx fails over between them, so a\nseparate secondary host and the manual retry in OpenDB are redundant.\n\nHistory:\n- a6ac6c2d (2020) added DBSecondaryHost and a frontend fallback that\n  reconnected to it when the primary failed. That commit noted it only\n  handles a DB that is bad at startup, not one that goes bad later.\n- CL 717800 (2025) derived both hosts from GO_DISCOVERY_DATABASE_HOST by\n  picking two at random, which made \"primary\" and \"secondary\" arbitrary.\n  It also stopped reading GO_DISCOVERY_DATABASE_SECONDARY_HOST, which the\n  deployment config still sets; removing that is a separate change.\n- CL 791947 put both hosts in one DSN, which also covers a host that\n  fails after startup.\n\nChanges:\n- Replace Config.DBHost and Config.DBSecondaryHost with Config.DBHosts.\n- Remove DBSecondaryConnInfo and the fallback in OpenDB. database.Open\n  pings, so a failure there now means no host is reachable.\n- chooseN no longer pads with empty strings. The padding existed only so\n  the caller could assign two variables, and an empty entry would have\n  put a trailing comma in the DSN.\n- Keep the DBHost override key, which now takes a whitespace-separated\n  list that replaces DBHosts, like the env var. Drop the DBSecondaryHost\n  override key: every override file written since 2020 set DBHost, and\n  none set DBSecondaryHost.\n\nFor golang/go#80045\n\nChange-Id: Iacdc36d4f8d5add510046b911123e38b17d7dbf2\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831304\nReviewed-by: 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\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "17c6cd89ee127543220112389d07fe7316b2f392",
      "tree": "00285c89c1cc98346e637d7ae45f0adecae188d1",
      "parents": [
        "bae17e0a1c25fd4a449e9d3a49213700bc78dc4f"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 21 17:03:46 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 30 13:36:32 2026 -0700"
      },
      "message": "internal/postgres: refine trigger for symbol search\n\nRefine the trigger that updates symbol_search_documents.imported_by_count\nwhen search_documents is updated.\n\nOnly fire the trigger when search_documents.imported_by_count changes.\n\nThis change results in over 100x speedup for updating module import\ncounts, and about 44x speedup for updating module package counts (using\nlogic in a later CL).\n\nFor golang/go#81637.\n\nChange-Id: Ic9f5be10dfa42f2ff254a9f0f57e23066a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/836405\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "bae17e0a1c25fd4a449e9d3a49213700bc78dc4f",
      "tree": "3096d52565f2b8bbe538dcb06718a455e2c3a425",
      "parents": [
        "6d944354adc461f15e8139b4a87c078ae0a439dd"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Sat Sep 26 08:19:10 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 30 13:36:22 2026 -0700"
      },
      "message": "internal/postgres: use query for package importers\n\nReplace the in-program logic for counting importers of a package\nwith a single query.\n\nIn offline testing, this gave identical results. And it\u0027s faster.\n\nThis is a step towards replacing the logic with something like\nthe module importer logic.\n\nFor golang/go#81637.\n\nChange-Id: Ib1f5bce21cf665afee135fb208b4e6656a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/839545\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@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": "6d944354adc461f15e8139b4a87c078ae0a439dd",
      "tree": "7741447557ba0e0516826e33f97a2ace578f9310",
      "parents": [
        "a04da629967f899ef2e18a5014c62cc9d76fef75"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Sep 24 09:11:25 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Sep 30 13:35:35 2026 -0700"
      },
      "message": "internal/postgres: count module imports\n\nCount the number of module importers for each package in\nsearch_documents that hasn\u0027t been updated in a while.\n\nFor golang/go#81637.\n\nChange-Id: Ic36ea2610414336cec9c8bcee99a2cff6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/838325\nAuto-Submit: Jonathan Amsterdam \u003cjba@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "a04da629967f899ef2e18a5014c62cc9d76fef75",
      "tree": "31615ae7d06c01e76e8d3eab4643e9fc61bf4d0e",
      "parents": [
        "d48250be13b33e25023b8ef7aaa65cc76f17c425"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 15:21:08 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 30 13:02:28 2026 -0700"
      },
      "message": "internal/breakings: handle aliases\n\nChange-Id: Ib90cc01795f53841a8ce03836d608a1a6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832948\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@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": "d48250be13b33e25023b8ef7aaa65cc76f17c425",
      "tree": "dbc8894e23b9dc995ca982d9a99e28585ba13a2d",
      "parents": [
        "d5ae8bbc1b3809748f2afc99c3206dd12e0e8a01"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Sep 24 11:00:31 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 30 12:54:57 2026 -0700"
      },
      "message": "internal/postgres: omit alternative mods from imports\n\nDo not insert alternative modules into imports_unique, just as they\nare omitted from search_documents.\n\nNow alternative modules will not contribute to import counts\nautomatically. We were weeding them  out when computing importers, but\nthis will make it easier to do so. In particular, it will make it easier\nto write a single query to do the computation, instead of the multi-step\nprocess we use in import_counts.go.\n\nChange-Id: Ib65213f1c14719074d103aca2f77fc866a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/838225\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "d5ae8bbc1b3809748f2afc99c3206dd12e0e8a01",
      "tree": "9733f89ba38ec605cfce5e9a2d7753e7748d92e9",
      "parents": [
        "7c91e9da274778f4981788365412f03cf0f2d063"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Fri Sep 25 19:48:55 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Sep 30 12:25:07 2026 -0700"
      },
      "message": "tests/screentest: deflake visual regression tests\n\nTwo factors currently cause transient failures in the screentest CI\nbuilder:\n\n1. In tests/screentest/run.sh, -retrypixels was set to 20. cmd/screentest\n   has a 3-attempt retry loop, but breaks immediately on try 0 if the diff\n   exceeds -retrypixels. When headless Chrome experiences a transient layout\n   shift or font rendering delay, the diff is tens of thousands of pixels,\n   so the test was never retried. Increase -retrypixels to 2000000 so\n   transient Chrome hiccups are absorbed by the retry loop without failing\n   the build. Real visual regressions still fail all 3 attempts.\n\n2. In tests/screentest/testcases.ci.txt, the unit page tests were missing\n   \u0027wait {{$ready}}\u0027. On pkgsite unit pages, client-side JS adds\n   [role\u003d\u0027treeitem\u0027][aria-selected\u003d\u0027true\u0027] when initialization finishes.\n   Without waiting for this, eval {{$hideElements}} ran before elements\n   were rendered, leading to 70k+ pixel diffs.\n\nFor golang/go#71558.\n\nChange-Id: Iebc711b8f9e4db0f4adbd2dc273fe6049973a322\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/839165\nkokoro-CI: kokoro \u003cnoreply+kokoro@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: Jonathan Amsterdam \u003cjba@google.com\u003e\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "7c91e9da274778f4981788365412f03cf0f2d063",
      "tree": "14c8822b31cc73b8d22ddbfabb3441cfbddfbbb0",
      "parents": [
        "e75a3131db6e1c98c514cf410bdd2b818902ff6a"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Sep 22 17:22:58 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Sep 30 12:20:53 2026 -0700"
      },
      "message": "tests/screentest: reject arguments that run.sh never parsed\n\nrun.sh parsed flags with `while [[ $1 \u003d -* ]]`, a loop that stops at the\nfirst argument not beginning with \u0027-\u0027. Flags written after the\nenvironment were therefore dropped without a word.\n\nBoth CI callers did exactly that. They invoked `./tests/screentest/run.sh -rm ci -concurrency 1`\n\nso -concurrency never reached the parser. The mistake stayed invisible\nbecause cmd/screentest clamps maxConcurrency to a minimum of 1, which is\nwhat the callers were asking for anyway.\n\nChange-Id: Ice71d95b70277edee4a38a0b80409abda7ca2a31\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/836905\nReviewed-by: Jonathan Amsterdam \u003cjba@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: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "e75a3131db6e1c98c514cf410bdd2b818902ff6a",
      "tree": "4d6b9e34fe1d2e1991c40186ab544319b4be0682",
      "parents": [
        "894e617e348b672349b9a8ef3c67bbb4067d99a1"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 28 15:11:39 2026 -0700"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Tue Sep 29 08:33:15 2026 -0700"
      },
      "message": "Revert \"internal/postgres: clean generated buf.build modules\"\n\nThis reverts commit ab18f655a17ddebc58287a0df1914bfc91970e7a.\n\nReason for revert: these modules *are* in fact used by (many) people. We didn\u0027t have all the facts.\nFrom Zack Drake at Buf:\n\u003e For a bit of context, these modules are Go generated SDKs from the Buf Schema Registry. Users install them with ordinary `go get`, and by default those requests go through `proxy.golang.org`, so the versions in the proxy index correspond to real fetches by real consumers. It\u0027s not really a side effect, they work like any other go module. This includes not just modules our team produces, but also modules made by our customers and users of public modules and generated SDKs on our registry.\n\nRemoving these modules from `pkg.go.dev` affects users of these modules in a few ways:\n\n- `gopls` hover and import-path links point to `pkg.go.dev` by default, so for these packages they would lead to missing pages.\n- Our documentation directs users to `pkg.go.dev` to browse the package tree of public SDKs. (This change actually broke CI tests for our docs, which is how we even realized it happened.)\n- \"Imported by\" data for widely used modules such as `google.golang.org/protobuf` and `connectrpc.com/connect` would undercount real usage, since many importers live under `buf.build/gen/go`.\n\nWe can completely see how this happened. Our version scheme looks a lot like pseudo-versions, and from the outside these modules could easily read as noise. But to be honest, singling them out by path feels a little arbitrary. We definitely don\u0027t want to blow up your system, and if the volume is causing real problems, we\u0027d like to help find a fix. There are a lot of people who use these SDKs, and and they shouldn\u0027t be affected any more than someone using any other package would be.\n\nChange-Id: Ic45aca4644e4aea1cd8e03d3e5be94f027ee634c\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/840825\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nAuto-Submit: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: 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\nTryBot-Bypass: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "894e617e348b672349b9a8ef3c67bbb4067d99a1",
      "tree": "f1aca8964ad52568e85db04b2b7c2f773aa60924",
      "parents": [
        "ff41d744c27ddda985fe32a79bd312d44de0f6c4"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Fri Sep 25 19:21:48 2026 +0000"
      },
      "committer": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Mon Sep 28 13:27:52 2026 -0700"
      },
      "message": "integration_test.go: attach screentest diff images for LUCI diff viewer\n\nLUCI Milo renders an interactive image diff viewer when artifacts\nnamed actual_image, expected_image, and image_diff are attached to a\ntest result. When screentest fails, find the first failing diff and\ncopy its got, want, and diff images to t.ArtifactDir() with these names.\n\nFor golang/go#79238.\nFor golang/go#71558.\n\nChange-Id: Ia3a473a36a796beaa42efa0fe5abe8959e9335bb\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/838887\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\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: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "ff41d744c27ddda985fe32a79bd312d44de0f6c4",
      "tree": "45c10ecc57c0a05c8f8c3e4ca575038cbc0a7b6a",
      "parents": [
        "d749d9f6d6d0d35f0f5b199c60bea7e53ec55eb5"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Sep 24 19:21:27 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Sep 25 16:16:11 2026 -0700"
      },
      "message": "all: update google.golang.org/grpc and google.golang.org/api dependencies\n\nUpdate google.golang.org/grpc to remediate\n  CVE-2026-33186 and GHSA-m425-mq94-257g.\n\nBecause newer gRPC releases introduce a new field to\n  credentials.DefaultCredentialsOptions,\ngoogle.golang.org/api must also be upgraded to resolve a compilation\nfailure caused by an unkeyed struct literal.\n\nUpgrading the api module transitively updates cloud.google.com/go\nmodules via Go Minimal Version Selection (MVS), and\ninternal/auth is updated to use non-deprecated idtoken APIs.\n\nChange-Id: I8ec0b388edb142f53f900dca96113823c5edd770\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/838405\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "d749d9f6d6d0d35f0f5b199c60bea7e53ec55eb5",
      "tree": "a09227620d76cce93ed3ca9c032870ea0bfd1f4d",
      "parents": [
        "a64064c5fc46ee0b3fa269056af29751098b11f4"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 13:59:36 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 25 10:15:57 2026 -0700"
      },
      "message": "internal/breakings: handle generic types\n\nProcess the type parameters on a generic type, and those on receivers\non methods of generic type.\n\nChange-Id: Ic2a18db291de4168518f0f188784d1b76a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832947\nReviewed-by: 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\nTryBot-Bypass: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "a64064c5fc46ee0b3fa269056af29751098b11f4",
      "tree": "bccf713da75d24a31115312e4cce0ef8c772024c",
      "parents": [
        "c3dc68d28c4d9516cd80e2728c69bb1f62d1b00c"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 12:08:50 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Sep 24 06:41:57 2026 -0700"
      },
      "message": "internal/breakings: handle untyped decls\n\nConstants and variables can be declared without a type.\nHandle those cases.\n\nChange-Id: I98b6c6f45586138708878c0ee85d856b6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832946\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "c3dc68d28c4d9516cd80e2728c69bb1f62d1b00c",
      "tree": "0089f5f958d60e087c97e3b274db6eff3e478dff",
      "parents": [
        "576a1856caef749fef9d6fce3e6da084316820d8"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 21 13:16:42 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Thu Sep 24 06:38:28 2026 -0700"
      },
      "message": "internal/postgres: remove module import count logic\n\nRestore the logic to what is was before we started doing module\ncounts.\n\nWe are going to do module counts in a completely different, simpler way.\nIt will be clearer to start from scratch.\n\nLeave the tests: we\u0027ll get back to them soon.\n\nChange-Id: I405601998ea8abb657585e5b43198b6b6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/836285\nReviewed-by: 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\nTryBot-Bypass: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "576a1856caef749fef9d6fce3e6da084316820d8",
      "tree": "9010f482972e72ac9496ea34f3a931bbcc3367c2",
      "parents": [
        "7c00ecaad9879496c8e7878e937cc767975212dc"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Sat Sep 12 15:48:28 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Tue Sep 22 14:14:47 2026 -0700"
      },
      "message": "Revert \"cmd/internal/doc: allow reading packages from module cache\"\n\nThis reverts CL 815900 (commit b687f4531903f3d3f9f772535500ac084d4dde60).\n\nReason for revert: it broke `go doc -http` and `go doc -http\n\u003cstdlib_package\u003e`\n\npkgsite.BuildServer sets Paths to [\".\"] only when len(Paths) \u003d\u003d 0 \u0026\u0026\n!UseCache \u0026\u0026 Proxy \u003d\u003d nil. The doc command sends no Paths of its own,\nso UseCache cancelled that default. No local getter was built, which\nmeans packages in the local workspace don\u0027t load either.\n\nUseCache also put a module cache getter ahead of the stdlib getter.\nSince stdlib packages are not likely in the module cache, and even when\nthey do, they are under a specially named module, the module cache\ngetter faces module.EscapePath(\u003cpackage\u003e) failure and that results\nin HTTP 500. `go doc -http errors` or `go doc -http` outside a module\nthat opens /std fails.\n\nThe reverted CL did not achieve what it set out to do either. The go\ncommand drops the version when it builds the URL for the documentation\nserver, so \"go doc -http pkg@v1.4.0\" opens /pkg and the server shows the\nnewest version in the cache, not the intended version. Fixing that\nneeds a change in cmd/go.\n\nFor golang/go#78459\n\nChange-Id: I122ddf08dbd1f50b46397c97edc49e086a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831604\nReviewed-by: Sean Liao \u003csean@liao.dev\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "7c00ecaad9879496c8e7878e937cc767975212dc",
      "tree": "7c3cfa24beb1447da0506026cba8f651860f0b4e",
      "parents": [
        "a82e7b37cb957f0f05670df69e1f9c4e10f37970"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 11:52:47 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 21 13:58:35 2026 -0700"
      },
      "message": "internal/breakings: handle dependent type parameters\n\nThe constraint of a type parameter may depend on other type parameters,\nso we have to perform substitutions on them as well as the regular\nparameters.\n\nChange-Id: I49889a45e4b1c7838122b4226142d6406a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832945\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nAuto-Submit: Jonathan Amsterdam \u003cjba@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "a82e7b37cb957f0f05670df69e1f9c4e10f37970",
      "tree": "2dcaf3834a763fe9611745ab2658f90558811e13",
      "parents": [
        "76eeb2e2054fae4ad2769367ed4918d6b5458870"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 08:35:57 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 21 12:51:08 2026 -0700"
      },
      "message": "internal/breakings: check for kind mismatches\n\nChanging a const to a var, even if they\u0027re the same type, is a breaking\nchange. Same for most other such \"kind\" changes.\nDetect such changes at top level, in API.Changes.\n\nChange-Id: Ibb9ec88df6a23d440e8ec180158f63036a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832944\nkokoro-CI: kokoro \u003cnoreply+kokoro@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: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "76eeb2e2054fae4ad2769367ed4918d6b5458870",
      "tree": "02977870fb348dcdfdf158f947934faf54e1fb1d",
      "parents": [
        "fbe3302a7d3f9b3ab9222a46309cc353682c7647"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Wed Sep 09 18:52:54 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Mon Sep 21 09:22:09 2026 -0700"
      },
      "message": "cmd/internal/pkgsite-cli: clean up pkgsite-cli telemetry collection\n\nReplace counter.New() with the idiomatic counter.Inc() and add a unit\ntest for telemetry counter increments.\n\nFor golang/go#81409\n\nChange-Id: I9f228ff5365c8d026d2eabcf2c89efabc5237e45\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/829924\nkokoro-CI: kokoro \u003cnoreply+kokoro@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: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "fbe3302a7d3f9b3ab9222a46309cc353682c7647",
      "tree": "b399586b3156820534bbc8082abc71e8b6e2c951",
      "parents": [
        "67e0d86161409e0378b38d3511ddf1d8533a25f1"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Sun Sep 13 09:00:58 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 18 11:41:08 2026 -0700"
      },
      "message": "internal/breakings: add the API type\n\nThis CL adds the exported surface of internal/breakings.\n\nAdd an API type to hold the API for a package at a version.\n\nDefine its Changes method to return the breaking changes betweeen two\nAPIs.\n\nThe extensive tests in the CL uncovered some bugs, marked by TODOs in\nthe test files, which we\u0027ll fix in upcoming CLs.\n\nChange-Id: I7a23ed436f73209d4145a3ad08391c0a6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832184\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@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": "67e0d86161409e0378b38d3511ddf1d8533a25f1",
      "tree": "a4ff66cc528fa7a9594139f5708bb6764b286189",
      "parents": [
        "2a366129f740f9d38fd2995cf4f6cbf7430f3ef4"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 11 16:22:20 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 18 11:40:55 2026 -0700"
      },
      "message": "internal/breakings: named types\n\nAdd named types, like\n\n\ttype T struct {X, Y int}\n\nBesides checking for breaks on the underlying type (the struct in this\ncase), we also must make sure that methods weren\u0027t removed or changed,\nand that a value method wasn\u0027t changed to a pointer method. The other\ndirection--pointer to value--is backward compatible.\n\nChange-Id: Ie5ffb69e53f4126c34b610e92ae4c0346a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831744\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "2a366129f740f9d38fd2995cf4f6cbf7430f3ef4",
      "tree": "e5bab6cdefa4bfa82c3691d95ba89a0ec48d1f63",
      "parents": [
        "c3f921f0122a3f7eb29a15ee576c09d57d10bc1d"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 08:11:23 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 18 11:40:18 2026 -0700"
      },
      "message": "internal/breakings: use selectable fields\n\nIn structType.changes, check for breaking changes in the selectable\nfields. We neglected to do this previously when we computed them.\n\nChange-Id: I0433d3f5f10caa6df21db7f8ae1e603a6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832164\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@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": "c3f921f0122a3f7eb29a15ee576c09d57d10bc1d",
      "tree": "6e794cc8d424260b8addda639ae24cf9b2442cb8",
      "parents": [
        "172c28824d72f1d9063cd51974b2c790d50ef4d1"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 18 08:59:08 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 18 10:25:49 2026 -0700"
      },
      "message": "internal/postgres: move import counts to new file\n\nMove the imported-by-count calculation to a separate file.\n\nAlso reorder the functions in that file to match the flow of the logic.\n\nPure code motion. No logic changes.\n\nChange-Id: I67a7f9874116d159eeb15c73c66357426a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/834865\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: 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\n"
    },
    {
      "commit": "172c28824d72f1d9063cd51974b2c790d50ef4d1",
      "tree": "24f6c9602adc1a294866874cad245d160c341946",
      "parents": [
        "cc0ba8e009701f9443bea53c5055718393fa6ba6"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Thu Sep 17 18:42:53 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Sep 18 10:22:34 2026 -0700"
      },
      "message": "integration_test.go: set CI\u003dtrue for the npm stages\n\ndevtools/ci/ci.sh exported CI\u003dtrue for the whole Kokoro run, and\ndevtools/docker/compose.yaml passes CI through to the nodejs container.\njest is the only consumer: it defaults its own ci option to ci-info\u0027s\nautodetection, which doesn\u0027t recognize LUCI, so without this a test\nwhose snapshot is missing has one written for it and passes. That would\nlet a new component test land without its snapshot.\n\nSet it only around the npm stages, since the allbash service doesn\u0027t\npass CI through and nothing on the Go side reads it.\n\nChange-Id: I6d88dc64853d342027491c90c4e0a8eeda248d0e\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/834365\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: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\n"
    },
    {
      "commit": "cc0ba8e009701f9443bea53c5055718393fa6ba6",
      "tree": "df718963e7b581baf996e4b6865e14f3502292f3",
      "parents": [
        "c402a947afe1816400a9ab1c440cd09e59510cae"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Sep 14 21:54:28 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Thu Sep 17 16:28:54 2026 -0700"
      },
      "message": "internal: stop using golang.org/x/net/context/ctxhttp\n\nhttp package supports context, so we don\u0027t need to use ctxhttp\nany more.\n\nA request canceled by its context now fails with a *url.Error\nthat wraps ctx.Err(), instead of a bare ctx.Err().\nEvery caller tests for this with errors.Is, which still matches\nthrough the wrapper.\n\nChange-Id: Idea6f84e7905598b33fada4e61a1fa49aa58327e\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832544\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "c402a947afe1816400a9ab1c440cd09e59510cae",
      "tree": "66df0826333368f6d726b394e3b8e54019db3d9a",
      "parents": [
        "7cb8465e8580733c534be406ef6bb4317d06e7e5"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Sep 15 20:27:08 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Sep 17 15:08:16 2026 -0700"
      },
      "message": "integration_test.go: run the container CI stages from go test\n\nLUCI\u0027s golangbuild recipe tests a repository by running \"go test ./...\",\nwhich TestIntegration already used to run all.bash lint on every Linux\nbuilder. Extend that approach to the remaining stages that\ndevtools/ci/ci.sh runs under Kokoro, so that a LUCI builder can run them\nwithout pkgsite needing a custom recipe.\n\nTeardown runs both before the stages and from t.Cleanup, since a build\nkilled part way through leaves containers behind holding the database\nport, which would fail every later build landing on the same reused\nSwarming bot.\n\nLUCI config change: go.dev/cl/833164\nx_pkgsite-gotip-linux-amd64_docker: SUCCESS (13m05s) — https://ci.chromium.org/b/8670388359884716065\nx_pkgsite-gotip-linux-amd64_docker-screentest: SUCCESS (12m44s) — https://ci.chromium.org/b/8670388359795796833\n\nFor golang/go#71558.\nFor golang/go#79238.\n\nChange-Id: I27ac09dfd178ce6c7f1c28c3a48bc76d38f246c7\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/833204\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\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: Jonathan Amsterdam \u003cjba@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "7cb8465e8580733c534be406ef6bb4317d06e7e5",
      "tree": "82f5a42354a867c87d1aa514e24529db9dea39bd",
      "parents": [
        "e714f45ee0e23c93f2c769c237c992aba948fb90"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Wed Sep 16 21:08:27 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Sep 17 09:03:37 2026 -0700"
      },
      "message": "internal/queue/pgqueue: deflake TestPollDeletesTaskOnError\n\nThe test closed its done channel at the top of processFunc, but\nclaimAndProcess only issues the DELETE after processFunc returns. The\ntest therefore started its fixed 100ms wait before the delete had even\nbeen issued, and asserted on the row count after it.\n\nOn a loaded builder that wait is not enough. In one failure the DELETE\ntook 147ms (the whole package suite runs with -race against a single\ncontainerized Postgres), so the count still saw the row:\n\n    --- FAIL: TestPollDeletesTaskOnError (5.25s)\n        queue_test.go:181: queue_tasks count \u003d 1, want 0\n\nWait for Poll to return instead. Poll returns once its workers have,\nand a worker returns only from between calls to claimAndProcess, which\ndoes not return until the delete has completed. That orders the delete\nbefore the count with no fixed sleep. This also drops a duplicated\ncount query whose result was immediately overwritten.\n\nTest with `go test -count\u003d5 -race -run TestPollDeletesTaskOnError`\n\nChange-Id: I2bf687cdc9a9aa570ad7656c55aa9596d6af9f1b\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/833944\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\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: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "e714f45ee0e23c93f2c769c237c992aba948fb90",
      "tree": "5525d364e939d12be16d3e6f1ca0c0d26d3e1048",
      "parents": [
        "706fdafd3b3b35e209b091b4d8ba8218dbd9b3a4"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Sep 15 19:26:39 2026 +0000"
      },
      "committer": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Wed Sep 16 15:46:11 2026 -0700"
      },
      "message": "devtools/searcheval, devtools/cmd/searcheval: move from the private repo\n\nThe searcheval tool and its evaluation library only depend on packages in\ngolang.org/x/pkgsite, and its golden query dataset and seed module list\nreference public modules only, so there is no reason for them to live in\nthe private repo.\n\nKeeping them there means pkgsite\u0027s trybots never compile them: a change to\ninternal/postgres, internal/embeddings or go.mod silently breaks the tool\nuntil someone notices and sends a fix to the private repo.\n\nImport paths change from golang.org/x/pkgsite/private/devtools/searcheval\nto golang.org/x/pkgsite/devtools/searcheval, and the -queries default and\ndocs point at the new location. The code is otherwise unchanged, except\nthat openDB\u0027s unused context parameter is dropped, since pkgsite\u0027s unparam\ncheck flags it.\n\nChange-Id: I13bb3e68ad2a379b03c4a086dae431fede0fbc68\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/833104\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@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": "706fdafd3b3b35e209b091b4d8ba8218dbd9b3a4",
      "tree": "c29fd0aabb8f8789b40a13186656b95824ca3e0c",
      "parents": [
        "08afc09abf299741f4e61e1a001565bdb4e36c7f"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Sun Sep 13 11:08:58 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 16 14:33:04 2026 -0700"
      },
      "message": "internal/breakings: keep all changes\n\nWe need all the breaking changes for each pair of (old, new) types.\nFor example, if struct removes one field and changes the type of\nanother, we want to see both.\n\nSo return all changes, and do it with an iterator to avoid creating a\nlot of maps.\n\nAlso, redo how we handle the names of changes. Instead of each symbolSet\nhaving its own name, compose names in the loop inside symbolSet.changes.\n\nChange-Id: Iefc6b14176afc5cb61c1575705c369946a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831046\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "08afc09abf299741f4e61e1a001565bdb4e36c7f",
      "tree": "5488ea4eb6832c6673fd0b904c54388f301ae7c3",
      "parents": [
        "66ad9ed175a461596fb3675520e7c44a6668a0f1"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Sat Sep 12 07:14:25 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 16 14:32:52 2026 -0700"
      },
      "message": "internal/breakings: handle embedded struct fields\n\nLook for breaking changes in embedded struct fields.\n\nTo do this, we need to get the embedded types. That means we need to\ncollect all types in a package by name before we do anything. newDefs\nhandles that. It also collects methods by type name, which we\u0027ll need\nfor named types (next CL).\n\nThe algorithm for finding selectable fields is complicated, because the\nrules are complicated. I\u0027ve tried to make it as clear as possible.\n\nChange-Id: Ibb222ae18553db6c0aab8943413709c86a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831584\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "66ad9ed175a461596fb3675520e7c44a6668a0f1",
      "tree": "f32bcf2a1f0b5b21f98100e24306f2bf05b0df66",
      "parents": [
        "50d059c79abfedc1996e071a9f2b3394e646b32a"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Aug 12 16:44:20 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 16 06:53:20 2026 -0700"
      },
      "message": "integration_test.go: run all.bash from go test\n\nWith this test, LUCI builders will run all.bash.\n\nFirst step towards replacing kokoro.\n\nFor golang/go#71558.\n\nChange-Id: I225be69ddf76e810bf408b2eb03920e86a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/814160\nReviewed-by: 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\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "50d059c79abfedc1996e071a9f2b3394e646b32a",
      "tree": "15db14c32d77849dce1e224db90e53c208b1641c",
      "parents": [
        "ab2e847e4b2673f79f548aeb12f45a28c67a81bb"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Sep 14 21:03:39 2026 +0000"
      },
      "committer": {
        "name": "Hyang-Ah Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Tue Sep 15 16:59:19 2026 -0700"
      },
      "message": "deploy: use Go 1.27.1 for builds and deployments\n\nGo 1.27 is released, so move _GO_VERSION off the release candidate and\nonto the latest 1.27 patch release.\n\nAlso correct the Docker Compose section of deploy/README.md. CL 795280\nchanged devtools/docker.sh to read the version from deploy-env.yaml and\nto fail if it cannot, but the README kept a code sample that showed a\nhardcoded fallback version. Describe the behavior of the script instead.\nThe README then holds no second copy of the version to update by hand.\n\nChange-Id: I7b7f04dae4dccb7906ead62b48f546fa31000458\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/832524\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: 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: Nicholas Husin \u003cnsh@golang.org\u003e\nReviewed-by: Nicholas Husin \u003chusin@google.com\u003e\n"
    },
    {
      "commit": "ab2e847e4b2673f79f548aeb12f45a28c67a81bb",
      "tree": "192b0f284c899ad9fb11de508b6c42688a0bd22b",
      "parents": [
        "0a9b9b5ef3ea00e083965faddc826083faca7c85"
      ],
      "author": {
        "name": "Hongxiang Jiang",
        "email": "hxjiang@golang.org",
        "time": "Sun Sep 13 18:04:40 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Sep 15 10:48:03 2026 -0700"
      },
      "message": "deploy: run go mod tidy in sitemap.yaml\n\nAdd the \u0027Tidy private\u0027 step after \u0027Prepare\u0027 in deploy/sitemap.yaml,\nmatching deploy/deploy.yaml and deploy/deploy-env.yaml (CL 757920).\n\nChange-Id: I7c5fd57bced8f34a0f355499188d8f911aba2be9\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831924\nAuto-Submit: Hongxiang Jiang \u003chxjiang@golang.org\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@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: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "0a9b9b5ef3ea00e083965faddc826083faca7c85",
      "tree": "96ffd41ac5a59dd87550d6918e3d79984c0a46ec",
      "parents": [
        "0fee8814524c744b6997423070f2c3bc05001687"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 11 11:29:34 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 10:46:20 2026 -0700"
      },
      "message": "internal/breakings: struct types\n\nChange-Id: I12b2cda2fcba7c3551bf2127e0e1b3996a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831104\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "0fee8814524c744b6997423070f2c3bc05001687",
      "tree": "15e4479d39de10936a121987548459c713b9aab2",
      "parents": [
        "7cb158007192baeb83b4e90987196b9f2aec2833"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 11 10:46:35 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 08:35:19 2026 -0700"
      },
      "message": "internal/breakings: minor changes\n\n- change package name to match directory\n- factor out parsing function for tests\n- write newSymbolSet\n\nChange-Id: Iaebfc27689e7f933c8c921d86df060b66a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831045\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "7cb158007192baeb83b4e90987196b9f2aec2833",
      "tree": "5986c51163322331167020ec60f9c486ff779aaf",
      "parents": [
        "d7c1a203497580eae37755fb75c937d4b4beb775"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 11 08:31:47 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 08:35:11 2026 -0700"
      },
      "message": "internal/breakings: interfaceType\n\nChange-Id: Ic16181de19d8052d75b4a885a829f5c26a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/831044\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nTryBot-Bypass: Jonathan Amsterdam \u003cjba@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": "d7c1a203497580eae37755fb75c937d4b4beb775",
      "tree": "7922a433b728b78952a1f853d507cd9a6c73e4f0",
      "parents": [
        "c88d96dff91ee271da61337d3a2297d3f42be61b"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 09 17:21:52 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 08:06:11 2026 -0700"
      },
      "message": "internal/breakings: symbolSet\n\nA symbolSet is a set of symbols with their associated types.\n\nWe will use them to represent:\n- the methods of interfaces\n- the fields of structs\n- the API of a package\n\nChange-Id: I1a1c3c26bd413838ed0d49b7cb1f34e26a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/830764\nReviewed-by: 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\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "c88d96dff91ee271da61337d3a2297d3f42be61b",
      "tree": "8b1a92582aea849cd380f91e791ff96a93e03405",
      "parents": [
        "297fd0acb81d3076a05f67234fece3a833f5fb20"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 09 16:54:01 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Sep 14 08:06:03 2026 -0700"
      },
      "message": "internal/breakings: syntax types: funcType\n\nAdd a syntaxType for function types.\n\nChange-Id: I953b220d4cca522005a703e81487379e6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/830065\nTryBot-Bypass: Jonathan Amsterdam \u003cjba@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: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "297fd0acb81d3076a05f67234fece3a833f5fb20",
      "tree": "6e30068b4ab5e3092e2277be31d634e245b822fa",
      "parents": [
        "e46d2f54a4e62cc228f1dde4289055a0f44db338"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Wed Jun 17 15:05:58 2026 -0400"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Sep 11 12:53:26 2026 -0700"
      },
      "message": "internal/config: enable failover for DB replicas\n\nEnable connection-level failover by appending the secondary DB host\nto the DSN when configured, allowing pgx to automatically route queries\nto a healthy replica if the primary replica is unreachable.\n\nSet a 5-second connection timeout to ensure quick failover.\n\nTo reproduce the staging test, with both replicas listed in\nGO_DISCOVERY_DATABASE_HOST:\n\n  # 1. Deploy this change to the staging frontend.\n  docker build -t \"$IMAGE\" -f private/config/Dockerfile.frontend . \\\n    \u0026\u0026 docker push \"$IMAGE\"\n  gcloud run services update \"$SERVICE\" --image\u003d\"$IMAGE\" \\\n    --project\u003d\"$PROJECT\" --region\u003d\"$REGION\"\n\n  # 2. Poll a package page once a second. The bypass-cache header (a\n  #    value from GO_DISCOVERY_AUTH_VALUES) is the important part:\n  #    without it the page is served from Redis, the request never\n  #    reaches the database, and the test proves nothing.\n  while true; do\n    curl -s -o /dev/null -w \"$(date +%T) %{http_code}\\n\" \\\n      -H \"Authorization: Bearer $(gcloud auth print-identity-token)\" \\\n      -H \"X-Go-Discovery-Auth-Bypass-Cache: $BYPASS_TOKEN\" \\\n      \"$STAGING_URL/net/http\"\n    sleep 1\n  done\n\n  # 3. In another shell, restart one of the two replicas.\n  gcloud sql instances restart \"$REPLICA\" --project\u003d\"$PROJECT\"\n\n  # 4. Watch step 2 for non-200s, then confirm from the server side.\n  gcloud logging read \\\n    \u0027resource.type\u003d\"cloud_run_revision\"\n     AND resource.labels.service_name\u003d\"\u0027\"$SERVICE\"\u0027\"\n     AND httpRequest.status\u003e\u003d500\u0027 \\\n    --project\u003d\"$PROJECT\" --limit\u003d20 \\\n    --format\u003d\u0027table(timestamp, httpRequest.status, labels.instanceId)\u0027\n\nResult: 15 requests returned 500 over a ~20s window, while database/sql\ndiscarded the pooled connections that the restart had severed (\"broken\npipe\"). Every request after that window returned 200, served by the\nsurviving replica, with no container restart.\n\nFor golang/go#80045\n\nTESTED\u003dManually on staging, with the script above.\n\nChange-Id: I4d1694f09ce043df2db4d251780ffa3743751248\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/791947\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Nicholas Husin \u003chusin@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\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nReviewed-by: Nicholas Husin \u003cnsh@golang.org\u003e\n"
    },
    {
      "commit": "e46d2f54a4e62cc228f1dde4289055a0f44db338",
      "tree": "6b7a329c4b4a105ed4c1237b085930191431fc98",
      "parents": [
        "49ee9b3075f3b16f7dfe524c5c2d13d4f76e1b16"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 09 16:15:59 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Sep 11 11:58:57 2026 -0700"
      },
      "message": "internal/breakings: syntax types: simple\n\nFirst of a series of CLs implementing syntax-based types for finding\nbreaking changes. We will compute breaking changes over these types\nbetween two versions of a package.\n\nThis first CL defines the syntaxType interface and the simplest\nimplementation, one for types with no relevant internal structure.\n\nChange-Id: Ie77ad35b95616f40855329fb4a043fad6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/830124\nReviewed-by: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nReviewed-by: 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\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "49ee9b3075f3b16f7dfe524c5c2d13d4f76e1b16",
      "tree": "a9ac1220346a0379393e9064d0ad166e202d6503",
      "parents": [
        "7ec6dc8ecdb7a2559e90104e34535a994c57b5b2"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Wed Sep 09 17:42:40 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Sep 09 14:01:51 2026 -0700"
      },
      "message": "static/frontend/api: add anchor links to api doc page\n\nThis matches the same behavior elsewhere in pkgsite. Users are now able\nto link directly to sections of the api page.\n\nTo test locally: `go run ./cmd/pkgsite -dev -http\u003d:8080`\n\nChange-Id: I0995af2bf7a966144a8f12520057d2878b7d5f1e\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/829884\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\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    },
    {
      "commit": "7ec6dc8ecdb7a2559e90104e34535a994c57b5b2",
      "tree": "a7bb8f4ce50847abea0abf6fa8442734112bbb58",
      "parents": [
        "ab18f655a17ddebc58287a0df1914bfc91970e7a"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 09 09:08:42 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 09 14:01:14 2026 -0700"
      },
      "message": "internal/postgres: exclude modules at index insertion\n\nThe less work we do for an excluded module, the better.\n\nSo set excluded modules to have Excluded status as soon\nas they are ingested from the module index. We only enqueue modules\nwith statuses that are 0 or above 500, so these modules will never be\nenqueued.\n\nChange-Id: I4add5763b491e48804e93cd8cdba89db9547c24e\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/829724\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "ab18f655a17ddebc58287a0df1914bfc91970e7a",
      "tree": "120298df13f28047ee5fbe5b0c9253602bf13e90",
      "parents": [
        "46f8beb3efe02893090f081c2f73148a59e5136e"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 09 09:45:28 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Wed Sep 09 11:49:27 2026 -0700"
      },
      "message": "internal/postgres: clean generated buf.build modules\n\nmodule paths beginning with \"buf.build/gen/go\" seem to account for\nabout 4% of new modules, but they appear in the proxy as a side effect,\napparently, and nobody particularly cares about their documentation as\nfar as we know. So remove them from the DB.\n\nWe do it as part of cleaning instead of a one-off bulk delete so that\nit\u0027s permanent, in case more such modules get inserted, and so that we\nhave an easy-to-find artifact.\n\nWe don\u0027t try to clean all excluded modules because what if someday\nsomebody wants to unexclude something? That could result in a lot of\nwork. But maybe that\u0027s not a good argument. Maybe we should be cleaning\nthem.\n\nChange-Id: Ide768f12bcb0b0ae21b66549d5672a0c412113cf\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/829784\nReviewed-by: 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\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "46f8beb3efe02893090f081c2f73148a59e5136e",
      "tree": "355647009746629b1492b589a6a060928d33d7e0",
      "parents": [
        "cd189d9b19a3d5f9ede283f6d980ea0ce2c54522"
      ],
      "author": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Sep 08 13:42:53 2026 -0700"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Wed Sep 09 07:34:17 2026 -0700"
      },
      "message": "go.mod: update golang.org/x dependencies\n\nUpdate golang.org/x dependencies to their latest tagged versions.\n\nChange-Id: I1bb36543b423cad5e2fef00f928764cd91ec233a\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/829386\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Cherry Mui \u003ccherryyz@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@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": "cd189d9b19a3d5f9ede283f6d980ea0ce2c54522",
      "tree": "28f4b13bd8196156558048cf993379e7bf5bf09b",
      "parents": [
        "373c391a64efb137de5a3c8b425e8b0396029ae9"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Thu Sep 03 16:17:57 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Sep 03 14:22:42 2026 -0700"
      },
      "message": "static/shared: update go.dev solutions links to subpages\n\nUpdate case studies and use cases links from go.dev/solutions#... to\ngo.dev/solutions/... to match the current go.dev navigation and avoid\nrelying on the /solutions/ redirect.\n\nFor golang/go#81341\n\nChange-Id: If821f4d970e1457fdf261667c63a8ef1d3290897\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/827264\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: 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\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "373c391a64efb137de5a3c8b425e8b0396029ae9",
      "tree": "759d11d06062e9dcc4444b43a696a956c4f8b4e4",
      "parents": [
        "e3f2c5547cf79de27737f3384815ed32e064f555"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Wed Sep 02 17:09:29 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Sep 03 13:22:34 2026 -0700"
      },
      "message": "internal/postgres: skip symbol insertion for modules exceeding threshold\n\nSkip symbol insertion for module versions whose total symbol count\nexceeds maxSymbols (30,000) to prevent database statement timeouts\non large or generated modules.\n\nExempt the standard library (\"std\") and golang.org/x packages from\nthis threshold check.\n\nChange-Id: Ieaa33eb2511e5df72729c0bd6168afff2d364781\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/826484\nCommit-Queue: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: 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\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "e3f2c5547cf79de27737f3384815ed32e064f555",
      "tree": "786db0bbf276ee8ebe0b57c471537c2568b02871",
      "parents": [
        "872aa7f6e423037c652f42b10352d4954d0aaed2"
      ],
      "author": {
        "name": "Ethan Lee",
        "email": "ethanalee@google.com",
        "time": "Tue Sep 01 20:27:57 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Thu Sep 03 13:22:30 2026 -0700"
      },
      "message": "internal/postgres: skip modules for symbol insertion\n\nThere are several large repos that are causing symbol insertion\noperations to timeout. Add these to the skipSymbols list but also\nintroduce prefix matching for certain repos that constantly publish new\nmajor versions and generate a large number of generated code.\n\nChange-Id: I29fedf02b8fe63e4b76d6fe4bb70072995f459b9\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/825845\nReviewed-by: Hongxiang Jiang \u003chxjiang@golang.org\u003e\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\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n"
    },
    {
      "commit": "872aa7f6e423037c652f42b10352d4954d0aaed2",
      "tree": "64996f4563b0563fa6d82bcaf6dfb2914bea8c04",
      "parents": [
        "9e2aa39bd6099278ae0454c90fe70495c0f60561"
      ],
      "author": {
        "name": "racequite",
        "email": "quiterace@gmail.com",
        "time": "Mon Aug 17 00:31:17 2026 +0800"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Sep 01 14:10:52 2026 -0700"
      },
      "message": "internal/frontend: count search query length in characters\n\nThe search query limit is documented as a character limit, but the\ncurrent check uses len, which counts UTF-8 bytes. As a result, queries\ncontaining multibyte Unicode characters can be rejected before reaching\nthe 500-character limit.\n\nUse utf8.RuneCountInString after the existing UTF-8 validity check.\nAdd regression tests showing that a query containing 500 Chinese\ncharacters is accepted and one containing 501 characters is rejected.\n\nFixes golang/go#80909\n\nChange-Id: Ia915ab840fa582749e344137aa6ee69827aa0e38\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/816220\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\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nAuto-Submit: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "9e2aa39bd6099278ae0454c90fe70495c0f60561",
      "tree": "a228adee242341cfe781d1ecf2811f08eff053ac",
      "parents": [
        "91697af73a32a808f0bd7b732bdba661fda595c7"
      ],
      "author": {
        "name": "Hana Kim",
        "email": "hyangah@gmail.com",
        "time": "Mon Aug 31 15:55:21 2026 +0000"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Tue Sep 01 10:15:59 2026 -0700"
      },
      "message": "internal/frontend: preserve query parameters when redirecting /v1beta/ to /v1/\n\nFixes golang/go#81045\n\nChange-Id: Ic3d914069bb9e3536f313c292fe98c48b90b6808\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/824864\nAuto-Submit: Hyang-Ah Hana Kim \u003chyangah@gmail.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\nkokoro-CI: kokoro \u003cnoreply+kokoro@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": "91697af73a32a808f0bd7b732bdba661fda595c7",
      "tree": "279434b529962f219b146ee2c275c1917af41df0",
      "parents": [
        "18758a480d3f22618095dc339b7778436a4aa0bc"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Aug 24 19:42:47 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Aug 28 13:32:41 2026 -0700"
      },
      "message": "internal/breakings: make typeString recursive\n\nWe have to call typeString for type expressions\ninside types.\n\nChange-Id: Ie89d2667f10d056f5969b8d1d4d483bada318005\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/823144\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: 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\n"
    },
    {
      "commit": "18758a480d3f22618095dc339b7778436a4aa0bc",
      "tree": "2c6b6e2c9d0acc19933f6989975a0a39f85c063e",
      "parents": [
        "b687f4531903f3d3f9f772535500ac084d4dde60"
      ],
      "author": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Mon Aug 24 17:05:32 2026 -0400"
      },
      "committer": {
        "name": "Jonathan Amsterdam",
        "email": "jba@google.com",
        "time": "Fri Aug 28 12:48:29 2026 -0700"
      },
      "message": "internal/breakings: type strings for interfaces\n\nInterface type identity is defined in terms of type sets, which are\ninfeasible to compute with syntax. We provide an approximation.\nFor typical interfaces with just a list of methods, sorting them\nwill do.\n\nChange-Id: I522bcca7f3265ebc9f3e56e0898a8f0828d3dab4\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/820720\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nTryBot-Bypass: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: Ethan Lee \u003cethanalee@google.com\u003e\n"
    },
    {
      "commit": "b687f4531903f3d3f9f772535500ac084d4dde60",
      "tree": "4550ba8b723f16596f43b985ac322bb6734119e9",
      "parents": [
        "6a3161985237667034950fd33b3d38171d53d699"
      ],
      "author": {
        "name": "Sean Liao",
        "email": "sean@liao.dev",
        "time": "Sat Aug 15 20:24:52 2026 +0100"
      },
      "committer": {
        "name": "Gopher Robot",
        "email": "gobot@golang.org",
        "time": "Fri Aug 28 12:12:55 2026 -0700"
      },
      "message": "cmd/internal/doc: allow reading packages from module cache\n\nThis lets go doc -http pkg@version work properly\n\nFor golang/go#78459\n\nChange-Id: Ida37d9be13461896acfbd12daa8363d46a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/815900\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\nAuto-Submit: Jonathan Amsterdam \u003cjba@google.com\u003e\nReviewed-by: Jonathan Amsterdam \u003cjba@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: David Chase \u003cdrchase@google.com\u003e\n"
    },
    {
      "commit": "6a3161985237667034950fd33b3d38171d53d699",
      "tree": "83d2528168be0f841b25a38756b51f1edb8733e9",
      "parents": [
        "ebe7ec0ce0dd234e9c6cdd0352d9546afb1b5d2d"
      ],
      "author": {
        "name": "Sean Liao",
        "email": "sean@liao.dev",
        "time": "Sat Aug 15 21:33:00 2026 +0100"
      },
      "committer": {
        "name": "Sean Liao",
        "email": "sean@liao.dev",
        "time": "Fri Aug 28 09:20:37 2026 -0700"
      },
      "message": "internal/fetch: list versions from module cache\n\nWhen run with pkgsite -cache, this makes the version list\npage list the available versions in the cache.\nThe pages for each version were already supported,\nyou just had to know the version to navigate to them.\n\nChange-Id: I6d4038bd2108c3f181160756d9eddb1a6a6a6964\nReviewed-on: https://go-review.googlesource.com/c/pkgsite/+/815920\nkokoro-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\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\nReviewed-by: Jonathan Amsterdam \u003cjba@google.com\u003e\n"
    }
  ],
  "next": "ebe7ec0ce0dd234e9c6cdd0352d9546afb1b5d2d"
}
