atproto git client atgc.codes

feat(doctor): report which merge route the knot's mirror answers #1416

targeting main from claude/doctor-merge-row
Merged opened by and assigned to orbit-nodachi.test.pds.did.bot
targeting main from claude/doctor-merge-row

doctor remote gains a merge row: it probes the knot's mirror for sh.tangled.git.temp2.mergeCheck and both mergeCommit names with credentialless requests and an empty body, so a route that exists answers 400 or 401 and one that is not routed answers 404. It reports which merge name answers; a mirror that answers only the legacy sh.tangled.git.mergeCommit gets a note rather than a failure, because pr merge falls back after one 404.

Closes #1362. The row is additive in the text report and in --json, and no probe can carry a token or a body that names a branch, a commit or a repo. Today's live mirror answers 401 under both names, so the legacy fallback can go in a later change.

🤖 Generated with Claude Code

Commits 1

feat(doctor): report which merge route the knot's mirror answers