github mastra-ai/mastra @mastra/core@1.0.0-beta.24
January 19, 2026

latest releases: mastra@1.0.1, create-mastra@1.0.1, @mastra/server@1.0.4...
14 hours ago

Changelog

@mastra/arize@1.0.0-beta.15

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/braintrust@1.0.0-beta.15

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/client-js@1.0.0-beta.24

Major Changes

  • Fixed: Align Agent.network with core and update @mastra/react network usage. (#12015)

@mastra/core@1.0.0-beta.24

Minor Changes

  • Added flush() method to ObservabilityExporter, ObservabilityBridge, and ObservabilityInstance interfaces (#12003)

Patch Changes

  • When using agent networks, the routing agent could fail with a cryptic TypeError: Cannot read properties of undefined if the generation response was missing or malformed. This made it difficult to diagnose why routing failed. The release now throws a descriptive error with debugging details (response text, finish reason, usage) to help identify the root cause. (#12028)

    Fixes #11749

  • Improve error messaging for LLM API errors. When an error originates from an LLM provider (e.g., rate limits, overloaded, auth failures), the console now indicates it's an upstream API error and includes the provider and model information. (#12022)

    Before:

    ERROR (Mastra): Error in agent stream
        error: { "message": "Overloaded", "type": "overloaded_error" }
    

    After:

    ERROR (Mastra): Upstream LLM API error from anthropic (model: claude-3-opus)
        error: { "message": "Overloaded", "type": "overloaded_error" }
    
  • Fixed the type of targetResult in the onItemComplete callback for runEvals. The parameter was incorrectly typed as a Promise, but the actual value passed is already resolved. Users no longer need to await targetResult inside their callback. (#12030)


@mastra/datadog@1.0.0-beta.5

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/deployer@1.0.0-beta.24

Patch Changes

  • Fix a bug where /openapi.json was always generated during mastra build. The server.build.openAPIDocs setting is now observed. (#11718)

@mastra/laminar@1.0.0-beta.4

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/langfuse@1.0.0-beta.14

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/langsmith@1.0.0-beta.14

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/observability@1.0.0-beta.13

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/otel-bridge@1.0.0-beta.14

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/otel-exporter@1.0.0-beta.15

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/playground-ui@7.0.0-beta.24

Minor Changes

  • Enhance design system components with visual polish and micro-interactions. (#12045)

    Phase 2 of DS enhancement covering 40+ components:

    • Form Controls: Checkbox, RadioGroup, Switch, Slider, Combobox with focus rings, hover states, and smooth transitions
    • Navigation: Tabs with animated indicator, Steps with progress animation, Collapsible with icon rotation
    • Feedback: Alert with entrance animation, Notification with slide animations, Skeleton with gradient shimmer
    • Display: Badge with semantic variants, Avatar with interactive mode, StatusBadge enhancements
    • Layout: SideDialog with backdrop blur, ScrollArea with visibility transitions

    All components now use consistent design tokens (duration-normal, ease-out-custom, shadow-focus-ring) and GPU-accelerated properties for smooth 60fps animations.


@mastra/posthog@1.0.0-beta.14

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372


@mastra/qdrant@1.0.0-beta.5

Minor Changes

  • Add full support for Qdrant named vectors, allowing collections with multiple vector spaces. (#11905)
    • Added namedVectors parameter to createIndex() for creating multi-vector collections
    • Added vectorName parameter to upsert() for inserting into specific vector spaces
    • Added using parameter to query() for querying specific vector spaces
    • Changed client from private to protected to enable subclass extension
    • Added vector name validation when upserting to named vector collections

@mastra/react-hooks@1.0.0-beta.24

Major Changes

  • Fixed: Align Agent.network with core and update @mastra/react network usage. (#12015)

Patch Changes

  • Fixed compatibility with updated @mastra/client-js generate and stream API signatures (#12011)

@mastra/schema-compat@1.0.0-beta.7

Patch Changes

  • Fixed OpenAI schema validation error when using passthrough schemas with tools like vectorQueryTool. (#11846)

    What was happening: Tools using .passthrough() or z.looseObject() schemas (like the RAG vectorQueryTool) would fail with OpenAI models, returning the error: "Invalid schema for function: In context=('additionalProperties',), schema must have a 'type' key."

    What changed: The OpenAI schema compatibility layer now converts passthrough schemas to strict object schemas, producing valid additionalProperties: false instead of the invalid empty object {} that Zod v4 generates.

    Fixes #11823


@mastra/sentry@1.0.0-beta.4

Patch Changes

  • Added flush() method to observability exporters and instances for serverless environments (#12003)

    This feature allows flushing buffered spans without shutting down the exporter, which is useful in serverless environments like Vercel's fluid compute where runtime instances can be reused across multiple requests.

    New API:

    // Flush all exporters via the observability instance
    const observability = mastra.getObservability();
    await observability.flush();
    
    // Or flush individual exporters
    const exporters = observability.getExporters();
    await exporters[0].flush();

    Why this matters:

    In serverless environments, you may need to ensure all spans are exported before the runtime instance is terminated, while keeping the exporter active for future requests. Unlike shutdown(), flush() does not release resources or prevent future exports.

    Closes #11372



Full Changelog: 947fbe4

Don't miss a new mastra release

NewReleases is sending notifications on new releases.