Investigate memory and disk growth
Read-only triage first. Active tasks, shared browser/preview, retained work and caches have different owners and lifetimes.
Diagnose
Section titled “Diagnose”On Shipyard inspect free -h, df -h, and docker stats --no-stream. Measure selected repository/cache/state directories with du -sh rather than traversing the whole home directory. Inspect process summaries without dumping full command lines or environments that may contain secrets.
Separate API initialization, dashboard workers, browser processes, test containers, Cargo compilation and retained disk data. Docker ceilings are not reservations. RSS is not additive physical RAM; use process PSS when available and record the measurement scope and sample interval. Compare like workloads with recorded measurements.
Recovery choices
Section titled “Recovery choices”Stop only an owned task that is no longer needed, using its normal archive path. Retained volumes/companion edits are intentional and are not automatically garbage. Coordinate before stopping the shared dashboard/browser. A compilation lock limits peak concurrency; do not remove it to speed up parallel builds.
Verify and defer cleanup
Section titled “Verify and defer cleanup”Re-measure after the selected task stops. Before deleting a volume, cache, checkout or scratchpad, establish ownership, active use, uncommitted work and retention requirements. Periodic cleanup remains a backlog item; no prune job is enabled. Record recurring growth with redacted evidence for a targeted fix.