Skip to content

Web dashboard: a shared link previews with the sun icon - #65

Merged
robdevops merged 3 commits into
mainfrom
claude/envirobot-next
Nov 13, 2026
Merged

robdevops merged 3 commits into
mainfrom
claude/envirobot-next

Conversation

@robdevops

Copy link
Copy Markdown
Owner

Chat apps showed a blank preview for a shared dashboard link: the page had no Open Graph tags, and its icon was a data: URI, which no link preview can fetch.

  • The page carries Open Graph tags first in its head: og:title "Weather Dashboard", og:description, og:image (512×512 PNG, with type, size and alt), and twitter:card "summary".
  • og:image is the icon as this repository publishes it, https://raw.githubusercontent.com/robdevops/ecobot/main/lib/web_dashboard_icon.png. That is a full https address with nothing to set, which WhatsApp, Messenger, Discord and the others need, and ecobot-mcp can't know its own public address behind a proxy. Only link previews fetch it; the browser loads nothing from elsewhere. That address only works once this is on main, so Signal and Discord show no picture until then.
  • The page's favicon and apple-touch-icon are now a file beside the page, /dashboard/icon.png, linked relative to the page's path, so they're right behind any proxy. Without the inline icons the page is 19 KB instead of about 120 KB.
  • No new setting (an earlier MCP_DASHBOARD_URL was added and removed again within this branch).

Checks: python -m pytest -q -m "" 1,869 passed; python scripts/eval_prompts.py 101 of 101.


Generated by Claude Code

Chat apps build a link preview from the page's Open Graph tags, and the
page's icon is a data: URI, which can't be an og:image. The sun is now a
file beside the page (/dashboard/icon.png, 512 px, no token, any Host),
and the page carries og:title, og:description, og:image (with its type,
size and alt) and a Twitter "summary" card first in its head.

og:image is relative to the path the page was asked for (/dashboard:
"dashboard/icon.png"; /dashboard/: "icon.png"), so it is right behind a
proxy that maps a site's root to /dashboard/. New MCP_DASHBOARD_URL, the
page's public URL, makes it absolute and adds og:url, which WhatsApp,
Messenger, Telegram, Slack and Discord need: nginx's defaults leave
nothing in the request to build it from. README and
docs/configuration.md say so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
…view's; no MCP_DASHBOARD_URL

The favicon and apple-touch-icon were data: URIs, which no link preview can fetch. They now link icon.png beside the page,
relative to the path it was asked for, as og:image does, so apps that take a page's icon for its preview (Signal, iMessage) show
the sun with nothing to set, behind any proxy. MCP_DASHBOARD_URL goes: apps that want og:image absolute and don't take the icon
(WhatsApp, Messenger) show the title and line alone. The page is 19 KB instead of about 120.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
…ll https address with nothing to set

WhatsApp and Messenger want og:image as a full https address and take no page icon; ecobot-mcp can't know its own public
address behind a proxy. og:image is now the icon as this repository publishes it (raw.githubusercontent.com, main, image/png);
only a preview fetches it. The page's favicon and apple-touch-icon stay the file beside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WBwHofjb1g9onaYRdLZMbf
@robdevops
robdevops merged commit 6826269 into main Nov 13, 2026
3 checks passed
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.

2 participants