Bug
If replace has no output channel (it is last in the pipeline), Run skips the record loop entirely and returns nil. Records are dropped with no error. sample rejects being last via ErrInvalidConfig; replace does not.
Where
internal/pkg/pipeline/task/replace/replace.go — the processing loop is inside if output != nil.
Expected
Return an error when output == nil, or still apply the replacement and write somewhere observable. Silent success with no output is the worst of both.
Found while auditing task READMEs in #96.
Bug
If
replacehas no output channel (it is last in the pipeline),Runskips the record loop entirely and returns nil. Records are dropped with no error.samplerejects being last viaErrInvalidConfig;replacedoes not.Where
internal/pkg/pipeline/task/replace/replace.go— the processing loop is insideif output != nil.Expected
Return an error when
output == nil, or still apply the replacement and write somewhere observable. Silent success with no output is the worst of both.Found while auditing task READMEs in #96.