Summary
`apps/web/src/lib/ssrf-guard.ts` correctly rejects private destinations that hide behind alternate IPv6 spellings or public sibling DNS records, but nothing on `main` asserts those paths. A regression would be silent: `assertPublicHttpUrl` would return a URL and the caller would fetch it.
Acceptance
Context
Detection cases salvaged from #1428 after #1381 landed the security outcome first. Related: #1484 / #1486 (IPv6 literal range-check + first module tests).
Summary
`apps/web/src/lib/ssrf-guard.ts` correctly rejects private destinations that hide behind alternate IPv6 spellings or public sibling DNS records, but nothing on `main` asserts those paths. A regression would be silent: `assertPublicHttpUrl` would return a URL and the caller would fetch it.
Acceptance
Context
Detection cases salvaged from #1428 after #1381 landed the security outcome first. Related: #1484 / #1486 (IPv6 literal range-check + first module tests).