Surfaced by the #440 implementation (PR #451), and pre-existing rather than caused by it.
Today: .graff/tool-results/ accumulates one file per oversized tool result and nothing ever removes them. Unlike tool_spill's session artifacts, which #409 gave a sweep tied to the session lifecycle, this directory has no cleanup path at all: not on session end, not on /new, not on exit.
Why it matters more now. #440 makes handles the default contract rather than an overflow rescue, so the write rate goes up, and it raised the bash capture ceiling from 128 KiB to 1 MiB, so individual artifacts get larger. #440 added a 64 MiB per-process budget with an honest truncation marker, which bounds any single run, but that budget resets every process. A long-lived workspace accrues without limit across runs.
Proposal: give the directory the same lifecycle treatment .graff/ artifacts already got in #409, rather than inventing a second cleanup mechanism.
Interaction: #441 (append-only transcript) and #411 (post-compaction note listing live handles) both make handles longer-lived by referring to them after compaction. Whatever retention rule this lands on should be the one those two cite, not a third policy.
Surfaced by the #440 implementation (PR #451), and pre-existing rather than caused by it.
Today:
.graff/tool-results/accumulates one file per oversized tool result and nothing ever removes them. Unliketool_spill's session artifacts, which #409 gave a sweep tied to the session lifecycle, this directory has no cleanup path at all: not on session end, not on/new, not on exit.Why it matters more now. #440 makes handles the default contract rather than an overflow rescue, so the write rate goes up, and it raised the bash capture ceiling from 128 KiB to 1 MiB, so individual artifacts get larger. #440 added a 64 MiB per-process budget with an honest truncation marker, which bounds any single run, but that budget resets every process. A long-lived workspace accrues without limit across runs.
Proposal: give the directory the same lifecycle treatment
.graff/artifacts already got in #409, rather than inventing a second cleanup mechanism.Interaction: #441 (append-only transcript) and #411 (post-compaction note listing live handles) both make handles longer-lived by referring to them after compaction. Whatever retention rule this lands on should be the one those two cite, not a third policy.