📦 Other Changes
test: Improve coverage for mock AWS auth provider credential and identity flows @Copilot (#2511)
- Expanded mock AWS authentication provider coverage for credential expiration, identity validation, environment projection without secret leakage, credential persistence and loading errors, provider resolution, and idempotent logout behavior.
feat: add plugin distribution and verification services @osterman (#3457)
- Adds native 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 for cached 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 installations preserve configured entrypoint names and permissions, reject collisions, and retain recovery artifacts when rollback cannot complete.
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 and preserved source metadata for aliases.
feat(cli): add discovery metadata for supporting commands @osterman (#3467)
- Registers documentation URLs and ordered examples for 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)
- Adds a runnable local preview to the CI failure annotations documentation, showing the generated annotation, intentional 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, recovers unfinished reports and long-running reruns, and groups results into Readiness, Reviews, and Measures. It also improves retry handling, artifact downloads, network checks, and local fixtures for CI-dependent checks.
Add runnable CDK examples with casts for the CDK tutorial @osterman (#3481)
- Adds runnable CDK examples for CloudFormation and Terraform using the native components and the local Floci AWS emulator, so they do not require an AWS account. The examples include fresh-once install hooks, lifecycle casts, smoke tests, and links from the CDK tutorial.
Clean up stale overrides in copyable Atmos examples @osterman (#3485)
- Removes incidental logging, redundant approval and initialization settings, and global auto-approval overrides from copyable Atmos examples while retaining required configuration and intentional demonstrations. Quick-start guidance and generated configuration snapshots are updated for current defaults.
Reconcile bundled skills and command documentation @osterman (#3491)
- Reconciles bundled skills and command documentation with current behavior, including workflow prerequisites, toolchain aliases, OCI examples, backend inspection, authentication restrictions, retry fields, and executable selection. Unsupported command examples are removed and curated executable checks are added.
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 needed.
chore: bump Claude Code plugin version to v1.233.2 @cloudposse-releaser[bot] (#3528)
- Bumps the Claude Code plugin version to v1.233.2.
fix(release): recognize landed native stack members @osterman (#3536)
- Release history now recognizes a native stack member when its merge commit is present in the verified release source range, even if GitHub retains the original parent branch as the pull request base.
fix(ci): re-check quality:ready PRs whose head status fails @osterman (#3539)
- The scheduled Quality Gate reconciler now re-evaluates a
quality:readypull request when its combined head status isfailureorerror, even if the report is current and the commit is older than 24 hours.
fix(ci): select current workflow results in quality gate @osterman (#3540)
- Quality Gate now selects the newest run of duplicate workflows by creation time and run ID, and excludes GitHub Actions checks only when their check-suite ID identifies a superseded run. Current failures, pending runs, unknown suites, external checks, and synthetic merge-commit checks remain enforced.
fix: plugin release inputs and changelog release badge @osterman (#3554)
- Removes the repository root
go.modfrom theauth-secretsplugin release inputs and bumps that plugin to 1.0.1 once. Changelog posts now show a release badge from frontmatter, detected release data, orUnreleased, and the CDK hooks post gains its missing cast metadata.
docs: add plugin pages and fix CI network checks @osterman (#3575)
- Adds
/pluginsand/plugins/officialdocumentation pages with navigation, quick-start guidance, and official package details. 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 pull requests under the same release-note categories and ordering as published releases, sorting pull requests by number within each category.
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 legacy reports blocked by those runs are re-evaluated once.action_requiredresults remain blocking but now direct users to approve waiting workflows.
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 pull request number in a GitHub-signed
web-flowcommit subject targeting the default branch. Direct, unsigned, malformed, unrelated, and unknown commits continue to fail closed.
chore(docs): refresh CLI screengrab casts, batch 2 of 3 @osterman (#3628)
- Regenerates the second batch of CLI screengrab casts so the docs player types
atmos <command>and reflects current help output.
fix(cast): validate screengrab casts record the program name @osterman (#3629)
- Regenerates the final batch of CLI screengrab casts and makes
atmos --chdir=demo/casts casts validate screengrabs clireject cast headers whosecommanddoes not match the manifest command, with documented exceptions for--help=allandatmos about --help.
✨ Features
feat(cast): interpret VHS tapes and add atmos cast record @osterman (#2889)
- Atmos cast steps can now interpret VHS tapes supplied inline or through
tape_file, instepsmode for real command exit codes orsessionmode for PTY playback. Addsatmos cast record <input.tape>, configurableshell_init, shell selection, waits, screenshots, VHS directives and key handling, while preserving literal typed text and safe output behavior.
Migrate templates to gomplate v5 and drop AWS SDK for Go v1 @osterman (#3036)
- Migrates template rendering to gomplate v5 and removes the AWS SDK for Go v1 dependency, with compatibility shims for affected v3 names and datasource behavior. It also moves template APIs into
pkg/templateand documents behavior changes such as conversion errors, datasource paths, Vault and SSM values, S3 checksums, and theenv:NAMEsyntax.
Add stack planning, selectors, CI, and directory scaffolding @osterman (#3429)
- Adds
atmos stack planandstack test, stack-wide and component selectors,--dry-run, lifecycle introspection commands, CI reporting, authentication preflight, and interactive selection.stack create --targetcan now render one or more decomposed stack directories while preserving scaffold inputs, validation, exclusive writes, and rollback.
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 fingerprint. Script steps can read local sources, session waits no longer match typed command echoes, YAMLhide/showand VHS session actions execute correctly, and CI validates all committed casts.
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 current editions, while scaffold planning remains quiet and reports generation failures with recovery guidance.
Add safe Doctor migrations and fix nested error rendering @osterman (#3454)
- Adds safe Doctor migrations for legacy naming patterns and tokens, gated by before-and-after identity checks. It also supports global workspace templates, preserves terminal color through wrappers, improves nested error rendering, and moves hook dispatch logs to Debug.
feat: enable native Go plugins and OIDC authentication @osterman (#3459)
- Enables native Go plugins, OCI identity support, plugin startup integration, policy checks, OIDC authentication, and
plugin build --platformor--all-platforms. Policy reports preserve JSON field names and embedded objects across YAML output, and plugin commands support multi-platform builds with partial-success reporting.
feat(policy): add validation engines and shared runtime context @osterman (#3461)
- Adds native OPA and JSON Schema validation engines with shared environment, runtime, version, FIPS, calendar, and CI evidence context. It also adds deployment and authentication guardrails, common checks, reference documentation, and migration guidance.
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)
- Adds command help documentation links plus global
--docs,--docs=md/--docs=markdown, and--examplediscovery. The CLI can open or render documentation, select and initialize examples with safe overwrite confirmation, and perform discovery before ordinary validation, even outside an Atmos project.
Add Fogg migration and CDK guides with CloudFormation improvements @osterman (#3471)
- Adds Fogg migration, AWS CDK, and CDK Terrain guides, along with CloudFormation synthesis improvements. Synthesis hooks run before generated files are read, and CloudFormation supports inherited
regionand duration-basedtimeoutsettings with Doctor migrations.
feat: conditional stack imports and tagging tutorials; fix deferred rendering @osterman (#3473)
- Adds conditional stack imports using
when, allowing labels and tags to select optional mixins and work with selectors such asatmos list instances --tags pciand--labels pci:true. It also fixes deferred rendering beneath YAML function overrides and expands tagging and scaffolding tutorials.
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, default GCP ADC is supported, and the first SOPS write after key generation is repaired.
Generalize component executable overrides and execution flags @osterman (#3488)
- Adds consistent
--commandsupport to Terraform, Helmfile, Packer, and Ansible while preserving compatibility flags and precedence. Helmfile dry-run behavior, global options, and stderr forwarding are also corrected.
Fix source handling and add backend and alias inspection @osterman (#3490)
- Adds
atmos toolchain aliasesfor sorted table or JSON/YAML inspection of effective aliases, andatmos terraform backend listanddescribefor static merged backend configuration inspection without authentication or expression execution. It also fixes source handling, registry queries, vendor targets, Git detection, inherited version edits, and OCI whiteout extraction.
Run repository checks through Atmos Git hooks and Starlark @osterman (#3494)
- Replaces the pre-commit framework with a shared YAML and Starlark suite used by Git hooks, repository checks, formatting, CI, and autofix. Native Git sandboxes, atomic writes, staged-edit preservation, bounded copying, and terminal-aware progress are included.
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. Typed configuration loading and validation support local or HTTPS JSON Schemas, defaults, bounds, optional fields, lists, enums, source diagnostics, immutable records, andconfig1.merge(config2).
feat(plugins): add public releases, catalog, and auth-secrets @osterman (#3510)
- Adds public OCI plugin releases, catalog discovery, and the independently versioned
cloudposse/auth-secretspackage. New commands includeplugin release,release plan,test --build --coverprofile,verify-public, andcatalog sync --inventory, with native workflows for signing, verification, publication, and catalog reconciliation.
feat(starlark): add stdin, file writes, and script-local OS controls @osterman (#3526)
- Adds
stdin=toexec.run,component.exec, and Atmos wrappers for exact byte input without shell arguments, plus the predeclaredosmodule with environment, directory, platform, and architecture access. Scripts can use invocation-localos.setenv,os.chdir, andfs.write_file, which creates exclusively by default and preserves permissions when overwriting.
feat(yaml): support bounded parallel exec evaluation @osterman (#3527)
- Adds
settings.functions.exec.max_concurrencyto bound concurrent evaluation of ordinary!execexpressions while preserving document positions, decoding, and--skip=exec. Failed evaluations cancel outstanding commands, policy checks run before launch, and the default value1preserves serial behavior.
Add conditional retries for component error events @osterman (#3542)
- Adds
action: retrypolicies for component error events across Terraform/OpenTofu, Helmfile, Packer, Ansible, native providers, containers, and emulators, with predicates, aliases, schemas, diagnostics, and independent retry settings. Windows AWS credential and configuration updates are serialized, and screengrab recordings stage temporary files on the destination filesystem.
feat: native Vault identities and explicit credential templates @noeljackson (#3557)
- Vault and OpenBao stores can now consume
VAULT_TOKENfrom a configured native Atmos identity, whileauth-secretscan read named credentials withstore,path, and optional exact top-levelfieldreferences.secrets/envidentities render explicitspec.envtemplates after authentication with masking, size and NUL checks, no ambient process access, and serialized credential operations.
🐛 Bug Fixes
fix(ai): use provider default models in --ai config hints @pcbeingused333 (#3413)
- AI setup hints now read each provider's
DefaultModel, including Anthropic, Bedrock, Gemini, Ollama, and Grok, instead of maintaining a separate hardcoded list. The Anthropic configuration hint therefore uses the provider's current default model.
fix(include): resolve base_path before the working directory @djal (#3426)
!includeand!include.rawnow resolve bare relative paths againstbase_pathbefore the working directory, while./and../paths remain relative to the including manifest and no longer fall back elsewhere.
test: cover a stack-wide terraform_workspace_template, list it in metadata docs @bercedev (#3453)
- Adds end-to-end support for stack-wide
terraform_workspace_template, including validation and propagation into Terraform component metadata, and documents it among the supported global metadata fields.
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 plugin variants are selected by compatible immutable build metadata without OS or architecture fallback.
fix: unify credential handling and OCI registry access @osterman (#3456)
- Adds shared extension registry, OCI registry, authentication, credential, and policy primitives for the plugin distribution layer. Credential publication and logout cleanup are serialized, nested registry-auth deadlocks are prevented, GHCR token priority is preserved, and large race-enabled packages receive bounded test budgets.
fix(terraform): run lifecycle hooks in prepared workdirs @osterman (#3462)
- Restores Terraform destroy and per-component lifecycle hooks for bulk init and test runs, executing them in prepared work directories with resolved paths and credentials. Tool-version discovery is scoped to each project, and test fixtures can start before emulator authentication without being overwritten.
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 installation. AWS ambient authentication context is populated while preserving 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, templates, and output while preventing static diagnostics from executing functions or fetching inputs. Stack
randomandcwdevaluation works again, Doctor diagnoses unsupported function locations, and plugin archive inventory validates host-local paths.
Fix runtime evaluation and command execution boundaries @osterman (#3489)
- Preserves saved plans during inspection and restores single-component destroy CI output, while correcting custom-command boundaries, devcontainer settings, MCP exports, schema flags, Ansible paths, workflow directories, retry defaults, SBOM discovery, and native Helm handling. CI-mode configuration reads are synchronized with theme updates.
fix(helmfile): colorize diff output by default on a TTY @STiFLeR7 (#3498)
atmos helmfile diffnow enables color on a capable terminal when Atmos color detection allows it, without overriding an explicitHELM_DIFF_COLORvalue from the shell, component, or stack environment.
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 to Node.js 24.22.1, upgrades patched website dependencies, and moves the website from Node 25 to the active LTS line. Go is updated to 1.26.10 for the
crypto/x509security fix.
fix(stacks): resolve inherited metadata.component directories @osterman (#3508)
- Resolves inherited
metadata.componentbefore backend generation while preserving explicit overrides, legacy selection, and disabled metadata inheritance. This fixes component directory selection and affected-component detection for inherited metadata.
build: streamline releases and pin GitHub Actions runners @osterman (#3509)
- Reduces published binaries and Linux packages to six supported targets and documents source installation for retired targets. It also adds resumable release recovery with
atmos release cut --resume, updates Quality Gate evidence selection, preserves Git sandbox metadata, and makes shared Git hooks select the current checkout'sbuild/atmos.
fix(terraform): propagate skipped functions to nested lookups @osterman (#3513)
- Terraform dependency lookups now preserve evaluation options such as
--skip=secret, preventing nested output and state evaluation from contacting skipped 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, so provider-free test modules run without a backend configuration and existing backend files remain unchanged.
fix(secret): honor scoped providers during key generation @osterman (#3515)
atmos secret keygen -s <stack>now resolves stack and component-type providers without evaluating secret values, including provider-only stacks with imported or templated configuration. Explicit component and type selections still fail when no matching component exists.
fix(sops): resolve nested recipient files and relative rules @osterman (#3516)
- SOPS discovery now finds nested
.sops.yamlrecipient files and generates matching repository-relative rules for relative and absolute paths on Unix and Windows. Omittedspec.filevalues derive wildcard rules from the configured secrets directory.
fix(secret): allow stack secrets without a component @osterman (#3517)
atmos secret setandvalidatenow support stack-scoped declarations without a component, while instance-scoped operations continue to require one. Shared declarations are validated consistently across inherited contexts.
fix(commands): honor stack on custom Atmos steps @osterman (#3518)
- Custom Atmos steps now pass their rendered
stackvalue to 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 specification validation now rejects Kubernetes configurations that replace
container.portswithout retaining the API port6443/tcp, preventing startup with no usable Kubernetes API endpoint.
fix(ui): render email autolinks once and clarify test behavior @osterman (#3520)
- Terminal email autolinks in
ui.*messages are rendered once, and documentation now 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, while preserving existing recipient rules and rejecting ambiguous identities.
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, wrapped layout, and single-rendered email addresses in terminal and toast output. Literal list markers can be escaped withui.info("1\\. literal").
feat(duration): human-readable minutes/hours in resource-usage summary @osterman (#3529)
- Resource-usage summaries now format durations of at least one minute as combined units such as
34m 47sor1h 2m 3s, while retaining millisecond and second formats for shorter values. Values near a minute round to1minstead of60.0s.
fix(security): reduce scanner noise and patch dependencies @osterman (#3541)
- Reduces security scanner noise for same-repository actions, reports security backlogs by scanner, and upgrades Go and selected dependencies for security fixes. Terraform hook test state is restored to prevent shuffled-suite interference.
fix(auth): isolate store identity auth from the component manager @osterman (#3546)
- Adds
AuthenticateIsolatedto authenticate store identities on a separate manager without changing the caller's identity chain, stack information, or credentials. AWS, Azure, and GCP store bridges use the isolated context, preventing store authentication from changing subsequent component state or secret lookups.
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 hint, and provider documentation follow the new default.
fix(imports): support oci:// in stack and atmos.yaml imports @osterman (#3556)
- Stack manifests and
atmos.yamlimports now supportoci://host/repo:tag//pathfor files, directories, and globs, includingnested_imports: remote, cached pulls, and documented registry authentication. Shared remote-import caching also preserves file extensions and refreshes stale copies after a source is re-pulled.
fix(ai): report cached prompt tokens for OpenAI-compatible providers @pcbeingused333 (#3565)
- OpenAI-compatible AI providers now report cached prompt tokens from
usage.prompt_tokens_details.cached_tokensinatmos aiusage output and the executor's usage data.
fix(ai): send max_completion_tokens for OpenAI o-series and gpt-6 models @pcbeingused333 (#3566)
- OpenAI-compatible clients now send
max_completion_tokensfor o-series models andgpt-6*models, while models such as Ollama names beginning withocontinue to usemax_tokens.
fix(ai): apply max_tokens to Gemini requests @pcbeingused333 (#3567)
- Gemini requests now send
ai.providers.gemini.max_tokensasgenerationConfig.maxOutputTokensacross regular and tool-calling requests. A zero value leaves the model default; otherwise the documented default of 8192 applies when no value is configured.
fix: stabilize CI and clarify script failures @osterman (#3569)
- Stabilizes CI and runtime diagnostics by preserving workflow environments, recognizing StepSecurity eBPF enforcement, warming native CI caches with Floci, refreshing website-deployment credentials, and handling already-merged milestone entries. It also clarifies intentional Starlark failures and formatting 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 plans, 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 now resolve inside template strings such as
app-{{ .vars.region }}, with clear errors for unresolved maps, lists, and rewritten function values. 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 where supported.
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, credential-file paths, and region settings into Terraform initialization and the interactive shell. Authentication failures stop shell setup.
fix: repair plugin publication and AI release previews @osterman (#3605)
- Plugin and catalog publication now uploads before
--verify-public, with actionable GHCR visibility guidance and safe retries. Milestone release 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 errors 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 quotes cells containing delimiters, quotes, or newlines, keeping multi-value tags and other fields in their correct columns.
fix(secret): run every secret command on stack-scoped secrets @osterman (#3618)
- Secret commands including
get,delete,import,pull,push,exec, andshellnow accept--stackalone for stack-scoped and global secrets. Whole-stack operations exclude instance secrets, while commands that cannot resolve a shared scope require--componentor prompt for one on a terminal.
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. The CI hardening allowlist also removes obsolete Trivy hosts.
fix(auth): retry the GitHub OIDC token request and reuse the JWT per process @mtb-xt (#3621)
- GitHub OIDC token requests now retry timeouts, network errors, HTTP 429, and HTTP 5xx responses up to four times with exponential backoff. A valid JWT is reused in memory per process and request identity while its
expclaim is more than 60 seconds away; tokens are never persisted.
fix(cast): record the program name in cast headers @osterman (#3627)
- Cast headers now record the program name, so auto-recorded commands such as
atmos --helpdisplay correctly in the docs player. The first batch of CLI screengrabs is regenerated, and stacked-branch file-limit checks compare against the configured stack base.
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 accounting now adds
thoughtsTokenCounttocandidatesTokenCount, so thinking tokens are included in completion usage for streaming and vision requests.
fix(ci): find the merged PR's stored plan when deploying a squash commit @osterman (#3636)
atmos terraform deploynow falls back to the head commit of the merged pull request when locating a stored plan for a squash, merge-commit, rebase, or merge-queue commit, while preferring a plan stored for the deployed commit. The fallback validates the merged PR and warns whenpull-requests: readpermission is missing.
fix: regressions found in v1.234.0-rc.1 @osterman (#3637)
- Fixes v1.234.0-rc.1 regressions in
describe stacks,describe affected, andlist instancesperformance, sends legacystack get|set|delete|formatdeprecation notices to stderr, improves missing-include path diagnostics, and restores!ci.labels [list]inlocals:.
fix: address review follow-ups for the v1.234.0-rc.1 regression fixes @osterman (#3638)
- Completes follow-up fixes for the v1.234.0-rc.1 regressions: restored
!ci.labelsvalues are no longer re-decoded, missing-include hints preserve queries and| eval, template-manifest errors retain wrapped details, and Gomplate experimental functions enabled upstream are available.
🤖 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-gofrom 1.12.6 to 1.17.4, including fixes for duplicateddistinct_idvalues, retries for transient feature-flag requests, improved capture error reporting, opt-in Analytics V1 capture, and additional compression options.
chore(deps): update dependency @types/node to v22.20.5 @renovate[bot] (#3422)
- Updates the website's
@types/nodedependency from 22.20.4 to 22.20.5.
chore(deps): update dependency tsx to v4.23.15 @renovate[bot] (#3423)
- Updates
tsxfrom 4.23.13 to 4.23.15, including fixes for bare 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/shellescapefrom 1.6.0 to 1.6.1.
chore(deps): update dependency prettier to v3.9.10 @renovate[bot] (#3507)
- Updates Prettier from 3.9.9 to 3.9.10, including a Markdown table parsing fix in
micromark-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/toolsfrom 0.51.0 to 0.52.0.
chore(deps): bump golang from 1.27.1 to 1.27.2 in /.devcontainer @dependabot[bot] (#3558)
- Updates the Go base image used by
.devcontainerfrom 1.27.1 to 1.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-v2from 1.47.1 to 1.47.3, including regenerated clients and a newersmithy-gosparse-in-dense fix.
chore(deps): bump github.com/PuerkitoBio/goquery from 1.12.0 to 1.13.0 @dependabot[bot] (#3560)
- Updates
github.com/PuerkitoBio/goqueryfrom 1.12.0 to 1.13.0, adding the top-levelgoquery.Texthelper and performance improvements.
fix(deps): update github.com/cyberphone/json-canonicalization digest to 32a4819 @renovate[bot] (#3572)
- Updates the
github.com/cyberphone/json-canonicalizationdependency to commit32a4819.
chore(deps): update actions/upload-artifact action to v7.0.2 @renovate[bot] (#3574)
- Updates
actions/upload-artifactfrom v7.0.1 to v7.0.2, improving artifact download 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 the AWS Resource Groups Tagging API client from 1.39.0 to 1.41.4.
chore(deps): update step-security/harden-runner action to v2.22.1 @renovate[bot] (#3601)
- Updates
step-security/harden-runnerfrom v2.22.0 to v2.22.1, fixing security-rule initialization and GHES connectivity on self-hosted runners.
fix(deps): update module github.com/agnivade/levenshtein to v1.2.2 - abandoned @renovate[bot] (#3608)
- Updates
github.com/agnivade/levenshteinfrom v1.2.1 to v1.2.2.
chore(deps): update step-security/harden-runner action to v2.22.2 @renovate[bot] (#3612)
- Updates
step-security/harden-runnerfrom v2.22.1 to v2.22.2, correcting macOS ingress classification and Linux endpoint handling while improving network and DNS tracing.