Clone destination layout is hardcoded; users want different conventions #75
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-04-28T19:46:13Z - https://github.com/coilysiren/repo-recall/issues/26
Current behavior
POST /api/cloneruns:(
src/routes/actions.rs, theclone_activehandler — also the comment in src/routes/actions.rs:\"runsgh repo clone <full_name>into the scan cwd\".)gh repo clone owner/namedefaults to./name— so the resulting layout is:i.e. flat, no org grouping. For my install with
REPO_RECALL_CWD=~/projects, clicking the button oncoilysiren/repo-recallwould produce~/projects/repo-recall.Why this is awkward
That flat layout doesn't match how a lot of people organize repos on disk. A non-exhaustive list of conventions in the wild:
~/projects/<repo>. Fine until you have two repos with the same name from different orgs.~/projects/<org>/<repo>(e.g.~/projects/coilysiren/repo-recall). What I want — disambiguates same-named repos and matchesgh's own repo listing structure. The Homebrew formula caveats hint this is the maintainer's layout too (REPO_RECALL_CWD=\"~/projects/coilysiren\"— i.e. one level under~/projectsis the org).~/src/github.com/<org>/<repo>. Common with Go devs and anyone who clones from multiple forges.~/work/<repo>, personal under~/personal/<repo>, OSS contributions under~/oss/<org>/<repo>.The current endpoint commits to convention #1 and gives the user no way to express any of the others. For a tool whose explicit value prop is "I already know how you organize your repos" (it walks
cwdto find them), forcing a single layout for the inverse direction (clone) is asymmetric.What I'd want
Configurable destination strategy. Rough sketches, in increasing order of complexity:
REPO_RECALL_CLONE_DEST=\"{cwd}/{owner}/{repo}\"(default\"{cwd}/{repo}\"to preserve current behavior). Trivial to implement, covers conventions 1–3 directly.REPO_RECALL_CLONE_DEST_coilysiren=\"~/oss/coilysiren/{repo}\". Covers convention #5.<cwd>/<org>/..., clone the new one alongside it. Best UX (matches the user's existing structure with no config) but adds ambiguity when the org has zero or one prior repos. Would need a fallback to one of the templated options.Strategy #1 alone is probably enough for a first cut. The button copy could reflect the resolved path so the user sees
Clone to ~/projects/coilysiren/repo-recallbefore clicking, and isn't surprised when it lands somewhere they didn't expect.Adjacent: surface the destination in the UI
Independent of which strategy is picked, the dashboard's clone button currently doesn't tell the user where the repo will land. For something that touches their disk, a hover tooltip or inline
→ <path>would prevent the "oh, it cloned there?" surprise.🤖 Generated with Claude Code (auto mode)