Add explicit stack name override via manifest 'name' field @osterman (#1835)
## what- Introduces a top-level
namefield in stack manifests for explicit control over logical stack names - Takes precedence over
name_templateandname_patternfrom atmos.yaml - Provides an escape hatch for legacy infrastructure or migrations from tools like Terragrunt
- Terraform workspace derivation respects the manifest name
- Updates JSON schema and documentation
why
Stack naming conventions work well for greenfield projects but struggle with:
- Legacy infrastructure that predates naming conventions
- Infrastructure acquired from other organizations
- Migrations from tools like Terragrunt with different naming schemes
This feature allows selective stack name overrides without requiring all stacks to follow a pattern.
references
- Stack name precedence: name > name_template > name_pattern > filename
- Analogous to component
metadata.namefield for component renaming
Summary by CodeRabbit
-
New Features
- Added explicit stack naming via "name" field in stack manifests with precedence over name_template and name_pattern
-
Documentation
- Comprehensive stack naming documentation covering precedence rules, examples, and migration scenarios
-
Bug Fixes
- Improved cross-platform test reliability with adjusted timeout values
✏️ Tip: You can customize this high-level summary in your review settings.
fix: Remove invalid blog tags and fix devcontainer post dates @osterman (#1856)
## what- Removed invalid blog tags from 9 blog posts (tags that weren't in the approved list)
- Fixed devcontainer post dates to match their filenames (2025-12-05)
- All blog posts now use only valid tags: Breaking Change, Bug Fix, Core, DX, Documentation, Enhancement, Feature, Security
why
Blog posts were using tags outside the approved select list, which doesn't match the instructions. Updated all posts to comply with the tag restrictions and corrected the dates on the two devcontainer posts.
references
Follow-up to blog tag standardization.
Summary by CodeRabbit
- Documentation
- Updated blog post metadata tags and publication dates for improved content organization.
✏️ Tip: You can customize this high-level summary in your review settings.
docs: Improve devcontainer and CLI configuration documentation @osterman (#1854)
## What- Added ActionCard component to devcontainer commands page linking to configuration reference for improved discoverability
- Removed explicit sidebar_position values from 18 CLI Configuration docs to enable automatic alphabetical sorting
- Fixed How-To Guides sidebar labels to use Title Case (Catalogs, Inheritance, Mixins) for consistency
- Updated minimum Atmos version requirement to v1.201.0 in Geodesic guide
- Converted blockquote note to Docusaurus admonition format in using-geodesic.mdx
Why
- ActionCard provides consistent navigation pattern across all command documentation
- Alphabetical sidebar sorting improves discoverability and eliminates manual position management
- Title Case labels align with documentation style guidelines
- Version bump reflects latest feature requirements
References
- Docusaurus ActionCard pattern follows atmos.tools/cli/commands/auth/, terraform/, validate/ and other command pages
Summary by CodeRabbit
-
New Features
- Added a configuration guide card to devcontainer documentation with direct access to the configuration reference.
-
Documentation
- Updated minimum version requirement for devcontainer feature to v1.201.0.
- Reorganized documentation navigation structure and improved sidebar label capitalization for consistency.
✏️ Tip: You can customize this high-level summary in your review settings.
Fix race condition in PTY masking tests @osterman (#1853)
## what - Fixed race condition in `TestExecWithPTY_WithMasking` and `TestExecWithPTY_MaskingDisabled` tests - Changed subprocess commands to add a brief sleep before exit, allowing PTY to read all buffered output - Improved error message in `TestExecWithPTY_MaskingDisabled` to show bytes for better debuggingwhy
These tests were failing intermittently due to Go issue #57141. When a subprocess exits immediately after writing to PTY, the PTY can receive EIO (end of input/output) before all buffered output is read. The sleep gives the PTY time to read the output before the subprocess exits.
references
- https://go.dev/issue/57141
- Related to PR #1835 (osterman/stack-manifest-name)
🚀 Enhancements
fix: Support custom Dockerfiles in devcontainer builds with --replace @osterman (#1855)
## What- Support rebuilding devcontainer images from Dockerfile with
--replaceflag - Simplify Dockerfile using official install script for automatic version/platform detection
- Add comprehensive test coverage for rebuild operations
- Fix error message formatting to properly wrap YAML examples in code fences
- Add new example
atmos.yamlshowing devcontainer with custom Dockerfile configuration
Why
The --replace flag now properly handles custom Dockerfile builds, allowing users to rebuild their custom images when they make changes to their Dockerfile. The install script simplification eliminates complexity and ensures automatic detection of Atmos version and platform architecture.
References
Closes support for reproducible custom devcontainer builds with Geodesic base images.
Summary by CodeRabbit
-
New Features
- Added support for building custom devcontainers from Dockerfiles with inline build configuration.
- Introduced top-level
devcontainerconfiguration structure in atmos.yaml. - Enhanced
--replaceflag with conditional rebuild behavior for custom Dockerfile builds.
-
Documentation
- Added Quick Start section and updated devcontainer examples.
- Updated shell command documentation with Dockerfile rebuild scenarios.
- Improved example configuration with new devcontainer structure.
-
Bug Fixes
- Fixed code fence handling to prevent double-wrapping in examples.
- Optimized image pulling to avoid failures for locally built devcontainer images.
✏️ Tip: You can customize this high-level summary in your review settings.