cnvrt emits ANSI color unconditionally. It ignores non-TTY stdout, NO_COLOR, and TERM=dumb alike — so cnvrt formats | grep png and CI logs fill with ^[[1;38;2;180;142;173m garbage. The code already has term.IsTerminal in the progress and prompt adapters, but internal/theme has no gating at all.
cnvrt emits ANSI color unconditionally. It ignores non-TTY stdout, NO_COLOR, and TERM=dumb alike — so cnvrt formats | grep png and CI logs fill with ^[[1;38;2;180;142;173m garbage. The code already has term.IsTerminal in the progress and prompt adapters, but internal/theme has no gating at all.