Skip to content

repo-hygiene: dry-run emits no sizes and apply re-enumerates — no manifest, no resume, gate pays the walk twice #995

Description

@kyle-sexton

Problem

Three coupled gaps in the dry-run→confirm→apply flow:

  1. No sizes. Planned remove: lines carry no per-path or total size, so the confirmation gate cannot state reclaimable space; the session needed a second manual du pass to tell the user "~3.3 GB".
  2. Apply re-enumerates. --apply re-runs the same full walks the dry-run just did (cost doubled; see the find-perf issue for walk cost).
  3. No manifest/resume. A killed apply leaves partial state with no record of what remains; discovering it costs another full walk. (Removal is idempotent, so correctness holds — only cost.)

Fix direction

Dry-run writes a manifest (path + size + class); the confirm gate surfaces the totals; --apply consumes the manifest (with a staleness guard, e.g. re-stat before rm) instead of re-walking; resume = re-apply surviving manifest entries.

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: mediumReal value, no hard deadline; normal backlog flow.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions