Commit 8e2cc18
feat: Atmos bugfixes and enhancements from vhs-demo-videos branch (#1954)
* feat: sync atmos bugfixes from vhs-demo-videos branch
This includes non-demo changes from osterman/vhs-demo-videos:
- List aliases subcommand
- List query normalization and simplified syntax
- Toolchain multi-tool install support
- Markdown rendering fixes (inline code spacing)
- Terraform output improvements
- Auth factory and mock provider updates
- Various documentation updates
Excludes demo infrastructure:
- tools/director/*
- pkg/ffmpeg/*
- pkg/vhs/*
- demos/*
- Makefile (has director references)
- .claude/* (has director agent)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: remove vhs-demo-videos PRD
This PRD belongs in the vhs-demo-videos branch, not the bugfixes branch.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add blog post for list and toolchain enhancements
Announces:
- Simplified query syntax for atmos list components
- New atmos list aliases subcommand
- Multi-tool installation support for atmos toolchain install
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review feedback
- Revert FeaturedDemoCarousel to LazyDemo (component pending in other PR)
- Remove /demos navbar entry and demoId references from roadmap
- Fix list aliases example (remove non-existent --format flag)
- Use Packer config BasePath with fallback in describe_stacks
- Fix table.go line endings to use utils.GetLineEnding()
- Remove perf.Track from trivial ast.go String() method
- Improve comment clarity in format.go
- Add version documentation to custom_renderer.go
- Register all markdown extensions in extendGlamourWithCustomExtensions
- Refactor admonition colors to use lipgloss instead of hardcoded ANSI
- Update admonition tests to check semantic content, not ANSI codes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add --format flag to list aliases command
Add consistent --format support (json, yaml, csv, tsv, tree) to the
list aliases command, matching other list commands.
- Add WithFormatFlag to parser initialization
- Add Format field to AliasesOptions
- Implement renderAliasesWithFormat using list renderer infrastructure
- Add aliasesToData conversion function for renderer compatibility
- Update command examples to show format flag usage
- Add tests for format flag and data conversion
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review comments for PR #1954
- .gitignore: fix conflicting .envrc patterns by removing duplicate entry
- cmd/list/aliases.go: use buildConfigAndStacksInfo to populate global flags
- pkg/ui/markdown/extensions/linkify.go: add early return to prevent duplicate nodesToReplace entries
- website/src/components/Video/DemoVideo.tsx: add placeholder component for build compatibility
- website/src/theme/Navbar/Content/usePriorityNavbar.ts: fix zero-width items handling in overflow calculation
- internal/exec/describe_stacks.go: remove hardcoded Packer fallback for consistency with Terraform/Helmfile
- pkg/ui/markdown/custom_renderer_test.go: add reflection stability test for getGlamourGoldmark
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add built-in aliases to list aliases command
The `atmos list aliases` command now shows both:
- Built-in aliases: Native Cobra command shortcuts (tf, hf, pk, etc.)
- Configured aliases: User-defined aliases from atmos.yaml
New features:
- Recursively collects aliases from the entire command tree
- Shows Type column to distinguish alias sources
- Footer shows breakdown of built-in vs configured counts
- Supports all output formats (table, json, yaml, csv, tsv)
Built-in aliases are collected by traversing the Cobra command tree
and extracting the Aliases field from each command. This makes it
easy for users to discover all available shortcuts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: sort aliases alphabetically by default
Changed default sort order from "type first, then name" to pure
alphabetical sorting by alias name. This makes it easier to find
a specific alias when scanning the list.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: improve alias display with left-aligned columns and consistent paths
- Changed from CreateThemedTable to CreateMinimalTable for left-aligned columns
(CreateThemedTable right-aligns column 0 for status icons, not text)
- Fixed nested alias paths to exclude root command name ("atmos")
e.g., "describe dependants" instead of "atmos describe dependants"
- Extracted helper functions to reduce nesting complexity
- Updated tests to reflect the corrected alias path format
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review comments
- DemoVideo.tsx: use void props pattern for unused parameters
- usePriorityNavbar.ts: retry measurement until all items have widths
- terraform-apply.mdx: remove placeholder DemoVideo until ready
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: remove placeholder DemoVideo from validate-stacks.mdx
The DemoVideo component is a placeholder that returns null until the
demo infrastructure is ready. Remove it from validate-stacks.mdx to
prevent confusion and potential build issues.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add list aliases milestone to roadmap
Add shipped milestone for `atmos list aliases` showing built-in and
configured aliases to the Discoverability initiative.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: correct ParseToolSpec method name and remove orphaned test
- Fix case-sensitivity error: parseToolSpec → ParseToolSpec in
toolchain/install.go:184 (fixes macOS/Windows build failures)
- Remove cmd/list/components_query_test.go which tests non-existent
functions (normalizeComponentQuery, filterComponentsWithQuery,
isScalarExtractionQuery were never synced from source branch)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review comments
- Add clarifying comment for highlightDelimiterProcessor explaining it's
kept as a reference implementation (tested but not used in Extend())
- Fix components_test.go field names: kind→type for technology type,
type→component_type for real/abstract status
- Update toolchain/install.go comment to clarify reinstallFlag is unused
(not "handled internally")
- Remove unused @cloudflare/stream-react dependency from website
Note: GetColorProfile() doesn't need perf.Track per CLAUDE.md exceptions
for trivial getters.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: use theme-aware colors in markdown extensions
Address CodeRabbit review comments:
1. Fix missing trailing periods in test comments (godot linter)
- custom_renderer_test.go lines 445, 455, 465
2. Replace hardcoded ANSI colors with theme-aware colors
- admonition.go: Use theme.GetCurrentStyles() for admonition colors
- badge.go: Use theme.GetCurrentStyles() for badge colors
- Refactor theme/show.go to accept markdown renderer callback,
breaking import cycle between theme and markdown packages
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: resolve test failures from partial sync
- Add multi-tool support to toolchain install command (Use, Args, runInstall)
- Revert incorrect test field name change (kind -> type) in components_test.go
- Update FormatToast empty message test expectation for cleaner renderer output
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review comments
- Update list-pager-integration.md to reflect partial pager rollout
- Add .git path guard in processMatch to prevent copying git internals
- Update mock-aws to mock/aws in factory and provisioner tests
- Add perf.Track to findVarsFromComponents and getComponentTypes
- Fix comment formatting in highlight_utils.go (godot lint)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: regenerate pnpm-lock.yaml after removing @cloudflare/stream-react
The previous commit (f9eca50) removed @cloudflare/stream-react from
package.json but didn't regenerate the lockfile, causing CI to fail with
ERR_PNPM_OUTDATED_LOCKFILE when running with --frozen-lockfile.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: resolve test failures from markdown rendering and badge parser
- Fix badge parser panic by adding bounds check before slicing
(pkg/ui/markdown/extensions/badge.go)
- Fix NO_COLOR markdown rendering by skipping custom styles when
color profile is Ascii - prevents malformed ANSI codes like [;1m
(pkg/ui/markdown/custom_renderer.go)
- Fix Toast trailing whitespace by stripping trailing empty lines
that Glamour adds during word wrapping
(pkg/ui/formatter.go)
- Update test expectations to match cleaner output format
(pkg/ui/formatter_test.go, toolchain/clean_test.go)
- Regenerate golden snapshots after fixes
Fixes:
- TestExperimentalModeHandling (all 5 subtests)
- TestCleanToolsAndCaches (all 5 subtests)
- TestFormatterToastMethod and related formatter tests
- TestCLICommands snapshot mismatches
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test: add direct reflection stability test for getGlamourGoldmark
Address CodeRabbit review feedback by adding explicit test that:
- Creates glamour.TermRenderer directly
- Calls getGlamourGoldmark() and asserts non-nil result
- Documents glamour v0.10.0 version dependency
The direct test catches reflection breakage immediately rather than
relying on indirect symptoms from extension registration failures.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test: add cleanup to restore color profile in Toast tests
Address CodeRabbit review feedback by adding t.Cleanup to restore
the global lipgloss color profile after TestFormatterToastMethod
and TestFormatterToastfMethod. This prevents test isolation issues
where subsequent tests could inherit the ASCII profile.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address CodeRabbit review comments
- cmd/theme/show.go: Reword comment to fix godot linter issue
- cmd/toolchain/install.go: Add warning when --default flag is used
with multiple tools (flag is ignored for batch installs)
- pkg/ui/formatter.go: Clarify comment about trailing newline stripping
- pkg/utils/highlight_utils.go: Use canonical IsColorEnabled method
for proper Color/NoColor field handling
- website/docs: Fix DemoVideo id from config-describe-affected to
describe-affected to match naming convention
- website/src/theme/Navbar: Add visibility:hidden for accessibility,
clamp itemRefs to totalItems to prevent endless re-measure loops
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: add perf.Track to GetColorProfile for consistency
While GetColorProfile() is conceptually a getter, it makes external
library calls (lipgloss.DefaultRenderer().ColorProfile()). Adding
perf.Track for consistency with guidelines about functions making
external calls.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix: restore TTY check for syntax highlighting in non-TTY environments
The previous change to HighlightCodeWithConfig inadvertently enabled
syntax highlighting in non-TTY environments. The IsColorEnabled method
with Color=true (the default) returns true regardless of the isTTY
parameter, causing ANSI color codes to be output even when stdout is
piped.
This fix restores explicit TTY gating:
- Skip highlighting if not in a terminal AND color is not forced
- ForceColor (ATMOS_FORCE_COLOR) explicitly enables highlighting without TTY
- NoColor takes precedence over everything
Fixes test failures in atmos_auth_env_--format_json_--identity_mock-identity
and atmos_auth_env_--login_without_cached_credentials.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* fix: address CodeRabbit review comments and lint issues
- Add perf.Track to createMarkdownRenderer in cmd/theme/show.go
- Fix comment punctuation in pkg/ui/formatter.go for godot lint
- Fix singleCaseSwitch lint in internal/exec/packer.go
- Fix error-strings lint in internal/exec/packer_output.go
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address additional CodeRabbit review comments
- Add trailing periods to inline comments in cmd/list/aliases.go
- Wrap markdown renderer errors with ErrMarkdownRendererInit sentinel
- Remove unused FFmpeg/VHS error sentinels from errors/errors.go
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: use static error sentinels for config and markdown errors
- Use ErrFailedToInitializeAtmosConfig in cmd/list/aliases.go
- Add ErrMarkdownRender sentinel for render failures
- Wrap markdown render errors in cmd/theme/show.go
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: use static error sentinel for column selector creation
Replace string literal error with ErrCreateColumnSelector sentinel
in cmd/list/aliases.go to follow project error handling guidelines.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: use renderer abstraction for list aliases and update blog post
- Refactor list aliases to use pkg/list/renderer for ALL output formats
- Add --columns and --sort flags for consistency with other list commands
- Update blog post to emphasize built-in + configured aliases distinction
- Add WithAliasesColumnsFlag to flag_wrappers.go
- Add helper functions: getAliasColumns, buildAliasSorters, buildAliasFooter
- Remove obsolete custom table formatting functions
- Update tests for new helper functions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: add trailing periods to comments in aliases.go
Address CodeRabbit review comments:
- Add trailing period to Type field inline comment
- Combine multi-line comment into single line with period
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: reformat list-pager-integration PRD to standard format
Add proper PRD structure including:
- Executive Summary
- Problem Statement with Challenges
- Design Goals
- Technical Specification with architecture diagram
- Success Criteria
- References and Revision History
All original technical content preserved.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: regenerate toolchain test snapshots for branch output
Regenerate golden snapshots to match actual code output:
- registry_search: Uses plain text "20 tools" instead of bold
- install_non-existent_tool: Error message format without tool name
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: apply deterministic sorting to complex types in table output
Apply sortValueRecursive to maps and slices before JSON marshaling in
formatValueForTable for consistent, deterministic output across runs.
This matches the behavior of formatJSON and formatYAML formatters
which already apply sorting for map key ordering.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* add tests
* add tests
* address comments
* address comments
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: aknysh <andriy.knysh@gmail.com>1 parent e299827 commit 8e2cc18
File tree
121 files changed
+6066
-305
lines changed- .github/workflows
- cmd
- list
- terraform
- theme
- toolchain
- docs
- prd
- errors
- internal/exec
- pkg
- auth
- factory
- providers/mock/aws
- list
- extract
- format
- renderer
- provisioner/backend
- template
- terminal
- terraform/output
- ui
- markdown
- extensions
- theme
- utils
- tests
- fixtures/scenarios/atmos-auth-mock
- snapshots
- toolchain
- registry
- website
- blog
- docs
- cli
- commands
- auth
- describe
- devcontainer
- docs
- list
- profile
- terraform
- theme
- toolchain
- vendor
- version
- configuration
- templates
- src
- components
- Roadmap
- Terminal
- Video
- Watermark
- css
- data
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
121 files changed
+6066
-305
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | | - | |
| 100 | + | |
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| |||
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
209 | | - | |
| 209 | + | |
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
24 | 28 | | |
25 | 29 | | |
26 | 30 | | |
| |||
38 | 42 | | |
39 | 43 | | |
40 | 44 | | |
41 | | - | |
42 | 45 | | |
43 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
44 | 51 | | |
45 | 52 | | |
46 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
0 commit comments