daily-fix: plan 9 pins out-root filesystem mount
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Overview / Motivation
Auto-filed by the /daily 2026-07-15 problem sweep (route 2 — behavior/logic change, independent review required).
Goal
Plan §9 disk sizing names the target filesystem/mount for each out-root (not just the GB number), and workload preambles assert headroom against that mount (the #1333 _assert_out_root_headroom pattern, generalized).
Workflow gap
- Bug observed: #1333 attempt-3 crashed with "No space left on device" during checkpoint serialization because the out-root landed on the wrong (small) filesystem despite a §9 GB estimate; fixed in-session by anchoring the out-root under /workspace + headroom probes (fc2b61b7 14:39-14:41Z).
- Why it is a workflow gap: plan-compute-sizing.md sizes disk in GB but never binds the estimate to a FILESYSTEM/MOUNT — a correct GB number on the wrong mount still crashes, and no preamble contract asserts headroom against the mount the out-root actually resolves to.
- Severity: low
- verified-at-filing:
grep -n 'mount\|filesystem\|out-root\|out_root' .claude/rules/plan-compute-sizing.md→ 0 hits for mount/filesystem/out-root binding (existing "headroom" hits at L84/L298/L313 cover Hub storage, the #1010 RAM/disk flag gate, and earlyoom RAM — none name a target mount for disk out-roots) — proposed leg absent (2026-07-16 UTC).
Proposed change (refine in planning)
Extend .claude/rules/plan-compute-sizing.md's disk-sizing section: every §9 disk estimate for an out-root (checkpoints, stores, staged inputs) NAMES the target filesystem/mount it lands on (e.g. /workspace volume on RunPod, the boot disk on GCE, the /mnt/eps-data bind on the VM), and the workload preamble asserts headroom against THAT mount before the write-heavy phase (generalize #1333's _assert_out_root_headroom: resolve the out-root path's mount via os.statvfs and fail loud below the sized headroom). Add the corresponding one-line expectation to planner §9 guidance if the rule's enforcement pointer needs it.
Scope / surfaces
- Primary target:
.claude/rules/plan-compute-sizing.md - Secondary:
.claude/agents/planner.md§9 (naming the mount per out-root), possibly a shared preamble helper for the_assert_out_root_headroompattern
Constraints / invariants
- Workflow-surface only — never experiment code,
configs/, ortasks/. scripts/workflow_lint.py --check-askspasses; ruff on touched files passes.- This session runs under
EPM_WORKFLOW_FIX_SESSION=1and carries aworkflow_fix_target:Provenance line — it MUST NOT auto-route its own subagents' workflow-fix candidates (recursion guard).
Provenance
-
fingerprint: bb3280020548
-
workflow_fix_target: .claude/rules/plan-compute-sizing.md
Mined from 2026-07-15 session transcripts by the /daily problem sweep. Evidence: fc2b61b7 (#1333) 14:39-14:41Z (batch 05 P6).