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:
- 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.
- 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.
- 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.
Question
Is
repos_dira 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:
--prune's entire scan root, its per-repo locks and its clone placement.XDG_CACHE_HOMEsafety property for that root, which is the one hazardCLAUDE.mdnames as needing aconfig.tomlmost hosts do not have.repos_dirmakesdl --lsreportdevlaunch:false,unsaved:nullandSIZE -for clones devlaunch itself made, sowfnever cleans them.repos_dirthe config no longer names, where themetadata.jsonrecord survives as the only pointer becauseresolve_clone_pathprefers a recorded path that is present.So there are three honest answers, and picking one is worth more than leaving it ambiguous:
docs/page, the listing degradation is a bug to fix, and every reclaim path has to be correct under 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_diror the configuredrepos_dir. Ifrepos_diris 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
--lsreports a moved-repos_dirclone 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.