Browse Source
dynamic_bad_tag_warns_once failed (count 0) ONLY in console-attached singleproc runs (user report; reproduced deterministically with stderr on a real console and stdout redirected): when stderr is backed by a windows console channel, a pushed chan transform receives the console driver's utf-16le wide-char byte stream - every ascii char arrives NUL-interleaved, so content regexps never match. The punk::args warning itself emits correctly, exactly once, inside the capture window (proven with marker writes: markers and warning all captured, all wide). Piped/file stderr and -jobs child processes deliver plain bytes, which is why every piped run passed. Fix in all three capture_stderr helpers (punk/args dynamic.test, punk/ansi grepstr.test, punk/ns corp.test - identical latent defect): if the captured data is NUL-interleaved, decode it as utf-16le (fallback 'unicode' for tcl 8.6) before returning. Verified: the console-attached args subtree run is green (246/243/3/0); piped runs unchanged. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.commaster
3 changed files with 27 additions and 0 deletions
Loading…
Reference in new issue