Skip to content

rtk go / Go filters can hide real compiler errors and report misleading success #2281

@capton586

Description

@capton586

Summary

rtk can swallow or misclassify real Go compile/vet errors. In our project this caused rtk go ... output to report
misleading summaries such as:

  • No tests found
  • No issues found
  • 2 errors

These summaries did not reflect the actual Go compiler/vet failure. The only reliable way we found to see the real
error was to bypass filtering with rtk proxy.

Version

rtk --version
# rtk 0.42.0

Reproduction / Diagnosis

Running normal filtered Go commands through rtk hides the actionable compiler errors.

The real errors are visible with:

rtk proxy go vet ./internal/workorder/biz/ 2>&1 | grep -iE "undefined|cannot|cycle"

Without rtk proxy, the filtered output can incorrectly summarize the run as successful or unrelated.

One confusing example: go-m1cpu may print 2 errors, but those are clang/CGO warnings and the build exits with 0;
meanwhile the actual Go errors such as undefined, cannot, or import cycle can be filtered away.

Expected Behavior

rtk go / Go-related filters should preserve real Go compile/vet errors, especially diagnostics containing patterns
like:

  • undefined
  • cannot
  • import cycle
  • package/type/function resolution failures

If filtering is uncertain, it should prefer showing the raw Go diagnostic rather than summarizing as No issues
found / No tests found.

Actual Behavior

The filtered output can hide the real compiler/vet diagnostics and emit misleading summaries, causing agents/users to
debug the wrong issue.

Impact

This is high impact for AI-agent workflows because the agent trusts the filtered terminal output. When compiler
errors are hidden, the agent may conclude the build/test/vet pass is clean or chase unrelated CGO warnings.

Workaround

Use raw proxy mode:

rtk proxy go vet ./internal/workorder/biz/ 2>&1 | grep -iE "undefined|cannot|cycle"

But this defeats the purpose of using rtk go for safe summarized Go diagnostics.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions