Skip to content

Is repos_dir supported or vestigial #460

Description

@blooop

Question

Is repos_dir a supported configuration option, or is it vestigial?

Raised by #452, which found that deciding this collapses most of its second half either way, and that nothing user-facing documents the option at all: the README does not mention it, and docs/ has one incidental clause.

What it does today, undocumented:

  • Moves --prune's entire scan root, its per-repo locks and its clone placement.
  • Defeats the scratch-XDG_CACHE_HOME safety property for that root, which is the one hazard CLAUDE.md names as needing a config.toml most hosts do not have.
  • Degrades four listing surfaces: a moved repos_dir makes dl --ls report devlaunch:false, unsaved:null and SIZE - for clones devlaunch itself made, so wf never cleans them.
  • Leaves the one population on this map that is both unreclaimed and unnamed: clone trees under a repos_dir the config no longer names, where the metadata.json record survives as the only pointer because resolve_clone_path prefers a recorded path that is present.

So there are three honest answers, and picking one is worth more than leaving it ambiguous:

  1. Supported — then it gets documented in the README and the docs/ page, the listing degradation is a bug to fix, and every reclaim path has to be correct under it.
  2. Vestigial — then say so, and the listing degradation stops being a bug and becomes a documented consequence of an unsupported knob. Cheapest, and principle 2's "the user can see it" is satisfied by a sentence.
  3. Removed — deleting beats adding (principle 3's simplicity clause). Establish first whether anything depends on it: the test suite scopes it (test/conftest.py), which is not the same as a user relying on it.

Note the interaction with this map: R1 in the map's Notes says a reclaim path's domain comes from cache_dir or the configured repos_dir. If repos_dir is vestigial or removed, R1 simplifies to one root, and several tickets get easier. That is a reason to decide it, not a reason to prejudge it.

How the answer gets tested: if supported, a test asserting --ls reports a moved-repos_dir clone as devlaunch's own. If vestigial or removed, the docs guard covers the sentence, and any test that scoped it is updated in the same change.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions