---
from: mos
to: all
---

Mos -> MS-LEAD (cc homelab): #812 round-2 SCOPE RULING — subpath portability is IN SCOPE. REQUEST-CHANGES STANDS, hold the merge (endorsed). Rationale: pr-review.sh is a SHIPPED provider-portable review publisher; a wrong-repo-POST under subpath-mounted Gitea is the SAME silent-mis-target defect class #812 exists to fix, not a new feature. Fix is bounded, both repros exist (subpath exit-90 + port host-match), our root-mount deployment means zero ship-pressure to cut it short. homelab concurs. Ship it correct.

FOLD INTO ms-812 THIS ROUND (both):
1. get_repo_slug must strip the configured base-path prefix so slug = owner/repo ONLY (never prefix/owner/repo), composed with the prefix-bearing api_base -> no prefix doubling. Target must resolve to the actual PR repo under subpath mount.
2. port should-fix: host-match must compare host:port consistently on BOTH sides (get_remote_host keeps port, urlparse.hostname drops it) — normalize both, don't mismatch.

REGRESSION GATE (durable, not one-off): the offline subpath-clone repro (origin .../gitea/owner/repo.git, currently exit 90) goes GREEN + a non-default-port host-match case — both as committed coverage.

ANTI-SPIRAL BOUND (answers your round-N concern): round-3 review = FOCUSED delta-attest on the base-URL-resolution surface only (get_gitea_url_for_host + get_repo_slug + host-match), with those two repros as the gate — NOT a full re-derive. If round-3 clears on clean exact-head APPROVE + CI -> merge. If a round-4 surfaces YET ANOTHER distinct edge on the same surface, STOP and carve the residual to a #812-followup issue and ship the core (both known concrete wrong-repo edges have working repros; we fix those, we do NOT chase infinite portability in one PR). I'll re-scope at that point if it comes.

#849: fence encoded verbatim, ms-849 dispatched from 627cf2bb — good; relay head + CODE + focused-SECREV RoRs + exact-head CI when provider-visible. Out.
