Skip to content

Write the reclaim contract into docs/cleanup.md #455

Open

Description

@blooop

Work

Write the reclaim contract down: one table in docs/cleanup.md naming every artifact devlaunch causes to exist, what reclaims it, and what proves removal safe.

This is the map's destination artifact and the reason it is a map rather than a bug list. Today the answer is spread across docs/cleanup.md's prose, flows/lifecycle.rs's module header, the volume paragraphs, and three review reports, and the only way to find out that nothing reclaims an artifact is to fill a disk.

One row per artifact, and the rows are the union of what these tickets settled: workspace clones, .bare object stores, agent worktrees and the .pixi/envs copies inside them, the shared pixi download cache, devpod workspaces, docker images, the build cache, named volumes, orphaned volumes, metadata records, the completion cache, and clones outside repos_dir.

Each row states: what creates it, what reclaims it, what proves removal safe, and where the bytes were last measured. A row whose reclaim column says nothing, deliberately is a legitimate outcome and must carry its reason, because that is the difference between a decision and an oversight, and principle 2 permits the former only.

Constraints: docs/ prose carries no em or en dashes (test_docs_prose.py), and this page must not start saying "this README" (same guard). If a section moves between files, the guard that reads it moves in the same change. Consider whether this table wants a guard of its own asserting every artifact named in the code appears as a row, so the next artifact devlaunch invents cannot be added silently.

Blocked by every decision on the map, because a contract written before the decisions is a summary of guesses.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions