miller/pkg
John Kerl 9910351ca1
Copy records handed to async file-writers in tee and split verbs (#1671) (#2152)
The tee verb passed the same record pointer both to its file-output
handler (which writes asynchronously on another goroutine, and whose
buffering formats like pprint/json can hold records until close) and
downstream in the verb chain, where subsequent verbs mutate records in
place. Downstream mutations could therefore leak into the tee'd output:

  mlr tee -p cat then cat -n then nothing <<EOF
  a=1,b=2
  a=3,b=4
  a=5,b=6
  EOF

emitted "n=3,a=5,b=6" for the last tee'd record, and with pprint/json
tee formats every record picked up downstream fields.

Fix: give the file-writer its own deep copy of the record. Same fix
applied to the split verb when -v (emit downstream) is used, which
shared records with downstream the same way.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 20:17:32 -04:00
..
auxents Lint round 5+6: staticcheck and errcheck to zero (#2130) 2026-07-03 11:42:08 -04:00
bifs Add mlr mcp MCP server + agent playbook, with a --no-shell gate (#2098 PR7) (#2133) 2026-07-03 19:41:49 -04:00
cli Add mlr mcp MCP server + agent playbook, with a --no-shell gate (#2098 PR7) (#2133) 2026-07-03 19:41:49 -04:00
climain Add DSL validate/dry-run: put/filter --explain (#2098 PR5) (#2131) 2026-07-03 18:12:23 -04:00
colorizer Strip dead code from pkg/ (#2121) 2026-07-01 19:32:13 -04:00
dkvpx Strip dead code from pkg/ (#2121) 2026-07-01 19:32:13 -04:00
dsl Add a first-class bytes type to the DSL, with b"..." literals and base64/hex codecs (#2122) 2026-07-03 11:58:44 -04:00
entrypoint Add mlr mcp MCP server + agent playbook, with a --no-shell gate (#2098 PR7) (#2133) 2026-07-03 19:41:49 -04:00
go-csv Some fixes for staticcheck (#2006) 2026-03-03 09:27:03 -05:00
input Lint round 5+6: staticcheck and errcheck to zero (#2130) 2026-07-03 11:42:08 -04:00
lib Add mlr mcp MCP server + agent playbook, with a --no-shell gate (#2098 PR7) (#2133) 2026-07-03 19:41:49 -04:00
mlrval Add a first-class bytes type to the DSL, with b"..." literals and base64/hex codecs (#2122) 2026-07-03 11:58:44 -04:00
output Add mlr mcp MCP server + agent playbook, with a --no-shell gate (#2098 PR7) (#2133) 2026-07-03 19:41:49 -04:00
parsing Add a first-class bytes type to the DSL, with b"..." literals and base64/hex codecs (#2122) 2026-07-03 11:58:44 -04:00
pbnjay-strptime Performance and style fixes (#1981) 2026-02-18 09:19:31 -05:00
platform Performance and style fixes (#1981) 2026-02-18 09:19:31 -05:00
runtime Lint round 5+6: staticcheck and errcheck to zero (#2130) 2026-07-03 11:42:08 -04:00
scan Strip dead code from pkg/ (#2121) 2026-07-01 19:32:13 -04:00
stream Lint round 5+6: staticcheck and errcheck to zero (#2130) 2026-07-03 11:42:08 -04:00
terminals More AI skill/MCP docs (#2140) 2026-07-04 14:45:29 -04:00
transformers Copy records handed to async file-writers in tee and split verbs (#1671) (#2152) 2026-07-05 20:17:32 -04:00
types Strip dead code from pkg/ (#2121) 2026-07-01 19:32:13 -04:00
version Post-6.20.2 release: back to 6.20.2-dev 2026-07-04 15:44:14 -04:00
README.md Export library code in pkg/ (#1391) 2023-09-10 17:15:13 -04:00

Please see ../../README-dev.md for an overview; please see each subdirectory for details about it.