Skip to content

Conversation

@voltagent-bot
Copy link
Member

@voltagent-bot voltagent-bot commented Jan 9, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@voltagent/[email protected]

Patch Changes

  • #929 78ff377 Thanks @omeraplak! - feat: add workflow control steps (branch, foreach, loop, map, sleep)

    import {
      createWorkflowChain,
      andThen,
      andBranch,
      andForEach,
      andDoWhile,
      andDoUntil,
      andMap,
      andSleep,
      andSleepUntil,
    } from "@voltagent/core";
    import { z } from "zod";

    Branching:

    const workflow = createWorkflowChain({
      id: "branching-flow",
      input: z.object({ amount: z.number() }),
    }).andBranch({
      id: "rules",
      branches: [
        {
          condition: ({ data }) => data.amount > 1000,
          step: andThen({
            id: "flag-large",
            execute: async ({ data }) => ({ ...data, large: true }),
          }),
        },
        {
          condition: ({ data }) => data.amount < 0,
          step: andThen({
            id: "flag-invalid",
            execute: async ({ data }) => ({ ...data, invalid: true }),
          }),
        },
      ],
    });

    For-each and loops:

    createWorkflowChain({
      id: "batch-process",
      input: z.array(z.number()),
    }).andForEach({
      id: "double-each",
      concurrency: 2,
      step: andThen({
        id: "double",
        execute: async ({ data }) => data * 2,
      }),
    });
    
    createWorkflowChain({
      id: "looping-flow",
      input: z.number(),
    })
      .andDoWhile({
        id: "increment-until-3",
        step: andThen({
          id: "increment",
          execute: async ({ data }) => data + 1,
        }),
        condition: ({ data }) => data < 3,
      })
      .andDoUntil({
        id: "increment-until-2",
        step: andThen({
          id: "increment-until",
          execute: async ({ data }) => data + 1,
        }),
        condition: ({ data }) => data >= 2,
      });

    Data shaping:

    createWorkflowChain({
      id: "compose-result",
      input: z.object({ userId: z.string() }),
    })
      .andThen({
        id: "fetch-user",
        execute: async ({ data }) => ({ name: "Ada", id: data.userId }),
      })
      .andMap({
        id: "shape-output",
        map: {
          userId: { source: "data", path: "userId" },
          name: { source: "step", stepId: "fetch-user", path: "name" },
          region: { source: "context", key: "region" },
          constant: { source: "value", value: "ok" },
        },
      });

    Sleep:

    createWorkflowChain({
      id: "delayed-step",
      input: z.object({ id: z.string() }),
    })
      .andSleep({
        id: "pause",
        duration: 500,
      })
      .andSleepUntil({
        id: "wait-until",
        date: () => new Date(Date.now() + 60_000),
      })
      .andThen({
        id: "continue",
        execute: async ({ data }) => ({ ...data, resumed: true }),
      });

    Workflow-level retries:

    createWorkflowChain({
      id: "retry-defaults",
      retryConfig: { attempts: 2, delayMs: 500 },
    })
      .andThen({
        id: "fetch-user",
        execute: async ({ data }) => fetchUser(data.userId),
      })
      .andThen({
        id: "no-retry-step",
        retries: 0,
        execute: async ({ data }) => data,
      });

    Workflow hooks (finish/error/suspend):

    createWorkflowChain({
      id: "hooked-workflow",
      hooks: {
        onSuspend: async (info) => {
          console.log("Suspended:", info.suspension?.reason);
        },
        onError: async (info) => {
          console.error("Failed:", info.error);
        },
        onFinish: async (info) => {
          console.log("Done:", info.status);
        },
        onEnd: async (state, info) => {
          if (info?.status === "completed") {
            console.log("Result:", state.result);
            console.log("Steps:", Object.keys(info.steps));
          }
        },
      },
    });

    Workflow guardrails (input/output + step-level):

    import {
      andGuardrail,
      andThen,
      createInputGuardrail,
      createOutputGuardrail,
      createWorkflowChain,
    } from "@voltagent/core";
    import { z } from "zod";
    
    const trimInput = createInputGuardrail({
      name: "trim",
      handler: async ({ input }) => ({
        pass: true,
        action: "modify",
        modifiedInput: typeof input === "string" ? input.trim() : input,
      }),
    });
    
    const redactOutput = createOutputGuardrail<string>({
      name: "redact",
      handler: async ({ output }) => ({
        pass: true,
        action: "modify",
        modifiedOutput: output.replace(/[0-9]/g, "*"),
      }),
    });
    
    createWorkflowChain({
      id: "guarded-workflow",
      input: z.string(),
      result: z.string(),
      inputGuardrails: [trimInput],
      outputGuardrails: [redactOutput],
    })
      .andGuardrail({
        id: "sanitize-step",
        outputGuardrails: [redactOutput],
      })
      .andThen({
        id: "finish",
        execute: async ({ data }) => data,
      });

Summary by cubic

Versioned packages for a patch release. @voltagent/core is now 2.0.9 with new workflow controls (branch, foreach/loops, map, sleep) plus hooks, guardrails, and retries.

  • New Features

    • Workflow controls: branch, foreach, do-while/do-until, map, sleep/sleepUntil.
    • Hooks for finish/error/suspend and optional workflow-level retries.
    • Input/output guardrails with step-level support.
  • Dependencies

    • Bump @voltagent/core to 2.0.9 across all examples.
    • Update core changelog, remove processed changeset, refresh pnpm lockfile.

Written for commit 9fe4531. Summary will update on new commits.

Summary by CodeRabbit

  • New Features

    • Workflow branching and control flow capabilities
    • Loop and iteration support
    • Data shaping functionality
    • Enhanced retry and hook mechanisms
    • Guardrail integration
  • Chores

    • Updated all example projects to version 2.0.9

✏️ Tip: You can customize this high-level summary in your review settings.

@voltagent-bot voltagent-bot force-pushed the changeset-release/main branch from 5e50cbd to 9fe4531 Compare January 9, 2026 23:57
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 9, 2026

Deploying voltagent with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9fe4531
Status: ✅  Deploy successful!
Preview URL: https://e949a915.voltagent.pages.dev
Branch Preview URL: https://changeset-release-main.voltagent.pages.dev

View logs

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 9, 2026

📝 Walkthrough

Walkthrough

This diff represents a patch release (2.0.9) of @voltagent/core. It includes deletion of the processed changeset documentation, a version bump in the core package manifest, updates to all example project dependencies, and documentation updates in the CHANGELOG with release notes and usage examples.

Changes

Cohort / File(s) Summary
Release Documentation
.changeset/social-humans-hammer.md
Deleted changeset file documenting patch release workflow control features
Core Package Release
packages/core/package.json, packages/core/CHANGELOG.md
Version bumped from 2.0.8 to 2.0.9; CHANGELOG updated with 2.0.9 release notes and TypeScript examples showcasing workflow capabilities (branching, loops, data shaping, retries, hooks, guardrails)
Example Projects
examples/*/package.json (75+ files)
@voltagent/core dependency uniformly updated from ^2.0.8 to ^2.0.9 across all example projects, including: base, github-repo-analyzer, github-star-stories, next-js-chatbot, various model integrations (anthropic, google-ai, groq-ai, ollama, etc.), MCP examples, specialized tools (chroma, pinecone, qdrant), frameworks (nestjs, nuxt, nextjs), and utility examples

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A patch release hops along the way,
From 2.0.8 to 2.0.9 today!
Seventy-five examples now aligned,
Workflow magic and features refined.
The changeset's gone, the versions all set—
A tidy update, no bugs to regret! 🎉

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main changeset action: versioning packages via the changesets release workflow, which aligns with the PR's primary purpose.
Description check ✅ Passed The PR description is comprehensive and follows the auto-generated Changesets release format, providing release notes with detailed examples and explanations of new features. However, it does not follow the repository's provided PR template with its standard sections like 'PR Checklist', 'Bugs/Features', 'What is the current behavior?', etc.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@joggrbot

This comment has been minimized.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
examples/with-hooks/package.json (1)

4-13: Lockfile not updated; pnpm-lock.yaml missing @voltagent/[email protected] entry.

All example packages correctly reference ^2.0.9 and the core package version is confirmed as 2.0.9, but the main pnpm-lock.yaml does not contain the corresponding @voltagent/[email protected] entry. The lockfile must be regenerated to reflect the dependency bump and prevent installation inconsistencies.

🤖 Fix all issues with AI agents
In @examples/with-playwright/package.json:
- Line 11: Update the @voltagent/core dependency in
examples/with-zapier-mcp/package.json from the patch-only range (~2.0.9) to the
caret range (^2.0.9) so it matches the other example packages using ^2.0.9, and
then regenerate/update pnpm-lock.yaml to reflect the changed specifier; leave
any intentionally pinned older examples (e.g., ^2.0.2) unchanged.

In @packages/core/CHANGELOG.md:
- Around line 133-147: The example for createWorkflowChain is broken because the
chain uses data.userId in the "fetch-user" step but no input schema is declared;
update the example by adding an input (e.g., define an input type/schema with
userId) to createWorkflowChain so the chain has a typed input available to
steps, or alternatively change the step to read from a defined field (e.g.,
input.userId) and reference that symbol; ensure the example shows
createWorkflowChain(..., input: { userId: string }) (or equivalent schema) so
the fetch-user execute handler can safely access userId.
🧹 Nitpick comments (2)
packages/core/CHANGELOG.md (1)

3-22: Align the import snippet with actual usage (avoid misleading unused imports).
The snippet imports andBranch/andForEach/andDoWhile/andDoUntil/andMap/andSleep/andSleepUntil, but the examples call chain methods (.andBranch(), .andForEach(), etc.) rather than the imported functions. Either remove the unused imports, or adjust examples to demonstrate the functional form consistently.

Proposed doc tweak (remove unused imports)
 import {
   createWorkflowChain,
-  andThen,
-  andBranch,
-  andForEach,
-  andDoWhile,
-  andDoUntil,
-  andMap,
-  andSleep,
-  andSleepUntil,
+  andThen,
 } from "@voltagent/core";
 import { z } from "zod";
examples/with-zapier-mcp/package.json (1)

9-9: Consider standardizing the semver range to match other examples.

This file uses ~2.0.9 (tilde) while most other example packages in this PR use ^2.0.9 (caret). Tilde allows only patch updates (2.0.x), whereas caret allows minor updates (2.x.x). Consider standardizing to caret for consistency across examples.

♻️ Align with the pattern used in other examples
-    "@voltagent/core": "~2.0.9",
+    "@voltagent/core": "^2.0.9",
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 78ff377 and 9fe4531.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (74)
  • .changeset/social-humans-hammer.md
  • examples/base/package.json
  • examples/github-repo-analyzer/package.json
  • examples/github-star-stories/package.json
  • examples/next-js-chatbot-starter-template/package.json
  • examples/with-a2a-server/package.json
  • examples/with-agent-tool/package.json
  • examples/with-airtable/package.json
  • examples/with-amazon-bedrock/package.json
  • examples/with-anthropic/package.json
  • examples/with-auth/package.json
  • examples/with-cerbos/package.json
  • examples/with-chroma/package.json
  • examples/with-client-side-tools/package.json
  • examples/with-cloudflare-workers/package.json
  • examples/with-composio-mcp/package.json
  • examples/with-custom-endpoints/package.json
  • examples/with-dynamic-parameters/package.json
  • examples/with-dynamic-prompts/package.json
  • examples/with-google-ai/package.json
  • examples/with-google-drive-mcp/server/package.json
  • examples/with-google-vertex-ai/package.json
  • examples/with-groq-ai/package.json
  • examples/with-guardrails/package.json
  • examples/with-hooks/package.json
  • examples/with-hugging-face-mcp/package.json
  • examples/with-langfuse/package.json
  • examples/with-mcp-elicitation/package.json
  • examples/with-mcp-server/package.json
  • examples/with-mcp/package.json
  • examples/with-memory-rest-api/package.json
  • examples/with-nestjs/package.json
  • examples/with-netlify-functions/package.json
  • examples/with-nextjs-resumable-stream/package.json
  • examples/with-nextjs/package.json
  • examples/with-nuxt/package.json
  • examples/with-offline-evals/package.json
  • examples/with-ollama/package.json
  • examples/with-peaka-mcp/package.json
  • examples/with-pinecone/package.json
  • examples/with-planagents/package.json
  • examples/with-playwright/package.json
  • examples/with-postgres/package.json
  • examples/with-qdrant/package.json
  • examples/with-rag-chatbot/package.json
  • examples/with-recipe-generator/package.json
  • examples/with-research-assistant/package.json
  • examples/with-resumable-streams/package.json
  • examples/with-retrieval/package.json
  • examples/with-slack/package.json
  • examples/with-subagents/package.json
  • examples/with-supabase/package.json
  • examples/with-tavily-search/package.json
  • examples/with-thinking-tool/package.json
  • examples/with-tools/package.json
  • examples/with-turso/package.json
  • examples/with-vector-search/package.json
  • examples/with-vercel-ai/package.json
  • examples/with-viteval/package.json
  • examples/with-voice-elevenlabs/package.json
  • examples/with-voice-openai/package.json
  • examples/with-voice-xsai/package.json
  • examples/with-voltagent-actions/package.json
  • examples/with-voltagent-exporter/package.json
  • examples/with-voltagent-managed-memory/package.json
  • examples/with-voltops-resumable-streams/package.json
  • examples/with-voltops-retrieval/package.json
  • examples/with-whatsapp/package.json
  • examples/with-workflow/package.json
  • examples/with-working-memory/package.json
  • examples/with-youtube-to-blog/package.json
  • examples/with-zapier-mcp/package.json
  • packages/core/CHANGELOG.md
  • packages/core/package.json
💤 Files with no reviewable changes (1)
  • .changeset/social-humans-hammer.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (17)
  • GitHub Check: cubic · AI code reviewer
  • GitHub Check: Test cli
  • GitHub Check: Test supabase
  • GitHub Check: Test libsql
  • GitHub Check: Test create-voltagent-app
  • GitHub Check: Test core
  • GitHub Check: Test docs-mcp
  • GitHub Check: Test postgres
  • GitHub Check: Test voice
  • GitHub Check: Test logger
  • GitHub Check: Test internal
  • GitHub Check: Test server-core
  • GitHub Check: Build (Node 20)
  • GitHub Check: Build (Node 24)
  • GitHub Check: Build (Node 22)
  • GitHub Check: Lint (Node 20)
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (71)
packages/core/package.json (1)

4-4: Version bump is correct for patch release.

The version update from 2.0.8 to 2.0.9 is appropriate for a patch release that includes new exports and workflow control features. The automated changeset workflow has correctly incremented the patch version.

packages/core/CHANGELOG.md (2)

149-172: Hooks example: please verify hook names + callback shapes match the shipped API.
The snippet uses hooks.onSuspend/onError/onFinish/onEnd with (state, info) for onEnd. If any of these names/signatures differ in @voltagent/[email protected], this changelog will lead users astray. Consider adding/aligning with the exact exported types or linking to the API docs page that defines hook signatures.


174-219: Guardrails example: verify .andGuardrail() semantics and guardrail handler contracts.
This reads well, but since it’s a new public surface area (and guardrails are easy to get subtly wrong), I’d double-check:

  • createInputGuardrail / createOutputGuardrail handler return shape (pass/action/modifiedInput|modifiedOutput)
  • whether .andGuardrail({ outputGuardrails }) applies to the next step only, the whole workflow from that point, or is a standalone step
  • generic usage createOutputGuardrail<string>() matches the exported typing
examples/with-supabase/package.json (1)

8-8: LGTM! Version bump is correct.

The dependency update to @voltagent/core ^2.0.9 is appropriate for this patch release.

examples/with-guardrails/package.json (1)

7-7: LGTM! Version bump is correct.

The dependency update to @voltagent/core ^2.0.9 is appropriate for this patch release.

examples/with-nextjs-resumable-stream/package.json (1)

21-21: LGTM! Version bump is correct.

The dependency update to @voltagent/core ^2.0.9 is appropriate for this patch release.

examples/with-slack/package.json (1)

7-7: LGTM! Version bump is correct.

The dependency update to @voltagent/core ^2.0.9 is appropriate for this patch release.

examples/with-retrieval/package.json (1)

7-7: Version bump to @voltagent/core ^2.0.9 is correct.

The dependency update is appropriate. Note that the examples directory has pre-existing workspace-level dependency conflicts (vite version mismatch) that should be resolved separately from this change.

examples/with-composio-mcp/package.json (1)

8-8: LGTM! Dependency version bump is correct.

The update to @voltagent/core ^2.0.9 aligns with the patch release and is correctly applied.

examples/with-rag-chatbot/package.json (1)

8-8: LGTM! Version bump is consistent.

The dependency update to @voltagent/core ^2.0.9 is correct.

examples/with-cerbos/package.json (1)

9-9: LGTM! Dependency correctly updated.

The version bump to @voltagent/core ^2.0.9 is accurate and consistent with the release.

examples/with-peaka-mcp/package.json (1)

7-7: LGTM! Version update is correct.

The @voltagent/core dependency update to ^2.0.9 is properly applied.

examples/with-mcp/package.json (1)

8-8: LGTM! Final dependency update is correct.

The version bump to @voltagent/core ^2.0.9 completes the consistent update across all example packages.

examples/with-postgres/package.json (1)

8-8: LGTM! Dependency version bump is consistent with the release.

The update from ^2.0.8 to ^2.0.9 aligns with the patch release described in the PR objectives.

examples/with-voice-elevenlabs/package.json (1)

7-7: LGTM! Dependency version bump is consistent with the release.

The update from ^2.0.8 to ^2.0.9 aligns with the patch release described in the PR objectives.

examples/with-subagents/package.json (1)

7-7: LGTM! Dependency version bump is consistent with the release.

The update from ^2.0.8 to ^2.0.9 aligns with the patch release described in the PR objectives.

examples/with-pinecone/package.json (1)

8-8: LGTM! Dependency version bump is consistent with the release.

The update from ^2.0.8 to ^2.0.9 aligns with the patch release described in the PR objectives.

examples/with-nestjs/package.json (1)

10-10: LGTM! Dependency version bump is consistent with the release.

The update from ^2.0.8 to ^2.0.9 aligns with the patch release. Since this release introduces new workflow control APIs, you may want to verify that the example projects still build and run correctly after the dependency update.

examples/with-dynamic-parameters/package.json (1)

7-7: LGTM: example updated to @voltagent/core@^2.0.9.

examples/with-nextjs/package.json (1)

10-10: LGTM: example updated to @voltagent/core@^2.0.9.

examples/with-langfuse/package.json (1)

7-7: LGTM: example updated to @voltagent/core@^2.0.9.

examples/with-nuxt/package.json (1)

7-7: LGTM: example updated to @voltagent/core@^2.0.9.

examples/with-tavily-search/package.json (1)

7-7: Dependency bump is correct and version constraints are compatible.

Verification confirms: no lingering ^2.0.8 references exist, all example packages that were updated now reference ^2.0.9, and all @voltagent/* package peerDependencies declare ^2.0.0, which safely accepts 2.0.9. A few older examples still reference ^2.0.0 or ^2.0.2, but these are compatible and do not conflict.

examples/with-memory-rest-api/package.json (1)

8-8: LGTM: example aligned to @voltagent/core@^2.0.9.

examples/with-cloudflare-workers/package.json (1)

7-7: LGTM: example aligned to @voltagent/core@^2.0.9.

examples/with-mcp-elicitation/package.json (1)

8-8: LGTM: example aligned to @voltagent/core@^2.0.9.

examples/with-a2a-server/package.json (1)

6-6: LGTM: example aligned to @voltagent/core@^2.0.9.

examples/with-voltagent-managed-memory/package.json (1)

6-6: Dependency bump OK; ensure examples stay in sync with the published core release.
Given this is a dependency/version change, please verify the example still installs/builds against @voltagent/[email protected] (and that any lockfile updates are included elsewhere in the PR).

examples/with-vercel-ai/package.json (1)

7-7: Dependency bump OK; validate example install/build with @voltagent/[email protected].

examples/with-whatsapp/package.json (1)

8-8: Dependency bump OK; validate example install/build with @voltagent/[email protected].

examples/with-research-assistant/package.json (1)

7-7: Dependency bump OK; validate example install/build with @voltagent/[email protected].

examples/with-working-memory/package.json (1)

7-7: Dependency bump OK; validate example install/build with @voltagent/[email protected].

examples/with-dynamic-prompts/package.json (1)

7-7: LGTM!

The version bump to ^2.0.9 is correct and consistent with the patch release.

examples/with-planagents/package.json (1)

9-9: LGTM!

The version bump to ^2.0.9 is correct and consistent with the patch release.

examples/with-groq-ai/package.json (1)

7-7: LGTM!

The version bump to ^2.0.9 is correct and consistent with the patch release.

examples/with-google-ai/package.json (1)

7-7: LGTM!

The version bump to ^2.0.9 is correct and consistent with the patch release.

examples/with-chroma/package.json (1)

10-10: LGTM! Dependency version bump is correct.

The @voltagent/core dependency has been correctly updated to ^2.0.9, consistent with the patch release.

examples/with-vector-search/package.json (1)

7-7: LGTM! Dependency version bump is correct.

The @voltagent/core dependency has been correctly updated to ^2.0.9.

examples/with-tools/package.json (1)

7-7: LGTM! Dependency version bump is correct.

The @voltagent/core dependency has been correctly updated to ^2.0.9.

examples/with-viteval/package.json (1)

7-7: LGTM! Dependency version bump is correct.

The @voltagent/core dependency has been correctly updated to ^2.0.9.

examples/with-voltagent-actions/package.json (1)

7-7: LGTM! Dependency version bump is correct.

The @voltagent/core dependency has been correctly updated to ^2.0.9.

examples/with-auth/package.json (1)

4-13: LGTM: example aligned to @voltagent/core@^2.0.9.

examples/with-offline-evals/package.json (1)

4-13: LGTM: @voltagent/core bumped to ^2.0.9.

examples/with-voice-openai/package.json (1)

4-16: LGTM: @voltagent/core bumped to ^2.0.9.

examples/with-resumable-streams/package.json (1)

6-13: LGTM: @voltagent/core bumped to ^2.0.9.

examples/github-repo-analyzer/package.json (1)

7-7: LGTM! Dependency version bump looks good.

The version update to @voltagent/core@^2.0.9 is consistent with the automated changeset release process.

examples/with-workflow/package.json (1)

7-7: LGTM! Dependency version bump looks good.

The version update to @voltagent/core@^2.0.9 is consistent with the automated changeset release process.

examples/with-voice-xsai/package.json (1)

7-7: LGTM! Dependency version bump looks good.

The version update to @voltagent/core@^2.0.9 is consistent with the automated changeset release process.

examples/with-agent-tool/package.json (1)

8-8: LGTM! Dependency version bump looks good.

The version update to @voltagent/core@^2.0.9 is consistent with the automated changeset release process.

examples/with-amazon-bedrock/package.json (1)

8-8: LGTM! Dependency version bump looks good.

The version update to @voltagent/core@^2.0.9 is consistent with the automated changeset release process.

examples/next-js-chatbot-starter-template/package.json (1)

23-23: LGTM! Dependency version bump is consistent with the release.

The @voltagent/core dependency has been correctly updated to ^2.0.9 as part of the automated release process.

examples/with-google-drive-mcp/server/package.json (1)

9-9: LGTM! Dependency version bump is consistent with the release.

The @voltagent/core dependency has been correctly updated to ^2.0.9 as part of the automated release process.

examples/with-hugging-face-mcp/package.json (1)

7-7: LGTM! Dependency version bump is consistent with the release.

The @voltagent/core dependency has been correctly updated to ^2.0.9 as part of the automated release process.

examples/with-voltops-retrieval/package.json (1)

7-7: LGTM! Dependency version bump is consistent with the release.

The @voltagent/core dependency has been correctly updated to ^2.0.9 as part of the automated release process.

examples/with-thinking-tool/package.json (1)

7-7: LGTM! Dependency version bump is consistent with the release.

The @voltagent/core dependency has been correctly updated to ^2.0.9 as part of the automated release process.

examples/with-client-side-tools/package.json (1)

8-8: LGTM: Dependency version bump aligns with release.

The @voltagent/core dependency update from ^2.0.8 to ^2.0.9 is correct and consistent with the automated changeset release process.

examples/with-airtable/package.json (1)

7-7: LGTM: Dependency version bump is correct.

The @voltagent/core dependency update to ^2.0.9 is consistent with the changeset release.

examples/with-voltagent-exporter/package.json (1)

7-7: LGTM: Version bump aligns with release.

The dependency update to @voltagent/core ^2.0.9 is correct and consistent with the automated release process.

examples/with-youtube-to-blog/package.json (1)

7-7: LGTM: Dependency update is correct.

The @voltagent/core version bump to ^2.0.9 is consistent with the changeset release workflow.

examples/with-voltops-resumable-streams/package.json (1)

8-8: LGTM: Version bump is correct.

The @voltagent/core dependency update to ^2.0.9 aligns with the automated changeset release process.

examples/with-qdrant/package.json (1)

8-8: @voltagent/core bump to ^2.0.9 looks consistent—please smoke-test this example.
Given this is an external version resolution change, ensure install + build/start for examples/with-qdrant still passes and no peer-dep warnings/regressions appear.

examples/with-custom-endpoints/package.json (1)

7-7: @voltagent/core bump to ^2.0.9 is fine—verify the example still builds cleanly.
Please run install + build/start for examples/with-custom-endpoints to catch any drift with the new core patch release.

examples/with-turso/package.json (1)

8-8: @voltagent/core bump to ^2.0.9 looks good—please run a quick install/build/start check.
This ensures the Turso/LibSQL example remains compatible with the new core patch version.

examples/with-anthropic/package.json (1)

7-7: @voltagent/core bump to ^2.0.9 is straightforward—smoke-test the Anthropic example.
Please confirm install + build/start still succeeds for examples/with-anthropic.

examples/github-star-stories/package.json (1)

7-7: @voltagent/core bump to ^2.0.9 is consistent—please validate build/preview for this example.
Given the wrangler flow here, a quick build + preview check helps catch any runtime drift after the core patch release.

examples/with-netlify-functions/package.json (1)

5-12: Dependency bump looks good; please verify the example still builds/runs with @voltagent/core@^2.0.9.
Main thing to confirm is CI/install + the example’s build/typecheck after the upgrade (and lockfile/workspace resolution if applicable).

examples/with-recipe-generator/package.json (1)

4-12: Version alignment with the core release is correct; verify peers and runtime for this example.
After bumping @voltagent/core, ensure install doesn’t introduce peer-dep conflicts with the other @voltagent/* deps and that build/typecheck/start still pass.

examples/base/package.json (1)

4-13: LGTM; please confirm the base example remains green on install + build/typecheck with @voltagent/core@^2.0.9.

examples/with-mcp-server/package.json (1)

3-11: Looks fine; verify MCP integration still works after upgrading @voltagent/core to ^2.0.9.
Specifically watch for runtime errors/typing changes across @voltagent/core@voltagent/mcp-server.

examples/with-google-vertex-ai/package.json (1)

4-13: Dependency bump is consistent; please re-verify build/typecheck (and a quick run) for the Vertex AI example with @voltagent/core@^2.0.9.

examples/with-ollama/package.json (1)

5-5: LGTM! Dependency version bump aligns with the patch release.

The update to @voltagent/core@^2.0.9 is correct and consistent with the changeset release described in the PR objectives.

"@playwright/test": "^1.51.1",
"@voltagent/cli": "^0.1.20",
"@voltagent/core": "^2.0.8",
"@voltagent/core": "^2.0.9",
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Expect: no remaining ^2.0.8 refs
rg -n '"@voltagent/core":\s*"\^2\.0\.8"' -S . && exit 1 || true

# Inspect current refs (expect: all are ^2.0.9 or intentionally different)
rg -n '"@voltagent/core":\s*"' -S examples packages | sed -n '1,200p'

# If you use pnpm/yarn/npm, also confirm the lockfile updated in this PR.
ls -la | rg -n 'pnpm-lock\.yaml|yarn\.lock|package-lock\.json' || true

Repository: VoltAgent/voltagent

Length of output: 8571


Dependency bump is consistent across examples; minor version specifier inconsistency found.

The @voltagent/[email protected] bump is correctly applied with no remaining ^2.0.8 references. Most examples align to ^2.0.9; however, examples/with-zapier-mcp/package.json uses ~2.0.9 (patch-only range) instead of ^2.0.9 for consistency with the others. Some older examples intentionally pin ^2.0.2 and should not be changed. Ensure pnpm-lock.yaml is updated with these changes.

🤖 Prompt for AI Agents
In @examples/with-playwright/package.json at line 11, Update the @voltagent/core
dependency in examples/with-zapier-mcp/package.json from the patch-only range
(~2.0.9) to the caret range (^2.0.9) so it matches the other example packages
using ^2.0.9, and then regenerate/update pnpm-lock.yaml to reflect the changed
specifier; leave any intentionally pinned older examples (e.g., ^2.0.2)
unchanged.

Comment on lines +90 to +108
```ts
createWorkflowChain({
id: "compose-result",
input: z.object({ userId: z.string() }),
})
.andThen({
id: "fetch-user",
execute: async ({ data }) => ({ name: "Ada", id: data.userId }),
})
.andMap({
id: "shape-output",
map: {
userId: { source: "data", path: "userId" },
name: { source: "step", stepId: "fetch-user", path: "name" },
region: { source: "context", key: "region" },
constant: { source: "value", value: "ok" },
},
});
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Data shaping example: userId mapping looks incorrect after fetch-user overwrites data.
fetch-user returns { name, id }, so map.userId: { source: "data", path: "userId" } likely resolves to undefined. Consider returning userId from fetch-user (or mapping from the step output).

Proposed fix (keep `userId` in `data`)
 .andThen({
   id: "fetch-user",
-  execute: async ({ data }) => ({ name: "Ada", id: data.userId }),
+  execute: async ({ data }) => ({ userId: data.userId, name: "Ada", id: data.userId }),
 })
 .andMap({
   id: "shape-output",
   map: {
     userId: { source: "data", path: "userId" },
     name: { source: "step", stepId: "fetch-user", path: "name" },
     region: { source: "context", key: "region" },
     constant: { source: "value", value: "ok" },
   },
 });

Comment on lines +133 to +147
```ts
createWorkflowChain({
id: "retry-defaults",
retryConfig: { attempts: 2, delayMs: 500 },
})
.andThen({
id: "fetch-user",
execute: async ({ data }) => fetchUser(data.userId),
})
.andThen({
id: "no-retry-step",
retries: 0,
execute: async ({ data }) => data,
});
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Retry example references data.userId but no input is defined.
As written, fetch-user uses data.userId but createWorkflowChain doesn’t declare an input, so this is likely copy/paste-broken (or relies on implicit any).

Proposed fix (add an input schema)
 createWorkflowChain({
   id: "retry-defaults",
+  input: z.object({ userId: z.string() }),
   retryConfig: { attempts: 2, delayMs: 500 },
 })
   .andThen({
     id: "fetch-user",
     execute: async ({ data }) => fetchUser(data.userId),
   })
🤖 Prompt for AI Agents
In @packages/core/CHANGELOG.md around lines 133 - 147, The example for
createWorkflowChain is broken because the chain uses data.userId in the
"fetch-user" step but no input schema is declared; update the example by adding
an input (e.g., define an input type/schema with userId) to createWorkflowChain
so the chain has a typed input available to steps, or alternatively change the
step to read from a defined field (e.g., input.userId) and reference that
symbol; ensure the example shows createWorkflowChain(..., input: { userId:
string }) (or equivalent schema) so the fetch-user execute handler can safely
access userId.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 75 files

@omeraplak omeraplak merged commit 0aed815 into main Jan 10, 2026
23 checks passed
@omeraplak omeraplak deleted the changeset-release/main branch January 10, 2026 02:14
Sign up for free to 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.

3 participants