Skip to content

feat(explorer): absolutize locally-cached avatar URLs - #4

Merged
mikezupper merged 1 commit into
mainfrom
feat/absolutize-cached-avatar-urls
Jun 25, 2026
Merged

feat(explorer): absolutize locally-cached avatar URLs#4
mikezupper merged 1 commit into
mainfrom
feat/absolutize-cached-avatar-urls

Conversation

@mikezupper

Copy link
Copy Markdown
Contributor

The explorer now serves ENS avatars it resolved to image bytes (NFT / ipfs records) as a root-relative path /api/v1/orchestrators/{addr}/avatar. Url::parse() fails on a relative URL, so valid_thumbnail_url silently dropped these, and Discord needs an absolute URL to fetch a thumbnail server-side anyway.

Absolutize avatar_url against the public EXPLORER_BASE_URL in get_orchestrator/get_gateway — covering webhook embeds, DMs, and commands in one place. Absolute http(s) values and unresolved ipfs/eip155 records pass through unchanged (downstream validation still drops the non-http ones), so no regression.

The explorer now serves ENS avatars it resolved to image bytes (NFT /
ipfs records) as a root-relative path /api/v1/orchestrators/{addr}/avatar.
Url::parse() fails on a relative URL, so valid_thumbnail_url silently
dropped these, and Discord needs an absolute URL to fetch a thumbnail
server-side anyway.

Absolutize avatar_url against the public EXPLORER_BASE_URL in
get_orchestrator/get_gateway — covering webhook embeds, DMs, and commands
in one place. Absolute http(s) values and unresolved ipfs/eip155 records
pass through unchanged (downstream validation still drops the non-http
ones), so no regression.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mikezupper
mikezupper merged commit cf9795f into main Jun 25, 2026
1 of 2 checks passed
@mikezupper
mikezupper deleted the feat/absolutize-cached-avatar-urls branch June 25, 2026 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant