Releases: buildkite/agent
v4.0.0-beta.1
v4.0.0-beta.1 (2026-04-22)
Changed in v4
- The following experiments are now default behaviour (promoted):
normalised-upload-pathsoverride-zero-exit-on-cancelresolve-commit-after-checkoutpropagate-agent-config-vars
- Remove
allow-artifact-path-traversalexperiment - Remove deprecated Docker support
spawn-with-priorityis now a string, removing thedescending-spawn-priorityexperiment #3821 (@moskyb)- Newline after meta data get #3835 (@moskyb)
- Remove deprecated CLI flags #3834 (@moskyb)
- Remove deprecated plugin env vars #3852 (@DrJosh9000)
Changed in v3 since v3.123.1
Added
SIGKILLis now supported as a cancel signal, and can be used to interrupt processes on Windows that absorb Ctrl-Break without exiting
#3814 (@DrJosh9000)- feat: add metrics to record histogram of chunk sizes and compressed size #3833 (@wolfeidau)
- feat: migrate to github.com/klauspost/compress/gzip for optimized deflate #3832 (@wolfeidau)
Fixed
- fix: More consistent protected env vars #3838 (@DrJosh9000)
- fix: Hide detached-HEAD advice #3851 (@DrJosh9000)
- fix: set PTY raw mode before process start #3837 (@lox)
Internal
v3.123.1
v3.123.1 (2026-04-17)
Fixed
- Fix
--glob-resolve-follow-symlinksregression #3828 (@zhming0) - Prevent snapshot logic if command phase isn't included #3825 (@DrJosh9000)
- Per-agent snapshot clones for git mirrors #3789 (@DrJosh9000)
Internal
v3.123.0
v3.123.0 (2026-04-14)
Added
- Add zip archive support for plugins #3713 (@adnowakodbx1)
- Support PowerShell 7 #3759 (@markmssd)
- Allow K8s container start timeout to be configured #3820 (@zhming0)
- Make checkout retry attempt configurable, increasing default retry #3822 (@zhming0)
Fixed
- Fix incorrect check in TestAnnotateMaxBodySize, clean up assert #3810 (@DrJosh9000)
- Compile badChars regexp once #3811 (@DrJosh9000)
- Refactor ArtifactBatchCreator to use iterator #3812 (@zhming0)
Internal
- Release script #3806 (@swebb)
- Dependabot updates: #3813 (@dependabot[bot])
v3.122.0
v3.122.0 (2026-04-09)
Tip
🎉 ✨ Streaming job dispatch (General Availability): Starting this version, Agent's default endpoint has been changed to https://agent-edge.buildkite.com/v3, we expect this to vastly accelerate job acceptance latency.
Changed
v3.121.1
v3.121.1 (2026-04-08)
Change
- Map executor setup failures to exit_status -1 #3769 (kainanpeace666)
Fix
Security
Dependency updates
- build(deps): bump docker/library/golang from 1.25.8 to 1.25.9 in /.buildkite in the container-images group across 1 directory #3804 (dependabot[bot])
- build(deps): bump cloud.google.com/go/kms from 1.26.0 to 1.27.0 #3799 (dependabot[bot])
- build(deps): bump the cloud-providers group across 1 directory with 6 updates #3797 (dependabot[bot])
- build(deps): bump github.com/buildkite/go-buildkite/v4 from 4.17.0 to 4.18.0 #3798 (dependabot[bot])
- build(deps): bump the container-images group across 5 directories with 1 update #3796 (dependabot[bot])
- build(deps): bump the otel group with 5 updates #3795 (dependabot[bot])
- build(deps): bump github.com/buildkite/go-buildkite/v4 from 4.16.0 to 4.17.0 #3787 (dependabot[bot])
- build(deps): bump the cloud-providers group with 8 updates #3786 (dependabot[bot])
- build(deps): bump the container-images group across 3 directories with 1 update #3785 (dependabot[bot])
v3.121.0
v3.121.0 (2026-03-25)
Tip
In order to make Git Mirrors more reliable, checkouts using a mirror can now be dissociated from the mirror. This approach still avoids fetching objects from the remote if they are present the mirror, but stores a copy of the objects in the checkout, preventing the checkout from becoming corrupted through entirely normal operation of the mirror.
To opt into this behaviour set the flag --git-mirror-checkout-mode=dissociate or agent environment variable BUILDKITE_GIT_MIRROR_CHECKOUT_MODE=dissociate.
Added
- Add GCP KMS Signing #3660 (@tomowatt)
- Support for dissociated clones of git mirrors #3775, #3788 (@DrJosh9000)
- Add
--subject-claimflag tooidc request-token#3784 (@zero51)
Changed
v3.120.3
v3.120.3 (2026-03-24)
Tip
🎉 ✨ Streaming job dispatch (Public Preview): Version 3.120.0 adds opt-in support for a new streaming connection between agents and Buildkite, significantly reducing job acceptance latency for self-hosted agents. To try it, start your agent with --endpoint https://agent-edge.buildkite.com/v3, for example:
buildkite-agent start --endpoint https://agent-edge.buildkite.com/v3
You may alternatively use the environment variable BUILDKITE_AGENT_ENDPOINT or edit your buildkite-agent.cfg to contain endpoint=https://agent-edge.buildkite.com/v3.
This capability is in public preview and will become the default in a future release. If you have any feedback or run into issues, please reach out to support@buildkite.com.
Fixed
Internal
- Update/clarify supported Windows versions #3776 (@petetomasik)
Dependency updates
- build(deps): bump the cloud-providers group with 2 updates #3777 (@dependabot[bot])
- build(deps): bump the container-images group across 5 directories with 1 update #3778 (@dependabot[bot])
- build(deps): bump the container-images group across 1 directory with 2 updates #3779 (@dependabot[bot])
v3.120.2
v3.120.1
v3.120.1 (2026-03-17)
Tip
🎉 ✨ Streaming job dispatch (Public Preview): Version 3.120.0 adds opt-in support for a new streaming connection between agents and Buildkite, significantly reducing job acceptance latency for self-hosted agents. To try it, start your agent with --endpoint https://agent-edge.buildkite.com/v3, for example:
buildkite-agent start --endpoint https://agent-edge.buildkite.com/v3
You may alternatively use the environment variable BUILDKITE_AGENT_ENDPOINT or edit your buildkite-agent.cfg to contain endpoint=https://agent-edge.buildkite.com/v3.
This capability is in public preview and will become the default in a future release. If you have any feedback or run into issues, please reach out to support@buildkite.com.
Fixed
- Adds
API_KEYvalues to the redacted list #3761 (@mcncl) - fix: Support []string fields in ReadFromEnvironment #3767 (@DrJosh9000)
Internal
Dependency updates
- build(deps): bump the container-images group across 1 directory with 2 updates #3764 (@dependabot[bot])
- build(deps): bump the container-images group across 5 directories with 2 updates #3766 (@dependabot[bot])
- build(deps): bump the golang-x group with 3 updates #3762 (@dependabot[bot])
- build(deps): bump the cloud-providers group with 8 updates #3765 (@dependabot[bot])
v3.120.0
v3.120.0 (2026-03-13)
Tip
🎉 ✨ Streaming job dispatch (Public Preview): This release adds opt-in support for a new streaming connection between agents and Buildkite, significantly reducing job acceptance latency for self-hosted agents. To try it, start your agent with --endpoint https://agent-edge.buildkite.com/v3, for example:
buildkite-agent start --endpoint https://agent-edge.buildkite.com/v3
You may alternatively use the environment variable BUILDKITE_AGENT_ENDPOINT or edit your buildkite-agent.cfg to contain endpoint=https://agent-edge.buildkite.com/v3.
This capability is in public preview and will become the default in a future release. If you have any feedback or run into issues, please reach out to support@buildkite.com.
Note
The minimum version of Go used to build the agent is now Go 1.25.
Fixed
- fix: Make submodule clone config an agent config #3752 (@DrJosh9000)
- fix: prevent header times scan panic after stop #3740 (@lox)
- fix: handle multiple lifecycle hooks without closed pipe reuse #3741 (@lox)
- fix: potential deadlock in baton #3754 (@DrJosh9000)
- fix: Use targetPath helper and tempfile for Azure Blob download #3751 (@DrJosh9000)
Internal
- Add feature detection for streaming pings #3757 (@moskyb)
- chore: Apply other go fixes #3756 (@DrJosh9000)
- chore: use WaitGroup.Go where possible #3755 (@DrJosh9000)
Dependency updates
- build(deps): bump the container-images group across 5 directories with 1 update #3749 (@dependabot[bot])
- Upgrade to Go 1.25 and update all dependencies #3750 (@DrJosh9000)