Skip to content

Commit af850e8

Browse files
ostermanclaudeaknyshautofix-ci[bot]
authored
refactor: Remove error returns from ui.* functions (#1980)
* feat: Add experimental feature transparency and controls (#1940) * feat: Add experimental feature transparency and version tracking Add transparency about feature maturity by introducing an <Experimental /> badge component and <FirstReleased /> version component for documentation. Create an "Experimental Features" policy page explaining what experimental means, graduation criteria, and how to provide feedback. Mark 11 experimental features across the documentation. 🤖 Generated with Claude Code Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * docs: Clarify experimental features may have unimplemented functionality Update the experimental features policy to accurately reflect that: - Features may not be fully functional yet - Documented functionality may not yet be implemented - Full functionality is guaranteed when experimental annotation is removed 🤖 Generated with Claude Code Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * docs: Clarify experimental features are intended to graduate to stable Experimental features are on the path to stability, not abandonment. Removal would only occur in extreme circumstances. 🤖 Generated with Claude Code Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat: Add comprehensive experimental feature visibility across surfaces - Add ui.Experimental() toast function for CLI notifications - Add experimental_warnings config option (default: true) - Add experimental badge to roadmap milestones and featured cards - Add ExperimentalFeaturesList component for /experimental page - Add experimental tag support in changelog timeline - Move experimental-features.mdx to /experimental with dynamic content - Add "Experimental Features" link to roadmap page - Mark experimental features in roadmap.js with experimental: true - Use subtle gray color for experimental notifications 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Log debug message when experimental warnings disabled When experimental_warnings is set to false, still log a debug message indicating that an experimental feature is being used. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Add EXPERIMENTAL badge to CLI help output - Add reusable ui.Badge() function for styled terminal badges - Show EXPERIMENTAL badge at top of experimental command --help - Show EXPERIMENTAL badge next to experimental subcommands in parent help - Skip badge on subcommands when parent is already experimental (avoid repetition) - Mark list affected subcommand as experimental - Group experimental features by initiative on website - Add "Help Us Prioritize" CTA section to experimental features page - Add sentinel errors for experimental command handling 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Improve Experimental badge WCAG AA accessibility - Use darker orange shades for light theme text (#d97706, #b45309) to meet WCAG AA 4.5:1 contrast requirement for small text - Add focus-visible styles for keyboard navigation accessibility - Dark theme already meets contrast requirements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Mark toolchain command as experimental to match roadmap The roadmap marks toolchain as experimental but the command provider returned false for IsExperimental(). Now aligned with roadmap. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Mark terraform backend command as experimental Per roadmap, automatic backend provisioning is experimental. Added annotation to terraform backend subcommand. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Address CodeRabbit review feedback - Add color support check to Badge method for graceful degradation - Update experimental features docs table with all experimental commands - Fix ChangelogTimeline tagExperimental contrast for WCAG AA compliance 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: Mark terraform workdir command as experimental Mark the terraform workdir command as experimental to match the roadmap configuration. Also add workdir management to the experimental features documentation table. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Regenerate snapshots for experimental setting Update golden snapshots to include the new `experimental: warn` setting in describe config output. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Add blog post and roadmap entry for experimental feature controls Add blog post announcing the experimental feature flag (`settings.experimental`) that provides granular control over experimental features with CLI badges, configurable modes (warn, silence, disable, error), and environment variable support. Add milestone to Developer Experience roadmap tracking this feature. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: Use theme colors for experimental badge Replace hardcoded hex colors (#FF9800, #000000) with theme-aware colors from the color scheme. This ensures the experimental badge respects the user's terminal theme settings. Changes: - Add ExperimentalBadgeBg and ExperimentalBadgeFg to ColorScheme - Add ExperimentalBadge lipgloss.Style to StyleSet - Update FormatExperimentalBadge() to use theme styles - Update help_template.go to use FormatExperimentalBadge() 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Show experimental warning for annotation-based experimental commands The findExperimentalParent function was only checking the command registry for experimental status, which missed subcommands marked with annotations like "list affected", "terraform backend", and "terraform workdir". Now also checks the cobra command's annotations for experimental status. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: Simplify experimental feature message Change experimental warning from verbose feature-specific message to simple "Experimental feature. Learn more <link>" with muted gray styling. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Update experimental feature example output Update example output in docs to match the new simpler message format with test tube emoji and direct link to settings documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: Use correct /experimental URL in experimental feature message The experimental warning should link to /experimental (the overview page explaining what experimental features are) not the settings documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Add link to /experimental from settings documentation Link the settings.experimental documentation page to the main /experimental page which explains what experimental means. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Add CLI configuration section to /experimental page Add section explaining how to control experimental feature behavior via settings.experimental in atmos.yaml or ATMOS_EXPERIMENTAL env var. Links to detailed settings documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Move experimental features list after "What Experimental Means" section Reorganizes the /experimental page to show the list of current experimental features earlier, immediately after explaining what experimental means. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Update Slack links and add experimental docs to flag-handler agent - Update Slack links to use /community/slack instead of external URL - Add experimental feature handling documentation to flag-handler agent - Add experimental-related keywords to agent auto-invoke triggers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Fix stacks sidebar sorting and improve Experimental badge Stacks sidebar: - Remove sidebar_position from all stacks docs to enable alphabetical sorting - Keep position 1 on stacks.mdx (Overview) to ensure it stays first - Remove position from components and settings category JSON files Experimental badge component: - Replace UTF-8 emoji with RiFlaskLine from react-icons - Remove "Learn more" link - whole badge is now clickable - Make badge behave like a button with hover/focus states 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Fix toolchain label capitalization in CLI configuration Change "Toolchain" to "toolchain" to match the lowercase convention used by other CLI configuration sections (settings, stacks, integrations, version). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Fix toolchain subsection label capitalization Change sidebar labels to lowercase to match the convention: - Overview -> toolchain - Registries -> registries - Aliases -> aliases 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Fix Registry label capitalization in toolchain commands Change "Registry" to "registry" to match lowercase convention. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: Reduce flag-handler agent file size to meet limit Consolidate duplicate Resources and Relevant PRDs sections into one compact section. Condense verbose Self-Maintenance documentation while preserving key monitoring guidance. File reduced from 25712 to 23265 bytes (under 25000 limit). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Regenerate CLI help snapshots Update golden snapshots for atmos --help output to reflect current command list and ordering. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Regenerate snapshots for experimental settings Update golden snapshots to include: - settings.experimental: warn default value in describe config output - [EXPERIMENTAL] badges on terraform backend and workdir commands 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(website): Add automatic 'Unreleased' badge for documentation pages Add a new doc-release-data plugin that automatically detects which documentation pages have changes not yet included in a release. When a doc's last-modified commit is not in any stable release tag, an "Unreleased" badge appears in the TOC sidebar. Changes: - Add doc-release-data plugin that scans docs and checks git history - Extract shared ReleaseBadge component for reuse - Add DocReleaseBadge component that reads from plugin global data - Extend TOC component to render badges for both blog and doc pages - Update styles to make unreleased badges clickable (links to /changelog) The badge only appears for unreleased docs - released docs show no badge to keep the UI clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * style(website): Update Unreleased badge to match Experimental style Change the Unreleased badge from solid gray to a subtle semi-transparent style with border, matching the Experimental badge pattern. This provides a more consistent visual language across badge types. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(website): Add /unreleased page with index of unreleased documentation Add a dedicated page at atmos.tools/unreleased that: - Explains what "unreleased" means (content not yet in a formal release) - Lists all documentation pages with unreleased changes - Shows the build date so users know when the list was generated - Links to changelog, releases, and community resources Changes: - Create UnreleasedDocsList component that reads from plugin global data - Create /unreleased page with explanation and auto-generated list - Update doc-release-data plugin to export unreleasedDocs array with title, path, and description for each unreleased doc - Fix URL path computation to handle Docusaurus id/slug conventions - Update ReleaseBadge to link to /unreleased instead of /changelog 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(website): Add confetti celebration when all docs are released When visiting /unreleased and all documentation is up to date with the latest release, show a celebration state with: - Confetti animation on first page load (using canvas-confetti) - Celebratory message "All caught up!" - Links to changelog and GitHub releases - Build date showing when the check was last performed This provides positive feedback to users who check the page and find everything is current. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: Add missing descriptions to terraform command docs Add description frontmatter to docs that were missing it: - atmos terraform clean - atmos terraform generate files - atmos terraform output - Using Remote State (redirect page) These descriptions now appear in the /unreleased page list. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(website): Address CodeRabbit review feedback for unreleased badges - Fix React hooks violation in UnreleasedDocsList by calling usePluginData unconditionally and checking return value instead of using try-catch - Fix React hooks violation in DocReleaseBadge using same pattern - Add /roadmap to NON_DOC_PATHS to prevent showing unreleased badge on roadmap page (which is not a documentation page) - Add color to transition property for smooth hover color changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Regenerate CLI help snapshots for experimental features Update terraform command help snapshots to reflect new column widths and [EXPERIMENTAL] badges added to backend, workdir, and source subcommands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs(roadmap): Add PR number to experimental feature controls milestone 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Add tests to increase code coverage Add tests for: - cmd/toolchain/du.go: DuCommandProvider methods (GetCommand, GetName, GetGroup, GetFlagsBuilder, GetPositionalArgsBuilder, GetCompatibilityFlags, GetAliases, IsExperimental) - pkg/ui/formatter.go: Reset, SetColorProfile, Hint, Hintf, Experimental, Experimentalf, Badge, FormatExperimentalBadge, ClearLine Coverage improvements: - pkg/ui: 73.1% → 87.8% - cmd/toolchain/du.go: 0% → covered 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Add comprehensive tests for root.go and help_template.go Add tests to improve patch coverage: - TestConvertToTermenvProfile: Test terminal color profile conversion - TestFindExperimentalParent: Test experimental command detection - TestParseUseVersionFromArgsInternal: Test --use-version parsing - TestBuildFlagDescription: Test flag description generation - TestRenderWrappedLines: Test wrapped line rendering - TestSyncGlobalFlagsToViper: Test viper flag synchronization - TestConfigureEarlyColorProfile: Test early color profile setup - TestFindProviderName: Test command hierarchy traversal - TestRenderCompatFlags: Test compatibility flag rendering - TestPrintCompatibilityFlags: Test compat flags section - TestPrintFooterWithSubcommands: Test footer display - TestSetRendererProfileForAutoDetect: Test all color profiles - TestCalculateCommandWidthWithExperimental: Test badge width - TestGetExperimentalBadge: Test badge generation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Add more tests to increase patch coverage Add comprehensive tests to improve coverage from 69.5% toward 75%: cmd/root_helpers_test.go: - TestFormatFlagNameParts: Test flag name formatting for bool/string/int/stringSlice - TestGetTerminalWidth: Test terminal width detection with fallback - TestCalculateMaxFlagWidth: Test flag width calculation excluding hidden flags - TestRenderFlags: Test flag rendering with styles - TestRenderFlagsNilFlagSet: Test nil flag set handling pkg/ui/formatter_test.go: - TestConfigureColorProfileAllProfiles: Test all 4 color profiles - TestFormatterHintMethod/Hintf/Toast/Toastf: Test formatter methods - TestFormatterBold/Muted/Heading/Label: Test text formatting methods - TestFormatterHintWithBackticks: Test inline markdown in hints 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Add coverage tests for pkg/ui/formatter fallback and error paths Add tests for uncovered code paths in formatter.go: - Experimental/Experimentalf error paths when formatter not initialized - Badge error fallback when formatter not initialized - FormatExperimentalBadge no-color and error paths - ClearLine terminal not initialized and color profile branches - Formatter method tests for Experimentalf, Badge, and Experimental Coverage improved from 89.9% to 90.5% for pkg/ui package. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Add coverage for experimental command mode switch cases Add TestExperimentalModeHandling to test all four experimental modes: - "silence" - no output or exit - "disable" - command disabled with exit - "warn" - warning shown but no exit - "error" - warning and exit This increases test coverage for root.go lines 497-520. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(roadmap): correct experimental feature controls status to in-progress PR #1940 is still open, so the milestone should not be marked as shipped. Updated dx initiative progress from 92% to 88% to reflect accurate count. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: regenerate snapshots for experimental feature changes Update golden snapshots to include: - New `experimental: warn` setting in describe config output - [EXPERIMENTAL] badges on terraform subcommands Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: regenerate terraform --help snapshot Update golden snapshot for [EXPERIMENTAL] badges on subcommands. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: Regenerate snapshots for experimental badges Update golden snapshots to include [EXPERIMENTAL] badges for: - atmos toolchain - atmos devcontainer - atmos terraform backend - atmos terraform workdir The experimental feature controls PR added visual badges to help output, requiring snapshot updates. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * - PRD environment variable fixed (ATMOS_EXPERIMENTAL) - PRD experimental commands list updated - PRD subcommand-level section updated - Documentation error messages match actual output - Experimental() function now includes feature name - findExperimentalParent() returns correct parent names - Toolchain command calls parent's PersistentPreRun * add tests --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> Co-authored-by: Andriy Knysh <aknysh@users.noreply.github.com> Co-authored-by: aknysh <andriy.knysh@gmail.com> * add tests * [autofix.ci] apply automated fixes --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> Co-authored-by: Andriy Knysh <aknysh@users.noreply.github.com> Co-authored-by: aknysh <andriy.knysh@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent 994635c commit af850e8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+727
-547
lines changed

NOTICE

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ APACHE 2.0 LICENSED DEPENDENCIES
9999

100100
- github.com/aws/aws-sdk-go-v2
101101
License: Apache-2.0
102-
URL: https://github.com/aws/aws-sdk-go-v2/blob/v1.41.0/LICENSE.txt
102+
URL: https://github.com/aws/aws-sdk-go-v2/blob/v1.41.1/LICENSE.txt
103103

104104
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream
105105
License: Apache-2.0
@@ -564,7 +564,7 @@ BSD LICENSED DEPENDENCIES
564564

565565
- github.com/aws/aws-sdk-go-v2/internal/sync/singleflight
566566
License: BSD-3-Clause
567-
URL: https://github.com/aws/aws-sdk-go-v2/blob/v1.41.0/internal/sync/singleflight/LICENSE
567+
URL: https://github.com/aws/aws-sdk-go-v2/blob/v1.41.1/internal/sync/singleflight/LICENSE
568568

569569
- github.com/aws/aws-sdk-go/internal/sync/singleflight
570570
License: BSD-3-Clause
@@ -1030,7 +1030,7 @@ MIT LICENSED DEPENDENCIES
10301030

10311031
- github.com/alecthomas/chroma/v2
10321032
License: MIT
1033-
URL: https://github.com/alecthomas/chroma/blob/v2.21.1/COPYING
1033+
URL: https://github.com/alecthomas/chroma/blob/v2.23.0/COPYING
10341034

10351035
- github.com/alecthomas/participle/v2/lexer
10361036
License: MIT

cmd/about/about.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ var aboutCmd = &cobra.Command{
1717
Long: `Display information about Atmos, its features, and benefits.`,
1818
Args: cobra.NoArgs,
1919
RunE: func(cmd *cobra.Command, args []string) error {
20-
return ui.Markdown(markdown.AboutMarkdown)
20+
ui.Markdown(markdown.AboutMarkdown)
21+
return nil
2122
},
2223
}
2324

cmd/auth_ecr_login.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func executeExplicitRegistries(ctx context.Context, registries []string) error {
127127

128128
// Log success with actual expiration time from ECR token.
129129
expiresIn := time.Until(result.ExpiresAt).Round(time.Minute)
130-
_ = ui.Success(fmt.Sprintf("ECR login: %s (expires in %s)", registry, expiresIn))
130+
ui.Success(fmt.Sprintf("ECR login: %s (expires in %s)", registry, expiresIn))
131131
}
132132

133133
// Set DOCKER_CONFIG so downstream Docker commands use the same config location.

cmd/auth_exec.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,9 @@ func extractIdentityFlag(args []string) (identityValue string, commandArgs []str
252252

253253
// printAuthExecTip prints a helpful tip when auth exec fails.
254254
func printAuthExecTip(identityName string) {
255-
_ = ui.Writeln("")
256-
_ = ui.Info("Tip: If credentials are expired, refresh with:")
257-
_ = ui.Writef(" atmos auth login --identity %s\n", identityName)
255+
ui.Writeln("")
256+
ui.Info("Tip: If credentials are expired, refresh with:")
257+
ui.Writef(" atmos auth login --identity %s\n", identityName)
258258
}
259259

260260
func init() {

cmd/auth_whoami.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,19 +174,19 @@ func printWhoamiHuman(whoami *authTypes.WhoamiInfo, isValid bool) {
174174
statusIndicator = theme.Styles.Checkmark.String()
175175
}
176176

177-
_ = ui.Writef("%s Current Authentication Status\n\n", statusIndicator)
177+
ui.Writef("%s Current Authentication Status\n\n", statusIndicator)
178178

179179
// Build and print table.
180180
rows := buildWhoamiTableRows(whoami)
181181
t := createWhoamiTable(rows)
182182

183-
_ = ui.Writef("%s\n", t)
183+
ui.Writef("%s\n", t)
184184

185185
// Show warning with tip if credentials are invalid.
186186
if !isValid {
187-
_ = ui.Writeln("")
188-
_ = ui.Warning("Credentials may be expired or invalid.")
189-
_ = ui.Writef(" Run 'atmos auth login --identity %s' to refresh.\n", whoami.Identity)
187+
ui.Writeln("")
188+
ui.Warning("Credentials may be expired or invalid.")
189+
ui.Writef(" Run 'atmos auth login --identity %s' to refresh.\n", whoami.Identity)
190190
}
191191
}
192192

cmd/list/components.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ func listComponentsWithOptions(cmd *cobra.Command, args []string, opts *Componen
156156
}
157157

158158
if len(components) == 0 {
159-
_ = ui.Info("No components found")
159+
ui.Info("No components found")
160160
return nil
161161
}
162162

cmd/list/settings.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@ func setupSettingsOptions(opts *SettingsOptions, componentFilter string) *l.Filt
115115
// displayNoSettingsFoundMessage displays an appropriate message when no settings are found.
116116
func displayNoSettingsFoundMessage(componentFilter string) {
117117
if componentFilter != "" {
118-
_ = ui.Info("No settings found for component: " + componentFilter)
118+
ui.Info("No settings found for component: " + componentFilter)
119119
} else {
120-
_ = ui.Info("No settings found")
120+
ui.Info("No settings found")
121121
}
122122
}
123123

cmd/list/stacks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func listStacksWithOptions(cmd *cobra.Command, args []string, opts *StacksOption
145145
return err
146146
}
147147
if len(stacks) == 0 {
148-
_ = ui.Info("No stacks found")
148+
ui.Info("No stacks found")
149149
return nil
150150
}
151151

cmd/list/themes.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,13 @@ func displayThemes(opts *ThemesOptions, themes []*theme.Theme, activeTheme strin
145145
if !term.IsTTYSupportForStdout() {
146146
// Fall back to simple text output for non-TTY
147147
output := formatSimpleOutput(opts, themes, activeTheme, showingRecommendedOnly)
148-
return ui.Write(output)
148+
ui.Write(output)
149+
return nil
149150
}
150151

151152
output := formatThemesTable(opts, themes, activeTheme, showingRecommendedOnly)
152-
return ui.Write(output)
153+
ui.Write(output)
154+
return nil
153155
}
154156

155157
// formatThemesTable formats themes into a styled Charmbracelet table.

cmd/list/values.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,13 @@ var varsCmd = &cobra.Command{
153153
if err != nil {
154154
var componentVarsNotFoundErr *listerrors.ComponentVarsNotFoundError
155155
if errors.As(err, &componentVarsNotFoundErr) {
156-
_ = ui.Info("No vars found for component: " + componentVarsNotFoundErr.Component)
156+
ui.Info("No vars found for component: " + componentVarsNotFoundErr.Component)
157157
return nil
158158
}
159159

160160
var noValuesErr *listerrors.NoValuesFoundError
161161
if errors.As(err, &noValuesErr) {
162-
_ = ui.Info("No values found for query '.vars' for component: " + args[0])
162+
ui.Info("No values found for query '.vars' for component: " + args[0])
163163
return nil
164164
}
165165

@@ -280,9 +280,9 @@ func getFilterOptionsFromValues(opts *ValuesOptions) *l.FilterOptions {
280280
// displayNoValuesFoundMessage displays an appropriate message when no values or vars are found.
281281
func displayNoValuesFoundMessage(componentName string, query string) {
282282
if query == ".vars" {
283-
_ = ui.Info("No vars found for component: " + componentName)
283+
ui.Info("No vars found for component: " + componentName)
284284
} else {
285-
_ = ui.Info("No values found for component: " + componentName)
285+
ui.Info("No values found for component: " + componentName)
286286
}
287287
}
288288

0 commit comments

Comments
 (0)