📦 Other Changes
test: Improve coverage for mock AWS auth provider credential and identity flows @Copilot (#2511)
- Expanded mock AWS auth provider coverage for credential expiration, expiration metadata, environment projection without secret leakage, validation, identity metadata, provider resolution, credential-file lifecycle, persisted JSON errors, logout, and missing-credential handling.
feat: add plugin distribution and verification services @osterman (#3457)
- Adds plugin distribution and verification services for catalogs, discovery, installation, lockfiles, package management, signing, signature verification, authentication adapters, and structured output. Packages are verified before installation, archive and alias conflicts are rejected, configuration updates remain transactional, and compatible variants are preserved across installation, cache verification, signatures, and offline restores.
feat: add plugin bootstrap and authoring services @osterman (#3458)
- Adds plugin bootstrap and authoring services, including configuration-driven build, scaffold, conformance, OIDC, protocol-generation, and output-formatting support. Plugin installation preserves configured command names and permissions, rejects collisions, and rolls back incomplete installs while retaining recovery artifacts when cleanup cannot finish.
feat(cli): add discovery metadata for core commands @osterman (#3466)
- Adds command-owned documentation URLs and ordered example metadata to the CLI command registry, with independently inherited documentation and examples. Core stack, cloud, CI, configuration, and profile commands now register their discovery metadata, while aliases retain their source metadata.
feat(cli): add discovery metadata for supporting commands @osterman (#3467)
- Adds documentation URLs and ordered examples to the remaining supporting commands, including authentication, AI/MCP, Git, toolchain and version management, secrets, and developer utilities. Nested commands own their metadata, while commands without dedicated pages inherit their parent documentation.
docs: demonstrate CI failure annotations locally @osterman (#3472)
- Updates the CI failure annotations documentation with a runnable local preview, expected annotation output, and an explanation of exit code 77 and early admission behavior.
fix(ci): stabilize quality reporting and CI dependencies @osterman (#3476)
- Quality reporting now selects the newest CI and Codecov checks, publishes a pending snapshot followed by the final report, and recovers unfinished reports and active reruns beyond 24 hours. Reports are grouped into Readiness, Reviews, and Measures, while retries, artifact downloads, Ubuntu mirrors, release fixtures, and Pact execution are made more resilient.
Add runnable CDK examples with casts for the CDK tutorial @osterman (#3481)
- Adds runnable
examples/cdk-cloudformationandexamples/cdk-terraformprojects using the native CloudFormation and Terraform components against the local Floci AWS emulator. Each includes akind: stepssynth hook with per-step freshness, anatmos testsmoke check, lifecycle casts, and tutorial links.
Clean up stale overrides in copyable Atmos examples @osterman (#3485)
- Cleans up 57 copyable Atmos examples by removing incidental logging, redundant approval and initialization settings, and global caching auto-approval while retaining required configuration and intentional demonstrations. Quick-start guidance and generated configuration snapshots now reflect inherited defaults.
Reconcile bundled skills and command documentation @osterman (#3491)
- Reconciles bundled skill examples and command documentation, including workflow prerequisites through
dependencies.workflows, toolchain aliases, ECR login, retry fields, vendor pinning, Ansible introspection, theme commands, authentication, component executable selection, and backend inspection. Unsupportedvendor pull --versionand component/workflow--format treeexamples are removed.
chore(review): encourage extracting legacy catch-all packages @osterman (#3521)
- Adds CodeRabbit path instructions encouraging touched behavior and tests to be extracted into their owning packages, with thin adapters where necessary.
chore: bump Claude Code plugin version to v1.233.2 @cloudposse-releaser[bot] (#3528)
- Updates the Claude Code plugin to version
v1.233.2.
fix(release): recognize landed native stack members @osterman (#3536)
- Release history now recognizes merged native-stack PRs when their merge commits are present in the verified release source range, even if GitHub retained the original parent branch as the PR base. Unmerged or unrelated commits still fail validation.
fix(ci): re-check quality:ready PRs whose head status fails @osterman (#3539)
- The scheduled Quality Gate reconciler now re-evaluates a
quality:readyPR when its combined commit status isfailureorerror, even if the report is current and the commit is older than 24 hours.quality:not-readyPRs and pending statuses are not selected.
fix(ci): select current workflow results in quality gate @osterman (#3540)
- Quality Gate selects the newest workflow run by creation time and run ID when multiple runs target one commit, and excludes GitHub Actions checks only when their check-suite ID proves they belong to a superseded run. Current failures and pending runs, unknown suites, external checks, and synthetic merge-commit checks remain enforced.
fix: plugin release inputs and changelog release badge @osterman (#3554)
- The
auth-secretsplugin release no longer treats the repository rootgo.modas a build input and is bumped to version1.0.1. Changelog posts now show a release badge from frontmatter, detected release data, orUnreleased, and the CDK hooks post includes its cast metadata.
docs: add plugin pages and fix CI network checks @osterman (#3575)
- Adds
/pluginsand/plugins/officialdocumentation pages with quick-start guidance, official package details, existing guide links, and Capabilities navigation. CI network diagnostics now allow StepSecurity up to 60 seconds to initialize and recognize exact eBPF DNS rejection events.
fix(release): group release preview issues by release-notes category @osterman (#3577)
- Release preview issues now group milestone PRs under the same categories and order as published release notes, including Breaking Changes, Features, Bug Fixes, and Other Changes, with PRs sorted by number within each group.
fix(ci): stop the Quality Gate from blocking on unapproved signal runs @osterman (#3583)
- Quality Gate no longer treats
Quality Gate Signalruns as CI evidence at their trigger events, and reports already blocked by those runs are re-evaluated once.action_requiredresults remain blocking but now direct users to approve waiting workflow runs.
fix(release): resolve merge-queue commits GitHub left unmerged @osterman (#3613)
- Release milestone checks and release planning can resolve a merge-queue commit that GitHub left unmerged by using the
(#N)subject suffix of a GitHub-signedweb-flowcommit targeting the default branch. The resolved PR then receives the normal milestone and release-label validation.
chore(docs): refresh CLI screengrab casts, batch 2 of 3 @osterman (#3628)
- Regenerates the second batch of 138 CLI screengrab casts so the documentation player types
> atmos <command>and reflects current command output.
fix(cast): validate screengrab casts record the program name @osterman (#3629)
atmos --chdir=demo/casts casts validate screengrabs clinow rejects casts whose header command does not match the manifest command, while allowing--help=alland the specialatmos about --helprecording. The help page player title now matches the recordedatmos --helpcommand.
✨ Features
feat(cast): interpret VHS tapes and add atmos cast record @osterman (#2889)
type: caststeps can interpret inline or file-based VHS tapes instepsor PTY-backedsessionmode without requiring thevhsbinary or writing intermediate files. Addsatmos cast record <input.tape>with--output,--format,--mode,--shell, and--shell-init, plus configurable shell initialization, waits, screenshots, and VHS key and setup syntax.
Migrate templates to gomplate v5 and drop AWS SDK for Go v1 @osterman (#3036)
- Atmos templates now use gomplate v5, removing the AWS SDK for Go v1 dependency. Legacy gomplate v3 names remain available through compatibility shims with warnings, while datasource behavior and conversion semantics follow documented v5 changes; new
coll.JQandtmplnamespaces are available.
Add stack planning, selectors, CI, and directory scaffolding @osterman (#3429)
- Adds
atmos stack planandstack test, stack-wide selectors for lifecycle commands,--dry-run, stack introspection throughstack list,stack describe, andstack instances, and directory-capablestack create. Plans and tests preserve native hooks, dependency ordering, execution safeguards, and CI reporting across supported component types.
feat(cast): Starlark cast recorder, script source, and CI cast checks @osterman (#3431)
- Adds
cast.recorder(...)for Starlark scripts, allowing one declaration to execute commands, generate casts, or validate saved casts against a declaration fingerprint. Script steps can load local sources, session waits no longer match typed command echoes, and aValidation (casts)CI job checks committed recordings.
Add stack lifecycle orchestration and scaffold creation @osterman (#3442)
- Adds dependency-aware
atmos stack deployandstack destroy, plus scaffold-backed single-filestack create. Hook declarations are validated against registered lifecycle events for unpinned projects and editions from2026-10-19; older editions retain arbitrary hook names.
Add safe Doctor migrations and fix nested error rendering @osterman (#3454)
- Adds safe Doctor migrations for legacy naming patterns and tokens, gated by production before/after identity checks. Global workspace templates, terminal color, nested error formatting, metadata hints, and hook logging are also corrected.
feat: enable native Go plugins and OIDC authentication @osterman (#3459)
- Enables native Go plugins, the experimental plugin command family, startup integration, built-in OCI identity, and OIDC authentication. Adds
plugin build --platformand--all-platforms, preserves policy output compatibility, and supports JSON/YAML policy reports with unchanged field semantics.
feat(policy): add validation engines and shared runtime context @osterman (#3461)
- Adds native OPA and JSON Schema validation engines with boolean and diagnostic Rego results, YAML/JSON file checks, and shared environment, runtime, version, FIPS, calendar, and CI evidence. Deployment and authentication guardrails and shared version/date checks are available across all four engines.
fix(yaml): require explicit function tags with edition compatibility @osterman (#3463)
- Unpinned configurations and editions from
2026-10-20now require explicit YAML function tags, preserving tag identity through loading, merging, templates, deferred evaluation, and serialization. Legacy behavior remains available withedition: "2026-10-19", while quoted strings such as"!env SOMETHING"remain literal.
feat(cli): add --docs and --example command discovery @osterman (#3468)
- Command help and usage errors now show copyable documentation URLs. Global
--docs,--docs=md/--docs=markdown, and--examplecan open or render documentation and initialize selected examples, including outside a valid project; custom commands retain ownership of their own discovery flags.
Add Fogg migration and CDK guides with CloudFormation improvements @osterman (#3471)
- Adds Fogg migration guidance and AWS CDK/CDK Terrain tutorials. CloudFormation synthesis hooks now run before generated files are read, and inherited
regionand duration-basedtimeoutsettings are supported with Doctor migrations.
feat: conditional stack imports and tagging tutorials; fix deferred rendering @osterman (#3473)
- Adds conditional stack imports with
when, allowing labels and tags to select optional mixins and work with CLI selectors such asatmos list instances --tags pciand--labels pci:true. Deferred rendering of inherited maps beneath YAML function overrides is also corrected, and tagging and scaffolding tutorials are expanded.
Validate merged stack auth and preserve secret discovery safety @osterman (#3487)
- Adds
auth validate --stackwith optional--componentto validate merged component authentication configuration while retaining strict global validation. Secret discovery remains lazy, the default GCP ADC specification is supported, and the first SOPS write after key generation is repaired.
Generalize component executable overrides and execution flags @osterman (#3488)
- Adds consistent
--commandexecutable selection to Terraform, Helmfile, Packer, and Ansible while preserving compatibility flags and command-line precedence. Helmfile dry-run behavior, global options, and stderr forwarding are corrected.
Fix source handling and add backend and alias inspection @osterman (#3490)
- Adds
atmos toolchain aliasesto display effective built-in and configured aliases as sorted table or JSON/YAML output, and adds staticatmos terraform backend listanddescribeinspection without authentication or expression execution. OCI vendoring, initialization, registries, Git sources, version inheritance, and related source handling are also corrected.
Run repository checks through Atmos Git hooks and Starlark @osterman (#3494)
- Repository checks, formatting, CI, autofix, and Git hooks now use a shared YAML/Starlark suite with native Git sandboxes and atomic writes. Fixes preserve staged and unstaged edits, support bounded parallel copying and terminal-aware progress, and back up existing hook launchers during forced replacement.
feat(starlark): add modules, records, and typed configuration @osterman (#3505)
- Adds
module.load(path)andstruct(**fields)to automation scripts, with cached imports, frozen exports, cycle detection, cancellation, and parallel loading. Thestdlib/configpackage adds typed YAML/JSON loading, JSON Schema validation, immutable records, source diagnostics, andconfig1.merge(config2)with configurable list strategies.
feat(plugins): add public releases, catalog, and auth-secrets @osterman (#3510)
- Adds public OCI plugin releases and catalog discovery, with
cloudposse/auth-secretsas the first independently versioned package. Nativeplugin release,release plan,test --build --coverprofile,verify-public, andcatalog sync --inventorycommands replace the previous Python release scripts.
feat(starlark): add stdin, file writes, and script-local OS controls @osterman (#3526)
- Adds
stdin=toexec.run,component.exec, and allatmos.*wrappers, sending exact bytes without a shell or command-line payload. The predeclaredosmodule provides environment and directory controls scoped to one script invocation, andfs.write_file(path, content, overwrite=False, mode=0o600)supports exclusive creation with explicit overwrite.
feat(yaml): support bounded parallel exec evaluation @osterman (#3527)
- Adds
settings.functions.exec.max_concurrencyto bound concurrent evaluation of ordinary!execexpressions; the default1preserves serial behavior. Results retain their original positions, policy checks run before commands, and outstanding commands are canceled after failure.
Add conditional retries for component error events @osterman (#3542)
- Adds
action: retrypolicies with scalar, list, wildcard, and predicate-based error events across supported component types, including Terraform/OpenTofu, Helmfile, Packer, Ansible, native Helm, Kubernetes, CloudFormation, containers, and emulators. Windows AWS config and credential updates are serialized with cross-platform file locks.
feat: native Vault identities and explicit credential templates @noeljackson (#3557)
- Vault and OpenBao stores can consume
VAULT_TOKENfrom a configured native Atmos identity. Theauth-secretsprovider reads named credentials usingstore,path, and optional exact top-levelfieldreferences, whilesecrets/envrenders explicitspec.envtemplates after authentication without exposing credentials or changing the process environment.
🐛 Bug Fixes
fix(ai): use provider default models in --ai config hints @pcbeingused333 (#3413)
- AI setup hints now read each provider's
DefaultModel, including the Anthropic hint, instead of maintaining separate model lists. The displayed models therefore stay aligned with the provider configurations.
fix(include): resolve base_path before the working directory @djal (#3426)
!includeand!include.rawnow resolve bare relative paths againstbase_pathbefore the process working directory, while./and../paths remain relative only to the including manifest. This keeps rebaseddescribe affectedcomparisons pointed at the correct checkout.
test: cover a stack-wide terraform_workspace_template, list it in metadata docs @bercedev (#3453)
- A stack-wide
terraform_workspace_templatenow appears in Terraform component metadata, and the stack component metadata documentation lists it alongsideterraform_workspace_pattern.
refactor: establish shared API and native plugin SDK @osterman (#3455)
- Establishes the shared Atmos API, standalone Go plugin SDK, protocol bindings, native transport, and manifest/configuration primitives while preserving existing
pkg/automationimports through deprecated aliases. Native plugins select compatible CPU variants using immutable Atmos build metadata without OS or architecture fallback.
fix: unify credential handling and OCI registry access @osterman (#3456)
- Adds shared extension-registry, authentication, credential, OCI registry, and policy/configuration primitives for the plugin distribution layers. Credential publication and logout cleanup are serialized, nested registry-auth deadlocks are prevented, and GHCR token priority is preserved.
fix(terraform): run lifecycle hooks in prepared workdirs @osterman (#3462)
- Terraform bulk init and test operations again run destroy, before/after, and per-component lifecycle hooks in prepared work directories, preserving resolved paths and credentials for after-hooks. Tool-version discovery is scoped to each project's configuration.
fix: preserve Helm repository auth and AWS ambient context @osterman (#3470)
- Native Helm operations now preserve repository credentials, TLS options, and credential-forwarding policy through chart lookup and install or upgrade operations. AWS ambient authentication context is populated while retaining SDK discovery,
AWS_PROFILE, and explicit managed credential overrides.
Preserve literal values and diagnose YAML function scope @osterman (#3486)
- Preserves literal YAML values through loading, merging, templating, and output while enabling stack
randomandcwdevaluation and diagnosing functions in unsupported locations. Raw YAML shielding no longer affects decoded command arguments or import paths.
Fix runtime evaluation and command execution boundaries @osterman (#3489)
- Preserves saved plans during inspection and restores single-component destroy CI output. Custom-command boundaries, devcontainer ports, MCP exports, schema-directory flags, Ansible paths, workflow directories, retry defaults, SBOM discovery, and native Helm rendering and repository handling are corrected.
fix(helmfile): colorize diff output by default on a TTY @STiFLeR7 (#3498)
atmos helmfile diffnow enables color on a TTY when Atmos color detection allows it, unlessHELM_DIFF_COLORis explicitly set in the component environment or shell. This preserves explicit user overrides while fixing the piped-output TTY detection issue.
fix: upgrade Node.js to 24.22.1 and Go to 1.26.10 for CVEs @osterman (#3502)
- Updates the AWS SAML Playwright runtime and website Node.js pin to Node
24.22.1, upgrades patched website dependencies, and moves the website from end-of-life Node 25 to the Node 24 LTS line. Go is updated to1.26.10.
fix(stacks): resolve inherited metadata.component directories @osterman (#3508)
- Inherited
metadata.componentis now resolved before backend generation while preserving explicit overrides, legacy component selection, and disabled metadata inheritance. This aligns displayed module paths with execution and affected-component detection.
build: streamline releases and pin GitHub Actions runners @osterman (#3509)
- Releases now provide six binaries and six Linux packages, with source installation documented for retired targets.
atmos release cut --resumecan recover unfinished production releases, Quality Gate uses current policy and commit-status evidence, and shared Git hooks select the current checkout'sbuild/atmosbinary.
fix(terraform): propagate skipped functions to nested lookups @osterman (#3513)
- Terraform dependency lookups now preserve
--skipoptions such as--skip=secret, preventing nested evaluation from contacting secret providers. Caches are partitioned by skip list.
fix(terraform): run tests without generating a backend @osterman (#3514)
- Terraform tests no longer generate a backend file when
auto_generate_backend_fileis enabled, preserving existing files and allowing provider-free test modules to run without abackend_type.
fix(secret): honor scoped providers during key generation @osterman (#3515)
atmos secret keygen -s <stack>now resolves stack, component, and type providers without evaluating secret values, including provider-only stacks. Registered component types participate in stack filtering and description, while ambiguous provider overrides are rejected.
fix(sops): resolve nested recipient files and relative rules @osterman (#3516)
- SOPS discovery now searches from the encrypted file for nested
.sops.yamlrecipient files and generates matching rules relative to the recipient directory. Relative and absolute paths, custom secret directories, and Unix or Windows separators are supported.
fix(secret): allow stack secrets without a component @osterman (#3517)
atmos secret setandatmos secret validatenow support stack/global declarations without requiring an unrelated component. Instance-scoped operations continue to require--component.
fix(commands): honor stack on custom Atmos steps @osterman (#3518)
- Custom
type: atmossteps now pass their renderedstackto child commands when no explicit stack flag is present, placing it before passthrough--and preserving explicit flags such as-sprod.
fix(emulator): validate the Kubernetes API port before startup @osterman (#3519)
- Emulator specifications now reject Kubernetes container port replacements that omit the API port
6443/tcp, preventing startup from succeeding without a bound Kubernetes API server.
fix(ui): render email autolinks once and clarify test behavior @osterman (#3520)
- Terminal email autolinks in
ui.*messages now render once. Documentation clarifies--help=all, stack-variable injection, and retained Terraform test files.
fix(sops): restore missing recipients from existing age keys @osterman (#3522)
- SOPS key generation can recover a missing public recipient from an existing age private key without changing private key material. Existing recipient rules and explicit recipients are preserved, while ambiguous multiple identities require remediation.
fix(ui): don't mangle list markers and emails in ui.* messages @osterman (#3524)
- Starlark
ui.info,ui.success, andui.warningnow preserve Markdown list markers, nested indentation, wrapping, and email text in terminal and toast output. Literal list markers can be escaped, while headings, quotes, links, emphasis, masking, and task routing remain supported.
feat(duration): human-readable minutes/hours in resource-usage summary @osterman (#3529)
- Resource-usage summaries now format durations of a minute or more as
34m 47sor1h 2m 3s, omitting zero units; sub-minute values retain formats such as800msand45.2s. Values near a minute round consistently, including59.96sas1m.
fix(security): reduce scanner noise and patch dependencies @osterman (#3541)
- Reduces security-scanner noise by suppressing identified same-repository action false positives and reporting security backlogs by scanner. Go and JavaScript dependencies are patched, including Go
1.26.10and the Windows runtime workaround dependencies.
fix(auth): isolate store identity auth from the component manager @osterman (#3546)
- Adds
AuthenticateIsolatedto authenticate an identity on a separate manager without changing the caller's chain, stack information, or credentials. Store authentication for AWS, Azure, and GCP now uses the isolated context, preventing store identity resolution from changing subsequent component authentication.
fix(ai): default Gemini to gemini-3.8-flash @pcbeingused333 (#3553)
- Changes the Gemini provider default model to
gemini-3.8-flash; the TUI fallback list,--aisetup hints, function-calling guidance, and provider documentation follow the new default.
fix(imports): support oci:// in stack and atmos.yaml imports @osterman (#3556)
- Stack manifest and
atmos.yamlimports now supportoci://host/repo:tag//pathfor files, directories, and globs, includingnested_imports: remote. OCI artifacts are pulled once per invocation into the XDGstack-importscache, withimports.ttlhonored and a specific error for missing paths.
fix(ai): report cached prompt tokens for OpenAI-compatible providers @pcbeingused333 (#3565)
- OpenAI-compatible providers now report cached prompt tokens from
usage.prompt_tokens_details.cached_tokensinatmos aiusage output. The fullprompt_tokensvalue remains the input count, and cache creation tokens remain zero.
fix(ai): send max_completion_tokens for OpenAI o-series and gpt-6 models @pcbeingused333 (#3566)
- OpenAI-compatible requests now use
max_completion_tokensfor o-series models andgpt-6*models, while names such asollamaremain onmax_tokens. The behavior applies across OpenAI, Azure OpenAI, GitHub, Grok, DeepSeek, OpenRouter, and Z.ai clients.
fix(ai): apply max_tokens to Gemini requests @pcbeingused333 (#3567)
- Gemini requests now apply
ai.providers.gemini.max_tokensasgenerationConfig.maxOutputTokensacross message and tool-calling methods. A value of zero leaves the model default; otherwise the documented default of8192applies when no value is configured.
fix: stabilize CI and clarify script failures @osterman (#3569)
- Stabilizes workflow environments, StepSecurity eBPF block detection, Floci startup, AWS credential refresh, merged milestone handling, CI-mode configuration access, and stack-worker cleanup. Starlark failure and formatting diagnostics now distinguish intentional failures and provide clearer guidance.
Restore bulk Terraform plan summaries and enforce size limits @osterman (#3580)
- Bulk Terraform plans now restore template-based summaries for every executed component, including no-change runs, with shared duration formatting. Aggregate reports and masked summary-file writes are bounded, and oversized output produces a deduplicated warning recommending
--tagsor--labels.
fix: upgrade regressions in YAML functions, store hooks, custom flags @osterman (#3584)
- YAML function values embedded in template strings now resolve correctly, while unresolved maps, lists, and rewritten function values produce clear errors instead of internal placeholders. Store hooks skip missing Terraform outputs during destroy with a warning, and custom commands may declare
--exampleand--docsflags of any type.
fix(ai): default Anthropic and Bedrock to Claude Sonnet 5 @pcbeingused333 (#3585)
- Anthropic and Bedrock now default to Claude Sonnet 5 using
claude-sonnet-5andglobal.anthropic.claude-sonnet-5. Requests omit athinkingoverride so model defaults apply, including adaptive thinking.
fix(terraform): inject Atmos Auth credentials into terraform shell @osterman (#3604)
atmos terraform shellnow runs the Atmos Auth Terraform pre-hook before backend and environment setup, injecting identity credentials such asAWS_PROFILE,AWS_SHARED_CREDENTIALS_FILE,AWS_CONFIG_FILE, and region settings into Terraform initialization and the interactive shell.
fix: repair plugin publication and AI release previews @osterman (#3605)
- Plugin and catalog publication now occurs before
--verify-public, with actionable GHCR visibility guidance and safe retries. Milestone previews use AI summaries, forward the API key through the trusted workflow, and reuse unchanged previews.
fix(terraform): show Terraform's error when workspace setup fails @osterman (#3610)
- Terraform workspace setup failures now include Terraform's output from both
workspace select -or-createand theworkspace newfallback, along with the workspace name and guidance to check backend credentials or rerun withATMOS_LOGS_LEVEL=debug.
fix(list): escape CSV/TSV cells in list vendor output @pcbeingused333 (#3616)
atmos list vendor --format csv|tsvnow escapes delimiters, quotes, and newlines using standard CSV/TSV rules, keeping values such as multi-tag lists in a single field.
fix(secret): run every secret command on stack-scoped secrets @osterman (#3618)
atmos secret get,delete,import,pull,push,exec, andshellnow accept--stackalone for stack-scoped and global secrets. Whole-stack operations exclude instance secrets unless--componentis supplied, and named operations require one consistent shared declaration.
fix(pro): keep the error message in reported exceptions @osterman (#3619)
- Exceptions reported to Atmos Pro now retain the masked failure message, prefixed with the failed command and limited to 8 KiB on a rune boundary. Nil event information no longer causes a panic.
fix(auth): retry the GitHub OIDC token request and reuse the JWT per process @mtb-xt (#3621)
- GitHub OIDC authentication retries token requests on timeouts, transport errors, HTTP 429, and HTTP 5xx responses with four attempts and exponential backoff. Valid JWTs are reused in memory per process and request identity while their
expclaim is more than 60 seconds away; tokens are never persisted.
fix(cast): record the program name in cast headers @osterman (#3627)
- Auto-recorded cast headers now include the program name, so
atmos --helpand similar recordings replay with the correct command. The first batch of 138 CLI screengrab casts was regenerated.
feat(website): render GitHub-style alerts as admonitions @osterman (#3631)
- Documentation and changelog Markdown now convert GitHub-style alerts such as
> [!NOTE],> [!WARNING], and> [!CAUTION]into native Docusaurus admonitions;CAUTIONmaps to thedangerstyle.
fix(ai): count Gemini thinking tokens in output usage @pcbeingused333 (#3632)
- Gemini usage now counts
thoughtsTokenCounttogether withcandidatesTokenCountwhen reporting completion tokens, including streaming responses and vision calls.
fix(ci): find the merged PR's stored plan when deploying a squash commit @osterman (#3636)
atmos terraform deployfirst looks for a stored plan for the deployed commit, then on GitHub Actions can resolve the merged pull request associated with that commit and use its head-commit plan. The fallback validates the merged PR and requirespull-requests: readpermission.
fix: regressions found in v1.234.0-rc.1 @osterman (#3637)
- Restores performance for
describe stacks,describe affected, andlist instances, moves legacyatmos stack get|set|delete|formatdeprecation notices to stderr, improves!includeand!include.rawmissing-path diagnostics, and restores!ci.labels [list]insidelocals:.
fix: address review follow-ups for the v1.234.0-rc.1 regression fixes @osterman (#3638)
- Completes the v1.234.0 regression fixes by preserving restored
!ci.labelsitems, retaining full YQ queries in missing-include hints, propagating include errors from template manifests, and honoring gomplate experimental functions enabled through its upstream API.
🤖 Automatic Updates
chore(deps): bump github.com/posthog/posthog-go from 1.12.6 to 1.17.4 @dependabot[bot] (#2764)
- Updates
github.com/posthog/posthog-gofrom1.12.6to1.17.4, including fixes for duplicatedistinct_idvalues and retries for transient feature-flag request failures.
chore(deps): update dependency @types/node to v22.20.5 @renovate[bot] (#3422)
- Updates the website's
@types/nodedependency from22.20.4to22.20.5.
chore(deps): update dependency tsx to v4.23.15 @renovate[bot] (#3423)
- Updates the website's
tsxdependency from4.23.13to4.23.15, including fixes for Node built-in namespace inheritance, CommonJSrequire.cacheandrequire.extensions, and portable namespacedregister()declarations.
build(deps): bump al.essio.dev/pkg/shellescape from 1.6.0 to 1.6.1 @dependabot[bot] (#3425)
- Updates
al.essio.dev/pkg/shellescapefrom1.6.0to1.6.1.
chore(deps): update dependency prettier to v3.9.10 @renovate[bot] (#3507)
- Updates Prettier from
3.9.9to3.9.10, including the Markdown table parsing fix frommicromark-extension-gfm-table.
chore(deps): bump golang.org/x/tools from 0.51.0 to 0.52.0 in /tools/lintroller @dependabot[bot] (#3534)
- Updates
golang.org/x/toolsfrom0.51.0to0.52.0intools/lintroller.
chore(deps): bump golang from 1.27.1 to 1.27.2 in /.devcontainer @dependabot[bot] (#3558)
- Updates the
.devcontainerGo image from1.27.1to1.27.2.
chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.47.1 to 1.47.3 @dependabot[bot] (#3559)
- Updates
github.com/aws/aws-sdk-go-v2from1.47.1to1.47.3.
chore(deps): bump github.com/PuerkitoBio/goquery from 1.12.0 to 1.13.0 @dependabot[bot] (#3560)
- Updates
github.com/PuerkitoBio/goqueryfrom1.12.0to1.13.0, including the new top-levelgoquery.Texthelper.
fix(deps): update github.com/cyberphone/json-canonicalization digest to 32a4819 @renovate[bot] (#3572)
- Updates the
github.com/cyberphone/json-canonicalizationdependency from digest19d51d7to32a4819.
chore(deps): update actions/upload-artifact action to v7.0.2 @renovate[bot] (#3574)
- Updates
actions/upload-artifactfromv7.0.1tov7.0.2, improving retries for HTTP 429 responses and honoring validRetry-Afterheaders.
chore(deps): bump github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi from 1.39.0 to 1.41.4 @dependabot[bot] (#3597)
- Updates
github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapifrom1.39.0to1.41.4.
chore(deps): update step-security/harden-runner action to v2.22.1 @renovate[bot] (#3601)
- Updates
step-security/harden-runnerfromv2.22.0tov2.22.1, fixing security-rule initialization on GHES self-hosted runners and GHES connectivity in block mode.
fix(deps): update module github.com/agnivade/levenshtein to v1.2.2 - abandoned @renovate[bot] (#3608)
- Updates
github.com/agnivade/levenshteinfromv1.2.1tov1.2.2.
chore(deps): update step-security/harden-runner action to v2.22.2 @renovate[bot] (#3612)
- Updates
step-security/harden-runnerfromv2.22.1tov2.22.2, correcting macOS ingress classification and Linux endpoint handling while improving network and DNS tracing.