fix: stop favicon requests for private chat-link hosts - #245
Merged
Merged
Conversation
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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Greptile SummaryThis update centralizes privacy-aware favicon URL generation in the shared package and applies it across web previews, web chat links, and mobile chat links. Private, loopback, reserved, Tailscale, special-purpose, malformed, and public-origin handling remains covered. Confidence Score: 5/5No blocking issues remain; the change is safe to merge. There are no accepted new findings and no outstanding previous findings. Reviews (3): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile |
This was referenced Sep 14, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Chat markdown and the mobile feed requested Google favicons for every link host, including loopback, private-network, Tailscale, and special-purpose addresses. That disclosed private hostnames to a public service.
Changes
Private, reserved, Tailscale, malformed, and special-purpose hosts now use the globe fallback. The classifier and favicon URL builder live in
@t3tools/shared, so web preview tabs, web chat links, and mobile chat links use the same rule. Public links keep their favicon.Adapted from pingdotgg/t3code#5838.
Verification
vp test run packages/shared/src/favicon.test.ts packages/shared/src/hostClassification.test.ts apps/web/src/browser/browserTargetResolver.test.ts: 53 passed.git diff --checkpassed. The lint run reports four pre-existing unused-symbol warnings in currentmain's ChatMarkdown change; this PR does not touch those symbols.Native mobile was not run on this Linux host.
Implemented and verified by GPT-5.6 Sol in T3 Code via the Codex harness.