k6 `v1.7.0` is here 🎉! This release includes:

- Automatic resolution for subcommand extensions — no more manual `xk6` builds required to use them!
- `K6_SECRET_SOURCE` env var as an alternative to `--secret-source`, accepting the same syntax.

## Breaking changes

There are no breaking changes in this release.

## New features

### Automatic resolution for subcommand extensions [#5664](https://github.com/grafana/k6/pull/5664)

You can now rely on [automatic extension resolution](https://grafana.com/docs/k6/latest/extensions/run/#use-automatic-extension-resolution)
also when using a [subcommand extension](https://grafana.com/docs/k6/latest/extensions/create/subcommand-extensions/) 
that isn't included in the current binary.

Previously, using extension subcommands required manually building a custom `k6` binary with `xk6`. Now, k6 detects the
missing extension, provisions the binary on demand, and executes the command transparently — the same experience already
available for JavaScript extensions.

For instance, if you run:

```shell
k6 x httpbin
```

and the [`xk6-subcommand-httpbin`](https://github.com/grafana/xk6-subcommand-httpbin) subcommand extension isn't in the
current binary, k6 will automatically provision a binary with it on demand and execute the command transparently.

## UX improvements and enhancements

- [#5655](https://github.com/grafana/k6/pull/5655) Recommends the OpenTelemetry output instead of InfluxDB.
- [#5724](https://github.com/grafana/k6/pull/5724) Adds `K6_SECRET_SOURCE` env var as an alternative to `--secret-source`, accepting the same syntax. Thanks @vortegatorres, for the contribution!

## Bug fixes

- [#5629](https://github.com/grafana/k6/pull/5629) Ensures that all redirected requests are handled for `page.on('response')` and `page.on('requestfinished')`.

## Maintenance and internal improvements

- [#5447](https://github.com/grafana/k6/pull/5447) Updates the `actions/setup-go` action to `7a3fe6c`.
- [#5471](https://github.com/grafana/k6/pull/5471) Uses WPT's harness to test the WebCrypto API. Thanks @bjchris32, for the contribution!
- [#5583](https://github.com/grafana/k6/pull/5583), [#5687](https://github.com/grafana/k6/pull/5687) Move `Size` and `PageEmulateMediaOptions` option parsing to the Browser's mapping layer. Thanks @baeseokjae, for the contribution!
- [#5598](https://github.com/grafana/k6/pull/5598) Updates the `anchore/sbom-action` action to `v0.22.2`.
- [#5599](https://github.com/grafana/k6/pull/5599) Updates `github.com/klauspost/compress` to `v1.18.4`.
- [#5600](https://github.com/grafana/k6/pull/5600) Updates the `docker/login-action` action to `v3.7.0`.
- [#5610](https://github.com/grafana/k6/pull/5610) Improves error wrapping for Browser's actionability functions. Thanks @joaquinalmora, for the contribution!
- [#5612](https://github.com/grafana/k6/pull/5612) Adds a `AGENTS.md` for guiding coding agents.
- [#5615](https://github.com/grafana/k6/pull/5615) Updates the `actions/checkout` action to `de0fac2`.
- [#5618](https://github.com/grafana/k6/pull/5618) Updates `protoreflect` to `v1.18.0`.
- [#5619](https://github.com/grafana/k6/pull/5619) Updates `google.golang.org/grpc` to `v1.78.0`.
- [#5626](https://github.com/grafana/k6/pull/5626) Uses `cmd/state` constants when possible.
- [#5643](https://github.com/grafana/k6/pull/5643), [#5647](https://github.com/grafana/k6/pull/5647) Fix goroutine leak when running the browser tests.
- [#5646](https://github.com/grafana/k6/pull/5646) Update the Go toolchain version to `1.24.13`.
- [#5654](https://github.com/grafana/k6/pull/5654), [#5666](https://github.com/grafana/k6/pull/5666) Update the tag of the Docker image for Go.
- [#5656](https://github.com/grafana/k6/pull/5656) Fixes browser tests teardown races.
- [#5660](https://github.com/grafana/k6/pull/5660) Trims away the use of `afero` outside of the `fsext` module.
- [#5678](https://github.com/grafana/k6/pull/5678) Updates `golangci-lint` to `2.10.1`.
- [#5688](https://github.com/grafana/k6/pull/5688) Updates `go.opentelemetry.io/otel/sdk` to `v1.40.0`.
- [#5689](https://github.com/grafana/k6/pull/5689) Fixes browser tests by increasing the CI test run timeout.
- [#5691](https://github.com/grafana/k6/pull/5691) Updates the `actions/stale` action to `b5d41d4`.
- [#5692](https://github.com/grafana/k6/pull/5692) Updates the `grafana/shared-workflows/get-vault-secrets` action to `v1.3.1`.
- [#5695](https://github.com/grafana/k6/pull/5695) Updates the `github/codeql-action` action to `v4.32.4`.
- [#5702](https://github.com/grafana/k6/pull/5702) Bumps the Go min version to `1.25` and default to `1.26`, and fixes lint issues enabled by the new minimum.
- [#5708](https://github.com/grafana/k6/pull/5708) Bumps TC39 tests.
- [#5728](https://github.com/grafana/k6/pull/5728) Updates `xk6-dashboard` to `v0.8.1`.
- [#5735](https://github.com/grafana/k6/pull/5735) Excludes non-essential administrative and metadata files from the `vendor` directory.

## Roadmap

k6 `v2.0.0` is the next planned release. It will include a set of breaking changes that have been discussed and planned. 
You can find the list of planned breaking changes in [#5062](https://github.com/grafana/k6/issues/5062).
