Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
# Conflicts: # app/pages/docs/[...slug].vue # package.json # pnpm-lock.yaml # pnpm-workspace.yaml
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Production bundleComparing
Largest module increases
|
# Conflicts: # app/pages/changelog.vue # app/pages/docs/[...slug].vue # nuxt.config.ts # package.json # pnpm-lock.yaml # pnpm-workspace.yaml # server/mcp/prompts/deploy/deployment-guide.ts # server/mcp/tools/blog/get-blog-post.ts # server/mcp/tools/deploy/get-deploy-provider.ts # server/mcp/tools/docs/get-documentation-page.ts # server/mcp/tools/docs/get-getting-started-guide.ts # server/mcp/tools/docs/list-documentation-pages.ts # server/routes/design.md.get.ts # server/routes/raw/index.md.get.ts # server/routes/sitemap.md.get.ts # server/routes/sitemap.xml.get.ts # server/utils/mcp.ts # shared/utils/docs.ts
| :search-status="status" | ||
| :fuse="fuse" | ||
| :loading="status === 'loading'" | ||
| :fuse="{ resultLimit: 25 }" |
Member
There was a problem hiding this comment.
You should keep fuse as a defined object here, why disable token search? 🤔
Collaborator
Author
There was a problem hiding this comment.
isn't useTokenSearch: true by default?
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.
Replaces
@nuxt/contentwithcomark-contenthttps://content.comark.dev
Moves content off a build-time SQLite database onto per-commit instances read from GitHub, served with ISR and kept fresh by a push webhook.
Content instances
8 instances, one repo each, one commit sha each. A push on any repo invalidates only the instances reading it.
Each instance also takes a
*_BRANCHenv override, so the push webhook can be exercised off a non-production branch (warns if one is active in production).Rendering and invalidation
ISR replaces prerendering (
nuxt.config.ts) — no route is prerendered any more. Content routes render on demand and stay on the CDN until purged, with a 300s TTL as the backstop for a missed webhook delivery.Push webhook (
server/api/revalidate.post.ts) — HMAC-verified, registered on the four content repos. Diffs the pushed commits against the previous manifest and purges exactly what changed:_payload.json, its/rawtwin/and/showcasetogether since each embeds the otherllms.txt,llms-full.txt,sitemap.xml,sitemap.md,blog/rss.xml,design.md)The new commit's search artifacts are warmed in the same pass, before the page purges land.
Cross-region ref invalidation (
server/utils/content/{cache,refs}.ts) — therepo+branch+dir → shapointers live in the Vercel Runtime Cache, which is regional. Each entry is written under a cache tag so a forced refresh callsexpireTag()and drops the pointer in every region (a plain rewrite only ever reached the region that handled the webhook).Build snapshots (
modules/snapshot/) — the build parsessite,examples,docs:4.xandcli:4.xand writes a snapshot into the function bundle, stamped with the commit it was parsed at.withSnapshot()hydrates a cold start from it instead of walking the content repository, and at a later commit still supplies every unchanged body. The raw source stays the authority for per-file reads,refresh()andwatch(). This is the fix for the cold-MISSregression flagged when this PR opened.Search
Client-side sqlite-wasm FTS5, running in a worker (
nuxt-workers), hydrated from each instance's immutable per-commit artifacts.contentHub()searches the active docs version, its command reference and the examples over one shared database, so a single query ranks across all three — the "CLI reference and examples are out of search" regression is closed. Targets hydrate independently: a sha rotated mid-session on one instance cannot sink the others.Other changes
Navigation (
server/api/navigation/[version].get.ts) — one version's tree, plus the blog and examples subtrees, withstemstripped.app.vueused to fetch every version's tree and filter it down client-side.Payload caching (
server/middleware/payload-etag.ts) — a weaketagon_payload.jsonfor content routes, so client-side navigation gets a304from the edge instead of re-downloading the body. Two temporary patches (nuxt,@nuxt/nitro-server) dropcrossorigin="anonymous"from same-origin payload preloads, which otherwise makes the preload unusable.Tracing (
server/plugins/otel.ts) — comark-content's parse, cache and source spans land in Vercel Observability.Highlighting — rangi instead of shiki and twoslash.
Examples — canonicalized to
/docs/examples/**(was served under three versioned URLs), with redirects.Dependencies — removed
@nuxt/content,@nuxtjs/mdc,nuxt-content-twoslash,shiki,twoslash,better-sqlite3; addedcomark-content,rangi,@sqlite.org/sqlite-wasm,nuxt-workers,@octokit/webhooks-methods,@vercel/otel.Tests — 12 new unit suites covering instance resolution and sources, the revalidate diff, ref cache tags, snapshot assets, content routes and paths, dotted frontmatter, and the multi-instance search targets.
Metrics
Client bundle
From the bundle-size workflow,
b82e8fb2vs3918b081:Build
Rows marked † were measured before the build snapshots landed and need a re-measure.
mainsite,examples,docs:4.x,cli:4.x)A one-word docs typo used to rebuild all 2492 routes. It now purges the one URL that changed.
Time to publish
mainRuntime (TTFB,
/docs/4.x/getting-started/introduction)Measured before the build snapshots landed; the cold
MISSrow is what they target.mainHIT)MISS)Open items
CONTENT_PARSER_VERSIONis bumped by hand when the plugin chain changes.Before merge
Needs
VERCEL_BYPASS_TOKEN(build + runtime),WEBHOOK_SECRET,NUXT_OG_IMAGE_SECRET, and push webhooks onnuxt/nuxt.com,nuxt/nuxt,nuxt/examplesandnuxt/cli.