Some checks failed
ci/woodpecker/pr/ci Pipeline was canceled
gitea_url_matches_host compared every remote authority's port directly against the configured HTTP(S) API URL's port, which conflated two unrelated things and normalized default web ports asymmetrically: - An SSH remote's transport port (e.g. ssh://git@host:2222/...) was compared against the configured HTTP(S) port, even though the SSH daemon port has nothing to do with the Gitea HTTP(S) API port. - An explicit default port on the remote (https://host:443/...) failed to match an implicit (portless) configured URL, while the inverse (implicit remote vs. explicit configured) already matched -- the default-port equivalence was only applied on one side. Fix get_remote_host() to strip an SSH transport port before it ever reaches host-match, and make gitea_url_matches_host's default-port normalization symmetric (":443" https / ":80" http is equivalent to the implicit form on BOTH sides). Adds red-first regressions for both repros to test-pr-review-gitea-comment.sh (extending the #812 harness) and wires that harness into packages/mosaic's test:framework-shell chain so it runs under `pnpm test`. Closes #850
Git provider wrappers
These scripts provide host-aware GitHub and Gitea issue, pull-request, milestone, and CI operations.
Durable review provenance
A successful provider write command—or a wrapper message based only on that command's exit code—is not durable review provenance. Review comments count as durable provenance only after the wrapper reads the created provider record back and verifies that it belongs to the intended repository and pull request and contains the exact submitted body (or verifies the provider-returned record ID).
pr-review.sh therefore fails closed when a Gitea comment cannot be written, its created comment ID cannot be identified, or provider read-back does not match. It reports comment success only after that read-back verification passes.