ux(clone): shorthand clone resolves the forge silently from ambient state — mirror-trap; say which host, warn on mirror=true #97
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#97
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?
How I got a wrong-forge clone without noticing (2026-07-15):
madtea clone sixfold_space/madtearesolves the FORGE for a shorthand from ambient config (session/global/host-keyed creds), not from any property of the repo the user has in mind. On a machine where a Gitea instance MIRRORS the codeberg repo under the same owner/repo, the identical command clones from whichever forge is ambiently resolvable that day: before a codebergauth loginit cloned the read-only Gitea mirror (stamping a gitea host and user); after the login the same command clones codeberg (stamping codeberg, hexajon). Byte-identical content, so nothing looks wrong — until a laterauth loginwith a codeberg token 404s against the stamped gitea URL, or a push bounces off the read-only mirror.Asks:
cloneoutput must NAME the forge host it resolved:Cloned into '...' (branch: main)says nothing;Cloned sixfold_space/madtea from <forge-host> into '...'would have surfaced the trap on day one. Same line should appear in the MCP madt_clone result.mirror: truein the repo metadata — when set, warn loudly: this is a read-only mirror, pushes will fail, and name the config knob if the user meant the source repo (a mirror's API metadata may carry the original URL).auth whoami-adjacent stamping ops (auth loginalready prints the URL — clone is the outlier).Not asking for interactive disambiguation of shorthands — just loud, honest output about which forge was chosen and whether the result is a mirror.