📦 Other Changes
docs(validation): add OPA-focused example and repoint validation docs @aknysh (#3360)
- New Features
- Added an OPA validation demo with VPC policies for VPC names, development Availability Zones, and production public IP settings. Invalid configurations display policy errors and block Terraform apply.
- Documentation
- Updated validation guides to use the OPA demo and clarified the JSON Schema example with an S3 bucket component.
fix(ci): stop Quality Gate concurrency queue overflow @osterman (#3367)
- Workflow Updates
- Benchmark reports are grouped by pull request, with a fallback for runs not associated with one.
- Quality reports run after workflows complete, and scheduled reconciliation runs every 15 minutes instead of every five.
- Report runs use more specific concurrency groups to reduce interference between unrelated reports.
- Bug Fixes
- Quality reports re-check comments before publishing and retry when another update occurs, helping preserve concurrent report content.
fix(ci): use ARM benchmarks and improve quality reports @osterman (#3363)
- Improvements
- Benchmark reports now explain why comparisons are unavailable, retain candidate measurements without a matching baseline, and separate affected benchmarks from other results.
- CPU identification supports ARM systems, improving benchmark compatibility reporting across processor types.
- Benchmark jobs run on ARM-based Linux runners, and benchmark reports can queue instead of cancelling pending runs.
- Quality reports can queue instead of cancelling pending runs, and better account for missed runs.
- Quality review guidance links to manual review instructions.
feat(ci): add benchmark history and extensible quality gates @osterman (#3356)
- New Features
- Added automated pull request benchmarks with comparisons against compatible main-branch snapshots, including reports of significant changes or unavailable results.
- Added pull request quality reports covering current CI, coverage, review approval, commit signatures, resolved review threads, changed-file limits, and benchmark-report status.
- Added local performance comparisons that rebuild historical revisions and generate reports.
- Improvements
- Quality reports assess readiness against the current pull request revision.
- Performance warnings remain advisory, with guidance for investigating results.
- Go tool installation now times out after three minutes.
- Documentation
- Added guidance for quality checks and performance investigation.
fix(ci): tap homebrew/core before bumping the Homebrew formula @aknysh (#3336)
- Bug Fixes
- Updated Homebrew release publishing to tap
homebrew/corebefore bumping the formula.
- Updated Homebrew release publishing to tap
- Documentation
- Added guidance on the Homebrew tap requirement and dry-run results.
fix(ci): dedupe govulncheck SARIF stacks via ci:vulncheck mage target @osterman (#3347)
- Bug Fixes
- Vulnerability scan reports now remove duplicate stack entries before submission, preventing duplicate-entry errors. Reports are preserved if scanning or report processing fails.
- Chores
- Updated the vulnerability scan workflow and artifact handling to improve CI reliability.
- Documentation
- Added guidance on vulnerability scan report handling and validation.
✨ Features
Use .tool-versions as the tool baseline for every command and component @osterman (#3346)
- New Features
- Added project-wide
.tool-versionssupport across components, workflows, custom commands, hooks, and commands. Explicit tool dependencies take precedence over matching manifest entries. - Added
toolchain.installpolicies:never,declared,auto(default), andalways. Projects pinned to editions before 2026-10-09 retain thedeclareddefault;ATMOS_TOOLCHAIN_INSTALLcan override the setting.
- Added project-wide
- Bug Fixes
- Improved errors for missing tools, conflicting version entries, invalid policies, and unavailable tool registry data.
- Improved handling of configured tool-version file paths and environment overrides, including PATH behavior when switching projects.
- Documentation
- Updated toolchain configuration and usage guidance, including installation policies and version selection.
Honor color opt-outs and add independent log color control @osterman (#3345)
- New Features
- Added independent log-color controls through
logs.color,--logs-color, andATMOS_LOGS_COLOR. Log color is enabled by default when available, andCLICOLOR=0disables automatic color unless color is forced. - Boolean flags accept separate
trueorfalsevalues, such as--logs-color false.
- Added independent log-color controls through
- Bug Fixes
- Invalid
logs.colorvalues now produce a clear error instead of being silently interpreted asfalse. --no-colorand nonemptyNO_COLORdisable color across logs and terminal output, even when color is forced. NonemptyNO_COLORtakes precedence over conflicting flag values.
- Invalid
🐛 Bug Fixes
fix(auth): honor AWS ambient identity environment overrides @osterman (#3362)
- New Features
- AWS ambient identities can define environment-variable overrides that are included in authentication environments and subprocesses, including Terraform commands.
- Identity-level values take precedence over global settings, inherited shell variables, and principal-region settings. Empty values are preserved, and the last repeated key takes effect.
- Atmos continues to resolve its own AWS credentials through the AWS SDK’s default credential chain.
- Documentation
- Updated AWS authentication guidance with override behavior and a LocalStack example.
fix(config): preserve imported auth identities when main config defines identities @osterman (#3339)
- Bug Fixes
- Imported authentication identities are now preserved when configuration is loaded, including identities from temporary import files.
- Identity fields merge correctly across configuration sources, preserving names and existing values when later sources provide partial overrides.
- If identity reconstruction fails, an already decoded identity remains available when possible.
fix(auth): refresh AWS user chain sessions and stabilize CI @osterman (#3351)
- Bug Fixes
- AWS user credentials are validated before reuse in authentication chains. If cached credentials lack required session details or become invalid, authentication restarts from the chain root.
- Standalone identities can authenticate as roots in longer identity chains.
- Tests
- Expanded coverage for authentication-chain credential handling and latest-version Terraform installation.
- Updated acceptance tests to use local mocks for GitHub-dependent data and downloads.
- Chores
- Updated CI network policies to allow required Go downloads and skip SARIF uploads when no report is available.
fix(auth): paginate and cache SSO account name lookups @osterman (#3344)
- Bug Fixes
- AWS SSO account-name lookups now search through all available account results, so accounts beyond the first page can be found.
- Successful account-name lookups are cached for up to one hour, reducing repeated lookups. Cache issues won’t prevent account resolution, and unsuccessful lookups aren’t cached. Changes to an account name may take up to an hour to appear.
fix(store): cache deferred atmos.Store template lookups @osterman (#3354)
- Performance
- Deferred-auth store lookups reuse successful results within an invocation, reducing repeated backend reads.
- Concurrent requests for the same store value share a single backend read.
- Reliability
- Failed lookups and nil results are not cached, allowing later requests to retry.
- Cache entries are scoped to the relevant store configuration and credentials.
🤖 Automatic Updates
build(deps): bump github.com/google/go-containerregistry from 0.21.9 to 0.22.0 @dependabot[bot] (#3146)
- Bumps github.com/google/go-containerregistry from 0.21.9 to 0.22.0.
Release notes
Sourced from github.com/google/go-containerregistry's releases.
v0.22.0
What's Changed
- mutate: let Time and Canonical take tarball.LayerOption by
@mzihlmannin google/go-containerregistry#2403 - build: add multi-architecture Cloud Build configurations for crane, gcrane, and krane by
@tprussakin google/go-containerregistry#2412 - remote: resolve push-check credentials against the repository by
@mzihlmannin google/go-containerregistry#2411 - Allow single-character repository pa…
chore(deps): update floci/floci docker digest to 4e451c3 @renovate[bot] (#3130)
- This PR contains the following updates:
- | Package | Type | Update | Change | |---|---|---|---| | floci/floci | service | digest |
d2ecc80→4e451c3|
-
Configuration
- 📅 Schedule: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
- 🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
- ♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
- 🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
- This PR was generated by Mend Renovate. View the repository job log.
- mutate: let Time and Canonical take tarball.LayerOption by