From the 0.21.0 dogfood (pass 2; same in streaming and in-memory, so a contract gap). xl -f nyc1m.xlsx --stream filter --where 'A > 46500000' --limit 20 --format json → a bare 20-row array with no total, while markdown says Matched 64415 row(s); showing first 20; --format csv emits no TRUNCATED note (view csv does); --limit 0 --format json scans 54 s and prints []. view has truncated/totalRows, search has count/total. Expected: filter json carries the same fields (matched, truncated, limit), csv gets the same TRUNCATED warning path, and --limit 0 either means "no limit" consistently with view or is rejected.
From the 0.21.0 dogfood (pass 2; same in streaming and in-memory, so a contract gap).
xl -f nyc1m.xlsx --stream filter --where 'A > 46500000' --limit 20 --format json→ a bare 20-row array with no total, while markdown saysMatched 64415 row(s); showing first 20;--format csvemits noTRUNCATEDnote (view csv does);--limit 0 --format jsonscans 54 s and prints[].viewhastruncated/totalRows,searchhascount/total. Expected:filterjson carries the same fields (matched,truncated,limit), csv gets the sameTRUNCATEDwarning path, and--limit 0either means "no limit" consistently withviewor is rejected.