Files
stack/packages/mosaic/framework/tools/git/pr-review.sh
mosaic-coder dac9838b26
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
fix(framework): guard dispatch-level host resolution against a missing git origin (pr-review.sh)
Independent review of PR #896 found the -r/--repo + -H/--host overrides had a
real bug that this addresses:

1. The approve/request-changes/comment dispatch bodies each independently
   called a BARE `host=$(get_remote_host)` (used only for a best-effort
   tea-login guess) that ignored -H/--host entirely and, under `set -e`, died
   SILENTLY (exit 1, zero stdout/stderr) whenever there was no git origin at
   all — exactly the "reviewer worktree with no usable origin" case -r/-H
   exist to support. This was WORSE than the pre-5/5c baseline, which at
   least failed loud at detect_platform. Fixed by preferring -H/--host and
   otherwise tolerating a missing/failing git-remote lookup for that
   best-effort guess: `host="${HOST_OVERRIDE:-$(get_remote_host 2>/dev/null || true)}"`.

2. The regression test's "no git origin" fixture was a subdirectory NESTED
   inside this checkout, so `git remote get-url origin` resolved UPWARD to the
   checkout's own real origin — the "tolerates a missing origin" assertions
   never actually exercised a no-origin case. Fixed by creating that fixture
   via `mktemp -d` under the system /tmp (truly outside any .git ancestry) and
   additionally bounding it with GIT_CEILING_DIRECTORIES, plus a fixture
   self-check that fails the harness if `git remote get-url origin` ever
   resolves from inside it. Extended coverage to approve/request-changes (not
   just comment), each asserting the run is not silently dead (exit != 0 with
   zero combined output) in the true no-origin dir.

Reproduce-first evidence: with the CORRECTED fixture, re-running the
regression test against the previous (round-1) pr-review.sh reproduces the
exact reported failure — "died SILENTLY (exit 1, zero output)" — for the
`comment` action; the fix in this commit resolves it for comment, approve,
and request-changes alike.

Re-verified: pnpm run test:framework-shell (both pr-review tests + full
chain) green; shellcheck 0 new findings; grep -niE 'jason|woltje|jarvis' 0
hits; verify-sanitized.sh passed.

Part of #891
2026-07-25 16:46:13 -05:00

34 KiB
Executable File