Repository navigation
·
1 commit
to main
since this release
Immutable
release. Only release title and notes can be modified.
- 🐞 With
isRetirementRequestset, orshouldIgnoreStderrLinefor stderr, a task now receives the complete lines from one stdout or stderr chunk in a singleonStdout()oronStderr()call, instead of one call per line. Each call rescans the task's accumulated output, so a task that printed 100,000 lines now takes about 55 ms instead of 30 seconds.taskDataevents and a task's stderr warning logs now cover these batches, as they cover chunks without these options. WithstreamFlushMillis: 0, output after a completion token in the same chunk now reaches the parser, including an unterminated fragment flushed before parsing; at zero delay that fragment previously ended the worker withstdout.error. - 🐞 A multi-byte UTF-8 character split across two stdout or stderr chunks no longer reaches the task as U+FFFD replacement characters. Stdout chunks were decoded separately when
isRetirementRequestwas unset; stderr chunks were decoded separately when bothisRetirementRequestandshouldIgnoreStderrLinewere unset. ExifTool's-listxoutput containedКана��овwhere it printedКаналов. - ✨
Task.onStdout(),Task.onStderr(),taskData, andnoTaskDatanow always receive decoded strings, neverBuffers. Listeners or subclasses that need aBuffermust convert withBuffer.from(data); including those strings in aBuffer.concat([...])call throws aTypeError. - 🐞 When both pass and fail tokens match a task's stdout buffer, the earlier match decides, with same-position ties passing.
FAIL\nPASS\nnow fails even when delivered in one chunk. Withpass: "OK"andfail: "NOT OK",NOT OKnow fails instead of matching the overlapping pass token first. Later stdout is retained for parsing without changing that decision; stderr failure tokens still take precedence. Stdout matching and token removal no longer advance sharedRegExp.lastIndexvalues.
Full Changelog: v19.4.1...v19.5.0