Problem
burn sessions list | head exits 101 with a raw Rust panic when the consumer closes the pipe early. The #518 fix (PR #529) made --json output and stdout stamps export exit 0 quietly on downstream pipe closure; the human-output paths were explicitly out of that PR's scope and still panic.
Shape of the work (from the #518 review)
Not uniform across renderers:
overhead's human renderers already return io::Result — closest to correct.
sessions/summary use print!/println! across ~55 sites, which panic on EPIPE.
render::table::print_table returns io::Result but currently has no callers outside its own tests.
Expected: human output on a closed pipe exits 0 quietly, matching the JSON behavior PR #529 established and the changelog's stated JSON-only boundary.
Deferred from #518 during adversarial review.
🤖 Generated with Claude Code
Problem
burn sessions list | headexits 101 with a raw Rust panic when the consumer closes the pipe early. The #518 fix (PR #529) made--jsonoutput and stdoutstamps exportexit 0 quietly on downstream pipe closure; the human-output paths were explicitly out of that PR's scope and still panic.Shape of the work (from the #518 review)
Not uniform across renderers:
overhead's human renderers already returnio::Result— closest to correct.sessions/summaryuseprint!/println!across ~55 sites, which panic on EPIPE.render::table::print_tablereturnsio::Resultbut currently has no callers outside its own tests.Expected: human output on a closed pipe exits 0 quietly, matching the JSON behavior PR #529 established and the changelog's stated JSON-only boundary.
Deferred from #518 during adversarial review.
🤖 Generated with Claude Code