mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 14:16:28 +03:00
Both review bots found real gaps in the first pass: candidates were verified as local branch names only, so an origin/HEAD target with no local checkout fell through, and stripOrigin() dropped upstreams on any remote not named origin (fork workflows tracking upstream/release). Candidates now carry a display name plus the revs to try in order: the upstream's remote rev wins outright (it tracks the actual merge target, so it beats a possibly stale local branch of the same name), origin/HEAD tries the local branch then the remote-tracking ref, and the conventional names each try local then origin/<name>. git.base keeps reporting the friendly branch name while the diff runs against whichever rev resolved. Two new failing-first tests: remote-only default branch, and an upstream on a remote named upstream with no local base branch. Prepared with AI assistance (Claude Code), directed by @pbakaus. Co-Authored-By: Claude Code <noreply@anthropic.com>