Skip to content

[Code Quality] Standardize stderr usage for console output in workflow package #10993

@github-actions

Description

@github-actions

Description

Standardize console output to use fmt.Fprintln(os.Stderr, ...) instead of fmt.Println(...) in the workflow package (~15 occurrences) to ensure consistent output handling and prevent issues with piped/redirected output.

Problem

Current State:

  • ~15 occurrences of fmt.Println(console.Format...) in workflow package
  • Output goes to stdout instead of stderr
  • Inconsistent with codebase guidelines in AGENTS.md
  • Can break when output is piped or redirected

Why it's problematic:

  • All user-facing output should go to stderr (except JSON output)
  • Current pattern: fmt.Println(console.FormatInfoMessage(...))
  • Correct pattern: fmt.Fprintln(os.Stderr, console.FormatInfoMessage(...))
  • Breaks piping and redirection expectations

Suggested Changes

Update all console output calls to use stderr:

// ❌ CURRENT - Output to stdout
fmt.Println(console.FormatInfoMessage("Refreshed stop-after time"))

// ✅ CORRECT - Output to stderr
fmt.Fprintln(os.Stderr, console.FormatInfoMessage("Refreshed stop-after time"))

Files Affected

Approximately 15 occurrences across:

  • pkg/workflow/stop_after.go (lines 81-354)
  • pkg/workflow/engine_firewall_support.go (line 72)
  • pkg/workflow/mcp-config-custom.go
  • Other workflow package files

Success Criteria

  • All fmt.Println(console.Format...) calls changed to fmt.Fprintln(os.Stderr, console.Format...)
  • Consistent stderr usage across workflow package
  • All existing tests pass: make test
  • Output correctly appears in stderr (not stdout)
  • Follows guidelines documented in AGENTS.md

Implementation Strategy

  1. Identify all occurrences: grep -r "fmt.Println(console\\.Format" pkg/workflow/
  2. Replace pattern systematically file by file
  3. Test each file after changes
  4. Run full test suite to ensure no regressions

Source

Extracted from Terminal UI Analysis: Console Output Patterns discussion #10958

Priority

Medium - Improves output consistency and prevents piping issues

Estimated Effort

Medium - 1-2 hours to fix ~15 occurrences and test

AI generated by Discussion Task Miner - Code Quality Improvement Agent

  • expires on Feb 4, 2026, 2:09 PM UTC

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions