Skip to content

fix: stop favicon requests for private chat-link hosts - #245

Open
leoisadev1 wants to merge 1 commit into
mainfrom
fix/web-private-host-favicon
Open

fix: stop favicon requests for private chat-link hosts#245
leoisadev1 wants to merge 1 commit into
mainfrom
fix/web-private-host-favicon

Conversation

@leoisadev1

Copy link
Copy Markdown
Member

What Changed

Private, reserved, Tailscale, and special-purpose hosts no longer get a Google favicon request from chat markdown or the mobile feed. The host classifier lives in @t3tools/shared so web preview tabs and chat links use the same rule. Public links still show the favicon.

Why

A link to http://192.168.1.10 or http://localhost:3000 was leaking that hostname to a public favicon provider.

Adapted from pingdotgg/t3code#5838.

UI Changes

Private-host links in bot/group markdown use the globe fallback. Public hosts are unchanged.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I linked the accepted plugin or provider proposal in Why, or this PR does not add one
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Verification

  • vp test run packages/shared/src/favicon.test.ts packages/shared/src/hostClassification.test.ts apps/web/src/browser/browserTargetResolver.test.ts (53 tests)
  • targeted lint/format
  • Live ChatMarkdown path is the bot/group renderer. Native mobile was not run on a device.

Implemented and verified by Grok 4.6 High in Grok Build via Orca.

Chat markdown and mobile feed links asked Google for a favicon of every
host, including loopback, RFC1918, Tailscale, and .local names. Shared
classification now refuses those hosts so the globe fallback is used
instead.

Adapted from pingdotgg#5838.
@vercel

vercel Bot commented Sep 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
akeru-bot-landing Building Building Preview Sep 10, 2026 6:22pm UTC

Request Review

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Sep 10, 2026
@greptile-apps

greptile-apps Bot commented Sep 10, 2026

Copy link
Copy Markdown

Greptile Summary

Summary

  • Host classification and favicon URL generation are now shared across applications.
  • Web markdown links use a globe fallback for private, reserved, local, and Tailscale hosts instead of loading a public favicon URL; public links retain favicon rendering.
  • Repository identity resolution now prioritizes origin and falls back to upstream.

T-Rex validation blocked

  • A sequential runtime capture for the repository-identity harness could not be completed because the command-execution connection closed before valid output was captured.

Confidence Score: 5/5

Safe to merge: no actionable defects were established.

The final finding set is empty. Rendered markdown-link checks confirmed safe favicon behavior for private and public hosts.

Files Needing Attention: No files require follow-up changes.

T-Rex T-Rex Logs

What T-Rex did

  • Validated favicon rendering across six web markdown-link cases, confirming globe fallback for private IPv4, reserved, local, Tailscale hostname, and Tailscale CGNAT links, while a public GitHub link correctly used a Google favicon URL without the fallback.
  • Authored a focused repository-identity harness to verify origin preference and the upstream-only fallback, but the required sequential runtime capture could not complete because the command-execution connection closed before valid output was captured.
  • Referenced the harness script trex-artifacts/repository-identity-origin-contract.sh as the harness reference, and noted that prior logs could not be used because concurrent execution invalidated them.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "fix: stop favicon requests for private c..." | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant