mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-09 13:01:00 +00:00
Egress was already correct — the client fetches through safeFetch with requirePublicHost pinned off the user's opt-in, manual redirects and a timeout — but the check on the value we STORE was only a side effect of the live probe the connect route happens to run first. That makes the guard contingent on the probe's placement rather than on the input. Run isPublicUrl at input time, gated on the same self-hoster opt-in, so the URL that gets encrypted onto the row is the URL that was validated. Cover the alt-notation classes the helper knows about; each case asserts the probe was never reached, which is what distinguishes the input-time refusal from the fetch-time one.