[docs] upgrade @vercel/geistdocs to 1.19.0 - #3170
Conversation
Picks up the new footer (Footer no longer takes a config prop), the heading font-weight change to 450, and the tightened navbar OSS-menu marks. Also switches the site's own navbar logo from the vendored geistcn LogoWorkflow fallback to the package's LogoWorkflowSdk, using its new tuned default height instead of a hardcoded 15. Fixes a resulting regression: navbarOssProducts entries lacked an `id`, so resolveOssProducts' `product.id !== activeProduct` filter evaluated to `undefined !== undefined` (false) for every entry and emptied the OSS flyout. Added stable `id`/`label` values to each entry.
…ride The manual navbarOssProducts array (with local logo imports/heights) is no longer needed now that the package's DEFAULT_OSS_PRODUCTS list already includes all these SDKs with proper id/label/section values. navbarActiveProduct: 'workflow-sdk' now handles self-exclusion instead.
The docs, cookbook, and v5 route layouts plus the shared DocsLayout container hardcoded bg-background-100 (pure white), so /docs/* pages rendered on a lighter surface than the rest of the site. Switch them to bg-background-200, matching the geistdocs template's page background.
The marketing homepage headings hardcoded font-semibold (weight 600) plus manual responsive sizes/tracking, so they rendered heavier than the docs headings that now use Geist's 450 heading weight. Swap each display heading to the package's text-heading-* utilities, which bundle the 450 weight, line-height, and tracking, mapped across breakpoints to the nearest design-system size. Inline label/emphasis spans keep their own weight.
Extends the homepage heading change to the /worlds section: the world listing, detail, compare, and building-a-world pages plus their components hardcoded font-semibold display headings. Swap each to the package's text-heading-* utilities (450 weight + line-height + tracking), mapped across breakpoints to the nearest design-system size. Mono stat numbers, per-benchmark item labels, and the dialog title keep their own weight.
The homepage sections were wrapped in a grid divide-y border-y sm:border-x container, drawing side borders and divider lines between every section. Drop that framing so the sections flow with whitespace separation.
Drop the divide-x column dividers still drawn inside the use-cases (3-col), feature-grid (2-col), and templates sections, so no vertical lines remain after the section-grid removal. Section padding keeps the columns visually separated.
The two 2-col feature blurbs ("Deep integration with AI SDK.",
"Durable agents by default.") hardcoded their size/leading/tracking
plus font-medium/font-semibold weights. Those manual sizes already
equal text-heading-20/24, so swap to text-heading-20 lg:text-heading-24
— same sizes, but the Geist 450 heading weight (lead drops 600 -> 500
via the utility's [&>strong] rule). The lead stays gray-1000 for
emphasis; body stays gray-900.
|
🧪 E2E Test Results❌ Some tests failed ❌ Failed E2E Tests💻 Local Development (1 failed)nuxt-stable (1 failed):
📦 Local Production (1 failed)astro-stable (1 failed):
E2E Test SummarySummary
Details by Category✅ ▲ Vercel Production
❌ 💻 Local Development
❌ 📦 Local Production
✅ 🐘 Local Postgres
✅ 🪟 Windows
✅ 📋 Other
✅ vercel-multi-region
|
📊 Workflow Benchmarkscommit Backend:
📈 STSO distribution vs main (inline / queue-hop histograms)1020 steps (inline) Cumulative STSO time: main 395612ms → this run 418495ms (Δ +22883ms, +6%) 1020 steps (queue-hop) Cumulative STSO time: main 8138ms → this run 6854ms (Δ -1284ms, -16%) 📜 Previous results (3)d85d2f9Fri, 31 Jul 2026 15:53:45 GMT · run logs
4092606Fri, 31 Jul 2026 09:10:39 GMT · run logs
e303db0Thu, 30 Jul 2026 22:50:55 GMT · run logs
ℹ️ Metric definitions & methodologyThe collapsed STSO distribution section above buckets every step gap of the sequential-steps run (not a sampled window), split by whether the step ending the gap ran inline — in the same warm process as the step before it, so the gap is pure framework overhead — or after a queue-hop — the first step of a fresh process, which pays queue dispatch, client reinit and event-log replay. Bars overlay the two runs: Best/P75/P90/P99 deltas compare against the most recent benchmark run on Metrics — TTFS: time to first step body (in-deployment start() → first step body, deployment clocks) · STSO: step-to-step overhead (gap between consecutive step bodies) · WO: workflow overhead (whole-run time outside step bodies, in-deployment anchored) · SL: stream latency (in-deployment write → read propagation, readAt - writtenAt) · SO: stream overhead (end-to-end write+consume time beyond the modelled generation window) Scenarios — step: one trivial no-op step, no stream; no hooks, so the run stays in turbo mode (in-process fast path) · stream: one streaming step; no hooks, so the run stays in turbo mode (in-process fast path) · hook + stream: registers a hook before one step, which exits turbo mode (dispatch path) · 1020 steps: 1020 trivial sequential steps; STSO is measured between consecutive steps in the given step ranges, and WO is the whole-run overhead outside step bodies · stream latency: parallel reader/writer steps on a dedicated stream; SL is the in-deployment write->read propagation (readAt - writtenAt) · stream overhead (text): writer streams 300 variable-length text token deltas paced at 100/s for 3s (a haiku-size LLM's token throughput) while a parallel reader drains the whole stream; SO is the end-to-end write+consume time beyond the 3s generation window (overhead/backpressure) · stream overhead (structured): same workload as stream overhead (text), but each delta is an AI-SDK-style structured object ({ type: 'text-delta', id, text }) instead of a raw string, so the SO gap vs the text scenario is the added serialization cost 🔴 marks a percentile over its target (within target is left unmarked). Targets (p75/p90/p99, ms) — TTFS 200/300/600 · SL 50/60/125 · SO 250/500/1000 All metrics are measured from deployment-side timestamps only. Runs are triggered by an in-deployment route that stamps the anchor ( Cold starts are kept in the numbers on purpose — they are part of real bursty-workload latency. The workbench deployment cold-starts the |
… section Switch the "Build anything with" and "Get started" sections from grid-cols-3 / [1fr_2fr] to [1fr_1.5fr], matching the "Workflow SDK on Vercel" section above so their code block and cards share the same right-hand column. The wider text column also lets "Build anything with" sit on one line. Normalize both to outer padding + column gap so the code block and cards line up exactly.
Drop the right padding at md+ (md:pr-0) so the code block and template cards reach the same right edge as the "Workflow SDK on Vercel" dashboard above, which bleeds to the container edge. Mobile keeps its padding.
Drop divide-y/lg:divide-y-0 from the feature grid so no border shows between "Deep integration with AI SDK" and "Durable agents by default".
Replace the ad-hoc [1fr_1.5fr] + md:pr-0 + lg:pl-* positioning on the Vercel, use-cases, and templates sections with a shared grid-cols-12 layout (text col-span-5, visual col-span-7), matching the vercel.com marketing grid convention. The Vercel dashboard becomes a proper grid cell instead of an absolutely-offset right-bleed, so all three sections' visuals align by the grid columns with no magic values.
Widen the homepage container from max-w-[1200px] to the site's max-w-[1448px] (matching the navbar/footer) and reduce the section gutters from sm:px-12 to sm:px-6, so section content lines up with the navbar's content edges (right edge flush at the same column as the navbar and footer). Also convert the "Reliability-as-code" section to the shared grid-cols-12 layout (col-span-5 text / col-span-7 code example), replacing its lg:grid-cols-[330px_1fr] magic values.
Move the mobile/desktop gutter (px-4 sm:px-6) onto the homepage root container and remove the horizontal padding from every section component. Section content still aligns with the navbar/footer content edges, but the gutter is now defined once instead of repeated per section. Inner-element padding (tab buttons, visual internals) is unchanged.
- Left-align the centered content sections on mobile only (FeatureCardWide, TweetWall heading, Frameworks, Run-anywhere heading/buttons), restoring their centered layout at sm and up. - Make the "Inspect every run" timeline span edge-to-edge by shifting its gantt from a 14-col grid (content in cols 2-13) to a flush 12-col grid. - Constrain the run-anywhere viz cluster to the code block width so the provider cards (AWS/Docker/etc.) overlap behind the code block again.
Position the flanking provider-card groups relative to the centered code block (right/left calc(50%+140px)) instead of the section edges, so the cards sit behind and overlap the code block regardless of the section width.
…ght edge Drop max-w-3xl mx-auto from the workflow/non-workflow code examples so they fill the col-span-7 cell, aligning the code block's right edge with the layout's right content edge (matching the tabs and other sections).
Break the AI SDK / durable-agents feature blurbs into a heading and a separate muted description with a gap (matching the other sections) instead of one inline paragraph, and drop the trailing periods from the feature titles so they read as headings.
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Signed-off-by: christopherkindl <53372002+christopherkindl@users.noreply.github.com>
| @@ -2365,10 +2365,10 @@ importers: | |||
| version: 0.454.0(react@19.2.4) | |||
| monaco-editor: | |||
| specifier: latest | |||
| version: 0.55.1 | |||
| version: 0.56.0 | |||
There was a problem hiding this comment.
[P1] This lockfile refresh resolves the unpinned monaco-editor: "latest" dependency from 0.55.1 to 0.56.0. monaco-vim@0.4.4 imports internal ESM entry points removed in 0.56.0, which is already causing the workflow-swc-playground Turbopack deployment to fail. Please pin monaco-editor to 0.55.1 in workbench/swc-playground/package.json and regenerate the lockfile, or upgrade monaco-vim to a verified compatible version.
The lockfile refresh resolved the unpinned `monaco-editor: "latest"` from
0.55.1 to 0.56.0, breaking the workflow-swc-playground Turbopack build.
0.56.0 rewrote its exports map to reroot subpaths under `esm/vs/`
("./*": "./esm/vs/*.js"). monaco-vim@0.4.4 deep-imports
`monaco-editor/esm/vs/editor/editor.api` and
`.../common/commands/shiftCommand`, which now map to
`esm/vs/esm/vs/...` — a path that does not exist. Under 0.55.1
("./*": "./*") both specifiers resolve to real files.
monaco-vim 0.4.4 is the latest published release, so pinning
monaco-editor is the only available fix.
karthikscale3
left a comment
There was a problem hiding this comment.
Re-reviewed at d85d2f9. The Monaco lockfile regression is fixed: workbench/swc-playground now pins monaco-editor to 0.55.1, the lockfile resolves monaco-vim@0.4.4 against 0.55.1 throughout, and the previously failing SWC playground deployment is green. No remaining code-review blockers found. The current Nest/Postgres E2E failure is unrelated infrastructure failure while pulling postgres:18-alpine from Docker Hub.
|
No backport to This is a docs-app redesign: a To override, re-run the Backport to stable workflow manually via |
@vercel/geistdocs@1.17.1(new flyout menu, new footer)bg-background-200(vercel.com style)(There are way more things to clean up to match the vercel style, please see this as the first round of design sync. We're working continuously to centralize more components and tokens at package level to streamline things better)