A workspace hit ENOSPC (926GB volume 100% full) during a live mission. Post-mortem found two smithers-owned growth vectors:
- Run logs are unbounded:
.smithers/workflows/*.log accumulated 998 files, many 100MB+, with no rotation, size cap, or retention policy. Detached runs (up -d, oneshot) append agent stream output indefinitely.
- Workflow worktrees are never reaped:
.smithers/workflows/.worktrees/ held 51 worktrees (~190G with node_modules) from a campaign whose PRs had all been pushed a day earlier. Nothing prunes worktrees when a run finishes, and smithers worktree doesn't cover this hidden directory.
Proposals:
- Log rotation/retention (e.g. cap per-run log at N MB with truncation notice;
smithers gc or automatic reap of logs for finished runs older than N days)
- Worktree reaping on run completion (opt-out for debugging), and
smithers worktree list/reclaim should surface .smithers/workflows/.worktrees
- A
smithers doctor/gc disk report so the workspace can warn before ENOSPC kills live runs (ours orphaned a 44-minute mission run)
🤖 Generated with Claude Code
https://claude.ai/code/session_01L7UGBH6syDZeMmiHvPJGk5
A workspace hit ENOSPC (926GB volume 100% full) during a live mission. Post-mortem found two smithers-owned growth vectors:
.smithers/workflows/*.logaccumulated 998 files, many 100MB+, with no rotation, size cap, or retention policy. Detached runs (up -d, oneshot) append agent stream output indefinitely..smithers/workflows/.worktrees/held 51 worktrees (~190G with node_modules) from a campaign whose PRs had all been pushed a day earlier. Nothing prunes worktrees when a run finishes, andsmithers worktreedoesn't cover this hidden directory.Proposals:
smithers gcor automatic reap of logs for finished runs older than N days)smithers worktree list/reclaimshould surface.smithers/workflows/.worktreessmithers doctor/gcdisk report so the workspace can warn before ENOSPC kills live runs (ours orphaned a 44-minute mission run)🤖 Generated with Claude Code
https://claude.ai/code/session_01L7UGBH6syDZeMmiHvPJGk5