📦 Other Changes
test: Improve coverage for mock AWS auth provider credential and identity flows @Copilot (#2511)
- Expand mock AWS auth provider coverage for credential expiration, expiration reporting, environment projection without secret leakage, validation, identity metadata, provider resolution, credential-file persistence, missing or invalid credentials, and idempotent logout behavior.
feat(cli): add discovery metadata for core commands @osterman (#3466)
- Add command-owned documentation URLs and ordered example metadata to the command registry, with independently inherited documentation and examples and preserved source metadata for ordinary and cross-command aliases.
feat(cli): add discovery metadata for supporting commands @osterman (#3467)
- Register 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)
- Document a runnable local preview of CI failure annotations, including the expected annotation output, intentional exit code 77, and early admission behavior.
fix(ci): stabilize quality reporting and CI dependencies @osterman (#3476)
- Stabilize quality reporting by selecting the newest CI and Codecov checks, publishing one pending snapshot followed by the final report, recovering unfinished reports and long-running reruns, and avoiding edits caused only by changed summary URLs.
- Improve CI resilience with grouped Readiness, Reviews, and Measures summaries, bounded toolchain retries, Windows artifact hosts, REST artifact downloads, corrected Ubuntu mirrors, local release fixtures, and retrying local Atmos-based Pact installation.
Add runnable CDK examples with casts for the CDK tutorial @osterman (#3481)
- Add runnable
examples/cdk-cloudformationandexamples/cdk-terraformapplications that use the native CloudFormation and Terraform components against the local Floci AWS emulator, with lifecycle casts, smoke checks, and CDK tutorial links.
chore(review): encourage extracting legacy catch-all packages @osterman (#3521)
- Add CodeRabbit path instructions encouraging behavior and test logic touched in
internal/execandpkg/utilsto be extracted into owning packages, using thin adapters where needed.
chore: bump Claude Code plugin version to v1.233.2 @cloudposse-releaser[bot] (#3528)
- Bump the Claude Code plugin to version
v1.233.2.
fix(release): recognize landed native stack members @osterman (#3536)
- Release history validation now recognizes merged native stack members when their merge commits are 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
quality:readypull requests whose head commit has a combined status offailureorerror, even when the report is current and the commit is more than 24 hours old. It does not selectquality:not-readypull requests or combinedpendingstatuses. - Update
website/pnpm overrides fordompurify,follow-redirects, andlaunch-editorto patched releases and regeneratepnpm-lock.yaml.
✨ Features
feat(policy): add validation engines and shared runtime context @osterman (#3461)
- Add native OPA and JSON Schema policy engines with shared environment, runtime, version/FIPS, calendar, and CI context, plus boolean and diagnostic Rego results and YAML/JSON file checks. Add deployment and authentication guardrails, shared version/date checks, migration guidance, and reference documentation.
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.edition: "2026-10-19", condition shorthand, and explicit evaluation APIs retain legacy behavior, while quoted!env,!exec, and!unsetvalues remain literal.
feat(cli): add --docs and --example command discovery @osterman (#3468)
- Add command discovery through
--docs,--docs=md(also--docs=markdown), and--example: help and usage errors show documentation URLs,--docscan open or render them, and--exampleselects and initializes runnable examples with installation and overwrite confirmations. Discovery works before normal project validation, preserves aliases,--chdir, custom flag ownership, and initialization behavior, and generates linked documentation indexes from resolved navigation.
Add Fogg migration and CDK guides with CloudFormation improvements @osterman (#3471)
- Add Fogg migration, AWS CDK, and CDK Terrain guides, along with changelog, roadmap, and Learn navigation updates.
- CloudFormation synthesis hooks now run before generated files are read; inherited
regionand duration-basedtimeoutsettings are supported, with Doctor migrations enforcing legacy minute values.
feat(starlark): add modules, records, and typed configuration @osterman (#3505)
- Add
module.load(path)andstruct(**fields)to automation scripts, with cached imports, frozen exports, cycle detection, cancellation, and parallel loading. - Add typed YAML/JSON configuration loading and validation through
stdlib/config, supporting inline or local/HTTPS JSON Schemas, defaults, bounds, optional fields, lists, enums, immutable dot-access records, source diagnostics, andconfig1.merge(config2)with configurable list strategies.
feat(yaml): support bounded parallel exec evaluation @osterman (#3527)
- Add
settings.functions.exec.max_concurrencyto bound concurrent evaluation of ordinary!execexpressions; the default1preserves serial evaluation. Results remain in their original positions, outstanding commands are canceled after failure, function policy is checked before launch, and--skip=execbehavior is unchanged.
🐛 Bug Fixes
fix(terraform): run lifecycle hooks in prepared workdirs @osterman (#3462)
- Restore Terraform destroy, before/after, and per-component lifecycle hooks for bulk
initandtestruns, executing them in prepared workdirs while preserving resolved paths and credentials for after-hooks. Test fixtures can start before authentication without being overwritten, and tool-version discovery is scoped to each project's configuration.
fix: preserve Helm repository auth and AWS ambient context @osterman (#3470)
- Preserve repository credentials, TLS options, and credential-forwarding policy across native Helm render, install, upgrade, and chart lookup operations. Populate AWS ambient authentication context while retaining SDK discovery,
AWS_PROFILE, and explicit managed credential overrides.
fix(stacks): resolve inherited metadata.component directories @osterman (#3508)
- Resolve inherited
metadata.componentvalues before backend generation while preserving explicit overrides, legacy component selection, and disabled metadata inheritance. This keeps execution directories aligned with inherited component metadata.
fix(terraform): run tests without generating a backend @osterman (#3514)
- Terraform tests no longer generate a backend file when
auto_generate_backend_fileis enabled, avoiding thebackend_type is requirederror for provider-free test modules and preserving existing backend files.
fix(secret): allow stack secrets without a component @osterman (#3517)
- Allow
secret set NAME=value -s <stack>andsecret validate -s <stack>to operate on stack-scoped declarations without an unrelated component, while retaining the component requirement for instance-scoped operations.
feat(duration): human-readable minutes/hours in resource-usage summary @osterman (#3529)
- Add
duration.Formatinpkg/durationand use it for local resource summaries and Native CI Terraform summaries. Durations of at least a minute now render as combinations such as34m 47sor1h 2m 3s, while sub-minute values retain their existing format and boundary rounding avoids displaying60.0s.
🤖 Automatic Updates
chore(deps): bump github.com/posthog/posthog-go from 1.12.6 to 1.17.4 @dependabot[bot] (#2764)
- Update
github.com/posthog/posthog-gofrom1.12.6to1.17.4.
build(deps): bump al.essio.dev/pkg/shellescape from 1.6.0 to 1.6.1 @dependabot[bot] (#3425)
- Update
al.essio.dev/pkg/shellescapefrom1.6.0to1.6.1.