{"article":{"slug":"what-shipped-at-buildkite-september-27-october-3-2026","title":"What shipped at Buildkite: September 27 – October 3, 2026","subtitle":null,"summary":"Buildkite's weekly product wrap: pipeline secrets, MCP server v1.24, agent v4.1.0, GitHub Actions arm64 support, shared test pools, and other shipping notes from late September into early October 2026.","content_type":"changelog","language":"en","canonical_url":"https://buildkite.com/resources/blog/what-shipped-at-buildkite-september-27-october-3-2026/","author":{"name":"Matt Mejia","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Buildkite","url":"https://buildkite.com/","listing_slug":null,"listing":null},"topics":[{"name":"Developer Tools","slug":"developer-tools","url":"https://listedarticles.com/topics/developer-tools"},{"name":"Engineering","slug":"engineering","url":"https://listedarticles.com/topics/engineering"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1585,"reading_minutes":7,"published_at":"2026-10-03T00:00:00.000Z","added_at":"2026-10-12T11:21:00.790Z","updated_at":"2026-10-12T11:21:00.790Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/what-shipped-at-buildkite-september-27-october-3-2026","markdown_url":"https://listedarticles.com/articles/what-shipped-at-buildkite-september-27-october-3-2026.md","example":false,"citation":"Matt Mejia, Buildkite. \"What shipped at Buildkite: September 27 – October 3, 2026.\" 3 Oct 2026. https://buildkite.com/resources/blog/what-shipped-at-buildkite-september-27-october-3-2026/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://buildkite.com/resources/blog/what-shipped-at-buildkite-september-27-october-3-2026/"},"body_markdown":"## Summary\n\nBuildkite shipped pipeline-scoped secrets in pipeline settings, Linux arm64 support for GitHub Actions workflows, and new Model Context Protocol (MCP) server tools for validating pipelines, comparing builds, and repairing webhooks between September 27 and October 3, 2026. Platform teams can now manage secrets for each pipeline, pin each Remote MCP Server connection to one organization, and plan for the end of agent v3 support on September 3, 2027. Agent v4.1.0 also adds cache timings and commit details to OpenTelemetry spans, and RSS feeds now announce new macOS base image releases on hosted agents.\n\n## Related changelog entries\n\n- [Manage secrets from pipeline settings](https://buildkite.com/resources/changelog/414-manage-secrets-from-pipeline-settings/)\n- [Buildkite agent version support policy](https://buildkite.com/resources/changelog/415-buildkite-agent-version-support-policy/)\n- [Choose the organization for each Remote MCP Server connection](https://buildkite.com/resources/changelog/416-choose-the-organization-for-each-remote-mcp-server-connection/)\n- [Get notified about new macOS base image releases](https://buildkite.com/resources/changelog/417-get-notified-about-new-macos-base-image-releases/)\n\n## What does this mean for you\n\n### Secrets move closer to the pipeline\n\nIf you can edit a pipeline and manage its cluster, you can now create and manage secrets from [Pipeline settings → Secrets](https://buildkite.com/resources/changelog/414-manage-secrets-from-pipeline-settings/). Pipeline secrets are cluster secrets restricted to the current pipeline, and branch, queue, build source, or creator conditions narrow access further. Values stay hidden after creation.\n\nThe new view keeps pipeline-specific secrets together, shows how many others the cluster manages, and links through to the cluster's secrets page, where restricted secrets now carry a lock indicator. GitHub Actions pipelines get a dismissible prompt pointing at secrets setup before the first workflow runs.\n\nThe Buildkite CLI [3.59.0](https://github.com/buildkite/cli/releases/tag/v3.59.0) adds a command to migrate GitHub Actions secrets, and [3.59.1](https://github.com/buildkite/cli/releases/tag/v3.59.1) fixes relative workflow paths when you do.\n\n### Agents get the moves an engineer would make\n\nLog access alone does not debug a build. MCP server [v1.23.0](https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.23.0) adds `validate_pipeline` to check pipeline YAML against the official schema before upload, `compare_builds` to diff a failing build against an earlier success, and Test Engine execution traces with slowest-execution lookups.\n\n[v1.24.0](https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.24.0) adds `create_pipeline_webhook`, so an agent can repair a pipeline created without its GitHub webhook instead of recreating it. Both releases sharpen failure summaries.\n\nOne v1.23.0 default hid jobs that never ran, and v1.24.0 reversed it after eval runs showed the opt-in forced extra tool calls. Measure, then decide.\n\nv1.23.0 carries one breaking change: `create_pipeline` now requires `create_webhook`.\n\nIf your agents work across more than one organization, add `?organization=your-organization` to the [Remote MCP Server URL](https://buildkite.com/resources/changelog/416-choose-the-organization-for-each-remote-mcp-server-connection/). The authorization page then preselects it. It works with toolset and read-only URLs, and leaving it off changes nothing.\n\n### GitHub Actions workflows on Buildkite\n\nFourteen [buildkite-gha releases](https://github.com/buildkite/buildkite-gha/releases) this week:\n\n- Publishes a Linux arm64 runtime in [v0.97.0](https://github.com/buildkite/buildkite-gha/releases/tag/v0.97.0) , so the importer and generated jobs run on arm64 agents. Labels such as`ubuntu-24.04-arm` need an explicit queue mapping, and they never fall back to x86-64 or emulation.\n- Resolves job environment values, named secrets, runtime `vars` , and matrix values in service container`env` and`credentials` , across[v0.94.0](https://github.com/buildkite/buildkite-gha/releases/tag/v0.94.0) ,[v0.95.0](https://github.com/buildkite/buildkite-gha/releases/tag/v0.95.0) , and[v0.96.0](https://github.com/buildkite/buildkite-gha/releases/tag/v0.96.0) .\n- Exposes `strategy.job-index` ,`job-total` ,`fail-fast` , and`max-parallel` in job and step expressions in[v0.93.0](https://github.com/buildkite/buildkite-gha/releases/tag/v0.93.0) .`fail-fast` reports its configured value but still does not cancel sibling matrix jobs.\n- Ignores branch, tag, and path filters on ten event families in [v0.93.1](https://github.com/buildkite/buildkite-gha/releases/tag/v0.93.1) , matching GitHub's behavior.\n- Raises the changed-file limit from 300 to 3,000 in [v0.97.2](https://github.com/buildkite/buildkite-gha/releases/tag/v0.97.2) , and fixes path-filtered`push` workflows that failed when the branch advanced after the push.\n\nYou pick these up through the [GitHub Actions Buildkite plugin](https://github.com/buildkite-plugins/github-actions-buildkite-plugin), which installs and verifies the selected CLI release and defaults to the latest stable one. Every release ships with upgrade notes that say exactly what is still unsupported.\n\n### Four agent releases, and a clock on v3\n\nAgent [v4.1.0](https://github.com/buildkite/agent/releases/tag/v4.1.0) reports cache save and restore timings and sizes back to Buildkite, carries commit, pull request, and build author as OpenTelemetry job span attributes, and fixes intermittent Windows crashes. [v4.0.9](https://github.com/buildkite/agent/releases/tag/v4.0.9) redacts Buildkite tokens by prefix in job logs, [v4.0.8](https://github.com/buildkite/agent/releases/tag/v4.0.8) redacts captured job errors using the job's registered secrets, and [v4.0.7](https://github.com/buildkite/agent/releases/tag/v4.0.7) surfaces cache restore keys, scopes, and policy outcomes in build logs.\n\nAround the agent, Elastic CI Stack for AWS [v7.1.0](https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v7.1.0) and [v7.2.0](https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v7.2.0) now replace Linux instances whose agent stops responding for three minutes and bundle v4.1.0, the Kubernetes stack completes its move to agent v4 in [v0.51.0](https://github.com/buildkite/agent-stack-k8s/releases/tag/v0.51.0), and the agent scaler [v1.15.0](https://github.com/buildkite/buildkite-agent-scaler/releases/tag/v1.15.0) stores its last scale-in time in SSM Parameter Store so Lambda cold starts stop causing duplicate scale-ins.\n\nFrom January 1, 2027, we support each minor release line for 1 year from its first stable release, with the final 3 months a deprecation window. Installing an agent or updating to a newer patch does not restart that window.\n\n- v3.115.x and earlier become unsupported on January 1, 2027.\n- v3.116.x through v3.121.x become deprecated that day, and stay supported until their own windows end.\n- v3 support ends entirely on September 3, 2027.\n\nWe will not block out-of-support agents for that reason alone, but we no longer guarantee compatibility. We manage updates for hosted agents, so there is nothing to do there. On self-hosted agents, check the versions across your fleet and plan the [move to v4](https://buildkite.com/docs/agent/v3-v4-upgrade-guide), or read the full [agent version support policy](https://buildkite.com/docs/agent/version-support-policy).\n\nIf you run macOS on hosted agents, new RSS feeds now tell you when a base image changes. The [stable feed](https://buildkite.com/hosted-agents/macos/image-changes.rss) covers production images, and the [canary feed](https://buildkite.com/hosted-agents/macos/image-changes-canary.rss) covers the latest Xcode betas and runtimes.\n\n### Test splitting moves to shared pools\n\nThe Buildkite test engine client [3.2.0](https://github.com/buildkite/test-engine-client/releases/tag/v3.2.0) adds `bktec pool plan` and `bktec pool exec` for shared Test Scheduler pools, and hosts the protocol and lifecycle for persistent test runners. Pool plan supports dynamic parallelism.\n\nUnderneath, bktec releases active leases when it terminates, retains them through transient heartbeat failures, and prefetches the next lease while the current one runs.\n\nManual test selection comes out of preview, and you can now opt out of git metadata collection. Release candidates went out on September 29 and October 1.\n\n## GitHub releases\n\n35 releases across 13 public repos in the [buildkite](https://github.com/buildkite) and [buildkite-plugins](https://github.com/buildkite-plugins) GitHub orgs, newest first. Where one repo shipped a run of releases, they share a row. Dates are US Pacific time.\n\n| Date | Release | Summary | \n|---|---|---|\n| October 2 | [Docker Compose plugin v5.15.0](https://github.com/buildkite-plugins/docker-compose-buildkite-plugin/releases/tag/v5.15.0) | Adds a `bake` option to build and push with`docker buildx bake` , captures structured Docker Compose errors through the agent, and fixes the`pre-exit` hook exit code. | \n| October 1 | [Test engine client (bktec) v3.2.0](https://github.com/buildkite/test-engine-client/releases/tag/v3.2.0) | Adds `bktec pool plan` and`bktec pool exec` to run tests from shared scheduler pools with persistent runners and dynamic parallelism, takes manual test selection out of preview, and lets you opt out of git metadata collection. Release candidates went out September 29 and October 1. | \n| October 1 | [Elastic CI Stack for AWS v7.1.0 and v7.2.0](https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v7.2.0) | Replaces Linux instances whose agent stops responding for three minutes, retries transient EC2 metadata failures, bundles agent v4.1.0 and agent scaler v1.15.0, and fixes the instance termination fallback. | \n| October 1 | [GitHub Actions workflows on Buildkite (buildkite-gha) v0.90.1 to v0.97.2](https://github.com/buildkite/buildkite-gha/releases) | Fourteen releases from September 28: a Linux arm64 runtime, vars, named secrets and matrix values in service containers, `strategy.*` expressions, GitHub-matching event filter behavior, and a path-filter fix that raises the changed-file limit from 300 to 3,000. | \n| September 30 | [Agent v4.1.0](https://github.com/buildkite/agent/releases/tag/v4.1.0) | Reports cache save and restore timings and sizes to Buildkite, adds commit, pull request, and build author attributes to OpenTelemetry job spans, and fixes intermittent Windows crashes. | \n| September 29 | [CLI 3.59.1](https://github.com/buildkite/cli/releases/tag/v3.59.1) | Fixes relative workflow paths when migrating secrets. | \n| September 29 | [Go API client (go-buildkite) v5.19.0 to v5.21.0](https://github.com/buildkite/go-buildkite/releases/tag/v5.21.0) | Three releases from September 27 adding cluster cache registry, default cache registry, and repository connections support. | \n| September 29 | [macOS menu bar app 1.0.63](https://github.com/buildkite/macmenubarapp-releases/releases/tag/v1.0.63) | Fixes stuck sign-in and lost sessions, makes build notifications more reliable, and adds live build times. 1.0.62 and earlier need a one-time manual update. | \n| September 29 | [MCP server v1.24.0](https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.24.0) | Adds `create_pipeline_webhook` so agents can repair a pipeline created without its GitHub webhook, and makes failure summaries list jobs that never ran by default, reversing v1.23.0 after evals showed the opt-in cost extra tool calls. | \n| September 29 | [Agent v4.0.9](https://github.com/buildkite/agent/releases/tag/v4.0.9) | Redacts Buildkite tokens by prefix in job logs and closes each job's log temp file when the job finishes. | \n| September 29 | [Agent scaler v1.15.0](https://github.com/buildkite/buildkite-agent-scaler/releases/tag/v1.15.0) | Stores the last scale-in time in SSM Parameter Store, so Lambda cold starts no longer cause duplicate scale-ins. | \n| September 29 | [Agent Stack for Kubernetes v0.51.0](https://github.com/buildkite/agent-stack-k8s/releases/tag/v0.51.0) | Completes the agent v4 migration. Breaking: tracing config keys are renamed or removed, and the controller will not start if the old keys remain. | \n| September 28 | [CLI 3.59.0](https://github.com/buildkite/cli/releases/tag/v3.59.0) | Adds `bk` commands to migrate GitHub Actions secrets and manage the cache registry, plus clearer guidance when the OAuth credential store is unavailable. | \n| September 28 | [Artifacts plugin v1.10.0](https://github.com/buildkite-plugins/artifacts-buildkite-plugin/releases/tag/v1.10.0) | Adds an option to expand variables, and fixes a command injection via env-name parsing in post-command upload discovery. | \n| September 28 | [Agent v4.0.8](https://github.com/buildkite/agent/releases/tag/v4.0.8) | Turns on error capture without an experiment flag, redacts captured job errors using the job's registered secrets, and fixes a file-descriptor leak. | \n| September 28 | [MCP server v1.23.0](https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.23.0) | Adds `validate_pipeline` ,`compare_builds` , test execution trace and slowest-execution tools, and sharpens failure summaries. Breaking:`create_pipeline` now requires`create_webhook` . | \n| September 27 | [Pipeline parser (go-pipeline) v0.18.1](https://github.com/buildkite/go-pipeline/releases/tag/v0.18.1) | Rejects pipeline YAML with excessive alias expansion instead of exhausting memory while parsing. | \n| September 27 | [Agent v4.0.7](https://github.com/buildkite/agent/releases/tag/v4.0.7) | Shows cache restore keys, scopes, and policy outcomes in build logs, supports provider-specific Git usernames for repository credentials, and preserves Linux mount points during cache restore. | \n| September 27 | [CLI 3.58.0](https://github.com/buildkite/cli/releases/tag/v3.58.0) | Accepts stdin request bodies in `bk api` , supports repeated`--path` flags for artifacts, and keeps cluster secret request bodies out of debug logs. | \n\n## **Subscribe to changelog updates**\n\nPoint any RSS reader at the [Atom feed](https://buildkite.com/changelog.atom) and new entries arrive as they ship. You can also read the [Buildkite changelog](https://buildkite.com/resources/changelog/). \n\nSee you next week!","body_html":"<h2 id=\"summary\">Summary</h2>\n<p>Buildkite shipped pipeline-scoped secrets in pipeline settings, Linux arm64 support for GitHub Actions workflows, and new Model Context Protocol (MCP) server tools for validating pipelines, comparing builds, and repairing webhooks between September 27 and October 3, 2026. Platform teams can now manage secrets for each pipeline, pin each Remote MCP Server connection to one organization, and plan for the end of agent v3 support on September 3, 2027. Agent v4.1.0 also adds cache timings and commit details to OpenTelemetry spans, and RSS feeds now announce new macOS base image releases on hosted agents.</p>\n<h2 id=\"related-changelog-entries\">Related changelog entries</h2>\n<ul><li><a href=\"https://buildkite.com/resources/changelog/414-manage-secrets-from-pipeline-settings/\" rel=\"nofollow ugc noopener\">Manage secrets from pipeline settings</a></li><li><a href=\"https://buildkite.com/resources/changelog/415-buildkite-agent-version-support-policy/\" rel=\"nofollow ugc noopener\">Buildkite agent version support policy</a></li><li><a href=\"https://buildkite.com/resources/changelog/416-choose-the-organization-for-each-remote-mcp-server-connection/\" rel=\"nofollow ugc noopener\">Choose the organization for each Remote MCP Server connection</a></li><li><a href=\"https://buildkite.com/resources/changelog/417-get-notified-about-new-macos-base-image-releases/\" rel=\"nofollow ugc noopener\">Get notified about new macOS base image releases</a></li></ul>\n<h2 id=\"what-does-this-mean-for-you\">What does this mean for you</h2>\n<h3 id=\"secrets-move-closer-to-the-pipeline\">Secrets move closer to the pipeline</h3>\n<p>If you can edit a pipeline and manage its cluster, you can now create and manage secrets from <a href=\"https://buildkite.com/resources/changelog/414-manage-secrets-from-pipeline-settings/\" rel=\"nofollow ugc noopener\">Pipeline settings → Secrets</a>. Pipeline secrets are cluster secrets restricted to the current pipeline, and branch, queue, build source, or creator conditions narrow access further. Values stay hidden after creation.</p>\n<p>The new view keeps pipeline-specific secrets together, shows how many others the cluster manages, and links through to the cluster&#39;s secrets page, where restricted secrets now carry a lock indicator. GitHub Actions pipelines get a dismissible prompt pointing at secrets setup before the first workflow runs.</p>\n<p>The Buildkite CLI <a href=\"https://github.com/buildkite/cli/releases/tag/v3.59.0\" rel=\"nofollow ugc noopener\">3.59.0</a> adds a command to migrate GitHub Actions secrets, and <a href=\"https://github.com/buildkite/cli/releases/tag/v3.59.1\" rel=\"nofollow ugc noopener\">3.59.1</a> fixes relative workflow paths when you do.</p>\n<h3 id=\"agents-get-the-moves-an-engineer-would-make\">Agents get the moves an engineer would make</h3>\n<p>Log access alone does not debug a build. MCP server <a href=\"https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.23.0\" rel=\"nofollow ugc noopener\">v1.23.0</a> adds <code>validate_pipeline</code> to check pipeline YAML against the official schema before upload, <code>compare_builds</code> to diff a failing build against an earlier success, and Test Engine execution traces with slowest-execution lookups.</p>\n<p><a href=\"https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.24.0\" rel=\"nofollow ugc noopener\">v1.24.0</a> adds <code>create_pipeline_webhook</code>, so an agent can repair a pipeline created without its GitHub webhook instead of recreating it. Both releases sharpen failure summaries.</p>\n<p>One v1.23.0 default hid jobs that never ran, and v1.24.0 reversed it after eval runs showed the opt-in forced extra tool calls. Measure, then decide.</p>\n<p>v1.23.0 carries one breaking change: <code>create_pipeline</code> now requires <code>create_webhook</code>.</p>\n<p>If your agents work across more than one organization, add <code>?organization=your-organization</code> to the <a href=\"https://buildkite.com/resources/changelog/416-choose-the-organization-for-each-remote-mcp-server-connection/\" rel=\"nofollow ugc noopener\">Remote MCP Server URL</a>. The authorization page then preselects it. It works with toolset and read-only URLs, and leaving it off changes nothing.</p>\n<h3 id=\"github-actions-workflows-on-buildkite\">GitHub Actions workflows on Buildkite</h3>\n<p>Fourteen <a href=\"https://github.com/buildkite/buildkite-gha/releases\" rel=\"nofollow ugc noopener\">buildkite-gha releases</a> this week:</p>\n<ul><li>Publishes a Linux arm64 runtime in <a href=\"https://github.com/buildkite/buildkite-gha/releases/tag/v0.97.0\" rel=\"nofollow ugc noopener\">v0.97.0</a> , so the importer and generated jobs run on arm64 agents. Labels such as<code>ubuntu-24.04-arm</code> need an explicit queue mapping, and they never fall back to x86-64 or emulation.</li><li>Resolves job environment values, named secrets, runtime <code>vars</code> , and matrix values in service container<code>env</code> and<code>credentials</code> , across<a href=\"https://github.com/buildkite/buildkite-gha/releases/tag/v0.94.0\" rel=\"nofollow ugc noopener\">v0.94.0</a> ,<a href=\"https://github.com/buildkite/buildkite-gha/releases/tag/v0.95.0\" rel=\"nofollow ugc noopener\">v0.95.0</a> , and<a href=\"https://github.com/buildkite/buildkite-gha/releases/tag/v0.96.0\" rel=\"nofollow ugc noopener\">v0.96.0</a> .</li><li>Exposes <code>strategy.job-index</code> ,<code>job-total</code> ,<code>fail-fast</code> , and<code>max-parallel</code> in job and step expressions in<a href=\"https://github.com/buildkite/buildkite-gha/releases/tag/v0.93.0\" rel=\"nofollow ugc noopener\">v0.93.0</a> .<code>fail-fast</code> reports its configured value but still does not cancel sibling matrix jobs.</li><li>Ignores branch, tag, and path filters on ten event families in <a href=\"https://github.com/buildkite/buildkite-gha/releases/tag/v0.93.1\" rel=\"nofollow ugc noopener\">v0.93.1</a> , matching GitHub&#39;s behavior.</li><li>Raises the changed-file limit from 300 to 3,000 in <a href=\"https://github.com/buildkite/buildkite-gha/releases/tag/v0.97.2\" rel=\"nofollow ugc noopener\">v0.97.2</a> , and fixes path-filtered<code>push</code> workflows that failed when the branch advanced after the push.</li></ul>\n<p>You pick these up through the <a href=\"https://github.com/buildkite-plugins/github-actions-buildkite-plugin\" rel=\"nofollow ugc noopener\">GitHub Actions Buildkite plugin</a>, which installs and verifies the selected CLI release and defaults to the latest stable one. Every release ships with upgrade notes that say exactly what is still unsupported.</p>\n<h3 id=\"four-agent-releases-and-a-clock-on-v3\">Four agent releases, and a clock on v3</h3>\n<p>Agent <a href=\"https://github.com/buildkite/agent/releases/tag/v4.1.0\" rel=\"nofollow ugc noopener\">v4.1.0</a> reports cache save and restore timings and sizes back to Buildkite, carries commit, pull request, and build author as OpenTelemetry job span attributes, and fixes intermittent Windows crashes. <a href=\"https://github.com/buildkite/agent/releases/tag/v4.0.9\" rel=\"nofollow ugc noopener\">v4.0.9</a> redacts Buildkite tokens by prefix in job logs, <a href=\"https://github.com/buildkite/agent/releases/tag/v4.0.8\" rel=\"nofollow ugc noopener\">v4.0.8</a> redacts captured job errors using the job&#39;s registered secrets, and <a href=\"https://github.com/buildkite/agent/releases/tag/v4.0.7\" rel=\"nofollow ugc noopener\">v4.0.7</a> surfaces cache restore keys, scopes, and policy outcomes in build logs.</p>\n<p>Around the agent, Elastic CI Stack for AWS <a href=\"https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v7.1.0\" rel=\"nofollow ugc noopener\">v7.1.0</a> and <a href=\"https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v7.2.0\" rel=\"nofollow ugc noopener\">v7.2.0</a> now replace Linux instances whose agent stops responding for three minutes and bundle v4.1.0, the Kubernetes stack completes its move to agent v4 in <a href=\"https://github.com/buildkite/agent-stack-k8s/releases/tag/v0.51.0\" rel=\"nofollow ugc noopener\">v0.51.0</a>, and the agent scaler <a href=\"https://github.com/buildkite/buildkite-agent-scaler/releases/tag/v1.15.0\" rel=\"nofollow ugc noopener\">v1.15.0</a> stores its last scale-in time in SSM Parameter Store so Lambda cold starts stop causing duplicate scale-ins.</p>\n<p>From January 1, 2027, we support each minor release line for 1 year from its first stable release, with the final 3 months a deprecation window. Installing an agent or updating to a newer patch does not restart that window.</p>\n<ul><li>v3.115.x and earlier become unsupported on January 1, 2027.</li><li>v3.116.x through v3.121.x become deprecated that day, and stay supported until their own windows end.</li><li>v3 support ends entirely on September 3, 2027.</li></ul>\n<p>We will not block out-of-support agents for that reason alone, but we no longer guarantee compatibility. We manage updates for hosted agents, so there is nothing to do there. On self-hosted agents, check the versions across your fleet and plan the <a href=\"https://buildkite.com/docs/agent/v3-v4-upgrade-guide\" rel=\"nofollow ugc noopener\">move to v4</a>, or read the full <a href=\"https://buildkite.com/docs/agent/version-support-policy\" rel=\"nofollow ugc noopener\">agent version support policy</a>.</p>\n<p>If you run macOS on hosted agents, new RSS feeds now tell you when a base image changes. The <a href=\"https://buildkite.com/hosted-agents/macos/image-changes.rss\" rel=\"nofollow ugc noopener\">stable feed</a> covers production images, and the <a href=\"https://buildkite.com/hosted-agents/macos/image-changes-canary.rss\" rel=\"nofollow ugc noopener\">canary feed</a> covers the latest Xcode betas and runtimes.</p>\n<h3 id=\"test-splitting-moves-to-shared-pools\">Test splitting moves to shared pools</h3>\n<p>The Buildkite test engine client <a href=\"https://github.com/buildkite/test-engine-client/releases/tag/v3.2.0\" rel=\"nofollow ugc noopener\">3.2.0</a> adds <code>bktec pool plan</code> and <code>bktec pool exec</code> for shared Test Scheduler pools, and hosts the protocol and lifecycle for persistent test runners. Pool plan supports dynamic parallelism.</p>\n<p>Underneath, bktec releases active leases when it terminates, retains them through transient heartbeat failures, and prefetches the next lease while the current one runs.</p>\n<p>Manual test selection comes out of preview, and you can now opt out of git metadata collection. Release candidates went out on September 29 and October 1.</p>\n<h2 id=\"github-releases\">GitHub releases</h2>\n<p>35 releases across 13 public repos in the <a href=\"https://github.com/buildkite\" rel=\"nofollow ugc noopener\">buildkite</a> and <a href=\"https://github.com/buildkite-plugins\" rel=\"nofollow ugc noopener\">buildkite-plugins</a> GitHub orgs, newest first. Where one repo shipped a run of releases, they share a row. Dates are US Pacific time.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Date</th><th>Release</th><th>Summary</th></tr></thead><tbody><tr><td>October 2</td><td><a href=\"https://github.com/buildkite-plugins/docker-compose-buildkite-plugin/releases/tag/v5.15.0\" rel=\"nofollow ugc noopener\">Docker Compose plugin v5.15.0</a></td><td>Adds a <code>bake</code> option to build and push with<code>docker buildx bake</code> , captures structured Docker Compose errors through the agent, and fixes the<code>pre-exit</code> hook exit code.</td></tr><tr><td>October 1</td><td><a href=\"https://github.com/buildkite/test-engine-client/releases/tag/v3.2.0\" rel=\"nofollow ugc noopener\">Test engine client (bktec) v3.2.0</a></td><td>Adds <code>bktec pool plan</code> and<code>bktec pool exec</code> to run tests from shared scheduler pools with persistent runners and dynamic parallelism, takes manual test selection out of preview, and lets you opt out of git metadata collection. Release candidates went out September 29 and October 1.</td></tr><tr><td>October 1</td><td><a href=\"https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v7.2.0\" rel=\"nofollow ugc noopener\">Elastic CI Stack for AWS v7.1.0 and v7.2.0</a></td><td>Replaces Linux instances whose agent stops responding for three minutes, retries transient EC2 metadata failures, bundles agent v4.1.0 and agent scaler v1.15.0, and fixes the instance termination fallback.</td></tr><tr><td>October 1</td><td><a href=\"https://github.com/buildkite/buildkite-gha/releases\" rel=\"nofollow ugc noopener\">GitHub Actions workflows on Buildkite (buildkite-gha) v0.90.1 to v0.97.2</a></td><td>Fourteen releases from September 28: a Linux arm64 runtime, vars, named secrets and matrix values in service containers, <code>strategy.*</code> expressions, GitHub-matching event filter behavior, and a path-filter fix that raises the changed-file limit from 300 to 3,000.</td></tr><tr><td>September 30</td><td><a href=\"https://github.com/buildkite/agent/releases/tag/v4.1.0\" rel=\"nofollow ugc noopener\">Agent v4.1.0</a></td><td>Reports cache save and restore timings and sizes to Buildkite, adds commit, pull request, and build author attributes to OpenTelemetry job spans, and fixes intermittent Windows crashes.</td></tr><tr><td>September 29</td><td><a href=\"https://github.com/buildkite/cli/releases/tag/v3.59.1\" rel=\"nofollow ugc noopener\">CLI 3.59.1</a></td><td>Fixes relative workflow paths when migrating secrets.</td></tr><tr><td>September 29</td><td><a href=\"https://github.com/buildkite/go-buildkite/releases/tag/v5.21.0\" rel=\"nofollow ugc noopener\">Go API client (go-buildkite) v5.19.0 to v5.21.0</a></td><td>Three releases from September 27 adding cluster cache registry, default cache registry, and repository connections support.</td></tr><tr><td>September 29</td><td><a href=\"https://github.com/buildkite/macmenubarapp-releases/releases/tag/v1.0.63\" rel=\"nofollow ugc noopener\">macOS menu bar app 1.0.63</a></td><td>Fixes stuck sign-in and lost sessions, makes build notifications more reliable, and adds live build times. 1.0.62 and earlier need a one-time manual update.</td></tr><tr><td>September 29</td><td><a href=\"https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.24.0\" rel=\"nofollow ugc noopener\">MCP server v1.24.0</a></td><td>Adds <code>create_pipeline_webhook</code> so agents can repair a pipeline created without its GitHub webhook, and makes failure summaries list jobs that never ran by default, reversing v1.23.0 after evals showed the opt-in cost extra tool calls.</td></tr><tr><td>September 29</td><td><a href=\"https://github.com/buildkite/agent/releases/tag/v4.0.9\" rel=\"nofollow ugc noopener\">Agent v4.0.9</a></td><td>Redacts Buildkite tokens by prefix in job logs and closes each job&#39;s log temp file when the job finishes.</td></tr><tr><td>September 29</td><td><a href=\"https://github.com/buildkite/buildkite-agent-scaler/releases/tag/v1.15.0\" rel=\"nofollow ugc noopener\">Agent scaler v1.15.0</a></td><td>Stores the last scale-in time in SSM Parameter Store, so Lambda cold starts no longer cause duplicate scale-ins.</td></tr><tr><td>September 29</td><td><a href=\"https://github.com/buildkite/agent-stack-k8s/releases/tag/v0.51.0\" rel=\"nofollow ugc noopener\">Agent Stack for Kubernetes v0.51.0</a></td><td>Completes the agent v4 migration. Breaking: tracing config keys are renamed or removed, and the controller will not start if the old keys remain.</td></tr><tr><td>September 28</td><td><a href=\"https://github.com/buildkite/cli/releases/tag/v3.59.0\" rel=\"nofollow ugc noopener\">CLI 3.59.0</a></td><td>Adds <code>bk</code> commands to migrate GitHub Actions secrets and manage the cache registry, plus clearer guidance when the OAuth credential store is unavailable.</td></tr><tr><td>September 28</td><td><a href=\"https://github.com/buildkite-plugins/artifacts-buildkite-plugin/releases/tag/v1.10.0\" rel=\"nofollow ugc noopener\">Artifacts plugin v1.10.0</a></td><td>Adds an option to expand variables, and fixes a command injection via env-name parsing in post-command upload discovery.</td></tr><tr><td>September 28</td><td><a href=\"https://github.com/buildkite/agent/releases/tag/v4.0.8\" rel=\"nofollow ugc noopener\">Agent v4.0.8</a></td><td>Turns on error capture without an experiment flag, redacts captured job errors using the job&#39;s registered secrets, and fixes a file-descriptor leak.</td></tr><tr><td>September 28</td><td><a href=\"https://github.com/buildkite/buildkite-mcp-server/releases/tag/v1.23.0\" rel=\"nofollow ugc noopener\">MCP server v1.23.0</a></td><td>Adds <code>validate_pipeline</code> ,<code>compare_builds</code> , test execution trace and slowest-execution tools, and sharpens failure summaries. Breaking:<code>create_pipeline</code> now requires<code>create_webhook</code> .</td></tr><tr><td>September 27</td><td><a href=\"https://github.com/buildkite/go-pipeline/releases/tag/v0.18.1\" rel=\"nofollow ugc noopener\">Pipeline parser (go-pipeline) v0.18.1</a></td><td>Rejects pipeline YAML with excessive alias expansion instead of exhausting memory while parsing.</td></tr><tr><td>September 27</td><td><a href=\"https://github.com/buildkite/agent/releases/tag/v4.0.7\" rel=\"nofollow ugc noopener\">Agent v4.0.7</a></td><td>Shows cache restore keys, scopes, and policy outcomes in build logs, supports provider-specific Git usernames for repository credentials, and preserves Linux mount points during cache restore.</td></tr><tr><td>September 27</td><td><a href=\"https://github.com/buildkite/cli/releases/tag/v3.58.0\" rel=\"nofollow ugc noopener\">CLI 3.58.0</a></td><td>Accepts stdin request bodies in <code>bk api</code> , supports repeated<code>--path</code> flags for artifacts, and keeps cluster secret request bodies out of debug logs.</td></tr></tbody></table></div>\n<h2 id=\"subscribe-to-changelog-updates\"><strong>Subscribe to changelog updates</strong></h2>\n<p>Point any RSS reader at the <a href=\"https://buildkite.com/changelog.atom\" rel=\"nofollow ugc noopener\">Atom feed</a> and new entries arrive as they ship. You can also read the <a href=\"https://buildkite.com/resources/changelog/\" rel=\"nofollow ugc noopener\">Buildkite changelog</a>. </p>\n<p>See you next week!</p>","headings":[{"level":2,"text":"Summary","id":"summary"},{"level":2,"text":"Related changelog entries","id":"related-changelog-entries"},{"level":2,"text":"What does this mean for you","id":"what-does-this-mean-for-you"},{"level":3,"text":"Secrets move closer to the pipeline","id":"secrets-move-closer-to-the-pipeline"},{"level":3,"text":"Agents get the moves an engineer would make","id":"agents-get-the-moves-an-engineer-would-make"},{"level":3,"text":"GitHub Actions workflows on Buildkite","id":"github-actions-workflows-on-buildkite"},{"level":3,"text":"Four agent releases, and a clock on v3","id":"four-agent-releases-and-a-clock-on-v3"},{"level":3,"text":"Test splitting moves to shared pools","id":"test-splitting-moves-to-shared-pools"},{"level":2,"text":"GitHub releases","id":"github-releases"},{"level":2,"text":"**Subscribe to changelog updates**","id":"subscribe-to-changelog-updates"}]}}