Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Update docs by haydenbleasel · Pull Request #349 · vercel/workflow · GitHub
Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update docs by haydenbleasel · Pull Request #349 · vercel/workflow · GitHub
Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update docs by haydenbleasel · Pull Request #349 · vercel/workflow · GitHub
Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Update docs by haydenbleasel · Pull Request #349 · vercel/workflow · GitHub
Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update docs by haydenbleasel · Pull Request #349 · vercel/workflow · GitHub
Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update docs by haydenbleasel · Pull Request #349 · vercel/workflow · GitHub
Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Update docs by haydenbleasel · Pull Request #349 · vercel/workflow · GitHub
Skip to content

Update docs - #349

Merged
haydenbleasel merged 51 commits into
mainfrom
geistdocs
Nov 20, 2025
Merged

Update docs#349
haydenbleasel merged 51 commits into
mainfrom
geistdocs

Conversation

@haydenbleasel

Copy link
Copy Markdown
Contributor

No description provided.

@changeset-bot

changeset-botBot commented Nov 14, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 547186c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercelBot commented Nov 14, 2025

Copy link
Copy Markdown
Contributor

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

ProjectDeploymentPreviewCommentsUpdated (UTC)
example-nextjs-workflow-turbopackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-nextjs-workflow-webpackReadyReadyPreviewCommentNov 19, 2025 7:30pm
example-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-astro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-express-workflowErrorErrorNov 19, 2025 7:30pm
workbench-hono-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nitro-workflowErrorErrorNov 19, 2025 7:30pm
workbench-nuxt-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-sveltekit-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workbench-vite-workflowReadyReadyPreviewCommentNov 19, 2025 7:30pm
workflow-docsReadyReadyPreviewCommentNov 19, 2025 7:30pm

Comment threaddocs/app/rss.xml/route.ts Outdated
Comment threaddocs/app/rss.xml/route.ts
Comment threaddocs/app/actions/feedback/index.ts
repository,
}: {
repository: RepositoryInfo;
} = await octokit.graphql(`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you using gql out of interest? And where is this feedbacj going too?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because GH Discussions don't exist on the REST API. https://github.com/orgs/community/discussions/23483

The feedback opens a GH Discussion under the category defined in the environment variable. This is disabled until we get a new GH App to handle it (requested from IT).


const search_docs = (writer: UIMessageStreamWriter) =>
tool({
description: 'Search through documentation content by query',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we be more explicit here and state the workflow documentation?

(doc) =>
`**${doc.title}**\nURL: ${doc.slug}\n${
doc.description || ''
}\n\n${doc.content.slice(0, 1500)}${

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a risk here that we cut off some page content?

Comment threaddocs/app/api/chat/tools.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated
Comment threaddocs/app/api/chat/route.ts Outdated

# Instructions
- Assume users are using Vercel products and open-source frameworks.
- Assume users are referring to Vercel products if they are not explicitly mentioned (e.g. Toolbar would refer to Vercel Toolbar).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too generic while we are using only these docs as context. Lets update to account for workflow docs in the examples

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this works fine until I figure out a way to expose an entry point from outside of Geistdocs.

- The user is viewing \`${currentRoute}\`. If the question matches this page, use the \`get_doc_page\` tool with its slug. If ambiguous, default to fetching the current page first.
- If the answer isn't in the current page, use \`search_docs\` once per message to search the docs.
- Never use more than one tool call consecutively.
- After each tool call, validate the result in 1-2 lines and either proceed or self-correct if validation fails.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feels like it just takes up extra tokens when we are not showing the reasoning in the chat. cc @nicoalbanese to confirm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: these are the Vercel Docs instructions

- Avoid code snippets unless absolutely necessary and only if identical to the source documentation—otherwise, link to documentation.
- If asked about Vercel open-source projects, direct users to the project's website.
- Ignore confrontational or controversial queries/statements.
- Politely refuse to respond to queries that do not relate to Vercel's documentation, guides, or tools.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again here, while we are doing this per project, we should focus the examples to the docs site - workflow

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The configuration file imports defineConfig from the main nitro package, but the nightly version of Nitro exports this function as defineNitroConfig from the nitro/config subpath. This causes a runtime error when attempting to load the config.

View Details
📝 Patch Details
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect Nitro config export in nitro-v3

What fails: The nitro build command fails in the @workflow/example-nitro-v3 package due to an incorrect import statement in the Nitro configuration file.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Why: In the nightly version of Nitro (v3.0.1+), the correct export function is defineNitroConfig from the 'nitro/config' subpath export, not defineConfig from the main 'nitro' export. The nitro-v2 example in the same repository correctly uses defineNitroConfig.

Reference: The Nitro nightly package exports defineNitroConfig from nitro/config entry point, as documented in the package's export configuration.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is being imported from the nitro main entry point, but it's not exported there. The correct import should be defineNitroConfig from nitro/config, which is the function exported by the nitro-nightly package for configuration.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Incorrect nitro config export in nitro.config.ts files

What fails: Nitro build fails with error (0 , _nitro.defineConfig) is not a function when running nitro build command in the hono and nitro-v3 workbench examples.

How to reproduce:

cd workbench/hono
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25
at async Function.import (...)

Root cause: The nitro-nightly package (3.0.1-20251031) exports the configuration function as defineNitroConfig from the nitro/config entry point, not as defineConfig from the main nitro entry point. The main nitro entry point exports nothing and attempting to import and use defineConfig from it results in undefined, causing the error.

Fix: Update the import and function call in both workbench/hono/nitro.config.ts and workbench/nitro-v3/nitro.config.ts to use defineNitroConfig from nitro/config instead of defineConfig from nitro.

https://unpkg.com/nitro-nightly@3.0.1-20251031-202656-883af4f9/lib/config.mjs

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The defineConfig function is not exported from the nitro package in the nitro-nightly v3 version. The correct import is defineNitroConfig from nitro/config.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Missing nitro/config import causes defineConfig error

What fails: The Nitro build fails because defineConfig is not exported from the nitro package in the nitro-nightly v3 version.

How to reproduce:

cd workbench/nitro-v3
pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Fix: The function was renamed to defineNitroConfig and is exported from nitro/config in the nitro-nightly package. Changed imports from:

import{defineConfig}from'nitro';

to:

import{defineNitroConfig}from'nitro/config';

This fix was applied to both workbench/nitro-v3/nitro.config.ts and workbench/hono/nitro.config.ts which had the same issue.

Reference: The nitro-v2 example already uses this correct import pattern from nitropack/config.

Fix on Vercel

@vercelvercelBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔧 Build Fix:

The nitro configuration files import defineConfig from 'nitro', but this function doesn't exist in the main module export. In nitro-nightly@3.0.1, the function is called defineNitroConfig and must be imported from 'nitro/config'.

View Details
📝 Patch Details
diff --git a/workbench/hono/nitro.config.ts b/workbench/hono/nitro.config.ts
index f27eced..56ec6a2 100644
--- a/workbench/hono/nitro.config.ts+++ b/workbench/hono/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
routes: {
'/**': './src/index.ts',
diff --git a/workbench/nitro-v3/nitro.config.ts b/workbench/nitro-v3/nitro.config.ts
index 5e800f3..a832870 100644
--- a/workbench/nitro-v3/nitro.config.ts+++ b/workbench/nitro-v3/nitro.config.ts@@ -1,6 +1,6 @@-import { defineConfig } from 'nitro';+import { defineNitroConfig } from 'nitro/config';-export default defineConfig({+export default defineNitroConfig({
modules: ['workflow/nitro'],
serverDir: './',
});

Analysis

Nitro configuration import uses non-existent export

What fails: Nitro config loading fails when importing defineConfig from the main 'nitro' module, which doesn't export this function in nitro-nightly@3.0.1.

How to reproduce:

cd workbench/hono && pnpm run build

Result:

ERROR (0 , _nitro.defineConfig) is not a function
at nitro.config.ts:3:25

Root cause: The nitro-nightly package doesn't export defineConfig from its main export. The function is exported as defineNitroConfig from nitro/config. The nitro.config.ts files were importing from the wrong module path.

Fix: Updated the imports in both nitro.config.ts files to use the correct export path (nitro/config) and function name (defineNitroConfig).

Fix on Vercel

@adriandlamadriandlam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice migration. there's a merge conflict but otherwise lgtm

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@haydenbleasel@TooTallNate@molebox@adriandlam