Repository navigation
v0.9.38: favicon service, docs improvements - #9500
Merged
Merged
Conversation
…ain fallback (#9494) * feat(favicons): resolve every site icon through one server route with parent-domain fallback Icons were requested straight from Google in the browser, which shows Google's placeholder globe for any host it can't see (a 404 with an image body that an <img> treats as success), so private tenants and internal hosts rendered a generic placeholder. GET /api/favicon asks Google and DuckDuckGo server-side, where the 404 is visible, walks up to the parent domain so a tenant shows its platform's icon, never sends internal hosts or the destination itself anything, and caches results in Redis. Every surface now uses the shared <Favicon> or faviconSrc, and binary internal routes accept a user rate limit. * fix(favicons): 204 for no icon, only 404 is a provider miss, reject empty labels and non-DNS hostnames A miss is an ordinary answer, so it returns 204 (which an img still reports as failed) instead of an error status; binary internal routes may now declare several success statuses and present a no-content response, sharing the JSON builder's status validation. Providers are asked one at a time so a second only learns a host the first had no icon for, a non-200 body is never read, and anything but 404/410 counts as unavailable rather than a cached miss. * fix(favicons): keep the presenter's 204 literal and read only a 200 body before one classification * fix(favicons): annotate the presenter so each branch is checked against its own descriptor
- Imported documents took their token total from the embedding tokenizer's per-chunk counts, which estimate differently from the chunker that produced the source total, so totals read about 15% high. The prepared index now carries the manifest's total, matching the source document. - Bound manifest token and character counts to the integer columns they are written to, so an out-of-range bundle is refused before any work instead of failing each document at its final write. - Log "indexing with bundled vectors" instead of "generating embeddings" when a document's vectors come from the bundle.
…tifacts (#9496) * improvement(docs): inspect workflows on canvas and retire migration artifacts * improvement(docs): simplify expanded workflows to an interactive canvas * fix(docs): remove unused preview block export * chore(docs): drop retired export from unused baseline
…retry timeout-derived icons, no miss flash (#9497) * improvement(favicons): resolve platform tenants no provider can see, and retry icons chosen after a timeout A tenant on a platform whose domain has no icon at either provider, even at the parent (AWS sign-in portals, Coupa, GitLab Dedicated, Databricks apps, Salesforce, Okta preview, UKG, Jama), and a self-hosted gitlab./jira./testrail. host, now end their candidate walk at the platform's own site, after their own host and parents so a tenant's custom icon still wins. A parent's icon reached only because a more specific lookup timed out is cached for a day instead of thirty, since the host's own icon may exist. * improvement(favicons): correct the platform table from vendor docs and keep misses from flashing GitLab Dedicated instances live on gitlab-dedicated.com (and .systems pre-production); .site is their Pages domain, kept to match gitlab.io. Adds coupacloud.com, databricks.us, databricksapps.us, and testrail.io, each a suffix both providers miss at every level; drops entries the parent walk already resolves and the self-hosted sentry label, whose name collides with other products. A host with no icon is remembered client-side for the route's miss lifetime, so a remounted icon shows its fallback without an empty frame, and the cache key moves to v3 so stale misses for newly mapped platforms clear on deploy. * fix(favicons): keep provisional icons provisional through reuse, walk past cached parent misses, skip hosting suffixes A cached hit now records whether it was definite or provisional, so a host reusing a parent's timeout-derived icon inherits the one-day lifetime instead of a month. A cached miss at a parent skips only the candidates that parent's own walk covered, so a product fallback derived from the original host is still tried. The self-hosted product label no longer applies on a Public Suffix List private (hosting) suffix. Adds the Databricks military suffix the repo already recognizes, and the client remembers a failed icon only as long as the route retries an outage. * chore(favicons): import resolver test mocks from their own files
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 128 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
Contributor
[Medium impact] The changes affect icon loading across Sim, knowledge bundle imports, and the docs authoring workflow. The required favicon import structure must be fixed before merging; the stale docs benchmark is a separate non-blocking cleanup. FindingsSummaryThis PR adds a shared favicon service, preserves document token totals during bundle imports, and simplifies docs workflow previews.
|
) A failed load set per-instance state that pinned the icon to its fallback until it unmounted, so the five-minute miss window never reached an icon already on screen. The module-level miss cache is now the only failure record; a reducer only re-renders on error, so the next render after the entry expires asks again (a confirmed miss is still answered from the HTTP cache).
…#9502) * test(docs): exercise canvas interactions and container expansion * fix(docs): restore inline container expansion * test(search): verify navigation after streamed denial hydration
This branch was successfully deployed
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.
Uh oh!
There was an error while loading. Please reload this page.