{"id":"src_PGBd4uCdZfapXOECIrwG4","slug":"mastra-github-releases","name":"GitHub Releases","type":"github","url":"https://github.com/mastra-ai/mastra","orgId":"org_UYOPRhvhgndzH8nw_K86A","org":{"slug":"mastra","name":"Mastra"},"isPrimary":false,"metadata":"{\"evaluatedMethod\":\"github\",\"evaluatedAt\":\"2026-04-07T17:18:24.023Z\",\"changelogDetectedAt\":\"2026-04-07T17:19:03.304Z\"}","releaseCount":77,"releasesLast30Days":2,"avgReleasesPerWeek":1.2,"latestVersion":"@mastra/core@1.24.0","latestDate":"2026-04-08T16:50:22.000Z","changelogUrl":null,"hasChangelogFile":false,"lastFetchedAt":"2026-04-19T07:01:47.339Z","trackingSince":"2025-04-08T22:07:17.000Z","releases":[{"id":"rel_OkUvyFUpqlITRWKpgXlWk","version":"@mastra/core@1.24.0","title":"April 7, 20206","summary":"## Highlights\r\n\r\n### End-to-end RAG Tracing + New RAG/Graph Span Types\r\nRAG ingestion and query operations are now visible in Mastra tracing with new ...","content":"## Highlights\r\n\r\n### End-to-end RAG Tracing + New RAG/Graph Span Types\r\nRAG ingestion and query operations are now visible in Mastra tracing with new span types (e.g., `RAG_INGESTION`, `RAG_EMBEDDING`, `RAG_VECTOR_OPERATION`, `RAG_ACTION`, `GRAPH_ACTION`) plus helpers like `startRagIngestion()` / `withRagIngestion()`. Instrumentation is opt-in via an `observabilityContext`, and `@mastra/rag` automatically threads context from agent `TOOL_CALL` spans into vector and graph tools.\r\n\r\n### CloudExporter Now Ships All Observability Signals (Not Just Traces)\r\n`@mastra/observability` CloudExporter can now batch and upload logs, metrics, scores, and feedback in addition to tracing spans, enabling a single exporter path to Mastra Cloud for all signals. This also changes the endpoint configuration to use a base collector URL and derive publish paths automatically.\r\n\r\n### Span Filtering to Reduce Observability Noise and Cost\r\n`excludeSpanTypes` and `spanFilter` were added to `ObservabilityInstanceConfig` in both `@mastra/core` and `@mastra/observability`, allowing you to drop entire span categories (e.g., `MODEL_CHUNK`) or apply predicate-based filtering before export—useful for pay-per-span backends.\r\n\r\n### AI SDK v6 Message Support + Message Interop Helpers\r\n`@mastra/core` MessageList can now accept AI SDK v6 UI/model messages and project stored messages via `messageList.get.all.aiV6.ui()`, supporting v6 approval request/response flows. `@mastra/ai-sdk` adds `toAISdkMessages()` to load stored Mastra messages into AI SDK v5 or v6 chat UIs.\r\n\r\n### Better Reliability and Debuggability Across Logs + MCP + Memory\r\nObservability log correlation is fixed so logs inside agent runs carry the active span correlation fields (restoring trace↔log linking), and `deepClean()` now applies to *all* signals and better preserves `Map`/`Set`/`Error` detail. MCP tool discovery now retries after reconnectable errors and the MCP server returns spec-correct 404s for stale sessions; memory recall gains more precise browsing (`partType`, `toolName`, `threadId: \"current\"`, `anchor` paging), and message parts now include `createdAt` timestamps for accurate part-level timing.\r\n\r\n### Breaking Changes\r\n- CloudExporter endpoint format changed: configure a base `endpoint` URL (publisher paths are derived automatically) when using CloudExporter for Mastra Cloud uploads.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.24.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.24.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `excludeSpanTypes` and `spanFilter` options to `ObservabilityInstanceConfig` for selectively filtering spans before export. Use `excludeSpanTypes` to drop entire categories of spans by type (e.g., `MODEL_CHUNK`, `MODEL_STEP`) or `spanFilter` for fine-grained predicate-based filtering by attributes, metadata, entity, or any combination. Both options help reduce noise and costs in observability platforms that charge per-span. ([#15131](https://github.com/mastra-ai/mastra/pull/15131))\r\n\r\n  **`excludeSpanTypes` example:**\r\n\r\n  ```ts\r\n  excludeSpanTypes: [SpanType.MODEL_CHUNK, SpanType.MODEL_STEP, SpanType.WORKFLOW_SLEEP];\r\n  ```\r\n\r\n  **`spanFilter` example:**\r\n\r\n  ```ts\r\n  spanFilter: span => {\r\n    if (span.type === SpanType.MODEL_CHUNK) return false;\r\n    if (span.type === SpanType.TOOL_CALL && span.attributes?.success) return false;\r\n    return true;\r\n  };\r\n  ```\r\n\r\n  Resolves https://github.com/mastra-ai/mastra/issues/12710\r\n\r\n- Add RAG observability (#10898) ([#15137](https://github.com/mastra-ai/mastra/pull/15137))\r\n\r\n  Surfaces RAG ingestion and query operations in Mastra's AI tracing.\r\n\r\n  New span types in `@mastra/core/observability`:\r\n  - `RAG_INGESTION` (root) — wraps an ingestion pipeline run\r\n  - `RAG_EMBEDDING` — embedding call (used by ingestion and query)\r\n  - `RAG_VECTOR_OPERATION` — vector store I/O (`query`/`upsert`/`delete`/`fetch`)\r\n  - `RAG_ACTION` — `chunk` / `extract_metadata` / `rerank`\r\n  - `GRAPH_ACTION` — non-RAG graph `build` / `traverse` / `update` / `prune`\r\n\r\n  New helpers exported from `@mastra/core/observability`:\r\n  - `startRagIngestion(opts)` — manual: returns `{ span, observabilityContext }`\r\n  - `withRagIngestion(opts, fn)` — scoped: runs `fn(observabilityContext)`,\r\n    attaches the return value as the span's output, routes thrown errors to\r\n    `span.error(...)`\r\n\r\n  Wired in `@mastra/rag`:\r\n  - `vectorQuerySearch` emits `RAG_EMBEDDING` (mode: `query`) and\r\n    `RAG_VECTOR_OPERATION` (operation: `query`)\r\n  - `rerank` / `rerankWithScorer` emit `RAG_ACTION` (action: `rerank`)\r\n  - `MDocument.chunk` emits `RAG_ACTION` (action: `chunk`) and\r\n    `RAG_ACTION` (action: `extract_metadata`)\r\n  - `createGraphRAGTool` emits `GRAPH_ACTION` (action: `build` / `traverse`)\r\n  - `createVectorQueryTool` and `createGraphRAGTool` thread\r\n    `observabilityContext` from the agent's `TOOL_CALL` span automatically\r\n\r\n  All new instrumentation is opt-in: functions accept an optional\r\n  `observabilityContext` and no-op when absent, so existing callers are\r\n  unaffected.\r\n\r\n#### Patch Changes\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`8db7663`](https://github.com/mastra-ai/mastra/commit/8db7663c9a9c735828094c359d2e327fd4f8fba3))\r\n\r\n- Added AI SDK v6 UI message support to MessageList in @mastra/core. ([#14592](https://github.com/mastra-ai/mastra/pull/14592))\r\n\r\n  MessageList can now accept AI SDK v6 UI and model messages in add(...), and project stored messages with messageList.get.all.aiV6.ui(). This adds first-class handling for v6 approval request and response message flows.\r\n\r\n- Fix observability log correlation: logs emitted from inside an agent run were being persisted with `entityId`, `runId`, `traceId`, and the other correlation fields set to `null`, breaking trace ↔ log linking in Mastra Studio and downstream observability tools. Logs now correctly carry the active span's correlation context end to end. ([#15148](https://github.com/mastra-ai/mastra/pull/15148))\r\n\r\n- Added `createdAt` timestamps to message parts in message history. ([#15121](https://github.com/mastra-ai/mastra/pull/15121))\r\n\r\n  Message parts now keep their own creation timestamps so downstream code can preserve part-level timing instead of relying only on the parent message timestamp.\r\n\r\n  After:\r\n\r\n  ```ts\r\n  { type: 'text', text: 'hello', createdAt: 1712534400000 }\r\n  ```\r\n\r\n### [@mastra/ai-sdk@1.3.3](https://github.com/mastra-ai/mastra/blob/@mastra/ai-sdk@1.3.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added toAISdkMessages() for loading stored Mastra messages into AI SDK v5 or v6 chat UIs. ([#14592](https://github.com/mastra-ai/mastra/pull/14592))\r\n\r\n  Use the default v5 behavior or pass { version: 'v6' } when your app is typed against AI SDK v6 useChat() message types.\r\n\r\n### [@mastra/client-js@1.13.2](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.13.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/client-sdks/client-js/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed the client JS Responses types to allow omitting the model override. ([#15140](https://github.com/mastra-ai/mastra/pull/15140))\r\n\r\n### [@mastra/datadog@1.0.15](https://github.com/mastra-ai/mastra/blob/@mastra/datadog@1.0.15//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/datadog/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fix Datadog LLM Observability span kinds for model spans so traces match Datadog's expected shape. ([#15149](https://github.com/mastra-ai/mastra/pull/15149))\r\n  - Each call to a model now shows up as an `llm` span in Datadog (previously the per-call spans were reported as `task`, so Datadog's \"Model Calls\" count was wrong and per-call inputs/outputs were not rendered as messages).\r\n  - The wrapper around a generation is now reported as a `workflow` span instead of `llm`, so it no longer looks like an extra LLM call.\r\n  - Token usage and cost are reported only on the per-call `llm` spans, so Datadog no longer double-counts tokens against the wrapper.\r\n  - Per-call `llm` spans inherit `modelName` and `modelProvider` from their parent generation, so the model is still attached in the Datadog UI.\r\n\r\n### [@mastra/loggers@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/loggers@1.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/loggers/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Removed 'component' field from pino-pretty log output to reduce noise in CLI logs ([#15146](https://github.com/mastra-ai/mastra/pull/15146))\r\n\r\n### [@mastra/mcp@1.4.2](https://github.com/mastra-ai/mastra/blob/@mastra/mcp@1.4.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/mcp/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Improved MCP tool discovery to retry once after reconnectable connection errors like `Connection closed` during `tools/list`. ([#15141](https://github.com/mastra-ai/mastra/pull/15141))\r\n\r\n  `MCPClient.listToolsets()`, `listToolsetsWithErrors()`, and `listTools()` now attempt a reconnect before treating transient discovery failures as missing tools.\r\n\r\n- Fixed MCP server to return HTTP 404 (instead of 400) when a client sends a stale or unknown session ID. Per the MCP spec, this tells clients to re-initialize with a new session, which fixes broken tool calls after server redeploys. ([#15160](https://github.com/mastra-ai/mastra/pull/15160))\r\n\r\n### [@mastra/memory@1.15.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.15.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/memory/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Updated the recall tool to support more precise message browsing for agents. ([#15116](https://github.com/mastra-ai/mastra/pull/15116))\r\n\r\n  Agents using `recall` can now pass `partType` and `toolName` to narrow message results to specific parts, such as tool calls or tool results for one tool. This change also adds `threadId: \"current\"` support across recall modes and `anchor: \"start\" | \"end\"` for no-cursor message paging, making it easier to inspect recent thread activity and past tool usage.\r\n\r\n#### Patch Changes\r\n\r\n- Fixed reflection threshold not respecting per-record overrides set via the PATCH API. Previously, lowering the reflection threshold for a specific record had no effect on the actual reflection trigger — only the default 40k threshold was used. Now per-record overrides are correctly applied in both sync and async reflection paths. ([#15170](https://github.com/mastra-ai/mastra/pull/15170))\r\n\r\n- Improved observational memory formatting to use part timestamps when rendering dates and times. ([#15121](https://github.com/mastra-ai/mastra/pull/15121))\r\n\r\n  Observer history now follows part-level timing more closely, so the rendered memory context is more accurate when messages contain parts created at different times.\r\n\r\n- Fixed message history doubling when using Observational Memory with the Mastra gateway. The local ObservationalMemoryProcessor now detects when the agent's model is routed through the Mastra gateway and skips its input/output processing, since the gateway handles OM server-side. ([#15161](https://github.com/mastra-ai/mastra/pull/15161))\r\n\r\n### [@mastra/observability@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/observability@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/mastra/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added CloudExporter support for Mastra Observability logs, metrics, scores, and feedback. ([#15124](https://github.com/mastra-ai/mastra/pull/15124))\r\n\r\n  CloudExporter now batches and uploads all Mastra Observability signals to Mastra Cloud, not just tracing spans.\r\n\r\n  This includes a breaking change to the CloudExporter endpoint format. We now pass a base endpoint URL and let let the exporter derive the standard publish paths automatically.\r\n\r\n  ```ts\r\n  import { CloudExporter, Observability } from '@mastra/observability';\r\n\r\n  const observability = new Observability({\r\n    configs: {\r\n      default: {\r\n        serviceName: 'my-app',\r\n        exporters: [\r\n          new CloudExporter({\r\n            endpoint: 'https://collector.example.com',\r\n          }),\r\n        ],\r\n      },\r\n    },\r\n  });\r\n\r\n  // Traces, logs, metrics, scores, and feedback now all publish through CloudExporter.\r\n  ```\r\n\r\n  After updating the exporter endpoint config, the exporter will continue to work for traces, and the same exporter will now also publish structured logs, auto-extracted metrics, scores, and feedback records.\r\n\r\n- Added `excludeSpanTypes` and `spanFilter` options to `ObservabilityInstanceConfig` for selectively filtering spans before export. Use `excludeSpanTypes` to drop entire categories of spans by type (e.g., `MODEL_CHUNK`, `MODEL_STEP`) or `spanFilter` for fine-grained predicate-based filtering by attributes, metadata, entity, or any combination. Both options help reduce noise and costs in observability platforms that charge per-span. ([#15131](https://github.com/mastra-ai/mastra/pull/15131))\r\n\r\n  **`excludeSpanTypes` example:**\r\n\r\n  ```ts\r\n  excludeSpanTypes: [SpanType.MODEL_CHUNK, SpanType.MODEL_STEP, SpanType.WORKFLOW_SLEEP];\r\n  ```\r\n\r\n  **`spanFilter` example:**\r\n\r\n  ```ts\r\n  spanFilter: span => {\r\n    if (span.type === SpanType.MODEL_CHUNK) return false;\r\n    if (span.type === SpanType.TOOL_CALL && span.attributes?.success) return false;\r\n    return true;\r\n  };\r\n  ```\r\n\r\n  Resolves https://github.com/mastra-ai/mastra/issues/12710\r\n\r\n#### Patch Changes\r\n\r\n- ObservabilityBus now honors per-instance `serializationOptions` (maxStringLength, maxDepth, maxArrayLength, maxObjectKeys) when deep-cleaning log/metric/score/feedback payloads, matching the behavior of tracing spans. Previously these signals always used the built-in defaults regardless of user configuration. ([#15138](https://github.com/mastra-ai/mastra/pull/15138))\r\n\r\n- Apply `deepClean()` to all observability signals (logs, metrics, scores, feedback) before fanning out to exporters and bridges. Previously only tracing spans were deep-cleaned at construction time, leaving free-form payload fields on other signals (e.g. `log.data`, `log.metadata`, `metric.metadata`, `metric.costContext.costMetadata`, `score.metadata`, `feedback.metadata`) susceptible to circular references, oversized strings, and other non-serializable values. Sanitization now happens centrally in `ObservabilityBus.emit()` so every signal leaving the bus is bounded and JSON-safe. ([#15135](https://github.com/mastra-ai/mastra/pull/15135))\r\n\r\n- `deepClean()` now preserves data for `Map`, `Set`, and richer `Error` objects. Previously Maps and Sets were serialized as empty `{}` (entries silently dropped) and Errors only kept `name`/`message`. Maps are now converted to plain objects of entries, Sets to arrays (both respecting `maxObjectKeys`/`maxArrayLength` and cycle detection), and Errors additionally preserve `stack` and recursively cleaned `cause`. ([#15136](https://github.com/mastra-ai/mastra/pull/15136))\r\n\r\n### [@mastra/playground-ui@22.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@22.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/playground-ui/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Search input can now be collapsed into a compact icon button with tooltip and auto-focuses when expanded ([#15130](https://github.com/mastra-ai/mastra/pull/15130))\r\n\r\n- Added DataKeysAndValues component — a compound component for displaying key-value pairs in a grid layout with support for single or two-column modes and section headers ([#15126](https://github.com/mastra-ai/mastra/pull/15126))\r\n\r\n- Added DateTimeRangePicker component — a date range selector with preset options (last 24h, 7d, 30d, etc.) and a custom range mode with dual calendar and time pickers ([#15128](https://github.com/mastra-ai/mastra/pull/15128))\r\n\r\n- Added DataCodeSection component — a read-only code viewer with JSON syntax highlighting, search, multiline toggle, and an expandable fullscreen dialog ([#15125](https://github.com/mastra-ai/mastra/pull/15125))\r\n\r\n- Added DataPanel compound component — a container for detail panels with header, navigation, close button, loading, and empty states ([#15127](https://github.com/mastra-ai/mastra/pull/15127))\r\n\r\n- New inline Traces page replacing the old dialog-based Observability page. Trace, span, and score details now open in stacked side panels instead of full-screen dialogs. URL deep-linking supports traceId, spanId, tab, and scoreId params. Includes new TracesDataList, DataList.Pagination, DataList.Subheader components, and Evaluate Trace / Save as Dataset Item actions. ([#15139](https://github.com/mastra-ai/mastra/pull/15139))\r\n\r\n#### Patch Changes\r\n\r\n- **Fixed publishing older agent versions** ([#15154](https://github.com/mastra-ai/mastra/pull/15154))\r\n\r\n  Fixed agent editor to allow publishing older read-only versions. Previously, the Publish button was disabled when viewing a previous version. Now a \"Publish This Version\" button appears, enabling users to set any older version as the published version.\r\n\r\n  **Fixed Publish button being clickable without a saved draft**\r\n\r\n  The Publish button is now disabled until a draft version is saved. Previously, making edits would enable the Publish button even without a saved draft, which caused an error when clicked.\r\n\r\n  **Eliminated spurious 404 error logs for code-only agents**\r\n\r\n  The agent versions endpoint now checks both code-registered and stored agents before returning 404, and the frontend conditionally fetches stored agent details only when versions exist. This prevents noisy error logs when navigating to the editor for agents that haven't been published yet.\r\n\r\n  **Changed editor sections to be collapsed by default**\r\n\r\n  The System Prompt, Tools, and Variables sections in the agent editor are now collapsed by default when navigating to the editor page.\r\n\r\n### [@mastra/rag@2.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/rag@2.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/rag/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Add RAG observability (#10898) ([#15137](https://github.com/mastra-ai/mastra/pull/15137))\r\n\r\n  Surfaces RAG ingestion and query operations in Mastra's AI tracing.\r\n\r\n  New span types in `@mastra/core/observability`:\r\n  - `RAG_INGESTION` (root) — wraps an ingestion pipeline run\r\n  - `RAG_EMBEDDING` — embedding call (used by ingestion and query)\r\n  - `RAG_VECTOR_OPERATION` — vector store I/O (`query`/`upsert`/`delete`/`fetch`)\r\n  - `RAG_ACTION` — `chunk` / `extract_metadata` / `rerank`\r\n  - `GRAPH_ACTION` — non-RAG graph `build` / `traverse` / `update` / `prune`\r\n\r\n  New helpers exported from `@mastra/core/observability`:\r\n  - `startRagIngestion(opts)` — manual: returns `{ span, observabilityContext }`\r\n  - `withRagIngestion(opts, fn)` — scoped: runs `fn(observabilityContext)`,\r\n    attaches the return value as the span's output, routes thrown errors to\r\n    `span.error(...)`\r\n\r\n  Wired in `@mastra/rag`:\r\n  - `vectorQuerySearch` emits `RAG_EMBEDDING` (mode: `query`) and\r\n    `RAG_VECTOR_OPERATION` (operation: `query`)\r\n  - `rerank` / `rerankWithScorer` emit `RAG_ACTION` (action: `rerank`)\r\n  - `MDocument.chunk` emits `RAG_ACTION` (action: `chunk`) and\r\n    `RAG_ACTION` (action: `extract_metadata`)\r\n  - `createGraphRAGTool` emits `GRAPH_ACTION` (action: `build` / `traverse`)\r\n  - `createVectorQueryTool` and `createGraphRAGTool` thread\r\n    `observabilityContext` from the agent's `TOOL_CALL` span automatically\r\n\r\n  All new instrumentation is opt-in: functions accept an optional\r\n  `observabilityContext` and no-op when absent, so existing callers are\r\n  unaffected.\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/server@1.24.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.24.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/server/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- **Fixed publishing older agent versions** ([#15154](https://github.com/mastra-ai/mastra/pull/15154))\r\n\r\n  Fixed agent editor to allow publishing older read-only versions. Previously, the Publish button was disabled when viewing a previous version. Now a \"Publish This Version\" button appears, enabling users to set any older version as the published version.\r\n\r\n  **Fixed Publish button being clickable without a saved draft**\r\n\r\n  The Publish button is now disabled until a draft version is saved. Previously, making edits would enable the Publish button even without a saved draft, which caused an error when clicked.\r\n\r\n  **Eliminated spurious 404 error logs for code-only agents**\r\n\r\n  The agent versions endpoint now checks both code-registered and stored agents before returning 404, and the frontend conditionally fetches stored agent details only when versions exist. This prevents noisy error logs when navigating to the editor for agents that haven't been published yet.\r\n\r\n  **Changed editor sections to be collapsed by default**\r\n\r\n  The System Prompt, Tools, and Variables sections in the agent editor are now collapsed by default when navigating to the editor page.\r\n\r\n- Fixed the Responses API to use the agent default model when create requests omit model. ([#15140](https://github.com/mastra-ai/mastra/pull/15140))\r\n\r\n### Other updated packages\r\n\r\nThe following packages were updated with dependency changes only:\r\n\r\n- [@mastra/agent-builder@1.0.25](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.25//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/agent-builder/CHANGELOG.md)\r\n- [@mastra/arize@1.0.15](https://github.com/mastra-ai/mastra/blob/@mastra/arize@1.0.15//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/arize/CHANGELOG.md)\r\n- [@mastra/arthur@0.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/arthur@0.2.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/arthur/CHANGELOG.md)\r\n- [@mastra/braintrust@1.0.15](https://github.com/mastra-ai/mastra/blob/@mastra/braintrust@1.0.15//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/braintrust/CHANGELOG.md)\r\n- [@mastra/deployer@1.24.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.24.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/deployer/CHANGELOG.md)\r\n- [@mastra/deployer-cloud@1.24.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.24.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/deployers/cloud/CHANGELOG.md)\r\n- [@mastra/deployer-cloudflare@1.1.21](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.21//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/deployers/cloudflare/CHANGELOG.md)\r\n- [@mastra/deployer-netlify@1.0.25](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.25//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/deployers/netlify/CHANGELOG.md)\r\n- [@mastra/deployer-vercel@1.1.15](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.1.15//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/deployers/vercel/CHANGELOG.md)\r\n- [@mastra/express@1.3.7](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.3.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/server-adapters/express/CHANGELOG.md)\r\n- [@mastra/fastify@1.3.7](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.3.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/server-adapters/fastify/CHANGELOG.md)\r\n- [@mastra/hono@1.4.2](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.4.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/server-adapters/hono/CHANGELOG.md)\r\n- [@mastra/koa@1.4.7](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.4.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/server-adapters/koa/CHANGELOG.md)\r\n- [@mastra/laminar@1.0.14](https://github.com/mastra-ai/mastra/blob/@mastra/laminar@1.0.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/laminar/CHANGELOG.md)\r\n- [@mastra/langfuse@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/langfuse@1.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/langfuse/CHANGELOG.md)\r\n- [@mastra/langsmith@1.1.12](https://github.com/mastra-ai/mastra/blob/@mastra/langsmith@1.1.12//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/langsmith/CHANGELOG.md)\r\n- [@mastra/longmemeval@1.0.26](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.26//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/explorations/longmemeval/CHANGELOG.md)\r\n- [@mastra/mcp-docs-server@1.1.23](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.23//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/packages/mcp-docs-server/CHANGELOG.md)\r\n- [@mastra/opencode@0.0.23](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.23//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/integrations/opencode/CHANGELOG.md)\r\n- [@mastra/otel-bridge@1.0.14](https://github.com/mastra-ai/mastra/blob/@mastra/otel-bridge@1.0.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/otel-bridge/CHANGELOG.md)\r\n- [@mastra/otel-exporter@1.0.14](https://github.com/mastra-ai/mastra/blob/@mastra/otel-exporter@1.0.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/otel-exporter/CHANGELOG.md)\r\n- [@mastra/posthog@1.0.15](https://github.com/mastra-ai/mastra/blob/@mastra/posthog@1.0.15//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/posthog/CHANGELOG.md)\r\n- [@mastra/react@0.2.24](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.24//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/client-sdks/react/CHANGELOG.md)\r\n- [@mastra/sentry@1.0.14](https://github.com/mastra-ai/mastra/blob/@mastra/sentry@1.0.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.24.0/observability/sentry/CHANGELOG.md)","publishedAt":"2026-04-08T16:50:22.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.24.0","media":[]},{"id":"rel_11_camOdxFB7dwi36P6oK","version":"@mastra/core@1.16.0","title":"Mar 25, 2026","summary":"## Highlights\r\n\r\n### Smarter Model Selection for Observational Memory\r\n\r\n`@mastra/memory` now lets you route observer and reflector calls to different...","content":"## Highlights\r\n\r\n### Smarter Model Selection for Observational Memory\r\n\r\n`@mastra/memory` now lets you route observer and reflector calls to different models based on input size using `ModelByInputTokens`. Short inputs can go to a fast, cheap model while longer ones get sent to a more capable one -- all configured declaratively with token thresholds. Tracing shows which model was selected and why.\r\n\r\n### MongoDB Support for Datasets and Experiments\r\n\r\n`@mastra/mongodb` now stores versioned datasets with full item history and time-travel queries, plus experiment results and CRUD. If you're already using `MongoDBStore`, this works automatically with no extra setup.\r\n\r\n### Okta Auth and RBAC\r\n\r\nNew `@mastra/auth-okta` package brings SSO authentication and role-based access control via Okta. Map Okta groups to Mastra permissions, verify JWTs against Okta's JWKS endpoint, and manage sessions -- or pair Okta RBAC with a different auth provider like Auth0 or Clerk.\r\n\r\n### Breaking Changes\r\n\r\n- None called out in this changelog.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.16.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.16.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/core/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added dataset-agent association and experiment status tracking for the Evaluate workflow. ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n  - **Dataset targeting**: Added `targetType` and `targetIds` fields to datasets, enabling association with agents, scorers, or workflows. Datasets can now be linked to multiple entities.\r\n  - **Experiment status**: Added `status` field to experiment results (`'needs-review'`, `'reviewed'`, `'complete'`) for review queue workflow.\r\n  - **Dataset experiment routes**: Added API endpoints for triggering experiments from a dataset with configurable target type and target ID.\r\n  - **LLM data generation**: Added endpoint for generating dataset items using an LLM with configurable count and prompt.\r\n  - **Failure analysis**: Added endpoint for clustering experiment failures and proposing tags using LLM analysis.\r\n\r\n- Added agent version support for experiments. When triggering an experiment, you can now pass an `agentVersion` parameter to pin which agent version to use. The agent version is stored with the experiment and returned in experiment responses. ([#14562](https://github.com/mastra-ai/mastra/pull/14562))\r\n\r\n  ```ts\r\n  const client = new MastraClient();\r\n\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: \"my-dataset\",\r\n    targetType: \"agent\",\r\n    targetId: \"my-agent\",\r\n    version: 3, // pin to dataset version 3\r\n    agentVersion: \"ver_abc123\" // pin to a specific agent version\r\n  });\r\n  ```\r\n\r\n- Added tool suspension handling to the Harness. ([#14611](https://github.com/mastra-ai/mastra/pull/14611))\r\n\r\n  When a tool calls `suspend()` during execution, the harness now emits a `tool_suspended` event, reports `agent_end` with reason `'suspended'`, and exposes `respondToToolSuspension()` to resume execution with user-provided data.\r\n\r\n  ```ts\r\n  harness.subscribe((event) => {\r\n    if (event.type === \"tool_suspended\") {\r\n      // event.toolName, event.suspendPayload, event.resumeSchema\r\n    }\r\n  });\r\n\r\n  // Resume after collecting user input\r\n  await harness.respondToToolSuspension({ resumeData: { confirmed: true } });\r\n  ```\r\n\r\n- Added `agentId` to the agent tool execution context. Tools executed by an agent can now access `context.agent.agentId` to identify which agent is calling them. This enables tools to look up agent metadata, share workspace configuration with sub-agents, or customize behavior per agent. ([#14502](https://github.com/mastra-ai/mastra/pull/14502))\r\n\r\n- Improved observability metrics and logs storage support. ([#14607](https://github.com/mastra-ai/mastra/pull/14607))\r\n  - Added typed observability storage fields for shared correlation context and cost data.\r\n  - Added storage-layer metric listing and richer metric aggregations that can return estimated cost alongside values.\r\n  - Improved observability filter parity across log and metric storage APIs.\r\n\r\n- Add optional `?path=` query param to workspace skill routes for disambiguating same-named skills. ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n  Skill routes continue to use `:skillName` in the URL path (no breaking change). When two skills share the same name (e.g. from different directories), pass the optional `?path=` query parameter to select the exact skill:\r\n\r\n  ```\r\n  GET /workspaces/:workspaceId/skills/:skillName?path=skills/brand-guidelines\r\n  ```\r\n\r\n  `SkillMetadata` now includes a `path` field, and the `list()` method returns all same-named skills for disambiguation. The client SDK's `getSkill()` accepts an optional `skillPath` parameter for disambiguation.\r\n\r\n- Added `ModelByInputTokens` in `@mastra/memory` for token-threshold-based model selection in Observational Memory. ([#14614](https://github.com/mastra-ai/mastra/pull/14614))\r\n\r\n  When configured, OM automatically selects different observer or reflector models based on the actual input token count at the time the OM call runs.\r\n\r\n  Example usage:\r\n\r\n  ```ts\r\n  import { Memory, ModelByInputTokens } from \"@mastra/memory\";\r\n\r\n  const memory = new Memory({\r\n    options: {\r\n      observationalMemory: {\r\n        model: new ModelByInputTokens({\r\n          upTo: {\r\n            10_000: \"google/gemini-2.5-flash\",\r\n            40_000: \"openai/gpt-4o\",\r\n            1_000_000: \"openai/gpt-4.5\"\r\n          }\r\n        })\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n  The `upTo` keys are inclusive upper bounds. OM resolves the matching tier directly at the observer or reflector call site. If the input exceeds the largest configured threshold, OM throws an error.\r\n\r\n  Improved Observational Memory tracing so traces show the observer and reflector spans and make it easier to see which resolved model was used at runtime.\r\n\r\n#### Patch Changes\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`68ed4e9`](https://github.com/mastra-ai/mastra/commit/68ed4e9f118e8646b60a6112dabe854d0ef53902))\r\n\r\n- Fixed `Harness.destroy()` to properly clean up heartbeats and workspace on teardown. ([#14568](https://github.com/mastra-ai/mastra/pull/14568))\r\n\r\n- Fixed null detection in tool input validation to check actual values at failing paths instead of relying on error message string matching. This ensures null values from LLMs are correctly handled even when validators produce error messages that don't contain the word \"null\" (e.g., \"must be string\"). Fixes #14476. ([#14496](https://github.com/mastra-ai/mastra/pull/14496))\r\n\r\n- Fixed missing tool lists in agent traces for streaming runs. Exporters like Datadog LLM Observability now receive the tools available to the agent. ([#14550](https://github.com/mastra-ai/mastra/pull/14550))\r\n\r\n- Fix consecutive tool-only loop iterations being merged into a single assistant message block. When the agentic loop runs multiple iterations that each produce only tool calls, the LLM would misinterpret them as parallel calls from a single turn. A `step-start` boundary is now inserted between iterations to ensure they are treated as sequential steps. ([#14652](https://github.com/mastra-ai/mastra/pull/14652))\r\n\r\n- Improved custom OpenAI-compatible model configuration guidance in the models docs. ([#14594](https://github.com/mastra-ai/mastra/pull/14594))\r\n\r\n- Added client/server body schemas for feedback and scores that omit the timestamp field, allowing it to be set server-side ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n\r\n- **Workspace skills now surface all same-named skills for disambiguation.** ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n  When multiple skills share the same name (e.g., a local `brand-guidelines` skill and one from `node_modules`), `list()` now returns all of them instead of only the tie-break winner. This lets agents and UIs see every available skill, along with its path and source type.\r\n\r\n  **Tie-breaking behavior:**\r\n  - `get(name)` still returns a single skill using source-type priority: local > managed > external\r\n  - If two skills share the same name _and_ source type, `get(name)` throws an error — rename one or move it to a different source type\r\n  - `get(path)` bypasses tie-breaking entirely and returns the exact skill\r\n\r\n  Agents and UIs now receive all same-named skills with their paths, which improves disambiguation in prompts and tool calls.\r\n\r\n  ```ts\r\n  const skills = await workspace.skills.list();\r\n  // Returns both local and external \"brand-guidelines\" skills\r\n\r\n  const exact = await workspace.skills.get(\"node_modules/@myorg/skills/brand-guidelines\");\r\n  // Fetches the external copy directly by path\r\n  ```\r\n\r\n- Fixed Anthropic 'tool_use ids were found without tool_result blocks immediately after' error. When client tools (e.g. execute_command) and provider tools (e.g. web_search) are called in parallel, the tool ordering in message history could cause Anthropic to reject subsequent requests, making the thread unrecoverable. Tool blocks are now correctly split to satisfy Anthropic's ordering requirements. ([#14648](https://github.com/mastra-ai/mastra/pull/14648))\r\n\r\n- Fix Zod v3 and Zod v4 compatibility across public structured-output APIs. ([#14464](https://github.com/mastra-ai/mastra/pull/14464))\r\n\r\n  Mastra agent and client APIs accept schemas from either `zod/v3` or `zod/v4`, matching the documented peer dependency range and preserving TypeScript compatibility for both Zod versions.\r\n\r\n### [@mastra/ai-sdk@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/ai-sdk@1.2.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fix Zod v3 and Zod v4 compatibility across public structured-output APIs. ([#14464](https://github.com/mastra-ai/mastra/pull/14464))\r\n\r\n  Mastra agent and client APIs accept schemas from either `zod/v3` or `zod/v4`, matching the documented peer dependency range and preserving TypeScript compatibility for both Zod versions.\r\n\r\n### [@mastra/auth-okta@0.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/auth-okta@0.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/auth/okta/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- fix(auth-okta): harden security defaults and address code review feedback ([#14553](https://github.com/mastra-ai/mastra/pull/14553))\r\n  - Fix cache poisoning: errors in `fetchGroupsFromOkta` now propagate so the outer `.catch` evicts the entry and retries on next request\r\n  - Reduce cookie size: only store user claims, id_token (for logout), and expiry — access/refresh tokens are no longer stored, keeping cookies under the 4KB browser limit\r\n  - Add `id_token_hint` to logout URL (required by Okta)\r\n  - Add console.warn for auto-generated cookie password and in-memory state store in production\r\n  - Document missing env vars (`OKTA_CLIENT_SECRET`, `OKTA_REDIRECT_URI`, `OKTA_COOKIE_PASSWORD`) in README and examples\r\n  - Expand `MastraAuthOktaOptions` docs to include all fields (session config, scopes, etc.)\r\n  - Fix test to actually exercise `getUserId` cross-provider lookup path\r\n\r\n### [@mastra/client-js@1.10.0](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.10.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/client-sdks/client-js/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added new observability API endpoints and client methods for logs, scores, feedback, metrics (aggregate, breakdown, time series, percentiles), and discovery (metric names, label keys/values, entity types/names, service names, environments, tags) ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n\r\n#### Patch Changes\r\n\r\n- Added client SDK methods for dataset experiments and item generation. ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n  - Added `triggerExperiment()` method to dataset resources for running experiments with configurable target type and ID\r\n  - Added `generateItems()` method for LLM-powered test data generation\r\n  - Added `clusterFailures()` method for analyzing experiment failures\r\n  - Added TypeScript types for new dataset and experiment API payloads\r\n\r\n- Added agent version support for experiments. When triggering an experiment, you can now pass an `agentVersion` parameter to pin which agent version to use. The agent version is stored with the experiment and returned in experiment responses. ([#14562](https://github.com/mastra-ai/mastra/pull/14562))\r\n\r\n  ```ts\r\n  const client = new MastraClient();\r\n\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: \"my-dataset\",\r\n    targetType: \"agent\",\r\n    targetId: \"my-agent\",\r\n    version: 3, // pin to dataset version 3\r\n    agentVersion: \"ver_abc123\" // pin to a specific agent version\r\n  });\r\n  ```\r\n\r\n- Add optional `?path=` query param to workspace skill routes for disambiguating same-named skills. ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n  Skill routes continue to use `:skillName` in the URL path (no breaking change). When two skills share the same name (e.g. from different directories), pass the optional `?path=` query parameter to select the exact skill:\r\n\r\n  ```\r\n  GET /workspaces/:workspaceId/skills/:skillName?path=skills/brand-guidelines\r\n  ```\r\n\r\n  `SkillMetadata` now includes a `path` field, and the `list()` method returns all same-named skills for disambiguation. The client SDK's `getSkill()` accepts an optional `skillPath` parameter for disambiguation.\r\n\r\n- Updated skill search result types and query parameters to use `skillName`/`skillNames` instead of `skillPath`/`skillPaths` for consistency with the name-based public API. ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n- Added storage type detection to the Metrics Dashboard. The `/system/packages` endpoint now returns `observabilityStorageType`, identifying the observability storage backend. The dashboard shows an empty state when the storage does not support metrics (e.g. PostgreSQL, LibSQL), and displays a warning when using in-memory storage since metrics are not persisted across server restarts. Also added a docs link button to the Metrics page header. ([#14620](https://github.com/mastra-ai/mastra/pull/14620))\r\n\r\n  ```ts\r\n  import { MastraClient } from \"@mastra/client-js\";\r\n\r\n  const client = new MastraClient();\r\n  const system = await client.getSystemPackages();\r\n\r\n  // system.observabilityStorageType contains the class name of the observability store:\r\n  // - 'ObservabilityInMemory' → metrics work but are not persisted across restarts\r\n  // - 'ObservabilityPG', 'ObservabilityLibSQL', etc. → metrics not supported\r\n\r\n  if (system.observabilityStorageType === \"ObservabilityInMemory\") {\r\n    console.warn(\"Metrics are not persisted — data will be lost on server restart.\");\r\n  }\r\n\r\n  const SUPPORTED = new Set([\"ObservabilityInMemory\"]);\r\n  if (!SUPPORTED.has(system.observabilityStorageType ?? \"\")) {\r\n    console.error(\"Metrics require in-memory observability storage.\");\r\n  }\r\n  ```\r\n\r\n- Fix Zod v3 and Zod v4 compatibility across public structured-output APIs. ([#14464](https://github.com/mastra-ai/mastra/pull/14464))\r\n\r\n  Mastra agent and client APIs accept schemas from either `zod/v3` or `zod/v4`, matching the documented peer dependency range and preserving TypeScript compatibility for both Zod versions.\r\n\r\n### [@mastra/datadog@1.0.9](https://github.com/mastra-ai/mastra/blob/@mastra/datadog@1.0.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/observability/datadog/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixed error info tags being recorded as [object Object] in Datadog. Error details (message, id, domain, category) are now stored as separate flattened tags (error.message, error.id, error.domain, error.category) instead of a nested object, making error information properly visible in Datadog LLM Observability. ([#14570](https://github.com/mastra-ai/mastra/pull/14570))\r\n\r\n### [@mastra/deployer@1.16.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.16.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/deployer/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Inject MASTRA_EXPERIMENTAL_UI environment variable into the studio HTML shell during build and deploy. ([#14547](https://github.com/mastra-ai/mastra/pull/14547))\r\n\r\n### [@mastra/deployer-vercel@1.1.8](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.1.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/deployers/vercel/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Inject MASTRA_EXPERIMENTAL_UI environment variable into the studio HTML shell during build and deploy. ([#14547](https://github.com/mastra-ai/mastra/pull/14547))\r\n\r\n### [@mastra/express@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/server-adapters/express/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added adapter auth middleware helpers for raw framework routes. ([#14458](https://github.com/mastra-ai/mastra/pull/14458))\r\n\r\n  Use `createAuthMiddleware({ mastra })` when you mount routes directly on a Hono, Express, Fastify, or Koa app and still want Mastra auth to run. Set `requiresAuth: false` when you need to reuse the same helper chain on a public route.\r\n\r\n  ```ts\r\n  app.get(\"/custom/protected\", createAuthMiddleware({ mastra }), handler);\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/fastify@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/server-adapters/fastify/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added adapter auth middleware helpers for raw framework routes. ([#14458](https://github.com/mastra-ai/mastra/pull/14458))\r\n\r\n  Use `createAuthMiddleware({ mastra })` when you mount routes directly on a Hono, Express, Fastify, or Koa app and still want Mastra auth to run. Set `requiresAuth: false` when you need to reuse the same helper chain on a public route.\r\n\r\n  ```ts\r\n  app.get(\"/custom/protected\", createAuthMiddleware({ mastra }), handler);\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/hono@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/server-adapters/hono/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added adapter auth middleware helpers for raw framework routes. ([#14458](https://github.com/mastra-ai/mastra/pull/14458))\r\n\r\n  Use `createAuthMiddleware({ mastra })` when you mount routes directly on a Hono, Express, Fastify, or Koa app and still want Mastra auth to run. Set `requiresAuth: false` when you need to reuse the same helper chain on a public route.\r\n\r\n  ```ts\r\n  app.get(\"/custom/protected\", createAuthMiddleware({ mastra }), handler);\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/koa@1.4.0](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.4.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/server-adapters/koa/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added adapter auth middleware helpers for raw framework routes. ([#14458](https://github.com/mastra-ai/mastra/pull/14458))\r\n\r\n  Use `createAuthMiddleware({ mastra })` when you mount routes directly on a Hono, Express, Fastify, or Koa app and still want Mastra auth to run. Set `requiresAuth: false` when you need to reuse the same helper chain on a public route.\r\n\r\n  ```ts\r\n  app.get(\"/custom/protected\", createAuthMiddleware({ mastra }), handler);\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/libsql@1.7.2](https://github.com/mastra-ai/mastra/blob/@mastra/libsql@1.7.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/stores/libsql/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Added storage support for dataset targeting and experiment status fields. ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n  - Added `targetType` (text) and `targetIds` (jsonb) columns to datasets table for entity association\r\n  - Added `tags` (jsonb) column to datasets table for tag vocabulary\r\n  - Added `status` column to experiment results for review workflow tracking\r\n  - Added migration logic to add new columns to existing tables\r\n\r\n- Added agent version support for experiments. When triggering an experiment, you can now pass an `agentVersion` parameter to pin which agent version to use. The agent version is stored with the experiment and returned in experiment responses. ([#14562](https://github.com/mastra-ai/mastra/pull/14562))\r\n\r\n  ```ts\r\n  const client = new MastraClient();\r\n\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: \"my-dataset\",\r\n    targetType: \"agent\",\r\n    targetId: \"my-agent\",\r\n    version: 3, // pin to dataset version 3\r\n    agentVersion: \"ver_abc123\" // pin to a specific agent version\r\n  });\r\n  ```\r\n\r\n### [@mastra/memory@1.10.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.10.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/memory/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added `ModelByInputTokens` in `@mastra/memory` for token-threshold-based model selection in Observational Memory. ([#14614](https://github.com/mastra-ai/mastra/pull/14614))\r\n\r\n  When configured, OM automatically selects different observer or reflector models based on the actual input token count at the time the OM call runs.\r\n\r\n  Example usage:\r\n\r\n  ```ts\r\n  import { Memory, ModelByInputTokens } from \"@mastra/memory\";\r\n\r\n  const memory = new Memory({\r\n    options: {\r\n      observationalMemory: {\r\n        model: new ModelByInputTokens({\r\n          upTo: {\r\n            10_000: \"google/gemini-2.5-flash\",\r\n            40_000: \"openai/gpt-4o\",\r\n            1_000_000: \"openai/gpt-4.5\"\r\n          }\r\n        })\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n  The `upTo` keys are inclusive upper bounds. OM resolves the matching tier directly at the observer or reflector call site. If the input exceeds the largest configured threshold, OM throws an error.\r\n\r\n  Improved Observational Memory tracing so traces show the observer and reflector spans and make it easier to see which resolved model was used at runtime.\r\n\r\n#### Patch Changes\r\n\r\n- Fixed observational memory reflection compression for `google/gemini-2.5-flash` by using stronger compression guidance and starting it at a higher compression level during reflection. `google/gemini-2.5-flash` is unusually good at generating long, faithful outputs. That made reflection retries more likely to preserve too much detail and miss the compression target, wasting tokens in the process. ([#14612](https://github.com/mastra-ai/mastra/pull/14612))\r\n\r\n### [@mastra/mongodb@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/mongodb@1.6.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/stores/mongodb/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added datasets and experiments storage support to the MongoDB store. ([#14556](https://github.com/mastra-ai/mastra/pull/14556))\r\n\r\n  **Datasets** — Full dataset management with versioned items. Create, update, and delete datasets and their items with automatic version tracking. Supports batch insert/delete operations, time-travel queries to retrieve items at any past version, and item history tracking.\r\n\r\n  **Experiments** — Run and track experiments against datasets. Full CRUD for experiments and per-item experiment results, with pagination, filtering, and cascade deletion.\r\n\r\n  Both domains are automatically available when using `MongoDBStore` — no additional configuration needed.\r\n\r\n  ```ts\r\n  const store = new MongoDBStore({ uri: \"mongodb://localhost:27017\", dbName: \"my-app\" });\r\n\r\n  // Datasets\r\n  const dataset = await store.getStorage(\"datasets\").createDataset({ name: \"my-dataset\" });\r\n  await store.getStorage(\"datasets\").addItem({ datasetId: dataset.id, input: { prompt: \"hello\" } });\r\n\r\n  // Experiments\r\n  const experiment = await store.getStorage(\"experiments\").createExperiment({ name: \"run-1\", datasetId: dataset.id });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/pg@1.8.3](https://github.com/mastra-ai/mastra/blob/@mastra/pg@1.8.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/stores/pg/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Added storage support for dataset targeting and experiment status fields. ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n  - Added `targetType` (text) and `targetIds` (jsonb) columns to datasets table for entity association\r\n  - Added `tags` (jsonb) column to datasets table for tag vocabulary\r\n  - Added `status` column to experiment results for review workflow tracking\r\n  - Added migration logic to add new columns to existing tables\r\n\r\n- Added agent version support for experiments. When triggering an experiment, you can now pass an `agentVersion` parameter to pin which agent version to use. The agent version is stored with the experiment and returned in experiment responses. ([#14562](https://github.com/mastra-ai/mastra/pull/14562))\r\n\r\n  ```ts\r\n  const client = new MastraClient();\r\n\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: \"my-dataset\",\r\n    targetType: \"agent\",\r\n    targetId: \"my-agent\",\r\n    version: 3, // pin to dataset version 3\r\n    agentVersion: \"ver_abc123\" // pin to a specific agent version\r\n  });\r\n  ```\r\n\r\n### [@mastra/playground-ui@19.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@19.0.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/playground-ui/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added Evaluate tab to the agent playground with full dataset management, scorer editing, experiment execution, and review workflow. ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n\r\n  **Evaluate tab** — A new sidebar-driven tab for managing datasets, scorers, and experiments within the agent playground. Key features:\r\n  - **Dataset management**: Create, attach/detach, and browse datasets. Inline item editing and deletion. Background LLM-powered test data generation with review-before-add flow.\r\n  - **Scorer editor**: Create and edit scorers with test items, linked test datasets, configurable score ranges, and model selection. Run scorer experiments directly from the editor.\r\n  - **Experiment runner**: Trigger experiments from dataset or scorer views with correct target routing (agent, scorer, or workflow). Past runs displayed with pass/fail counts and auto-polling for status updates.\r\n  - **Collapsible sidebar sections**: Datasets, Scorers, and Experiments sections are collapsible with search-enabled attach dialogs.\r\n\r\n  **Review tab** — A dedicated review workflow for experiment results:\r\n  - Tag-based organization with dataset-level tag vocabulary and bulk tagging\r\n  - LLM-powered analysis (\"Analyze untagged/selected\") that proposes tags with reasons, using existing tags when applicable\r\n  - Thumbs up/down ratings and comments persisted via feedback API\r\n  - Mark items as complete for audit trail\r\n  - Completed items section with read-only display\r\n\r\n- Added dataset and agent version selectors to the experiment evaluate tab. You can now choose which dataset version and agent version to use when running an experiment. Version information is displayed in the experiment sidebar, results panel header, and Past Runs list. Added a copy button next to the agent version selector to easily copy version IDs. ([#14562](https://github.com/mastra-ai/mastra/pull/14562))\r\n\r\n#### Patch Changes\r\n\r\n- Added EntityList.NoMatch component that displays a message when search filtering returns no results. Applied to all entity list pages: Agents, Workflows, Tools, Scorers, Processors, Prompts, Datasets, and MCP Servers. ([#14621](https://github.com/mastra-ai/mastra/pull/14621))\r\n\r\n- Added agent version support for experiments. When triggering an experiment, you can now pass an `agentVersion` parameter to pin which agent version to use. The agent version is stored with the experiment and returned in experiment responses. ([#14562](https://github.com/mastra-ai/mastra/pull/14562))\r\n\r\n  ```ts\r\n  const client = new MastraClient();\r\n\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: \"my-dataset\",\r\n    targetType: \"agent\",\r\n    targetId: \"my-agent\",\r\n    version: 3, // pin to dataset version 3\r\n    agentVersion: \"ver_abc123\" // pin to a specific agent version\r\n  });\r\n  ```\r\n\r\n- Removed 'Create an Agent' button from agent list page and table empty state. Removed 'Create Scorer' button from top-level scorers page. Removed stored/code source icons (AgentSourceIcon) from agent headers, combobox, and table. Renamed 'Versions' tab to 'Editor' in agent page tabs. Added GaugeIcon to the 'Create Scorer' button in the review tab. ([#14555](https://github.com/mastra-ai/mastra/pull/14555))\r\n\r\n- Added metrics dashboard with KPI cards, trace volume, latency, model usage, and scores visualizations. Includes filtering by date range, agents, models, and providers. Added HorizontalBars, MetricsCard, MetricsKpiCard, MetricsLineChart, MetricsFlexGrid, and MetricsDataTable design system components. ([#14491](https://github.com/mastra-ai/mastra/pull/14491))\r\n\r\n- Internal cleanup and linting fixes ([#14497](https://github.com/mastra-ai/mastra/pull/14497))\r\n\r\n- Add optional `?path=` query param to workspace skill routes for disambiguating same-named skills. ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n  Skill routes continue to use `:skillName` in the URL path (no breaking change). When two skills share the same name (e.g. from different directories), pass the optional `?path=` query parameter to select the exact skill:\r\n\r\n  ```\r\n  GET /workspaces/:workspaceId/skills/:skillName?path=skills/brand-guidelines\r\n  ```\r\n\r\n  `SkillMetadata` now includes a `path` field, and the `list()` method returns all same-named skills for disambiguation. The client SDK's `getSkill()` accepts an optional `skillPath` parameter for disambiguation.\r\n\r\n- Updated skill search result types and query parameters to use `skillName`/`skillNames` instead of `skillPath`/`skillPaths` for consistency with the name-based public API. ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n- Added experimental entity list components with skeleton loading states, error handling, and dedicated empty state components for all list pages. Gated behind MASTRA_EXPERIMENTAL_UI environment variable. ([#14547](https://github.com/mastra-ai/mastra/pull/14547))\r\n\r\n- Added storage type detection to the Metrics Dashboard. The `/system/packages` endpoint now returns `observabilityStorageType`, identifying the observability storage backend. The dashboard shows an empty state when the storage does not support metrics (e.g. PostgreSQL, LibSQL), and displays a warning when using in-memory storage since metrics are not persisted across server restarts. Also added a docs link button to the Metrics page header. ([#14620](https://github.com/mastra-ai/mastra/pull/14620))\r\n\r\n  ```ts\r\n  import { MastraClient } from \"@mastra/client-js\";\r\n\r\n  const client = new MastraClient();\r\n  const system = await client.getSystemPackages();\r\n\r\n  // system.observabilityStorageType contains the class name of the observability store:\r\n  // - 'ObservabilityInMemory' → metrics work but are not persisted across restarts\r\n  // - 'ObservabilityPG', 'ObservabilityLibSQL', etc. → metrics not supported\r\n\r\n  if (system.observabilityStorageType === \"ObservabilityInMemory\") {\r\n    console.warn(\"Metrics are not persisted — data will be lost on server restart.\");\r\n  }\r\n\r\n  const SUPPORTED = new Set([\"ObservabilityInMemory\"]);\r\n  if (!SUPPORTED.has(system.observabilityStorageType ?? \"\")) {\r\n    console.error(\"Metrics require in-memory observability storage.\");\r\n  }\r\n  ```\r\n\r\n- Added `ModelByInputTokens` in `@mastra/memory` for token-threshold-based model selection in Observational Memory. ([#14614](https://github.com/mastra-ai/mastra/pull/14614))\r\n\r\n  When configured, OM automatically selects different observer or reflector models based on the actual input token count at the time the OM call runs.\r\n\r\n  Example usage:\r\n\r\n  ```ts\r\n  import { Memory, ModelByInputTokens } from \"@mastra/memory\";\r\n\r\n  const memory = new Memory({\r\n    options: {\r\n      observationalMemory: {\r\n        model: new ModelByInputTokens({\r\n          upTo: {\r\n            10_000: \"google/gemini-2.5-flash\",\r\n            40_000: \"openai/gpt-4o\",\r\n            1_000_000: \"openai/gpt-4.5\"\r\n          }\r\n        })\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n  The `upTo` keys are inclusive upper bounds. OM resolves the matching tier directly at the observer or reflector call site. If the input exceeds the largest configured threshold, OM throws an error.\r\n\r\n  Improved Observational Memory tracing so traces show the observer and reflector spans and make it easier to see which resolved model was used at runtime.\r\n\r\n- Redesigned the agent instruction blocks editor with a Notion-like document feel. Blocks no longer show line numbers or block numbers, have tighter spacing, and display a subtle hover highlight. Reference blocks now show a sync-block header with a popover for block details, \"Open original\", \"De-reference block\", and \"Used by\" agents. Inline blocks can be converted to saved prompt blocks via a new \"Save as prompt block\" action in the hover toolbar. The prompt block edit sidebar now shows a \"Used by\" section listing which agents reference the block. Added a `lineNumbers` prop to `CodeEditor` to optionally hide line numbers. ([#14563](https://github.com/mastra-ai/mastra/pull/14563))\r\n\r\n  ```tsx\r\n  <CodeEditor language=\"markdown\" lineNumbers={false} />\r\n  ```\r\n\r\n### [@mastra/react@0.2.17](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.17//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/client-sdks/react/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fix Zod v3 and Zod v4 compatibility across public structured-output APIs. ([#14464](https://github.com/mastra-ai/mastra/pull/14464))\r\n\r\n  Mastra agent and client APIs accept schemas from either `zod/v3` or `zod/v4`, matching the documented peer dependency range and preserving TypeScript compatibility for both Zod versions.\r\n\r\n### [@mastra/schema-compat@1.2.7](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.2.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/schema-compat/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixed schema-compat ESM imports for Zod JSON Schema helpers. ([#14617](https://github.com/mastra-ai/mastra/pull/14617))\r\n\r\n  @mastra/schema-compat no longer uses createRequire in its Zod v4 adapter or runtime eval tests, which avoids createRequire-related ESM issues while preserving support for zod/v3 and zod/v4.\r\n\r\n- Fix Zod v3 and Zod v4 compatibility across public structured-output APIs. ([#14464](https://github.com/mastra-ai/mastra/pull/14464))\r\n\r\n  Mastra agent and client APIs accept schemas from either `zod/v3` or `zod/v4`, matching the documented peer dependency range and preserving TypeScript compatibility for both Zod versions.\r\n\r\n### [@mastra/server@1.16.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.16.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/server/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added dataset-agent association and experiment status tracking for the Evaluate workflow. ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n  - **Dataset targeting**: Added `targetType` and `targetIds` fields to datasets, enabling association with agents, scorers, or workflows. Datasets can now be linked to multiple entities.\r\n  - **Experiment status**: Added `status` field to experiment results (`'needs-review'`, `'reviewed'`, `'complete'`) for review queue workflow.\r\n  - **Dataset experiment routes**: Added API endpoints for triggering experiments from a dataset with configurable target type and target ID.\r\n  - **LLM data generation**: Added endpoint for generating dataset items using an LLM with configurable count and prompt.\r\n  - **Failure analysis**: Added endpoint for clustering experiment failures and proposing tags using LLM analysis.\r\n\r\n- Added `getAuthenticatedUser()` to `@mastra/server/auth` so server middleware can resolve the configured auth user without changing route auth behavior. ([#14458](https://github.com/mastra-ai/mastra/pull/14458))\r\n\r\n  **Example**\r\n\r\n  ```ts\r\n  import { getAuthenticatedUser } from \"@mastra/server/auth\";\r\n\r\n  const user = await getAuthenticatedUser({\r\n    mastra,\r\n    token,\r\n    request: c.req.raw\r\n  });\r\n  ```\r\n\r\n- Added new observability API endpoints and client methods for logs, scores, feedback, metrics (aggregate, breakdown, time series, percentiles), and discovery (metric names, label keys/values, entity types/names, service names, environments, tags) ([#14470](https://github.com/mastra-ai/mastra/pull/14470))\r\n\r\n#### Patch Changes\r\n\r\n- Added agent version support for experiments. When triggering an experiment, you can now pass an `agentVersion` parameter to pin which agent version to use. The agent version is stored with the experiment and returned in experiment responses. ([#14562](https://github.com/mastra-ai/mastra/pull/14562))\r\n\r\n  ```ts\r\n  const client = new MastraClient();\r\n\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: \"my-dataset\",\r\n    targetType: \"agent\",\r\n    targetId: \"my-agent\",\r\n    version: 3, // pin to dataset version 3\r\n    agentVersion: \"ver_abc123\" // pin to a specific agent version\r\n  });\r\n  ```\r\n\r\n- Add optional `?path=` query param to workspace skill routes for disambiguating same-named skills. ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n  Skill routes continue to use `:skillName` in the URL path (no breaking change). When two skills share the same name (e.g. from different directories), pass the optional `?path=` query parameter to select the exact skill:\r\n\r\n  ```\r\n  GET /workspaces/:workspaceId/skills/:skillName?path=skills/brand-guidelines\r\n  ```\r\n\r\n  `SkillMetadata` now includes a `path` field, and the `list()` method returns all same-named skills for disambiguation. The client SDK's `getSkill()` accepts an optional `skillPath` parameter for disambiguation.\r\n\r\n- Updated skill search result types and query parameters to use `skillName`/`skillNames` instead of `skillPath`/`skillPaths` for consistency with the name-based public API. ([#14430](https://github.com/mastra-ai/mastra/pull/14430))\r\n\r\n- Added storage type detection to the Metrics Dashboard. The `/system/packages` endpoint now returns `observabilityStorageType`, identifying the observability storage backend. The dashboard shows an empty state when the storage does not support metrics (e.g. PostgreSQL, LibSQL), and displays a warning when using in-memory storage since metrics are not persisted across server restarts. Also added a docs link button to the Metrics page header. ([#14620](https://github.com/mastra-ai/mastra/pull/14620))\r\n\r\n  ```ts\r\n  import { MastraClient } from \"@mastra/client-js\";\r\n\r\n  const client = new MastraClient();\r\n  const system = await client.getSystemPackages();\r\n\r\n  // system.observabilityStorageType contains the class name of the observability store:\r\n  // - 'ObservabilityInMemory' → metrics work but are not persisted across restarts\r\n  // - 'ObservabilityPG', 'ObservabilityLibSQL', etc. → metrics not supported\r\n\r\n  if (system.observabilityStorageType === \"ObservabilityInMemory\") {\r\n    console.warn(\"Metrics are not persisted — data will be lost on server restart.\");\r\n  }\r\n\r\n  const SUPPORTED = new Set([\"ObservabilityInMemory\"]);\r\n  if (!SUPPORTED.has(system.observabilityStorageType ?? \"\")) {\r\n    console.error(\"Metrics require in-memory observability storage.\");\r\n  }\r\n  ```\r\n\r\n- Fix Zod v3 and Zod v4 compatibility across public structured-output APIs. ([#14464](https://github.com/mastra-ai/mastra/pull/14464))\r\n\r\n  Mastra agent and client APIs accept schemas from either `zod/v3` or `zod/v4`, matching the documented peer dependency range and preserving TypeScript compatibility for both Zod versions.\r\n\r\n- Added `ModelByInputTokens` in `@mastra/memory` for token-threshold-based model selection in Observational Memory. ([#14614](https://github.com/mastra-ai/mastra/pull/14614))\r\n\r\n  When configured, OM automatically selects different observer or reflector models based on the actual input token count at the time the OM call runs.\r\n\r\n  Example usage:\r\n\r\n  ```ts\r\n  import { Memory, ModelByInputTokens } from \"@mastra/memory\";\r\n\r\n  const memory = new Memory({\r\n    options: {\r\n      observationalMemory: {\r\n        model: new ModelByInputTokens({\r\n          upTo: {\r\n            10_000: \"google/gemini-2.5-flash\",\r\n            40_000: \"openai/gpt-4o\",\r\n            1_000_000: \"openai/gpt-4.5\"\r\n          }\r\n        })\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n  The `upTo` keys are inclusive upper bounds. OM resolves the matching tier directly at the observer or reflector call site. If the input exceeds the largest configured threshold, OM throws an error.\r\n\r\n  Improved Observational Memory tracing so traces show the observer and reflector spans and make it easier to see which resolved model was used at runtime.\r\n\r\n### Other updated packages\r\n\r\nThe following packages were updated with dependency changes only:\r\n\r\n- [@mastra/agent-builder@1.0.18](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.18//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/agent-builder/CHANGELOG.md)\r\n- [@mastra/deployer-cloud@1.16.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.16.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/deployers/cloud/CHANGELOG.md)\r\n- [@mastra/deployer-cloudflare@1.1.14](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/deployers/cloudflare/CHANGELOG.md)\r\n- [@mastra/deployer-netlify@1.0.18](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.18//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/deployers/netlify/CHANGELOG.md)\r\n- [@mastra/longmemeval@1.0.19](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.19//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/explorations/longmemeval/CHANGELOG.md)\r\n- [@mastra/mcp-docs-server@1.1.16](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.16//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/packages/mcp-docs-server/CHANGELOG.md)\r\n- [@mastra/opencode@0.0.16](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.16//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.16.0/integrations/opencode/CHANGELOG.md)\r\n","publishedAt":"2026-03-26T10:19:34.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.16.0","media":[]},{"id":"rel_5I2BmLyccAUTU6pNwxnbx","version":"@mastra/core@1.14.0","title":"March 17, 2026","summary":"## Highlights\r\n\r\n### AI Gateway Tool Support in the Agentic Loop\r\n`@mastra/core` now supports AI Gateway tools (e.g. `gateway.tools.perplexitySearch()...","content":"## Highlights\r\n\r\n### AI Gateway Tool Support in the Agentic Loop\r\n`@mastra/core` now supports AI Gateway tools (e.g. `gateway.tools.perplexitySearch()`) as provider-executed tools: it infers `providerExecuted`, merges streamed provider results back into the originating tool calls, and skips local execution when the provider already returned a result.\r\n\r\n### More Reliable Observational Memory (Cache Stability + “As Of” Retrieval)\r\nObservational memory persistence is more stable via dated message boundary delimiters and chunking, and `@mastra/memory` adds `getObservationsAsOf()` to retrieve the exact observation set active at a given message timestamp (useful for replay/debugging and consistent prompting).\r\n\r\n### MCP Client Diagnostics & Per-Server Control\r\n`@mastra/mcp` adds per-server operational tooling—`reconnectServer(serverName)`, `listToolsetsWithErrors()`, and `getServerStderr(serverName)`—to improve reliability and debugging of MCP stdio/server integrations.\r\n\r\n### Breaking Changes\r\n- None called out in this changelog.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.14.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.14.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/core/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`51970b3`](https://github.com/mastra-ai/mastra/commit/51970b3828494d59a8dd4df143b194d37d31e3f5))\r\n\r\n- Added dated message boundary delimiters when activating buffered observations for improved cache stability. ([#14367](https://github.com/mastra-ai/mastra/pull/14367))\r\n\r\n- Fixed provider-executed tool calls being saved out of order or without results in memory replay. (Fixes #13762) ([#13860](https://github.com/mastra-ai/mastra/pull/13860))\r\n\r\n- Fix `generateEmptyFromSchema` to accept both string and pre-parsed object JSON schema inputs, recursively initialize nested object properties, and respect default values. Updated `WorkingMemoryTemplate` type to a discriminated union supporting `Record<string, unknown>` content for JSON format templates. Removed duplicate private schema generator in the working-memory processor in favor of the shared utility. ([#14310](https://github.com/mastra-ai/mastra/pull/14310))\r\n\r\n- Fixed provider-executed tool calls (e.g. Anthropic `web_search`) being dropped or incorrectly persisted when deferred by the provider. Tool call parts are now persisted in stream order, and deferred tool results are correctly merged back into the originating message. ([#14282](https://github.com/mastra-ai/mastra/pull/14282))\r\n\r\n- Fixed `replaceString` utility to properly escape `$` characters in replacement strings. Previously, patterns like `$&` in the replacement text would be interpreted as regex backreferences instead of literal text. ([#14434](https://github.com/mastra-ai/mastra/pull/14434))\r\n\r\n- Fixed tool invocation updates to preserve `providerExecuted` and `providerMetadata` from the original tool call when updating to result state. ([#14431](https://github.com/mastra-ai/mastra/pull/14431))\r\n\r\n- `@mastra/core`: patch ([#14327](https://github.com/mastra-ai/mastra/pull/14327))\r\n\r\n  Added `spanId` alongside `traceId` across user-facing execution results that return tracing identifiers (including agent stream/generate and workflow run results) so integrations can query observability vendors by run root span ID\r\n\r\n- Add AI Gateway tool support in the agentic loop. ([#14016](https://github.com/mastra-ai/mastra/pull/14016))\r\n\r\n  Gateway tools (e.g., `gateway.tools.perplexitySearch()`) are provider-executed but, unlike native provider tools (e.g., `openai.tools.webSearch()`), the LLM provider does not store their results server-side. The agentic loop now correctly infers `providerExecuted` for these tools, merges streamed provider results with their corresponding tool calls, and skips local execution when a provider result is already present.\r\n\r\n  Fixes #13190\r\n\r\n- Fixed schema-based working memory typing so `workingMemory.schema` accepts supported schemas such as Zod and JSON Schema. ([#14363](https://github.com/mastra-ai/mastra/pull/14363))\r\n\r\n- Fixed workspace search being wiped when skills refresh. Previously, calling `skills.refresh()` or triggering a skills re-discovery via `maybeRefresh()` would clear the entire BM25 search index, including auto-indexed workspace content. Now only skill entries are removed from the index during refresh, preserving workspace search results. ([#14287](https://github.com/mastra-ai/mastra/pull/14287))\r\n\r\n- Added client/server body schemas for feedback and scores that omit the timestamp field, allowing it to be set server-side ([#14270](https://github.com/mastra-ai/mastra/pull/14270))\r\n\r\n- Fixed processor state not persisting between processOutputStream and processOutputResult when processors are wrapped in workflows. State set during stream processing is now correctly accessible in processOutputResult. ([#14279](https://github.com/mastra-ai/mastra/pull/14279))\r\n\r\n- Fixed type inference for requestContext schemas when using Zod v3 and v4. Agent and tool configurations now correctly infer RequestContext types from Zod schemas and other StandardSchema-compatible schemas. ([#14363](https://github.com/mastra-ai/mastra/pull/14363))\r\n\r\n### [@mastra/ai-sdk@1.1.4](https://github.com/mastra-ai/mastra/blob/@mastra/ai-sdk@1.1.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Clarified that chatRoute() aborts generation on client disconnect and documented a custom route pattern that continues server-side generation with consumeStream(). ([#14333](https://github.com/mastra-ai/mastra/pull/14333))\r\n\r\n### [@mastra/auth@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/auth@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/auth/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed Studio showing unauthenticated state when using `MastraJwtAuth` with custom headers. `MastraJwtAuth` now implements the `IUserProvider` interface (`getCurrentUser`/`getUser`), so the Studio capabilities endpoint can resolve the authenticated user from the JWT Bearer token. ([#14411](https://github.com/mastra-ai/mastra/pull/14411))\r\n\r\n  Also added an optional `mapUser` option to customize how JWT claims are mapped to user fields:\r\n\r\n  ```typescript\r\n  new MastraJwtAuth({\r\n    secret: process.env.JWT_SECRET,\r\n    mapUser: payload => ({\r\n      id: payload.userId,\r\n      name: payload.displayName,\r\n      email: payload.mail,\r\n    }),\r\n  });\r\n  ```\r\n\r\n  Closes #14350\r\n\r\n### [@mastra/auth-studio@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/auth-studio@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/auth/studio/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Add configurable cookie domain support ([#14285](https://github.com/mastra-ai/mastra/pull/14285))\r\n  - Add `cookieDomain` option to `MastraAuthStudioOptions` for explicit configuration\r\n  - Support `MASTRA_COOKIE_DOMAIN` environment variable as fallback\r\n  - Use hostname-based detection for auto-detecting `.mastra.ai` domain (prevents false positives from malicious URLs)\r\n  - Maintain backward compatibility with existing `.mastra.ai` auto-detection\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/client-js@1.9.0](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.9.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/client-sdks/client-js/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added new observability API endpoints and client methods for logs, scores, feedback, metrics (aggregate, breakdown, time series, percentiles), and discovery (metric names, label keys/values, entity types/names, service names, environments, tags) ([#14270](https://github.com/mastra-ai/mastra/pull/14270))\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/deployer@1.14.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.14.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/deployer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added `MASTRA_HOST` environment variable support for configuring the server bind address. Previously, the host could only be set via `server.host` in the Mastra config. Now it follows the same pattern as `PORT`: config value takes precedence, then env var, then defaults to `localhost`. ([#14313](https://github.com/mastra-ai/mastra/pull/14313))\r\n\r\n- Added a new `MASTRA_TEMPLATES` Studio runtime flag to control whether the **Templates** section appears in the sidebar. ([#14309](https://github.com/mastra-ai/mastra/pull/14309))\r\n  - `MASTRA_TEMPLATES=true` now enables Templates navigation in Studio.\r\n  - By default (`false` or unset), Templates is hidden.\r\n  - Studio HTML injection now propagates this value in both CLI-hosted and deployer-hosted Studio builds.\r\n  - Added tests covering environment variable injection for both paths.\r\n\r\n- Fixed tsconfig path aliases during build when imports use .js-style module specifiers. ([#13998](https://github.com/mastra-ai/mastra/pull/13998))\r\n\r\n- Fixed `apiPrefix` server option not being applied to the underlying Hono server instance. Routes, welcome page, Swagger UI, and studio HTML handler now all respect the configured `apiPrefix` instead of hardcoding `/api`. ([#14325](https://github.com/mastra-ai/mastra/pull/14325))\r\n\r\n### [@mastra/deployer-cloudflare@1.1.12](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.12//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/deployers/cloudflare/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Stop writing `.env` variables to `wrangler.jsonc` to prevent secrets from leaking into source control. ([#14302](https://github.com/mastra-ai/mastra/pull/14302))\r\n  - Environment variables from `.env` are no longer merged into the `vars` field of the generated wrangler config.\r\n  - User-provided `vars` from the `CloudflareDeployer` constructor are still written as before.\r\n  - A warning is logged during build with instructions to upload secrets via `npx wrangler secret bulk .env`.\r\n\r\n### [@mastra/elasticsearch@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/elasticsearch@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/stores/elasticsearch/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added support for constructing `ElasticSearchVector` with a pre-configured Elasticsearch client. You can now pass either a `client` instance or connection parameters (`url` and optional `auth`), giving you full control over client configuration when needed. ([#12802](https://github.com/mastra-ai/mastra/pull/12802))\r\n\r\n  **Using connection parameters:**\r\n\r\n  ```typescript\r\n  const vectorDB = new ElasticSearchVector({\r\n    id: 'my-store',\r\n    url: 'http://localhost:9200',\r\n    auth: { apiKey: 'my-key' },\r\n  });\r\n  ```\r\n\r\n  **Using a pre-configured client:**\r\n\r\n  ```typescript\r\n  import { Client } from '@elastic/elasticsearch';\r\n\r\n  const client = new Client({ node: 'http://localhost:9200' });\r\n  const vectorDB = new ElasticSearchVector({ id: 'my-store', client });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/libsql@1.7.1](https://github.com/mastra-ai/mastra/blob/@mastra/libsql@1.7.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/stores/libsql/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added dated message boundary delimiters when activating buffered observations for improved cache stability. ([#14367](https://github.com/mastra-ai/mastra/pull/14367))\r\n\r\n### [@mastra/loggers@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/loggers@1.0.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/loggers/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed: PinoLogger now supports JSON output for log aggregators ([#14306](https://github.com/mastra-ai/mastra/pull/14306))\r\n\r\n  Previously, PinoLogger always used pino-pretty which produced multiline\r\n  colored output, breaking log aggregators like Datadog, Loki, and CloudWatch.\r\n  A new prettyPrint option allows switching to single-line JSON output.\r\n\r\n### [@mastra/mcp@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/mcp@1.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/mcp/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added new MCP client APIs for per-server control and diagnostics. ([#14377](https://github.com/mastra-ai/mastra/pull/14377))\r\n  - Added `reconnectServer(serverName)` to reconnect a single MCP server without restarting all servers.\r\n  - Added `listToolsetsWithErrors()` to return both toolsets and per-server errors.\r\n  - Added `getServerStderr(serverName)` to inspect piped stderr for stdio servers.\r\n\r\n  **Example**\r\n\r\n  ```ts\r\n  const { toolsets, errors } = await mcpClient.listToolsetsWithErrors();\r\n  await mcpClient.reconnectServer('slack');\r\n  const stderr = mcpClient.getServerStderr('slack');\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- **Improved** ([#14260](https://github.com/mastra-ai/mastra/pull/14260))\r\n  - Updated `@modelcontextprotocol/sdk` from `^1.17.5` to `^1.27.1`.\r\n\r\n  **Deprecated**\r\n  - Deprecated prompt `version` usage in `@mastra/mcp`.\r\n  - Prompt versions are not part of MCP protocol behavior and will be removed.\r\n\r\n  **Migration**\r\n  - Use unique prompt names instead of prompt versions.\r\n  - Before: `client.prompts.get({ name: 'explain-code', version: 'v1', args })`\r\n  - After: `client.prompts.get({ name: 'explain-code-v1', args })`\r\n  - `MastraPrompt` is available for migration and is also deprecated.\r\n\r\n### [@mastra/memory@1.8.3](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.8.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/memory/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed observational memory triggering observation while provider-executed tool calls are still pending, which could split messages and cause errors on follow-up turns. ([#14282](https://github.com/mastra-ai/mastra/pull/14282))\r\n\r\n- Fixed working memory tool description to accurately reflect merge behavior. The previous description incorrectly stated \"Set a field to null to remove it\" but null values are stripped by validation before reaching the merge logic. The updated description clarifies: omit fields to preserve existing data, and pass complete arrays or omit them since arrays are replaced entirely. ([#14424](https://github.com/mastra-ai/mastra/pull/14424))\r\n\r\n- Limit oversized observational-memory tool results before they reach the observer. ([#14344](https://github.com/mastra-ai/mastra/pull/14344))\r\n\r\n  This strips large `encryptedContent` blobs and truncates remaining tool result payloads to keep observer prompts and token estimates aligned with what the model actually sees.\r\n\r\n- Improved observational memory cache stability by splitting persisted observations into separate prompt chunks using dated message boundary delimiters. ([#14367](https://github.com/mastra-ai/mastra/pull/14367))\r\n\r\n  Added `getObservationsAsOf()` utility to retrieve the observations that were active at a specific point in time. This enables filtering observation history by message creation date.\r\n\r\n  ```ts\r\n  import { getObservationsAsOf } from '@mastra/memory';\r\n\r\n  // Get observations that existed when a specific message was created\r\n  const observations = getObservationsAsOf(record.activeObservations, message.createdAt);\r\n  ```\r\n\r\n### [@mastra/mongodb@1.5.6](https://github.com/mastra-ai/mastra/blob/@mastra/mongodb@1.5.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/stores/mongodb/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added dated message boundary delimiters when activating buffered observations for improved cache stability. ([#14367](https://github.com/mastra-ai/mastra/pull/14367))\r\n\r\n### [@mastra/pg@1.8.1](https://github.com/mastra-ai/mastra/blob/@mastra/pg@1.8.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/stores/pg/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added dated message boundary delimiters when activating buffered observations for improved cache stability. ([#14367](https://github.com/mastra-ai/mastra/pull/14367))\r\n\r\n### [@mastra/playground-ui@17.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@17.0.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/playground-ui/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added dedicated session page for agents at `/agents/<agentId>/session`. This minimal view shows only the chat interface without the sidebar or information pane, making it ideal for quick internal testing or sharing with non-technical team members. If request context presets are configured, a preset dropdown appears in the header. ([#13754](https://github.com/mastra-ai/mastra/pull/13754))\r\n\r\n  Added `hideModelSwitcher` prop to `AgentChat` and `Thread` components to allow hiding the model picker in the composer.\r\n\r\n#### Patch Changes\r\n\r\n- Fixed crash during template installation by ensuring error values from stream events are converted to strings before being passed to the UI. This prevents the 'e?.includes is not a function' TypeError when the server returns non-string error payloads. ([#14267](https://github.com/mastra-ai/mastra/pull/14267))\r\n\r\n- Fixed crash when template installation errors are non-string values (e.g. objects). The error is now safely converted to a string before calling .includes(), preventing the 'e?.includes is not a function' TypeError in the studio. ([#14267](https://github.com/mastra-ai/mastra/pull/14267))\r\n\r\n### [@mastra/schema-compat@1.2.5](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.2.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/schema-compat/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added ZodIntersection support so that MCP tools using allOf in their JSON Schema no longer throw 'does not support zod type: ZodIntersection'. Intersection types are flattened and merged into a single object schema across all provider compatibility layers (Anthropic, Google, OpenAI, OpenAI Reasoning, DeepSeek, Meta). ([#14255](https://github.com/mastra-ai/mastra/pull/14255))\r\n\r\n### [@mastra/server@1.14.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.14.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/server/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added new observability API endpoints and client methods for logs, scores, feedback, metrics (aggregate, breakdown, time series, percentiles), and discovery (metric names, label keys/values, entity types/names, service names, environments, tags) ([#14270](https://github.com/mastra-ai/mastra/pull/14270))\r\n\r\n#### Patch Changes\r\n\r\n- Fixed server tool serialization for plain JSON Schema objects to prevent tools from disappearing in Studio. ([#13920](https://github.com/mastra-ai/mastra/pull/13920))\r\n\r\n### Other updated packages\r\n\r\nThe following packages were updated with dependency changes only:\r\n\r\n- [@mastra/agent-builder@1.0.16](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.16//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/agent-builder/CHANGELOG.md)\r\n- [@mastra/auth-clerk@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/auth-clerk@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/auth/clerk/CHANGELOG.md)\r\n- [@mastra/auth-cloud@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/auth-cloud@1.1.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/auth/cloud/CHANGELOG.md)\r\n- [@mastra/auth-workos@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/auth-workos@1.1.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/auth/workos/CHANGELOG.md)\r\n- [@mastra/deployer-cloud@1.14.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.14.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/deployers/cloud/CHANGELOG.md)\r\n- [@mastra/deployer-netlify@1.0.16](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.16//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/deployers/netlify/CHANGELOG.md)\r\n- [@mastra/deployer-vercel@1.1.6](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.1.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/deployers/vercel/CHANGELOG.md)\r\n- [@mastra/express@1.2.5](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.2.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/server-adapters/express/CHANGELOG.md)\r\n- [@mastra/fastify@1.2.5](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.2.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/server-adapters/fastify/CHANGELOG.md)\r\n- [@mastra/hono@1.2.5](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.2.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/server-adapters/hono/CHANGELOG.md)\r\n- [@mastra/koa@1.3.5](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.3.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/server-adapters/koa/CHANGELOG.md)\r\n- [@mastra/longmemeval@1.0.17](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.17//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/explorations/longmemeval/CHANGELOG.md)\r\n- [@mastra/mcp-docs-server@1.1.14](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/packages/mcp-docs-server/CHANGELOG.md)\r\n- [@mastra/opencode@0.0.14](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/integrations/opencode/CHANGELOG.md)\r\n- [@mastra/react@0.2.15](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.15//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.14.0/client-sdks/react/CHANGELOG.md)\r\n\r\n","publishedAt":"2026-03-19T10:48:28.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.14.0","media":[]},{"id":"rel_4BU--peUuAqPy0FzODftI","version":"@mastra/core@1.13.0","title":"March 13, 2026","summary":"## Highlights\r\n\r\n### Observability Storage Domain (schemas + in-memory implementations)\r\nMastra now ships zod-based storage schemas and in-memory impl...","content":"## Highlights\r\n\r\n### Observability Storage Domain (schemas + in-memory implementations)\r\nMastra now ships zod-based storage schemas and in-memory implementations for all observability signals (scores, logs, feedback, metrics, discovery), with full type inference and a base `ObservabilityStorage` that includes default method implementations.\r\n\r\n### New persistent Workspace filesystem: `@mastra/agentfs`\r\nThe new `AgentFSFilesystem` workspace provider adds Turso/SQLite-backed, database-persistent file storage for agents across sessions via `agentfs-sdk`.\r\n\r\n### Observability pipeline upgrades: renamed types + `EventBuffer` batching\r\n`@mastra/observability` exporters/event bus were updated to align with renamed core observability types, and an `EventBuffer` was added to batch non-tracing signals with configurable flush intervals.\r\n\r\n### Type-safe server route inference via `@mastra/server/schemas`\r\nA new `@mastra/server/schemas` export provides utility types (`RouteMap`, `InferPathParams`, `InferBody`, `InferResponse`, etc.) that automatically infer request/response types from `SERVER_ROUTES`, including routes added via `createRoute()`.\r\n\r\n### Lower token costs for long-running Observational Memory\r\nObservational Memory adds `observation.previousObserverTokens` to truncate the “Previous Observations” context to a token budget (or omit/disable truncation), reducing observer prompt size in long conversations.\r\n\r\n### Breaking Changes\r\n- `MetricType` (`counter`/`gauge`/`histogram`) is deprecated — metrics are now raw events with aggregation at query time\r\n- Score schemas now use `scorerId` instead of `scorerName`\r\n- `ObservabilityBus` constructor now takes a config object (`cardinalityFilter`, `autoExtractMetrics`); `setCardinalityFilter()` and `enableAutoExtractedMetrics()` were removed\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.13.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.13.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- **Added observability storage domain schemas and implementations** ([#14214](https://github.com/mastra-ai/mastra/pull/14214))\r\n\r\n  Introduced comprehensive storage schemas and in-memory implementations for all observability signals (scores, logs, feedback, metrics, discovery). All schemas are zod-based with full type inference. The `ObservabilityStorage` base class includes default implementations for all new methods.\r\n\r\n  **Breaking changes:**\r\n  - `MetricType` (`counter`/`gauge`/`histogram`) is deprecated — metrics are now raw events with aggregation at query time\r\n  - Score schemas use `scorerId` instead of `scorerName` for scorer identification\r\n\r\n#### Patch Changes\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`ea86967`](https://github.com/mastra-ai/mastra/commit/ea86967449426e0a3673253bd1c2c052a99d970d))\r\n\r\n- Fixed provider tools (e.g. `openai.tools.webSearch()`) being silently dropped when using a custom gateway that returns AI SDK v6 (V3) models. The router now remaps tool types from `provider-defined` to `provider` when delegating to V3 models, so provider tools work correctly through gateways. Fixes #13667. ([#13895](https://github.com/mastra-ai/mastra/pull/13895))\r\n\r\n- Fixed TypeScript type errors in `onStepFinish` and `onFinish` callbacks, and resolved compatibility issues with `createOpenRouter()` across different AI SDK versions. ([#14229](https://github.com/mastra-ai/mastra/pull/14229))\r\n\r\n- Fixed a bug where thread metadata (e.g. title, custom properties) passed via `options.memory.thread` was discarded when `MASTRA_THREAD_ID_KEY` was set in the request context. The thread ID from context still takes precedence, but all other user-provided thread properties are now preserved. ([#13146](https://github.com/mastra-ai/mastra/pull/13146))\r\n\r\n- Fixed workspace tools such as `mastra_workspace_list_files` and `mastra_workspace_read_file` failing with `WorkspaceNotAvailableError` in some execution paths. ([#14228](https://github.com/mastra-ai/mastra/pull/14228))\r\n\r\n  Workspace tools now work consistently across execution paths.\r\n\r\n- Added observer context optimization for Observational Memory. The `observation.previousObserverTokens` field reduces Observer input token costs for long-running conversations: ([#13568](https://github.com/mastra-ai/mastra/pull/13568))\r\n  - **previousObserverTokens** (default: `2000`): Truncates the 'Previous Observations' section to a token budget, keeping the most recent observations and automatically replacing already-reflected lines with the buffered reflection summary. Set to `0` to omit previous observations entirely, or `false` to disable truncation and keep the full observation history.\r\n\r\n  ```typescript\r\n  const memory = new Memory({\r\n    options: {\r\n      observationalMemory: {\r\n        model: 'google/gemini-2.5-flash',\r\n        observation: {\r\n          previousObserverTokens: 10_000,\r\n        },\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n### [@mastra/agentfs@0.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/agentfs@0.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/workspaces/agentfs/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added AgentFSFilesystem workspace provider — a Turso/SQLite-backed filesystem via the agentfs-sdk that gives agents persistent, database-backed file storage across sessions. ([#13450](https://github.com/mastra-ai/mastra/pull/13450))\r\n\r\n  **Basic usage**\r\n\r\n  ```ts\r\n  import { Workspace } from '@mastra/core/workspace';\r\n  import { AgentFSFilesystem } from '@mastra/agentfs';\r\n\r\n  const workspace = new Workspace({\r\n    filesystem: new AgentFSFilesystem({\r\n      agentId: 'my-agent',\r\n    }),\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/deployer@1.13.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.13.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/deployer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Bump esbuild from ^0.25.10 to ^0.27.3 to resolve Go stdlib CVEs (CVE-2025-22871, CVE-2025-61729) flagged by npm audit in consumer projects. ([#13124](https://github.com/mastra-ai/mastra/pull/13124))\r\n\r\n- Fixed Agent-to-Agent requests to return a clear error message when the agent ID parameter is missing. ([#14229](https://github.com/mastra-ai/mastra/pull/14229))\r\n\r\n- Add dynamicPackages bundler config for runtime-loaded packages and auto-detect pino ([#11779](https://github.com/mastra-ai/mastra/pull/11779))\r\n\r\n  Adds a new `dynamicPackages` bundler config option for packages that are loaded\r\n  dynamically at runtime and cannot be detected by static analysis (e.g.,\r\n  `pino.transport({ target: \"pino-opentelemetry-transport\" })`).\r\n\r\n  **Usage:**\r\n\r\n  ```typescript\r\n  import { Mastra } from '@mastra/core';\r\n\r\n  export const mastra = new Mastra({\r\n    bundler: {\r\n      dynamicPackages: ['my-custom-transport', 'some-plugin'],\r\n    },\r\n  });\r\n  ```\r\n\r\n  Additionally, pino transport targets are now automatically detected from the\r\n  bundled code, so most pino users won't need any configuration.\r\n\r\n  This keeps `externals` for its intended purpose (packages to not bundle) and\r\n  provides a clear mechanism for dynamic packages that need to be in the output\r\n  package.json.\r\n\r\n  Fixes #10893\r\n\r\n### [@mastra/mcp@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/mcp@1.2.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/mcp/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed TypeScript compilation errors when using MCP resource methods in projects with pnpm workspaces. ([#14229](https://github.com/mastra-ai/mastra/pull/14229))\r\n\r\n### [@mastra/memory@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/memory/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added observer context optimization for Observational Memory. The `observation.previousObserverTokens` field reduces Observer input token costs for long-running conversations: ([#13568](https://github.com/mastra-ai/mastra/pull/13568))\r\n  - **previousObserverTokens** (default: `2000`): Truncates the 'Previous Observations' section to a token budget, keeping the most recent observations and automatically replacing already-reflected lines with the buffered reflection summary. Set to `0` to omit previous observations entirely, or `false` to disable truncation and keep the full observation history.\r\n\r\n  ```typescript\r\n  const memory = new Memory({\r\n    options: {\r\n      observationalMemory: {\r\n        model: 'google/gemini-2.5-flash',\r\n        observation: {\r\n          previousObserverTokens: 10_000,\r\n        },\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/observability@1.5.0](https://github.com/mastra-ai/mastra/blob/@mastra/observability@1.5.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/mastra/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Updated exporters and event bus to use renamed observability types from `@mastra/core`. Added `EventBuffer` for batching non-tracing signals with configurable flush intervals. ([#14214](https://github.com/mastra-ai/mastra/pull/14214))\r\n\r\n  **Breaking changes:**\r\n  - `ObservabilityBus` now takes a config object in its constructor (`cardinalityFilter`, `autoExtractMetrics`); `setCardinalityFilter()` and `enableAutoExtractedMetrics()` removed\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/playground-ui@16.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@16.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/playground-ui/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added group-by-thread utility for the Observability tab. Traces can now be grouped by their conversation thread ID, making it easier to follow multi-turn agent conversations in Studio. See [#14004](https://github.com/mastra-ai/mastra/issues/14004). ([#14112](https://github.com/mastra-ai/mastra/pull/14112))\r\n\r\n#### Patch Changes\r\n\r\n- Fixed agent playground panels growing together when content overflows. Left and right columns now scroll independently. ([#14244](https://github.com/mastra-ai/mastra/pull/14244))\r\n\r\n- Fixed an agent chat editor crash in Playground UI caused by duplicate CodeMirror state instances. ([#14241](https://github.com/mastra-ai/mastra/pull/14241))\r\n\r\n- Improved studio loading performance by lazy-loading the Prettier code formatter. Prettier and its plugins are now loaded on-demand when formatting is triggered, rather than being bundled in the initial page load. ([#13934](https://github.com/mastra-ai/mastra/pull/13934))\r\n\r\n- Improved list-style pages across the Playground UI (agents, datasets, MCPs, processors, prompt blocks, scorers, tools, workflows) with a new list layout and updated empty states. ([#14173](https://github.com/mastra-ai/mastra/pull/14173))\r\n\r\n### [@mastra/schema-compat@1.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.2.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/schema-compat/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- `@mastra/schema-compat`: patch ([#14195](https://github.com/mastra-ai/mastra/pull/14195))\r\n\r\n  Fixed published `@mastra/schema-compat` types so AI SDK v5 schemas resolve correctly for consumers\r\n\r\n- Fixed false `z.toJSONSchema is not available` errors for compatible Zod versions. ([#14264](https://github.com/mastra-ai/mastra/pull/14264))\r\n\r\n  **What changed**\r\n  - Improved Zod schema conversion detection so JSON Schema generation works more reliably across different runtime setups.\r\n\r\n### [@mastra/server@1.13.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.13.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/server/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `@mastra/server/schemas` export with utility types that infer path params, query params, request body, and response types from any route in `SERVER_ROUTES`. When you add a new route via `createRoute()`, it automatically appears in the `RouteMap` type — no manual contract needed. ([#14008](https://github.com/mastra-ai/mastra/pull/14008))\r\n\r\n  ```ts\r\n  import type { RouteMap, RouteContract, InferPathParams, InferBody, InferResponse } from '@mastra/server/schemas';\r\n\r\n  type GetAgentParams = InferPathParams<RouteMap['GET /agents/:agentId']>;\r\n  // => { agentId: string }\r\n\r\n  type GenerateBody = InferBody<RouteMap['POST /agents/:agentId/generate']>;\r\n  // => { messages: CoreMessage[], ... }\r\n\r\n  type AgentResponse = InferResponse<RouteMap['GET /agents/:agentId']>;\r\n  // => { name: string, tools: ..., ... }\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Fixed OpenAPI spec for custom route paths. Custom routes registered via `registerApiRoute` are served at the root path (e.g. `/health`), not under `/api`. The OpenAPI spec now correctly represents this so that API tools and clients using the spec will resolve them to the correct URL. ([#13930](https://github.com/mastra-ai/mastra/pull/13930))\r\n\r\n- Fixed an unnecessary runtime dependency in `@mastra/server`, reducing install size for consumers. Moved `@mastra/schema-compat` from dependencies to devDependencies since it is only needed at build time. ([#14223](https://github.com/mastra-ai/mastra/pull/14223))\r\n\r\n### Other updated packages\r\n\r\nThe following packages were updated with dependency changes only:\r\n\r\n- [@mastra/agent-builder@1.0.13](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.13//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/agent-builder/CHANGELOG.md)\r\n- [@mastra/arize@1.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/arize@1.0.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/arize/CHANGELOG.md)\r\n- [@mastra/braintrust@1.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/braintrust@1.0.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/braintrust/CHANGELOG.md)\r\n- [@mastra/client-js@1.8.2](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.8.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/client-sdks/client-js/CHANGELOG.md)\r\n- [@mastra/datadog@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/datadog@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/datadog/CHANGELOG.md)\r\n- [@mastra/deployer-cloud@1.13.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.13.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/deployers/cloud/CHANGELOG.md)\r\n- [@mastra/deployer-cloudflare@1.1.10](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.10//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/deployers/cloudflare/CHANGELOG.md)\r\n- [@mastra/deployer-netlify@1.0.14](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/deployers/netlify/CHANGELOG.md)\r\n- [@mastra/deployer-vercel@1.1.4](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.1.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/deployers/vercel/CHANGELOG.md)\r\n- [@mastra/express@1.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.2.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/server-adapters/express/CHANGELOG.md)\r\n- [@mastra/fastify@1.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.2.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/server-adapters/fastify/CHANGELOG.md)\r\n- [@mastra/hono@1.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.2.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/server-adapters/hono/CHANGELOG.md)\r\n- [@mastra/koa@1.3.2](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.3.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/server-adapters/koa/CHANGELOG.md)\r\n- [@mastra/laminar@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/laminar@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/laminar/CHANGELOG.md)\r\n- [@mastra/langfuse@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/langfuse@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/langfuse/CHANGELOG.md)\r\n- [@mastra/langsmith@1.1.5](https://github.com/mastra-ai/mastra/blob/@mastra/langsmith@1.1.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/langsmith/CHANGELOG.md)\r\n- [@mastra/longmemeval@1.0.14](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.14//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/explorations/longmemeval/CHANGELOG.md)\r\n- [@mastra/mcp-docs-server@1.1.11](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.11//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/packages/mcp-docs-server/CHANGELOG.md)\r\n- [@mastra/opencode@0.0.11](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.11//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/integrations/opencode/CHANGELOG.md)\r\n- [@mastra/otel-bridge@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/otel-bridge@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/otel-bridge/CHANGELOG.md)\r\n- [@mastra/otel-exporter@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/otel-exporter@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/otel-exporter/CHANGELOG.md)\r\n- [@mastra/posthog@1.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/posthog@1.0.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/posthog/CHANGELOG.md)\r\n- [@mastra/react@0.2.12](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.12//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/client-sdks/react/CHANGELOG.md)\r\n- [@mastra/sentry@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/sentry@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.13.0/observability/sentry/CHANGELOG.md)\r\n\r\n","publishedAt":"2026-03-17T10:20:51.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.13.0","media":[]},{"id":"rel_erocfOBX00aBh8WGmc_72","version":"@mastra/core@1.12.0","title":"March 12, 2026","summary":"## Highlights\r\n\r\n### Cloudflare Durable Objects Storage Adapter\r\n`@mastra/cloudflare` adds a new Durable Objects–backed storage implementation (in add...","content":"## Highlights\r\n\r\n### Cloudflare Durable Objects Storage Adapter\r\n`@mastra/cloudflare` adds a new Durable Objects–backed storage implementation (in addition to KV), with SQLite persistence, batch operations, and table/column validation—enabling more robust stateful storage on Cloudflare.\r\n\r\n### Workspace Filesystem Path Resolution Now Matches Real Filesystem Semantics\r\n`LocalFilesystem` no longer treats absolute paths like `/file.txt` as workspace-relative; absolute paths now resolve to real filesystem locations (with containment checks), relative paths resolve against `basePath`, and `~/` expands to the home directory.\r\n\r\n### Improved Observability for MCP Tooling and Agent/Workflow Execution\r\nMCP tool calls are now traced with a dedicated `MCP_TOOL_CALL` span type (with server name/version metadata), Studio adds MCP-specific timeline styling, processor-triggered aborts are fully visible in traces, and workflow suspend/resume now preserves trace continuity under the original span.\r\n\r\n### More Reliable Agent Loops and Token Budgeting in Multi-step Runs\r\nFixes include the agent loop continuing correctly when `onIterationComplete` returns `continue: true`, and preventing exponential token growth by running token-based message pruning at every step (including tool call continuations).\r\n\r\n### Sandbox & Workspace Extensibility via Provider-specific Getters and String PIDs\r\nSandbox process IDs are now string-based (`ProcessHandle.pid: string`) to support session IDs across providers, and sandboxes/filesystems expose underlying SDK instances via new provider-specific getters (e.g., `sandbox.daytona`, `sandbox.blaxel`, `filesystem.client` for S3, `filesystem.storage/bucket` for GCS).\r\n\r\n### Breaking Changes\r\n- `LocalFilesystem` no longer treats absolute paths (e.g. `/src/index.ts`) as `basePath`-relative; update callers to pass relative paths when targeting the workspace.\r\n- `ProcessHandle.pid` changed from `number` to `string`; update any code that assumes numeric PIDs (including `processes.get(...)`).\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.12.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.12.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- MCP tool calls now use `MCP_TOOL_CALL` span type instead of `TOOL_CALL` in traces. `CoreToolBuilder` detects `mcpMetadata` on tools and creates spans with MCP server name, version, and tool description attributes. ([#13274](https://github.com/mastra-ai/mastra/pull/13274))\r\n\r\n- **Absolute paths now resolve to real filesystem locations instead of being treated as workspace-relative.** ([#13804](https://github.com/mastra-ai/mastra/pull/13804))\r\n\r\n  Previously, `LocalFilesystem` in contained mode treated absolute paths like `/file.txt` as shorthand for `basePath/file.txt` (a \"virtual-root\" convention). This could silently resolve paths to unexpected locations — for example, `/home/user/.config/file.txt` would resolve to `basePath/home/user/.config/file.txt` instead of the real path.\r\n\r\n  Now:\r\n  - **Absolute paths** (starting with `/`) are real filesystem paths, subject to containment checks\r\n  - **Relative paths** (e.g., `file.txt`, `src/index.ts`) resolve against `basePath`\r\n  - **Tilde paths** (e.g., `~/Documents`) expand to the home directory\r\n\r\n  ### Migration\r\n\r\n  If your code passes paths like `/file.txt` to workspace filesystem methods expecting them to resolve relative to `basePath`, change them to relative paths:\r\n\r\n  ```ts\r\n  // Before\r\n  await filesystem.readFile('/src/index.ts');\r\n\r\n  // After\r\n  await filesystem.readFile('src/index.ts');\r\n  ```\r\n\r\n  Also fixed:\r\n  - `allowedPaths` resolving against the working directory instead of `basePath`, causing unexpected permission errors when `basePath` differed from `cwd`\r\n  - Permission errors when accessing paths under `allowedPaths` directories that don't exist yet (e.g., during skills discovery)\r\n\r\n- Changed `ProcessHandle.pid` type from `number` to `string` to support sandbox providers that use non-numeric process identifiers (e.g., session IDs). ([#13591](https://github.com/mastra-ai/mastra/pull/13591))\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  const handle = await sandbox.processes.spawn('node server.js');\r\n  handle.pid; // number\r\n  await sandbox.processes.get(42);\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  const handle = await sandbox.processes.spawn('node server.js');\r\n  handle.pid; // string (e.g., '1234' for local, 'session-abc' for Daytona)\r\n  await sandbox.processes.get('1234');\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Added a `mastra/<version>` User-Agent header to all provider API requests (OpenAI, Anthropic, Google, Mistral, Groq, xAI, DeepSeek, and others) across models.dev, Netlify, and Azure gateways for better traffic attribution. ([#13087](https://github.com/mastra-ai/mastra/pull/13087))\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`9cede11`](https://github.com/mastra-ai/mastra/commit/9cede110abac9d93072e0521bb3c8bcafb9fdadf))\r\n\r\n- Fixed processor-triggered aborts not appearing in traces. Processor spans now include abort details (reason, retry flag, metadata) and agent-level spans capture the same information when an abort short-circuits the agent run. This makes guardrail and processor aborts fully visible in tracing dashboards. ([#14038](https://github.com/mastra-ai/mastra/pull/14038))\r\n\r\n- Fix agent loop not continuing when `onIterationComplete` returns `continue: true` ([#14170](https://github.com/mastra-ai/mastra/pull/14170))\r\n\r\n- Fixed exponential token growth during multi-step agent workflows by implementing `processInputStep` on `TokenLimiterProcessor` and removing the redundant `processInput` method. Token-based message pruning now runs at every step of the agentic loop (including tool call continuations), keeping the in-memory message list within budget before each LLM call. Also refactored Tiktoken encoder to use the shared global singleton from `getTiktoken()` instead of creating a new instance per processor. ([#13929](https://github.com/mastra-ai/mastra/pull/13929))\r\n\r\n- Sub-agents with `defaultOptions.memory` configurations were having their memory settings overridden when called as tools from a parent agent. The parent unconditionally passed its own `memory` option (with newly generated thread/resource IDs), which replaced the sub-agent's intended memory configuration due to shallow object merging. ([#11561](https://github.com/mastra-ai/mastra/pull/11561))\r\n\r\n  This fix checks if the sub-agent has its own `defaultOptions.memory` before applying parent-derived memory settings. Sub-agents without their own memory config continue to receive parent-derived IDs as a fallback.\r\n\r\n  No code changes required for consumers - sub-agents with explicit `defaultOptions.memory` will now work correctly when used via the `agents: {}` option.\r\n\r\n- Fixed listConfiguredInputProcessors() and listConfiguredOutputProcessors() returning a combined workflow instead of individual processors. Previously, these methods wrapped all configured processors into a single committed workflow, making it impossible to inspect or look up processors by ID. Now they return the raw flat array of configured processors as intended. ([#14158](https://github.com/mastra-ai/mastra/pull/14158))\r\n\r\n- `fetchWithRetry` now backs off in sequence 2s → 4s → 8s and then caps at 10s. ([#14159](https://github.com/mastra-ai/mastra/pull/14159))\r\n\r\n- Preserve trace continuity across workflow suspend/resume for workflows run by the default engine, so resumed workflows appear as children of the original span in tracing tools. ([#12276](https://github.com/mastra-ai/mastra/pull/12276))\r\n\r\n### [@mastra/blaxel@0.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/blaxel@0.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/workspaces/blaxel/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added provider-specific `blaxel` getter to access the underlying Blaxel `SandboxInstance` directly. Deprecated the generic `instance` getter in favor of the new `blaxel` getter for better IDE discoverability and consistency with other sandbox providers. ([#14166](https://github.com/mastra-ai/mastra/pull/14166))\r\n\r\n  ```typescript\r\n  // Before\r\n  const blaxelSandbox = sandbox.instance;\r\n\r\n  // After\r\n  const blaxelSandbox = sandbox.blaxel;\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Use provider-native string process IDs directly as `ProcessHandle.pid`, removing the previous `parseInt()` workaround. ([#13591](https://github.com/mastra-ai/mastra/pull/13591))\r\n\r\n  ```typescript\r\n  const handle = await sandbox.processes.spawn('node server.js');\r\n  handle.pid; // string — the Blaxel SDK's native process ID\r\n  ```\r\n\r\n### [@mastra/cloudflare@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/cloudflare@1.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/stores/cloudflare/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- feat: add Cloudflare Durable Objects storage adapter ([#12366](https://github.com/mastra-ai/mastra/pull/12366))\r\n\r\n  Adds a new Durable Objects-based storage implementation alongside the existing KV store. Includes SQL-backed persistence via DO's SQLite storage, batch operations, and proper table/column validation.\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/cloudflare-d1@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/cloudflare-d1@1.0.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/stores/cloudflare-d1/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed D1 listMessages returning empty results when using semantic recall with perPage=0 and many include targets, by batching UNION ALL queries to avoid SQLite's compound SELECT limit ([#14117](https://github.com/mastra-ai/mastra/pull/14117))\r\n\r\n### [@mastra/daytona@0.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/daytona@0.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/workspaces/daytona/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added provider-specific `daytona` getter to access the underlying Daytona `Sandbox` instance directly. Deprecated the generic `instance` getter in favor of the new `daytona` getter for better IDE discoverability and consistency with other sandbox providers. ([#14166](https://github.com/mastra-ai/mastra/pull/14166))\r\n\r\n  ```typescript\r\n  // Before\r\n  const daytonaSandbox = sandbox.instance;\r\n\r\n  // After\r\n  const daytonaSandbox = sandbox.daytona;\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Improved Daytona process handling to use provider session IDs directly as `ProcessHandle.pid`. ([#13591](https://github.com/mastra-ai/mastra/pull/13591))\r\n\r\n  ```typescript\r\n  const handle = await sandbox.processes.spawn('node server.js');\r\n  await sandbox.processes.get(handle.pid);\r\n  ```\r\n\r\n- Fixed sandbox reconnection when Daytona sandbox is externally stopped or times out due to inactivity. Previously, the error thrown by the Daytona SDK (e.g. \"failed to resolve container IP\") did not match the known dead-sandbox patterns, so the automatic retry logic would not trigger and the error would propagate to the user. Added two new error patterns to correctly detect stopped sandboxes and trigger automatic recovery. ([#14175](https://github.com/mastra-ai/mastra/pull/14175))\r\n\r\n### [@mastra/deployer@1.12.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.12.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/deployer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Improved Studio load times by serving compressed static assets in both deploy and dev. Large bundles now download much faster and use significantly less bandwidth. ([#13945](https://github.com/mastra-ai/mastra/pull/13945))\r\n\r\n- --- ([#14162](https://github.com/mastra-ai/mastra/pull/14162))\r\n  `@mastra/deployer`: patch\r\n\r\n  ***\r\n\r\n  Fixed deployment dependency resolution so required schema compatibility packages are resolved automatically.\r\n\r\n- Fixed gzip compression being applied globally to all API routes, causing JSON responses to be unreadable by clients that don't auto-decompress. Compression is now scoped to studio static assets only. ([#14190](https://github.com/mastra-ai/mastra/pull/14190))\r\n\r\n### [@mastra/e2b@0.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/e2b@0.1.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/workspaces/e2b/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- `ProcessHandle.pid` is now a string. Numeric PIDs from the E2B SDK are stringified automatically. ([#13591](https://github.com/mastra-ai/mastra/pull/13591))\r\n\r\n  ```typescript\r\n  const handle = await sandbox.processes.spawn('node server.js');\r\n  handle.pid; // string (e.g., '1234')\r\n  ```\r\n\r\n### [@mastra/gcs@0.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/gcs@0.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/workspaces/gcs/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added public `storage` and `bucket` getters to access the underlying Google Cloud Storage instances directly. Use these when you need GCS features not exposed through the `WorkspaceFilesystem` interface. ([#14166](https://github.com/mastra-ai/mastra/pull/14166))\r\n\r\n  ```typescript\r\n  const gcsStorage = filesystem.storage;\r\n  const gcsBucket = filesystem.bucket;\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/mcp@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/mcp@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/mcp/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- MCP client now attaches `mcpMetadata` (server name and version) to every tool it creates, enabling automatic `MCP_TOOL_CALL` span tracing without user code changes. ([#13274](https://github.com/mastra-ai/mastra/pull/13274))\r\n\r\n#### Patch Changes\r\n\r\n- Added `stderr` and `cwd` options to stdio server configuration so you can control child process error output and set the server working directory. ([#13959](https://github.com/mastra-ai/mastra/pull/13959))\r\n\r\n  ```ts\r\n  import { MCPClient } from '@mastra/mcp';\r\n\r\n  const mcp = new MCPClient({\r\n    servers: {\r\n      myServer: {\r\n        command: 'node',\r\n        args: ['server.js'],\r\n        stderr: 'pipe',\r\n        cwd: '/path/to/server',\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n### [@mastra/memory@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.7.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/memory/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Observational Memory now performs local threshold checks with lower CPU and memory overhead. ([#14178](https://github.com/mastra-ai/mastra/pull/14178))\r\n\r\n  This update keeps the same multimodal thresholding behavior for image-aware inputs, so existing Observational Memory configurations continue to work without changes.\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/playground-ui@16.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@16.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/playground-ui/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated form field components in Studio to use the new FieldBlock design system pattern. Replaced legacy SelectField, InputField, and SearchField with SelectFieldBlock, TextFieldBlock, and SearchFieldBlock across all domain components (observability, scores, datasets, templates). Refined button styles and layout improvements. ([#14138](https://github.com/mastra-ai/mastra/pull/14138))\r\n\r\n- Fixed Studio form crash when workflow input schemas contain `z.array()` fields with Zod v4. Array, union, and intersection fields now render and accept input correctly in the workflow run form. ([#14131](https://github.com/mastra-ai/mastra/pull/14131))\r\n\r\n- Added MCP-specific icon and color in trace timeline for `mcp_tool_call` spans. ([#13274](https://github.com/mastra-ai/mastra/pull/13274))\r\n\r\n- Change file browser root path from `/` to `.` so workspace navigation starts from the workspace directory instead of the host filesystem root. ([#13804](https://github.com/mastra-ai/mastra/pull/13804))\r\n\r\n### [@mastra/s3@0.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/s3@0.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/workspaces/s3/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added public `client` getter to access the underlying `S3Client` instance directly. Use this when you need S3 features not exposed through the `WorkspaceFilesystem` interface (e.g., presigned URLs, multipart uploads). ([#14166](https://github.com/mastra-ai/mastra/pull/14166))\r\n\r\n  ```typescript\r\n  const s3Client = filesystem.client;\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/schema-compat@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.2.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/schema-compat/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed Zod v4 schema conversion when `zod/v4` compat layer from Zod 3.25.x is used. Schemas like `ask_user` and other harness tools were not being properly converted to JSON Schema when `~standard.jsonSchema` was absent, causing `type: \"None\"` errors from the Anthropic API. ([#14157](https://github.com/mastra-ai/mastra/pull/14157))\r\n\r\n### [@mastra/server@1.12.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.12.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/server/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed workspace filesystem permission errors returning HTTP 500 instead of 403. Permission denied errors now return the correct status code, preventing unnecessary client-side retries. ([#13804](https://github.com/mastra-ai/mastra/pull/13804))\r\n\r\n### Other updated packages\r\n\r\nThe following packages were updated with dependency changes only:\r\n\r\n- [@mastra/agent-builder@1.0.12](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.12//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/agent-builder/CHANGELOG.md)\r\n- [@mastra/client-js@1.8.1](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.8.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/client-sdks/client-js/CHANGELOG.md)\r\n- [@mastra/deployer-cloud@1.12.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.12.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/deployers/cloud/CHANGELOG.md)\r\n- [@mastra/deployer-cloudflare@1.1.9](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/deployers/cloudflare/CHANGELOG.md)\r\n- [@mastra/deployer-netlify@1.0.13](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.13//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/deployers/netlify/CHANGELOG.md)\r\n- [@mastra/deployer-vercel@1.1.3](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.1.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/deployers/vercel/CHANGELOG.md)\r\n- [@mastra/express@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.2.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/server-adapters/express/CHANGELOG.md)\r\n- [@mastra/fastify@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.2.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/server-adapters/fastify/CHANGELOG.md)\r\n- [@mastra/hono@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.2.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/server-adapters/hono/CHANGELOG.md)\r\n- [@mastra/koa@1.3.1](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.3.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/server-adapters/koa/CHANGELOG.md)\r\n- [@mastra/longmemeval@1.0.13](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.13//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/explorations/longmemeval/CHANGELOG.md)\r\n- [@mastra/mcp-docs-server@1.1.10](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.10//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/packages/mcp-docs-server/CHANGELOG.md)\r\n- [@mastra/opencode@0.0.10](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.10//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/integrations/opencode/CHANGELOG.md)\r\n- [@mastra/react@0.2.11](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.11//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.12.0/client-sdks/react/CHANGELOG.md)","publishedAt":"2026-03-16T14:36:27.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.12.0","media":[]},{"id":"rel_mU3GDq1t9jcG7AxLT3Gvh","version":"@mastra/core@1.11.0","title":"March 11, 2026","summary":"## Highlights\r\n\r\n### Dynamic Model Fallback Arrays (Runtime Routing)\r\nAgents can now use `model` functions that return full fallback arrays (`ModelWit...","content":"## Highlights\r\n\r\n### Dynamic Model Fallback Arrays (Runtime Routing)\r\nAgents can now use `model` functions that return full fallback arrays (`ModelWithRetries[]`), enabling context-driven model routing (tier/region/etc.) with nested/async selection and proper `maxRetries` inheritance.\r\n\r\n### Standard Schema + Zod v4 Compatibility Layer\r\nMastra adds Standard Schema normalization (`toStandardSchema`, `standardSchemaToJSONSchema`) across Zod v3/v4, AI SDK Schema, and JSON Schema via `@mastra/schema-compat`, unifying schema handling and improving strict-mode provider compatibility.\r\n\r\n### Customizable Request Validation Errors Across All Server Adapters\r\nNew `onValidationError` hook on `ServerConfig` and `createRoute()` lets you control status codes and response bodies for Zod validation failures, supported consistently in Hono/Express/Fastify/Koa adapters.\r\n\r\n### RequestContext End-to-End (Tracing + Datasets/Experiments + Storage)\r\n`requestContext` is now captured on tracing spans (and persisted in ClickHouse/PG/LibSQL/MSSQL span tables) and is supported on dataset items and experiments, allowing request-scoped metadata (tenant/user/flags) to flow through evaluation and observability.\r\n\r\n### Faster & More Flexible Storage: Recall Performance + PgVector Indexing + New Vector Types\r\nSemantic recall is significantly faster across multiple adapters (notably Postgres for very large threads), PgVector adds `metadataIndexes` for btree indexing filtered metadata fields, and `@mastra/pg` now supports pgvector `bit` and `sparsevec` vector types.\r\n\r\n### Breaking Changes\r\n- Minimum Zod version is now `^3.25.0` (for v3) or `^4.0.0` (for v4 support).\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.11.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.11.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- feat: support dynamic functions returning model fallback arrays ([#11975](https://github.com/mastra-ai/mastra/pull/11975))\r\n\r\n  Agents can now use dynamic functions that return entire fallback arrays based on runtime context. This enables:\r\n  - Dynamic selection of complete fallback configurations\r\n  - Context-based model selection with automatic fallback\r\n  - Flexible model routing based on user tier, region, or other factors\r\n  - Nested dynamic functions within returned arrays (each model in array can also be dynamic)\r\n\r\n  ## Examples\r\n\r\n  ### Basic dynamic fallback array\r\n\r\n  ```typescript\r\n  const agent = new Agent({\r\n    model: ({ requestContext }) => {\r\n      const tier = requestContext.get('tier');\r\n      if (tier === 'premium') {\r\n        return [\r\n          { model: 'openai/gpt-4', maxRetries: 2 },\r\n          { model: 'anthropic/claude-3-opus', maxRetries: 1 },\r\n        ];\r\n      }\r\n      return [{ model: 'openai/gpt-3.5-turbo', maxRetries: 1 }];\r\n    },\r\n  });\r\n  ```\r\n\r\n  ### Region-based routing with nested dynamics\r\n\r\n  ```typescript\r\n  const agent = new Agent({\r\n    model: ({ requestContext }) => {\r\n      const region = requestContext.get('region');\r\n      return [\r\n        {\r\n          model: ({ requestContext }) => {\r\n            // Select model variant based on region\r\n            return region === 'eu' ? 'openai/gpt-4-eu' : 'openai/gpt-4';\r\n          },\r\n          maxRetries: 2,\r\n        },\r\n        { model: 'anthropic/claude-3-opus', maxRetries: 1 },\r\n      ];\r\n    },\r\n    maxRetries: 1, // Agent-level default for models without explicit maxRetries\r\n  });\r\n  ```\r\n\r\n  ### Async dynamic selection\r\n\r\n  ```typescript\r\n  const agent = new Agent({\r\n    model: async ({ requestContext }) => {\r\n      // Fetch user's tier from database\r\n      const userId = requestContext.get('userId');\r\n      const user = await db.users.findById(userId);\r\n\r\n      if (user.tier === 'enterprise') {\r\n        return [\r\n          { model: 'openai/gpt-4', maxRetries: 3 },\r\n          { model: 'anthropic/claude-3-opus', maxRetries: 2 },\r\n        ];\r\n      }\r\n      return [{ model: 'openai/gpt-3.5-turbo', maxRetries: 1 }];\r\n    },\r\n  });\r\n  ```\r\n\r\n  ## Technical Details\r\n  - Functions can return `MastraModelConfig` (single model) or `ModelWithRetries[]` (array)\r\n  - Models without explicit `maxRetries` inherit agent-level `maxRetries` default\r\n  - Each model in returned array can also be a dynamic function for nested selection\r\n  - Empty arrays are validated and throw errors early\r\n  - Arrays are normalized to `ModelFallbacks` with all required fields filled in\r\n  - Performance optimization: Already-normalized arrays skip re-normalization\r\n\r\n  ## Fixes and Improvements\r\n  - Dynamic model fallbacks now properly inherit agent-level `maxRetries` when not explicitly specified\r\n  - `getModelList()` now correctly handles dynamic functions that return arrays\r\n  - Added validation for empty arrays returned from dynamic functions\r\n  - Added type guard optimization to prevent double normalization of static arrays\r\n  - Preserved backward-compatible `getLLM()` and `getModel()` return behavior while adding dynamic fallback array support\r\n  - Comprehensive test coverage for edge cases (async functions, nested dynamics, error handling)\r\n\r\n  ## Documentation\r\n  - Added dynamic fallback array example in Models docs under **Model fallbacks**\r\n\r\n  ## Migration Guide\r\n\r\n  No breaking changes. All existing model configurations continue to work:\r\n  - Static single models: `model: 'openai/gpt-4'`\r\n  - Static arrays: `model: [{ model: 'openai/gpt-4', maxRetries: 2 }]`\r\n  - Dynamic single: `model: ({ requestContext }) => 'openai/gpt-4'`\r\n  - Dynamic arrays (NEW): `model: ({ requestContext }) => [{ model: 'openai/gpt-4', maxRetries: 2 }]`\r\n\r\n  Closes #11951\r\n\r\n- Added `onValidationError` hook to `ServerConfig` and `createRoute()`. When a request fails Zod schema validation (query parameters, request body, or path parameters), this hook lets you customize the error response — including the HTTP status code and response body — instead of the default 400 response. Set it on the server config to apply globally, or on individual routes to override per-route. All server adapters (Hono, Express, Fastify, Koa) support this hook. ([#13477](https://github.com/mastra-ai/mastra/pull/13477))\r\n\r\n  ```ts\r\n  const mastra = new Mastra({\r\n    server: {\r\n      onValidationError: (error, context) => ({\r\n        status: 422,\r\n        body: {\r\n          ok: false,\r\n          errors: error.issues.map(i => ({\r\n            path: i.path.join('.'),\r\n            message: i.message,\r\n          })),\r\n          source: context,\r\n        },\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n- Added `requestContext` field to tracing spans. Each span now automatically captures a snapshot of the active `RequestContext`, making request-scoped values like user IDs, tenant IDs, and feature flags available when viewing traces. ([#14020](https://github.com/mastra-ai/mastra/pull/14020))\r\n\r\n- Added `allowedWorkspaceTools` to `HarnessSubagent`. Subagents now automatically inherit the parent agent's workspace. Use `allowedWorkspaceTools` to restrict which workspace tools a subagent can see: ([#13940](https://github.com/mastra-ai/mastra/pull/13940))\r\n\r\n  ```ts\r\n  const subagent: HarnessSubagent = {\r\n    id: 'explore',\r\n    name: 'Explore',\r\n    allowedWorkspaceTools: ['view', 'search_content', 'find_files'],\r\n  };\r\n  ```\r\n\r\n- Enabled tracing for tool executions through mcp server ([#12804](https://github.com/mastra-ai/mastra/pull/12804))\r\n\r\n  Traces now appear in the Observability UI for MCP server tool calls\r\n\r\n- Added `result` to `processOutputResult` args, providing resolved generation data (usage, text, steps, finishReason) directly. This replaces raw stream chunks with an easy-to-use `OutputResult` object containing the same data available in the `onFinish` callback. ([#13810](https://github.com/mastra-ai/mastra/pull/13810))\r\n\r\n  ```typescript\r\n  const usageProcessor: Processor = {\r\n    id: 'usage-processor',\r\n    processOutputResult({ result, messages }) {\r\n      console.log(`Text: ${result.text}`);\r\n      console.log(`Tokens: ${result.usage.inputTokens} in, ${result.usage.outputTokens} out`);\r\n      console.log(`Finish reason: ${result.finishReason}`);\r\n      console.log(`Steps: ${result.steps.length}`);\r\n      return messages;\r\n    },\r\n  };\r\n  ```\r\n\r\n- Added `requestContext` support for dataset items and experiments. ([#13938](https://github.com/mastra-ai/mastra/pull/13938))\r\n\r\n  **Dataset items** now accept an optional `requestContext` field when adding or updating items. This lets you store per-item request context alongside inputs and ground truths.\r\n\r\n  **Datasets** now support a `requestContextSchema` field to describe the expected shape of request context on items.\r\n\r\n  **Experiments** now accept a `requestContext` option that gets passed through to `agent.generate()` during execution. Per-item request context merges with (and takes precedence over) the experiment-level context.\r\n\r\n  ```ts\r\n  // Add item with request context\r\n  await dataset.addItem({\r\n    input: messages,\r\n    groundTruth: expectedOutput,\r\n    requestContext: { userId: '123', locale: 'en' },\r\n  });\r\n\r\n  // Run experiment with global request context\r\n  await runExperiment(mastra, {\r\n    datasetId: 'my-dataset',\r\n    targetType: 'agent',\r\n    targetId: 'my-agent',\r\n    requestContext: { environment: 'staging' },\r\n  });\r\n  ```\r\n\r\n- Add Zod v4 and Standard Schema support ([#12238](https://github.com/mastra-ai/mastra/pull/12238))\r\n\r\n  ## Zod v4 Breaking Changes\r\n  - Fix all `z.record()` calls to use 2-argument form (key + value schema) as required by Zod v4\r\n  - Update `ZodError.errors` to `ZodError.issues` (Zod v4 API change)\r\n  - Update `@ai-sdk/provider` versions for Zod v4 compatibility\r\n\r\n  ## Standard Schema Integration\r\n  - Add `packages/core/src/schema/` module that re-exports from `@mastra/schema-compat`\r\n  - Migrate codebase to use `PublicSchema` type for schema parameters\r\n  - Use `toStandardSchema()` for normalizing schemas across Zod v3, Zod v4, AI SDK Schema, and JSON Schema\r\n  - Use `standardSchemaToJSONSchema()` for JSON Schema conversion\r\n\r\n  ## Schema Compatibility (@mastra/schema-compat)\r\n  - Add new adapter exports: `@mastra/schema-compat/adapters/ai-sdk`, `@mastra/schema-compat/adapters/zod-v3`, `@mastra/schema-compat/adapters/json-schema`\r\n  - Enhance test coverage with separate v3 and v4 test suites\r\n  - Improve zod-to-json conversion with `unrepresentable: 'any'` support\r\n\r\n  ## TypeScript Fixes\r\n  - Resolve deep instantiation errors in client-js and model.ts\r\n  - Add proper type assertions where Zod v4 inference differs\r\n\r\n  **BREAKING CHANGE**: Minimum Zod version is now `^3.25.0` for v3 compatibility or `^4.0.0` for v4\r\n\r\n#### Patch Changes\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`332c014`](https://github.com/mastra-ai/mastra/commit/332c014e076b81edf7fe45b58205882726415e90))\r\n\r\n- fix(workflows): add generic bail signature with overloads. The bail() function now uses method overloads - bail(result: TStepOutput) for backward compatibility and bail<T>(result: ...) for workflow type inference. This allows flexible early exits while maintaining type safety for workflow chaining. Runtime validation will be added in a follow-up. ([#12211](https://github.com/mastra-ai/mastra/pull/12211))\r\n\r\n- Fixed structured output parsing when JSON string fields include fenced JSON examples. ([#13948](https://github.com/mastra-ai/mastra/pull/13948))\r\n\r\n- Fixed `writer` being undefined in `processOutputStream` for all output processors. The root cause was that `processPart` in `ProcessorRunner` did not pass the `writer` to `executeWorkflowAsProcessor` in the outputStream phase. Since all user processors are wrapped into workflows via `combineProcessorsIntoWorkflow`, this meant no processor ever received a `writer`. Custom output processors (like guardrail processors) can now reliably use `writer.custom()` to emit stream events. ([#14111](https://github.com/mastra-ai/mastra/pull/14111))\r\n\r\n- Added JSON repair for malformed tool call arguments from LLM providers. When an LLM (e.g., Kimi/K2) generates broken JSON for tool call arguments, Mastra now attempts to fix common errors (missing quotes on property names, single quotes, trailing commas) before falling back to undefined. This reduces silent tool execution failures caused by minor JSON formatting issues. See https://github.com/mastra-ai/mastra/issues/11078 ([#14033](https://github.com/mastra-ai/mastra/pull/14033))\r\n\r\n- Fixed Windows shell command execution to avoid visible cmd.exe popups and broken output piping. ([#13886](https://github.com/mastra-ai/mastra/pull/13886))\r\n\r\n- Fixed OpenAI reasoning models (e.g. gpt-5-mini) failing with \"function*call was provided without its required reasoning item\" when the agent loops back after a tool call. The issue was that `callProviderMetadata.openai` carrying `fc*\\*`item IDs was not being stripped alongside reasoning parts, causing the AI SDK to send`item_reference`instead of inline`function_call` content. ([#14144](https://github.com/mastra-ai/mastra/pull/14144))\r\n\r\n- Output processors can now inspect, modify, or block custom `data-*` chunks emitted by tools via `writer.custom()` during streaming. Processors must opt in by setting `processDataParts = true` to receive these chunks in `processOutputStream`. ([#13823](https://github.com/mastra-ai/mastra/pull/13823))\r\n\r\n  ```ts\r\n  class MyDataProcessor extends Processor {\r\n    processDataParts = true;\r\n\r\n    processOutputStream(part, { abort }) {\r\n      if (part.type === 'data-sensitive') {\r\n        abort('Blocked sensitive data');\r\n      }\r\n      return part;\r\n    }\r\n  }\r\n  ```\r\n\r\n- Fixed agent tool calls not being surfaced in evented workflow streams. Added StreamChunkWriter abstraction and stream format configuration ('legacy' | 'vnext') to forward agent stream chunks through the workflow output stream. ([#12692](https://github.com/mastra-ai/mastra/pull/12692))\r\n\r\n- Fixed OpenAI strict mode schema rejection when using agent networks with structured output. The compat layer was skipped when modelId was undefined, causing optional fields to be missing from the required array. (Fixes #12284) ([#13695](https://github.com/mastra-ai/mastra/pull/13695))\r\n\r\n- Fixed `activeTools` to also enforce at execution time, not just at the model prompt. Tool calls to tools not in the active set are now rejected with a `ToolNotFoundError`. ([#13949](https://github.com/mastra-ai/mastra/pull/13949))\r\n\r\n- Fix build failures on Windows when running `build:patch-commonjs` during `pnpm run setup` ([#14029](https://github.com/mastra-ai/mastra/pull/14029))\r\n\r\n- Experiments now fail immediately with a clear error when triggered on a dataset with zero items, instead of getting stuck in \"pending\" status forever. The experiment trigger API returns HTTP 400 for empty datasets. Unexpected errors during async experiment setup are now logged and mark the experiment as failed. ([#14031](https://github.com/mastra-ai/mastra/pull/14031))\r\n\r\n- fix: respect `lastMessages: false` in `recall()` to disable conversation history ([#12951](https://github.com/mastra-ai/mastra/pull/12951))\r\n\r\n  Setting `lastMessages: false` in Memory options now correctly prevents `recall()` from returning previous messages. Previously, the agent would retain the full conversation history despite this setting being disabled.\r\n\r\n  Callers can still pass `perPage: false` explicitly to `recall()` to retrieve all messages (e.g., for displaying thread history in a UI).\r\n\r\n- `@mastra/core`: patch ([#14103](https://github.com/mastra-ai/mastra/pull/14103))\r\n\r\n  Fixed reasoning content being lost in multi-turn conversations with thinking models (kimi-k2.5, DeepSeek-R1) when using OpenAI-compatible providers (e.g., OpenRouter).\r\n\r\n  Previously, reasoning content could be discarded during streaming, causing 400 errors when the model tried to continue the conversation. Multi-turn conversations now preserve reasoning content correctly across all turns.\r\n\r\n- fix(workflows): propagate logger to executionEngine ([#12517](https://github.com/mastra-ai/mastra/pull/12517))\r\n\r\n  When a custom logger is set on a Workflow via `__registerPrimitives` or `__setLogger`, it is now correctly propagated to the internal `executionEngine`. This ensures workflow step execution errors are logged through the custom logger instead of the default ConsoleLogger, enabling proper observability integration.\r\n\r\n- Added permission denied handling for dataset pages. Datasets now show a \"Permission Denied\" screen when the user lacks access, matching the behavior of agents, workflows, and other resources. ([#13876](https://github.com/mastra-ai/mastra/pull/13876))\r\n\r\n- Fixed stream freezing when using Anthropic's Programmatic Tool Calling (PTC). Streams that contain only tool-input streaming chunks (without explicit tool-call chunks) now correctly synthesize tool-call events and complete without hanging. See [#12390](https://github.com/mastra-ai/mastra/issues/12390). ([#12400](https://github.com/mastra-ai/mastra/pull/12400))\r\n\r\n- Fixed subagents receiving parent's tool call/result parts in their context messages. On subsequent queries in a conversation, these references to tools the subagent doesn't have caused models (especially via custom gateways) to return blank or incorrect results. Parent delegation tool artifacts are now stripped from context before forwarding to subagents. ([#13927](https://github.com/mastra-ai/mastra/pull/13927))\r\n\r\n- Memory now automatically creates btree indexes on `thread_id` and `resource_id` metadata fields when using PgVector. This prevents sequential scans on the `memory_messages` vector table, resolving performance issues under high load. ([#14034](https://github.com/mastra-ai/mastra/pull/14034))\r\n\r\n  Fixes #12109\r\n\r\n- Clarified the `idGenerator` documentation to reflect the current context-aware function signature and documented the available `IdGeneratorContext` fields used for type-specific ID generation. ([#14081](https://github.com/mastra-ai/mastra/pull/14081))\r\n\r\n- Reasoning content from OpenAI models is now stripped from conversation history before replaying it to the LLM, preventing API errors on follow-up messages while preserving reasoning data in the database. Fixes #12980. ([#13418](https://github.com/mastra-ai/mastra/pull/13418))\r\n\r\n- Added `transient` option for data chunks to skip database persistence. Chunks marked as transient are streamed to the client for live display but not saved to storage, reducing bloat from large streaming outputs. ([#13869](https://github.com/mastra-ai/mastra/pull/13869))\r\n\r\n  ```ts\r\n  await context.writer?.custom({\r\n    type: 'data-my-stream',\r\n    data: { output: line },\r\n    transient: true,\r\n  });\r\n  ```\r\n\r\n  Workspace tools now use this to mark stdout/stderr streaming chunks as transient.\r\n\r\n- Fixed message ID mismatch between generate/stream response and memory-stored messages. When an agent used memory, the message IDs returned in the response (e.g. `response.uiMessages[].id`) could differ from the IDs persisted to the database. This was caused by a format conversion that stripped message IDs during internal re-processing. Messages now retain their original IDs throughout the entire save pipeline. ([#13796](https://github.com/mastra-ai/mastra/pull/13796))\r\n\r\n- Fixed assistant messages to persist `content.metadata.modelId` during streaming. ([#12969](https://github.com/mastra-ai/mastra/pull/12969))\r\n  This ensures stored and processed assistant messages keep the model identifier.\r\n  Developers can now reliably read `content.metadata.modelId` from downstream storage adapters and processors.\r\n\r\n- Fixed `savePerStep: true` not actually persisting messages to storage during step execution. Previously, `onStepFinish` only accumulated messages in the in-memory MessageList but never flushed them to the storage backend. The only persistence path was `executeOnFinish`, which is skipped when the stream is aborted. Now messages are flushed to storage after each completed step, so they survive page refreshes and stream aborts. Fixes https://github.com/mastra-ai/mastra/issues/13984 ([#14030](https://github.com/mastra-ai/mastra/pull/14030))\r\n\r\n- Fixed agentic loop continuing indefinitely when model hits max output tokens (finishReason: 'length'). Previously, only 'stop' and 'error' were treated as termination conditions, causing runaway token generation up to maxSteps when using structuredOutput with generate(). The loop now correctly stops on 'length' finish reason. Fixes #13012. ([#13861](https://github.com/mastra-ai/mastra/pull/13861))\r\n\r\n- **Fixed tool-call arguments being silently lost when LLMs append internal tokens to JSON** ([#13400](https://github.com/mastra-ai/mastra/pull/13400))\r\n\r\n  LLMs (particularly via OpenRouter and OpenAI) sometimes append internal tokens like `<|call|>`, `<|endoftext|>`, or `<|end|>` to otherwise valid JSON in streamed tool-call arguments. Previously, these inputs would fail `JSON.parse` and the tool call would silently lose its arguments (set to `undefined`).\r\n\r\n  Now, `sanitizeToolCallInput` strips these token patterns before parsing, recovering valid data that was previously discarded. Valid JSON containing `<|...|>` inside string values is left untouched. Truly malformed JSON still gracefully returns `undefined`.\r\n\r\n  Fixes https://github.com/mastra-ai/mastra/issues/13185 and https://github.com/mastra-ai/mastra/issues/13261.\r\n\r\n- Fixed agent loop stopping prematurely when LLM returns tool calls with finishReason 'stop'. Some models (e.g., OpenAI gpt-5.3-codex) return 'stop' even when tool calls are present, causing the agent to halt instead of processing tool results and continuing. The agent now correctly continues the loop whenever tool calls exist, regardless of finishReason. ([#14043](https://github.com/mastra-ai/mastra/pull/14043))\r\n\r\n- **Fixed** ([#14133](https://github.com/mastra-ai/mastra/pull/14133))\r\n  - Prevented provider-executed tools from triggering extra loop iterations and duplicate requests.\r\n  - Preserved tool-call metadata during streaming so multi-turn conversations continue to work correctly with provider-executed tools.\r\n\r\n- Fixed observational memory activation using outdated buffered observations in some long-running threads. Activation now uses the latest thread state so the correct observations are promoted. ([#13955](https://github.com/mastra-ai/mastra/pull/13955))\r\n\r\n- Fixed model fallback retry behavior. Non-retryable errors (401, 403) are no longer retried on the same model before falling back. Retryable errors (429, 500) are now only retried by a single layer (p-retry) instead of being duplicated across two layers, preventing (maxRetries + 1)² total calls. The per-model maxRetries setting now correctly controls how many times p-retry retries on that specific model before the fallback loop moves to the next model. ([#14039](https://github.com/mastra-ai/mastra/pull/14039))\r\n\r\n- Added processor-driven response message ID rotation so streamed assistant IDs use the rotated ID. ([#13887](https://github.com/mastra-ai/mastra/pull/13887))\r\n\r\n  Processors that run outside the agent loop no longer need synthetic response message IDs.\r\n\r\n- Fixed a regression where dynamic `model` functions returning a single v1 model were treated as model arrays. ([#14018](https://github.com/mastra-ai/mastra/pull/14018))\r\n\r\n- Fixed `requestContext` not being forwarded to tools dynamically added by input processors. ([#13827](https://github.com/mastra-ai/mastra/pull/13827))\r\n\r\n- Added 'sandbox_access_request' to the HarnessEvent union type, enabling type-safe handling of sandbox access request events without requiring type casts. ([#13648](https://github.com/mastra-ai/mastra/pull/13648))\r\n\r\n- Fix wrong threadId and resourceId being sent to subagent ([#13868](https://github.com/mastra-ai/mastra/pull/13868))\r\n\r\n### [@mastra/ai-sdk@1.1.3](https://github.com/mastra-ai/mastra/blob/@mastra/ai-sdk@1.1.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed `handleChatStream` not merging `providerOptions` from `params` and `defaultOptions`. Previously, `params.providerOptions` would completely replace `defaultOptions.providerOptions` instead of merging them. Now provider-specific keys from both sources are merged, with `params.providerOptions` taking precedence for the same provider. ([#13820](https://github.com/mastra-ai/mastra/pull/13820))\r\n\r\n### [@mastra/clickhouse@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/clickhouse@1.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/clickhouse/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `requestContext` column to the spans table. Request context data from tracing is now persisted alongside other span data. ([#14020](https://github.com/mastra-ai/mastra/pull/14020))\r\n\r\n#### Patch Changes\r\n\r\n- Added resilient column handling to insert and update operations. Unknown columns in records are now silently dropped instead of causing SQL errors, ensuring forward compatibility when newer domain packages add fields that haven't been migrated yet. ([#14021](https://github.com/mastra-ai/mastra/pull/14021))\r\n\r\n  For example, calling `db.insert({ tableName, record: { id: '1', title: 'Hello', futureField: 'value' } })` will silently ignore `futureField` if it doesn't exist in the database table, rather than throwing. The same applies to `update` — unknown fields in the data payload are dropped before building the SQL statement.\r\n\r\n- Fixed slow semantic recall in the libsql, Cloudflare D1, and ClickHouse storage adapters. Recall performance no longer degrades as threads grow larger. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/client-js@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/client-sdks/client-js/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `requestContext` field to dataset item API endpoints and `requestContextSchema` to dataset CRUD endpoints. Added `requestContext` option to the experiment trigger endpoint, which gets forwarded to agent execution during experiments. ([#13938](https://github.com/mastra-ai/mastra/pull/13938))\r\n\r\n  **Usage with `@mastra/client-js`:**\r\n\r\n  ```ts\r\n  // Create a dataset with a request context schema\r\n  await client.createDataset({\r\n    name: 'my-dataset',\r\n    requestContextSchema: {\r\n      type: 'object',\r\n      properties: { region: { type: 'string' } },\r\n    },\r\n  });\r\n\r\n  // Add an item with request context\r\n  await client.addDatasetItem({\r\n    datasetId: 'my-dataset',\r\n    input: { prompt: 'Hello' },\r\n    requestContext: { region: 'us-east-1' },\r\n  });\r\n\r\n  // Trigger an experiment with request context forwarded to agent\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: 'my-dataset',\r\n    agentId: 'my-agent',\r\n    requestContext: { region: 'eu-west-1' },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Fixed @mastra/client-js streaming APIs to expose standard Web Streams types in public declarations for browser consumers. ([#14079](https://github.com/mastra-ai/mastra/pull/14079))\r\n\r\n### [@mastra/cloudflare@1.2.3](https://github.com/mastra-ai/mastra/blob/@mastra/cloudflare@1.2.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/cloudflare/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Improved semantic recall performance for large message histories. Semantic recall no longer loads entire threads when only the recalled messages are needed, eliminating delays that previously scaled with total message count. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/cloudflare-d1@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/cloudflare-d1@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/cloudflare-d1/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added resilient column handling to insert and update operations. Unknown columns in records are now silently dropped instead of causing SQL errors, ensuring forward compatibility when newer domain packages add fields that haven't been migrated yet. ([#14021](https://github.com/mastra-ai/mastra/pull/14021))\r\n\r\n  For example, calling `db.insert({ tableName, record: { id: '1', title: 'Hello', futureField: 'value' } })` will silently ignore `futureField` if it doesn't exist in the database table, rather than throwing. The same applies to `update` — unknown fields in the data payload are dropped before building the SQL statement.\r\n\r\n- Fixed slow semantic recall in the libsql, Cloudflare D1, and ClickHouse storage adapters. Recall performance no longer degrades as threads grow larger. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/convex@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/convex@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/convex/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Improved semantic recall performance for large message histories. Semantic recall no longer loads entire threads when only the recalled messages are needed, eliminating delays that previously scaled with total message count. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/datadog@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/datadog@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/datadog/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed Datadog trace tags being formatted incorrectly. Tags using the standard `key:value` format (e.g. `instance_name:career-scout-api`) were having `:true` appended to the value in the Datadog UI, resulting in `career-scout-api:true` instead of `career-scout-api`. Tags are now correctly split into proper key-value pairs before being sent to Datadog's LLM Observability API. ([#13900](https://github.com/mastra-ai/mastra/pull/13900))\r\n\r\n### [@mastra/deployer@1.11.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.11.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/deployer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed CORS preflight blocking dev playground requests by adding the `x-mastra-dev-playground` header to the allowed CORS headers list. This resolves the browser error when the playground UI (running on a different port) makes requests to the Mastra dev server. ([#14097](https://github.com/mastra-ai/mastra/pull/14097))\r\n\r\n### [@mastra/dynamodb@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/dynamodb@1.0.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/dynamodb/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed slow semantic recall on large threads in the MongoDB and DynamoDB memory stores. Included message lookups now avoid unnecessary work when semantic recall only needs specific messages and nearby context. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/express@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/server-adapters/express/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `onValidationError` hook to `ServerConfig` and `createRoute()`. When a request fails Zod schema validation (query parameters, request body, or path parameters), this hook lets you customize the error response — including the HTTP status code and response body — instead of the default 400 response. Set it on the server config to apply globally, or on individual routes to override per-route. All server adapters (Hono, Express, Fastify, Koa) support this hook. ([#13477](https://github.com/mastra-ai/mastra/pull/13477))\r\n\r\n  ```ts\r\n  const mastra = new Mastra({\r\n    server: {\r\n      onValidationError: (error, context) => ({\r\n        status: 422,\r\n        body: {\r\n          ok: false,\r\n          errors: error.issues.map(i => ({\r\n            path: i.path.join('.'),\r\n            message: i.message,\r\n          })),\r\n          source: context,\r\n        },\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/fastify@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/server-adapters/fastify/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `onValidationError` hook to `ServerConfig` and `createRoute()`. When a request fails Zod schema validation (query parameters, request body, or path parameters), this hook lets you customize the error response — including the HTTP status code and response body — instead of the default 400 response. Set it on the server config to apply globally, or on individual routes to override per-route. All server adapters (Hono, Express, Fastify, Koa) support this hook. ([#13477](https://github.com/mastra-ai/mastra/pull/13477))\r\n\r\n  ```ts\r\n  const mastra = new Mastra({\r\n    server: {\r\n      onValidationError: (error, context) => ({\r\n        status: 422,\r\n        body: {\r\n          ok: false,\r\n          errors: error.issues.map(i => ({\r\n            path: i.path.join('.'),\r\n            message: i.message,\r\n          })),\r\n          source: context,\r\n        },\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/hono@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/server-adapters/hono/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `onValidationError` hook to `ServerConfig` and `createRoute()`. When a request fails Zod schema validation (query parameters, request body, or path parameters), this hook lets you customize the error response — including the HTTP status code and response body — instead of the default 400 response. Set it on the server config to apply globally, or on individual routes to override per-route. All server adapters (Hono, Express, Fastify, Koa) support this hook. ([#13477](https://github.com/mastra-ai/mastra/pull/13477))\r\n\r\n  ```ts\r\n  const mastra = new Mastra({\r\n    server: {\r\n      onValidationError: (error, context) => ({\r\n        status: 422,\r\n        body: {\r\n          ok: false,\r\n          errors: error.issues.map(i => ({\r\n            path: i.path.join('.'),\r\n            message: i.message,\r\n          })),\r\n          source: context,\r\n        },\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/koa@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.3.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/server-adapters/koa/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `onValidationError` hook to `ServerConfig` and `createRoute()`. When a request fails Zod schema validation (query parameters, request body, or path parameters), this hook lets you customize the error response — including the HTTP status code and response body — instead of the default 400 response. Set it on the server config to apply globally, or on individual routes to override per-route. All server adapters (Hono, Express, Fastify, Koa) support this hook. ([#13477](https://github.com/mastra-ai/mastra/pull/13477))\r\n\r\n  ```ts\r\n  const mastra = new Mastra({\r\n    server: {\r\n      onValidationError: (error, context) => ({\r\n        status: 422,\r\n        body: {\r\n          ok: false,\r\n          errors: error.issues.map(i => ({\r\n            path: i.path.join('.'),\r\n            message: i.message,\r\n          })),\r\n          source: context,\r\n        },\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n### [@mastra/lance@1.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/lance@1.0.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/lance/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added resilient column handling to insert and update operations. Unknown columns in records are now silently dropped instead of causing SQL errors, ensuring forward compatibility when newer domain packages add fields that haven't been migrated yet. ([#14021](https://github.com/mastra-ai/mastra/pull/14021))\r\n\r\n  For example, calling `db.insert({ tableName, record: { id: '1', title: 'Hello', futureField: 'value' } })` will silently ignore `futureField` if it doesn't exist in the database table, rather than throwing. The same applies to `update` — unknown fields in the data payload are dropped before building the SQL statement.\r\n\r\n- Improved semantic recall performance for large message histories. Semantic recall no longer loads entire threads when only the recalled messages are needed, eliminating delays that previously scaled with total message count. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/libsql@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/libsql@1.7.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/libsql/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `requestContext` column to the spans table. Request context data from tracing is now persisted alongside other span data. ([#14020](https://github.com/mastra-ai/mastra/pull/14020))\r\n\r\n- Added `requestContext` and `requestContextSchema` column support to dataset storage. Dataset items now persist request context alongside input and ground truth data. ([#13938](https://github.com/mastra-ai/mastra/pull/13938))\r\n\r\n#### Patch Changes\r\n\r\n- Added resilient column handling to insert and update operations. Unknown columns in records are now silently dropped instead of causing SQL errors, ensuring forward compatibility when newer domain packages add fields that haven't been migrated yet. ([#14021](https://github.com/mastra-ai/mastra/pull/14021))\r\n\r\n  For example, calling `db.insert({ tableName, record: { id: '1', title: 'Hello', futureField: 'value' } })` will silently ignore `futureField` if it doesn't exist in the database table, rather than throwing. The same applies to `update` — unknown fields in the data payload are dropped before building the SQL statement.\r\n\r\n- Fixed slow semantic recall in the libsql, Cloudflare D1, and ClickHouse storage adapters. Recall performance no longer degrades as threads grow larger. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/memory@1.6.2](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.6.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/memory/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add image and file attachment support to Observational Memory. The observer can now see and reason about images and files in conversation history, and attachment token counts are included in observation thresholds. Provider-backed token counting is used when available, with results cached for faster subsequent runs. ([#13953](https://github.com/mastra-ai/mastra/pull/13953))\r\n\r\n- Added observational memory repro tooling for recording, analyzing, and sanitizing captures before sharing them. ([#13877](https://github.com/mastra-ai/mastra/pull/13877))\r\n\r\n- fix: respect `lastMessages: false` in `recall()` to disable conversation history ([#12951](https://github.com/mastra-ai/mastra/pull/12951))\r\n\r\n  Setting `lastMessages: false` in Memory options now correctly prevents `recall()` from returning previous messages. Previously, the agent would retain the full conversation history despite this setting being disabled.\r\n\r\n  Callers can still pass `perPage: false` explicitly to `recall()` to retrieve all messages (e.g., for displaying thread history in a UI).\r\n\r\n- fix(memory): handle dynamic functions returning ModelWithRetries[] in observational memory model resolution ([#13902](https://github.com/mastra-ai/mastra/pull/13902))\r\n\r\n- Fixed observational memory activation using outdated buffered observations in some long-running threads. Activation now uses the latest thread state so the correct observations are promoted. ([#13955](https://github.com/mastra-ai/mastra/pull/13955))\r\n\r\n- Fixed message loss when saving certain messages so text content is preserved. ([#13918](https://github.com/mastra-ai/mastra/pull/13918))\r\n\r\n- Added a compatibility guard so observational memory now fails fast when @mastra/core does not support request-response-id-rotation. ([#13887](https://github.com/mastra-ai/mastra/pull/13887))\r\n\r\n### [@mastra/mongodb@1.5.5](https://github.com/mastra-ai/mastra/blob/@mastra/mongodb@1.5.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/mongodb/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed slow semantic recall on large threads in the MongoDB and DynamoDB memory stores. Included message lookups now avoid unnecessary work when semantic recall only needs specific messages and nearby context. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/mssql@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/mssql@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/mssql/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `requestContext` column to the spans table. Request context data from tracing is now persisted alongside other span data. ([#14020](https://github.com/mastra-ai/mastra/pull/14020))\r\n\r\n#### Patch Changes\r\n\r\n- Added resilient column handling to insert and update operations. Unknown columns in records are now silently dropped instead of causing SQL errors, ensuring forward compatibility when newer domain packages add fields that haven't been migrated yet. ([#14021](https://github.com/mastra-ai/mastra/pull/14021))\r\n\r\n  For example, calling `db.insert({ tableName, record: { id: '1', title: 'Hello', futureField: 'value' } })` will silently ignore `futureField` if it doesn't exist in the database table, rather than throwing. The same applies to `update` — unknown fields in the data payload are dropped before building the SQL statement.\r\n\r\n- Improved semantic recall performance for large message histories. Semantic recall no longer loads entire threads when only the recalled messages are needed, eliminating delays that previously scaled with total message count. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/observability@1.4.0](https://github.com/mastra-ai/mastra/blob/@mastra/observability@1.4.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/mastra/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `requestContext` field to tracing spans. Each span now automatically captures a snapshot of the active `RequestContext`, making request-scoped values like user IDs, tenant IDs, and feature flags available when viewing traces. ([#14020](https://github.com/mastra-ai/mastra/pull/14020))\r\n\r\n#### Patch Changes\r\n\r\n- feat(tracing): implement metadata inheritance for child spans ([#11959](https://github.com/mastra-ai/mastra/pull/11959))\r\n  - Updated the BaseSpan constructor to inherit metadata from parent spans when not explicitly provided, merging values if both exist.\r\n  - Added tests to verify that child spans correctly inherit and can override metadata from their parent spans.\r\n  - Enhanced existing tests to ensure proper metadata propagation in tracing scenarios.\r\n\r\n### [@mastra/pg@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/pg@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/pg/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `metadataIndexes` option to `createIndex()` for PgVector. This allows creating btree indexes on specific metadata fields in vector tables, significantly improving query performance when filtering by those fields. This is especially impactful for Memory's `memory_messages` table, which filters by `thread_id` and `resource_id` — previously causing sequential scans under load. ([#14034](https://github.com/mastra-ai/mastra/pull/14034))\r\n\r\n  **Usage example:**\r\n\r\n  ```ts\r\n  await pgVector.createIndex({\r\n    indexName: 'my_vectors',\r\n    dimension: 1536,\r\n    metadataIndexes: ['thread_id', 'resource_id'],\r\n  });\r\n  ```\r\n\r\n  Fixes #12109\r\n\r\n- Add support for pgvector's `bit` and `sparsevec` vector storage types ([#12815](https://github.com/mastra-ai/mastra/pull/12815))\r\n\r\n  You can now store binary and sparse vectors in `@mastra/pg`:\r\n\r\n  ```ts\r\n  // Binary vectors for fast similarity search\r\n  await db.createIndex({\r\n    indexName: 'my_binary_index',\r\n    dimension: 128,\r\n    metric: 'hamming', // or 'jaccard'\r\n    vectorType: 'bit',\r\n  });\r\n\r\n  // Sparse vectors for BM25/TF-IDF representations\r\n  await db.createIndex({\r\n    indexName: 'my_sparse_index',\r\n    dimension: 500,\r\n    metric: 'cosine',\r\n    vectorType: 'sparsevec',\r\n  });\r\n  ```\r\n\r\n  What's new:\r\n  - `vectorType: 'bit'` for binary vectors with `'hamming'` and `'jaccard'` distance metrics\r\n  - `vectorType: 'sparsevec'` for sparse vectors (cosine, euclidean, dotproduct)\r\n  - Automatic metric normalization: `bit` defaults to `'hamming'` when no metric is specified\r\n  - `includeVector` round-trips work correctly for all vector types\r\n  - Requires pgvector >= 0.7.0\r\n\r\n- Added `requestContext` column to the spans table. Request context data from tracing is now persisted alongside other span data. ([#14020](https://github.com/mastra-ai/mastra/pull/14020))\r\n\r\n- Added `requestContext` and `requestContextSchema` column support to dataset storage. Dataset items now persist request context alongside input and ground truth data. ([#13938](https://github.com/mastra-ai/mastra/pull/13938))\r\n\r\n#### Patch Changes\r\n\r\n- Added resilient column handling to insert and update operations. Unknown columns in records are now silently dropped instead of causing SQL errors, ensuring forward compatibility when newer domain packages add fields that haven't been migrated yet. ([#14021](https://github.com/mastra-ai/mastra/pull/14021))\r\n\r\n  For example, calling `db.insert({ tableName, record: { id: '1', title: 'Hello', futureField: 'value' } })` will silently ignore `futureField` if it doesn't exist in the database table, rather than throwing. The same applies to `update` — unknown fields in the data payload are dropped before building the SQL statement.\r\n\r\n- Fixed slow semantic recall in the Postgres storage adapter for large threads. Recall now completes in under 500ms even for threads with 7,000+ messages, down from ~30 seconds. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/playground-ui@16.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@16.0.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/playground-ui/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added **Playground** and **Traces** tabs to the agent detail page. ([#13938](https://github.com/mastra-ai/mastra/pull/13938))\r\n\r\n  **Agent Playground tab** provides a side-by-side environment for iterating on agent configuration (instructions, tools, model settings) and testing changes in a live chat — without modifying the deployed agent. Includes version comparison, request context configuration, and the ability to trigger dataset experiments directly from the playground.\r\n\r\n  **Agent Traces tab** shows a compact table of all agent traces with columns for status, timestamp, input preview, output preview, and duration. Supports date range filtering, infinite scroll pagination, and clicking rows to inspect full trace details. Includes checkbox selection and bulk \"Add to dataset\" for quickly building evaluation datasets from production traces.\r\n\r\n  **Tools edit page** now shows configured (enabled) tools in a dedicated section at the top, making it easier to find and edit tools that are already in use.\r\n\r\n  **Dataset save actions** on the test chat: per-message save button on user messages and a \"Save full conversation\" action at the bottom of the thread.\r\n\r\n- Added input message preview column to the observability trace list. You can now see a truncated preview of user input messages directly in the trace table, making it easier to find specific traces without clicking into each one. ([#14025](https://github.com/mastra-ai/mastra/pull/14025))\r\n\r\n#### Patch Changes\r\n\r\n- The \"Run Experiment\" button is now disabled when a dataset has no items, with a tooltip explaining that items must be added first. ([#14031](https://github.com/mastra-ai/mastra/pull/14031))\r\n\r\n- fix: maxTokens from Studio Advanced Settings now correctly limits model output ([#13912](https://github.com/mastra-ai/mastra/pull/13912))\r\n\r\n  The `modelSettingsArgs` object was prematurely renaming `maxTokens` to `maxOutputTokens`. The React hook (`useChat`) destructures `maxTokens` from this object, so the rename caused it to receive `undefined`, and the value was silently dropped from the API request body.\r\n\r\n- Added permission denied handling for dataset pages. Datasets now show a \"Permission Denied\" screen when the user lacks access, matching the behavior of agents, workflows, and other resources. ([#13876](https://github.com/mastra-ai/mastra/pull/13876))\r\n\r\n- Fixed sandbox execution badge to show full streaming output during live sessions instead of snapping to the truncated tool result. The truncated view now only appears after page refresh when streaming data is no longer available. ([#13869](https://github.com/mastra-ai/mastra/pull/13869))\r\n\r\n- Fix the observational memory sidebar so the observation token label uses the live observation window token count shown by the progress UI. ([#13953](https://github.com/mastra-ai/mastra/pull/13953))\r\n\r\n### [@mastra/react@0.2.10](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.10//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/client-sdks/react/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed @mastra/react root imports so Vite and other browser builds no longer pull in Node-only @mastra/core code. ([#14079](https://github.com/mastra-ai/mastra/pull/14079))\r\n\r\n### [@mastra/schema-compat@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/schema-compat/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Add Zod v4 and Standard Schema support ([#12238](https://github.com/mastra-ai/mastra/pull/12238))\r\n\r\n  ## Zod v4 Breaking Changes\r\n  - Fix all `z.record()` calls to use 2-argument form (key + value schema) as required by Zod v4\r\n  - Update `ZodError.errors` to `ZodError.issues` (Zod v4 API change)\r\n  - Update `@ai-sdk/provider` versions for Zod v4 compatibility\r\n\r\n  ## Standard Schema Integration\r\n  - Add `packages/core/src/schema/` module that re-exports from `@mastra/schema-compat`\r\n  - Migrate codebase to use `PublicSchema` type for schema parameters\r\n  - Use `toStandardSchema()` for normalizing schemas across Zod v3, Zod v4, AI SDK Schema, and JSON Schema\r\n  - Use `standardSchemaToJSONSchema()` for JSON Schema conversion\r\n\r\n  ## Schema Compatibility (@mastra/schema-compat)\r\n  - Add new adapter exports: `@mastra/schema-compat/adapters/ai-sdk`, `@mastra/schema-compat/adapters/zod-v3`, `@mastra/schema-compat/adapters/json-schema`\r\n  - Enhance test coverage with separate v3 and v4 test suites\r\n  - Improve zod-to-json conversion with `unrepresentable: 'any'` support\r\n\r\n  ## TypeScript Fixes\r\n  - Resolve deep instantiation errors in client-js and model.ts\r\n  - Add proper type assertions where Zod v4 inference differs\r\n\r\n  **BREAKING CHANGE**: Minimum Zod version is now `^3.25.0` for v3 compatibility or `^4.0.0` for v4\r\n\r\n#### Patch Changes\r\n\r\n- Fixed Gemini supervisor agent tool calls failing with `INVALID_ARGUMENT` when delegated tool schemas include nullable fields. Fixes `#13988`. ([#14012](https://github.com/mastra-ai/mastra/pull/14012))\r\n\r\n- Fixed OpenAI and OpenAI Reasoning compat layers to ensure all properties appear in the JSON Schema required array when using processToJSONSchema. This prevents OpenAI strict mode rejections for schemas with optional, default, or nullish fields. (Fixes #12284) ([#13695](https://github.com/mastra-ai/mastra/pull/13695))\r\n\r\n### [@mastra/server@1.11.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.11.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/server/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `onValidationError` hook to `ServerConfig` and `createRoute()`. When a request fails Zod schema validation (query parameters, request body, or path parameters), this hook lets you customize the error response — including the HTTP status code and response body — instead of the default 400 response. Set it on the server config to apply globally, or on individual routes to override per-route. All server adapters (Hono, Express, Fastify, Koa) support this hook. ([#13477](https://github.com/mastra-ai/mastra/pull/13477))\r\n\r\n  ```ts\r\n  const mastra = new Mastra({\r\n    server: {\r\n      onValidationError: (error, context) => ({\r\n        status: 422,\r\n        body: {\r\n          ok: false,\r\n          errors: error.issues.map(i => ({\r\n            path: i.path.join('.'),\r\n            message: i.message,\r\n          })),\r\n          source: context,\r\n        },\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n- Added `requestContext` field to dataset item API endpoints and `requestContextSchema` to dataset CRUD endpoints. Added `requestContext` option to the experiment trigger endpoint, which gets forwarded to agent execution during experiments. ([#13938](https://github.com/mastra-ai/mastra/pull/13938))\r\n\r\n  **Usage with `@mastra/client-js`:**\r\n\r\n  ```ts\r\n  // Create a dataset with a request context schema\r\n  await client.createDataset({\r\n    name: 'my-dataset',\r\n    requestContextSchema: {\r\n      type: 'object',\r\n      properties: { region: { type: 'string' } },\r\n    },\r\n  });\r\n\r\n  // Add an item with request context\r\n  await client.addDatasetItem({\r\n    datasetId: 'my-dataset',\r\n    input: { prompt: 'Hello' },\r\n    requestContext: { region: 'us-east-1' },\r\n  });\r\n\r\n  // Trigger an experiment with request context forwarded to agent\r\n  await client.triggerDatasetExperiment({\r\n    datasetId: 'my-dataset',\r\n    agentId: 'my-agent',\r\n    requestContext: { region: 'eu-west-1' },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Experiments now fail immediately with a clear error when triggered on a dataset with zero items, instead of getting stuck in \"pending\" status forever. The experiment trigger API returns HTTP 400 for empty datasets. Unexpected errors during async experiment setup are now logged and mark the experiment as failed. ([#14031](https://github.com/mastra-ai/mastra/pull/14031))\r\n\r\n- Fixed `getPublicOrigin` to parse only the first value from the `X-Forwarded-Host` header. When requests pass through multiple proxies, each proxy appends its host to the header, creating a comma-separated list. The previous code used the raw value, producing a malformed URL that broke OAuth redirect URIs. Now only the first (client-facing) host is used, per RFC 7239. ([#13935](https://github.com/mastra-ai/mastra/pull/13935))\r\n\r\n### [@mastra/upstash@1.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/upstash@1.0.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/upstash/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Improved semantic recall performance for large message histories. Semantic recall no longer loads entire threads when only the recalled messages are needed, eliminating delays that previously scaled with total message count. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))\r\n\r\n### [@mastra/voice-google-gemini-live@0.11.3](https://github.com/mastra-ai/mastra/blob/@mastra/voice-google-gemini-live@0.11.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/voice/google-gemini-live-api/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add new models to GeminiVoiceModel type and mark deprecated models with `@deprecated` JSDoc. ([#12625](https://github.com/mastra-ai/mastra/pull/12625))\r\n\r\n  **Added:**\r\n  - `gemini-live-2.5-flash-native-audio` (GA)\r\n  - `gemini-live-2.5-flash-preview-native-audio-09-2025`\r\n  - `gemini-2.5-flash-native-audio-preview-12-2025`\r\n  - `gemini-2.5-flash-native-audio-preview-09-2025`\r\n\r\n  **Deprecated:**\r\n  - `gemini-2.0-flash-exp` (shut down 2025-12-09)\r\n  - `gemini-2.0-flash-exp-image-generation` (shut down 2025-11-14)\r\n  - `gemini-2.0-flash-live-001` (shut down 2025-12-09)\r\n  - `gemini-live-2.5-flash-preview-native-audio` (use `gemini-live-2.5-flash-preview-native-audio-09-2025`)\r\n  - `gemini-2.5-flash-exp-native-audio-thinking-dialog` (shut down 2025-10-20)\r\n  - `gemini-live-2.5-flash-preview` (shut down 2025-12-09)\r\n\r\n### [@mastra/voice-modelslab@0.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/voice-modelslab@0.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/voice/modelslab/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Initial release: ModelsLab TTS voice provider for Mastra\r\n\r\n### Other updated packages\r\n\r\nThe following packages were updated with dependency changes only:\r\n\r\n- [@mastra/agent-builder@1.0.11](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.11//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/agent-builder/CHANGELOG.md)\r\n- [@mastra/arize@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/arize@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/arize/CHANGELOG.md)\r\n- [@mastra/blaxel@0.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/blaxel@0.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/workspaces/blaxel/CHANGELOG.md)\r\n- [@mastra/braintrust@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/braintrust@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/braintrust/CHANGELOG.md)\r\n- [@mastra/deployer-cloud@1.11.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.11.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/deployers/cloud/CHANGELOG.md)\r\n- [@mastra/deployer-cloudflare@1.1.8](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/deployers/cloudflare/CHANGELOG.md)\r\n- [@mastra/deployer-netlify@1.0.12](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.12//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/deployers/netlify/CHANGELOG.md)\r\n- [@mastra/deployer-vercel@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.1.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/deployers/vercel/CHANGELOG.md)\r\n- [@mastra/laminar@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/laminar@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/laminar/CHANGELOG.md)\r\n- [@mastra/langfuse@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/langfuse@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/langfuse/CHANGELOG.md)\r\n- [@mastra/langsmith@1.1.4](https://github.com/mastra-ai/mastra/blob/@mastra/langsmith@1.1.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/langsmith/CHANGELOG.md)\r\n- [@mastra/longmemeval@1.0.12](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.12//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/explorations/longmemeval/CHANGELOG.md)\r\n- [@mastra/mcp-docs-server@1.1.9](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/packages/mcp-docs-server/CHANGELOG.md)\r\n- [@mastra/opencode@0.0.9](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/integrations/opencode/CHANGELOG.md)\r\n- [@mastra/otel-bridge@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/otel-bridge@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/otel-bridge/CHANGELOG.md)\r\n- [@mastra/otel-exporter@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/otel-exporter@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/otel-exporter/CHANGELOG.md)\r\n- [@mastra/posthog@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/posthog@1.0.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/posthog/CHANGELOG.md)\r\n- [@mastra/s3@0.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/s3@0.2.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/workspaces/s3/CHANGELOG.md)\r\n- [@mastra/s3vectors@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/s3vectors@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/stores/s3vectors/CHANGELOG.md)\r\n- [@mastra/sentry@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/sentry@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.11.0/observability/sentry/CHANGELOG.md)","publishedAt":"2026-03-16T14:35:05.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.11.0","media":[]},{"id":"rel_cUh3bXyz1W-EQsWTENYGL","version":"@mastra/core@1.10.0","title":"March 5, 2026","summary":"## Highlights\r\n\r\n### Tool `inputExamples` to improve model tool-call accuracy\r\n\r\nTool definitions can now include `inputExamples`, which are passed th...","content":"## Highlights\r\n\r\n### Tool `inputExamples` to improve model tool-call accuracy\r\n\r\nTool definitions can now include `inputExamples`, which are passed through to models that support them (e.g., Anthropic’s `input_examples`) to demonstrate valid inputs and reduce malformed tool calls.\r\n\r\n### MCP client fetch hooks now receive `RequestContext` (auth/cookie forwarding)\r\n\r\n`@mastra/mcp` adds requestContext support to custom `fetch` functions for MCP HTTP server definitions, enabling request-scoped forwarding of cookies/bearer tokens during tool execution while remaining backward compatible with `(url, init)` fetch signatures.\r\n\r\n### Reliability + DX fixes for agents, streaming, and memory cleanup\r\n\r\nProvider stream errors are now consistently surfaced from `generate()`/`resumeGenerate()`, AI SDK errors are routed through the Mastra logger with structured context, client-side tools no longer lose history in stateless deployments, and `memory.deleteThread()`/`deleteMessages()` now automatically cleans up orphaned vector embeddings across supported vector stores.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.10.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.10.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/core/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Add `inputExamples` support on tool definitions to show AI models what valid tool inputs look like. Models that support this (e.g., Anthropic's `input_examples`) will receive the examples alongside the tool schema, improving tool call accuracy. ([#12932](https://github.com/mastra-ai/mastra/pull/12932))\r\n  - Added optional `inputExamples` field to `ToolAction`, `CoreTool`, and `Tool` class\r\n\r\n  ```ts\r\n  const weatherTool = createTool({\r\n    id: \"get-weather\",\r\n    description: \"Get weather for a location\",\r\n    inputSchema: z.object({\r\n      city: z.string(),\r\n      units: z.enum([\"celsius\", \"fahrenheit\"])\r\n    }),\r\n    inputExamples: [{ input: { city: \"New York\", units: \"fahrenheit\" } }, { input: { city: \"Tokyo\", units: \"celsius\" } }],\r\n    execute: async ({ city, units }) => {\r\n      return await fetchWeather(city, units);\r\n    }\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13209](https://github.com/mastra-ai/mastra/pull/13209))\r\n  - Updated dependency [`p-map@^7.0.4` ↗︎](https://www.npmjs.com/package/p-map/v/7.0.4) (from `^7.0.3`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13210](https://github.com/mastra-ai/mastra/pull/13210))\r\n  - Updated dependency [`p-retry@^7.1.1` ↗︎](https://www.npmjs.com/package/p-retry/v/7.1.1) (from `^7.1.0`, in `dependencies`)\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448))\r\n\r\n- Fixed execute_command tool timeout parameter to accept seconds instead of milliseconds, preventing agents from accidentally setting extremely short timeouts ([#13799](https://github.com/mastra-ai/mastra/pull/13799))\r\n\r\n- **Skill tools are now stable across conversation turns and prompt-cache friendly.** ([#13744](https://github.com/mastra-ai/mastra/pull/13744))\r\n  - Renamed `skill-activate` → `skill` — returns full skill instructions directly in the tool result\r\n  - Consolidated `skill-read-reference`, `skill-read-script`, `skill-read-asset` → `skill_read`\r\n  - Renamed `skill-search` → `skill_search`\r\n  - `<available_skills>` in the system message is now sorted deterministically\r\n\r\n- Fixed Cloudflare Workers build failures when using `@mastra/core`. Local process execution now loads its runtime dependency lazily, preventing incompatible Node-only modules from being bundled during worker builds. ([#13813](https://github.com/mastra-ai/mastra/pull/13813))\r\n\r\n- Fix `mimeType` → `mediaType` typo in `sendMessage` file part construction. This caused file attachments to be routed through the V4 adapter instead of V5, preventing them from being correctly processed by AI SDK v5 providers. ([#13833](https://github.com/mastra-ai/mastra/pull/13833))\r\n\r\n- Fixed onIterationComplete feedback being discarded when it returns `{ continue: false }` — feedback is now added to the conversation and the model gets one final turn to produce a text response before the loop stops. ([#13759](https://github.com/mastra-ai/mastra/pull/13759))\r\n\r\n- Fixed `generate()` and `resumeGenerate()` to always throw provider stream errors. Previously, certain provider errors were silently swallowed, returning false \"successful\" empty responses. Now errors are always surfaced to the caller, making retry logic reliable when providers fail transiently. ([#13802](https://github.com/mastra-ai/mastra/pull/13802))\r\n\r\n- Remove the default maxSteps limit so stopWhen can control sub-agent execution ([#13764](https://github.com/mastra-ai/mastra/pull/13764))\r\n\r\n- Fix suspendedToolRunId required error when it shouldn't be required ([#13722](https://github.com/mastra-ai/mastra/pull/13722))\r\n\r\n- Fixed subagent tool defaulting maxSteps to 50 when no stop condition is configured, preventing unbounded execution loops. When stopWhen is set, maxSteps is left to the caller. ([#13777](https://github.com/mastra-ai/mastra/pull/13777))\r\n\r\n- Fixed prompt failures by removing assistant messages that only contain sources before model calls. ([#13790](https://github.com/mastra-ai/mastra/pull/13790))\r\n\r\n- - Fixed experiment pending count showing negative values when experiments are triggered from the Studio ([#13831](https://github.com/mastra-ai/mastra/pull/13831))\r\n  - Fixed scorer prompt metadata (analysis context, generated prompts) being lost when saving experiment scores\r\n\r\n- Fixed RequestContext constructor crashing when constructed from a deserialized plain object. ([#13856](https://github.com/mastra-ai/mastra/pull/13856))\r\n\r\n- Fixed LLM errors (generateText, generateObject, streamText, streamObject) being swallowed by the AI SDK's default handler instead of being routed through the Mastra logger. Errors now appear with structured context (runId, modelId, provider, etc.) in your logger, and streaming errors are captured via onError callbacks. ([#13857](https://github.com/mastra-ai/mastra/pull/13857))\r\n\r\n- Fixed workspace tool output truncation so it no longer gets prematurely cut off when short lines precede a very long line (e.g. minified JSON). Output now uses the full token budget instead of stopping at line boundaries, resulting in more complete tool results. ([#13828](https://github.com/mastra-ai/mastra/pull/13828))\r\n\r\n- Fixed subagent tool to default maxSteps to 50 when no stopWhen condition is configured, preventing unbounded agent loops. When stopWhen is set, maxSteps remains unset so the stop condition controls termination. ([#13777](https://github.com/mastra-ai/mastra/pull/13777))\r\n\r\n### [@mastra/agent-builder@1.0.10](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.10//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/agent-builder/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13283](https://github.com/mastra-ai/mastra/pull/13283))\r\n  - Updated dependency [`semver@^7.7.4` ↗︎](https://www.npmjs.com/package/semver/v/7.7.4) (from `^7.7.2`, in `dependencies`)\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`08072ec`](https://github.com/mastra-ai/mastra/commit/08072ec54b5dfe810ed66c0d583ae9d1a9103c11), [`ef9d0f0`](https://github.com/mastra-ai/mastra/commit/ef9d0f0fa98ff225b17afe071f5b84a9258dc142), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`1391f22`](https://github.com/mastra-ai/mastra/commit/1391f227ff197080de185ac1073c1d1568c0631f), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`3ceb231`](https://github.com/mastra-ai/mastra/commit/3ceb2317aad7da36df5053e7c84f9381eeb68d11), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`1391f22`](https://github.com/mastra-ai/mastra/commit/1391f227ff197080de185ac1073c1d1568c0631f), [`ef888d2`](https://github.com/mastra-ai/mastra/commit/ef888d23c77f85f4c202228b63f8fd9b6d9361af), [`e7a567c`](https://github.com/mastra-ai/mastra/commit/e7a567cfb3e65c955a07d0167cb1b4141f5bda01), [`3626623`](https://github.com/mastra-ai/mastra/commit/36266238eb7db78fce2ac34187194613f6f53733), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/memory@1.6.1\r\n\r\n### [@mastra/ai-sdk@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/ai-sdk@1.1.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixes inline `import()` statements referencing workspace packages (via `@internal/*`) in publish `.d.ts` files ([#13811](https://github.com/mastra-ai/mastra/pull/13811))\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/arize@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/arize@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/arize/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/otel-exporter@1.0.5\r\n\r\n### [@mastra/auth@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/auth@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/auth/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13134](https://github.com/mastra-ai/mastra/pull/13134))\r\n  - Updated dependency [`jsonwebtoken@^9.0.3` ↗︎](https://www.npmjs.com/package/jsonwebtoken/v/9.0.3) (from `^9.0.2`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13135](https://github.com/mastra-ai/mastra/pull/13135))\r\n  - Updated dependency [`jwks-rsa@^3.2.2` ↗︎](https://www.npmjs.com/package/jwks-rsa/v/3.2.2) (from `^3.2.0`, in `dependencies`)\r\n\r\n### [@mastra/auth-clerk@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/auth-clerk@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/auth/clerk/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`ae52b89`](https://github.com/mastra-ai/mastra/commit/ae52b89cf1c78e2ab5231975492a84173dcd04dc), [`1ea40a9`](https://github.com/mastra-ai/mastra/commit/1ea40a99f0104faa528bc13b0ae99a48c3c5201d)]:\r\n  - @mastra/auth@1.0.1\r\n\r\n### [@mastra/auth-cloud@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/auth-cloud@1.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/auth/cloud/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`ae52b89`](https://github.com/mastra-ai/mastra/commit/ae52b89cf1c78e2ab5231975492a84173dcd04dc), [`1ea40a9`](https://github.com/mastra-ai/mastra/commit/1ea40a99f0104faa528bc13b0ae99a48c3c5201d), [`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/auth@1.0.1\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/auth-workos@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/auth-workos@1.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/auth/workos/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13850](https://github.com/mastra-ai/mastra/pull/13850))\r\n  - Updated dependency [`lru-cache@^11.2.6` ↗︎](https://www.npmjs.com/package/lru-cache/v/11.2.6) (from `^11.1.0`, in `dependencies`)\r\n- Updated dependencies [[`ae52b89`](https://github.com/mastra-ai/mastra/commit/ae52b89cf1c78e2ab5231975492a84173dcd04dc), [`1ea40a9`](https://github.com/mastra-ai/mastra/commit/1ea40a99f0104faa528bc13b0ae99a48c3c5201d), [`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/auth@1.0.1\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/braintrust@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/braintrust@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/braintrust/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n\r\n### [@mastra/client-js@1.7.3](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.7.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/client-sdks/client-js/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fix agent losing conversation context (\"amnesia\") when using client-side tools with stateless server deployments. Recursive calls after tool execution now include the full conversation history when no `threadId` is provided. ([#11476](https://github.com/mastra-ai/mastra/pull/11476))\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/couchbase@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/couchbase@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/stores/couchbase/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13837](https://github.com/mastra-ai/mastra/pull/13837))\r\n  - Updated dependency [`couchbase@^4.6.1` ↗︎](https://www.npmjs.com/package/couchbase/v/4.6.1) (from `^4.6.0`, in `dependencies`)\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/datadog@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/datadog@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/datadog/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n\r\n### [@mastra/deployer@1.10.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.10.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/deployer/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`9fb4c06`](https://github.com/mastra-ai/mastra/commit/9fb4c06ccab62a1940845fc6eed7f944e5ccd951), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`b5a8ea5`](https://github.com/mastra-ai/mastra/commit/b5a8ea50d3718c31efca271b45498c8485c67b42), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/server@1.10.0\r\n\r\n### [@mastra/deployer-cloud@1.10.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.10.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/deployers/cloud/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/deployer@1.10.0\r\n\r\n### [@mastra/deployer-cloudflare@1.1.7](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/deployers/cloudflare/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/deployer@1.10.0\r\n\r\n### [@mastra/deployer-netlify@1.0.11](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.11//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/deployers/netlify/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/deployer@1.10.0\r\n\r\n### [@mastra/deployer-vercel@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/deployers/vercel/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/deployer@1.10.0\r\n\r\n### [@mastra/elasticsearch@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/elasticsearch@1.1.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/stores/elasticsearch/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Added custom `user-agent` header to all Elasticsearch requests. Every request now identifies itself as `mastra-elasticsearch/<version>` via the `user-agent` header, enabling usage tracking in Elasticsearch server logs and analytics tools. ([#13740](https://github.com/mastra-ai/mastra/pull/13740))\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/express@1.1.9](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.1.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/server-adapters/express/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`9fb4c06`](https://github.com/mastra-ai/mastra/commit/9fb4c06ccab62a1940845fc6eed7f944e5ccd951), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`b5a8ea5`](https://github.com/mastra-ai/mastra/commit/b5a8ea50d3718c31efca271b45498c8485c67b42), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/server@1.10.0\r\n\r\n### [@mastra/fastembed@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/fastembed@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/fastembed/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#10195](https://github.com/mastra-ai/mastra/pull/10195))\r\n  - Updated dependency [`fastembed@^2.1.0` ↗︎](https://www.npmjs.com/package/fastembed/v/2.1.0) (from `^1.14.4`, in `dependencies`)\r\n\r\n- Add `warmup()` export to pre-download fastembed models without creating ONNX sessions. This prevents concurrent download race conditions when multiple consumers call `FlagEmbedding.init()` in parallel, which could corrupt the model archive and cause `Z_BUF_ERROR`. ([#13752](https://github.com/mastra-ai/mastra/pull/13752))\r\n\r\n### [@mastra/fastify@1.1.9](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.1.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/server-adapters/fastify/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`9fb4c06`](https://github.com/mastra-ai/mastra/commit/9fb4c06ccab62a1940845fc6eed7f944e5ccd951), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`b5a8ea5`](https://github.com/mastra-ai/mastra/commit/b5a8ea50d3718c31efca271b45498c8485c67b42), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/server@1.10.0\r\n\r\n### [@mastra/hono@1.1.9](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.1.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/server-adapters/hono/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`9fb4c06`](https://github.com/mastra-ai/mastra/commit/9fb4c06ccab62a1940845fc6eed7f944e5ccd951), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`b5a8ea5`](https://github.com/mastra-ai/mastra/commit/b5a8ea50d3718c31efca271b45498c8485c67b42), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/server@1.10.0\r\n\r\n### [@mastra/koa@1.2.5](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.2.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/server-adapters/koa/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`9fb4c06`](https://github.com/mastra-ai/mastra/commit/9fb4c06ccab62a1940845fc6eed7f944e5ccd951), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`b5a8ea5`](https://github.com/mastra-ai/mastra/commit/b5a8ea50d3718c31efca271b45498c8485c67b42), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/server@1.10.0\r\n\r\n### [@mastra/laminar@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/laminar@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/laminar/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n\r\n### [@mastra/langfuse@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/langfuse@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/langfuse/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n\r\n### [@mastra/langsmith@1.1.3](https://github.com/mastra-ai/mastra/blob/@mastra/langsmith@1.1.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/langsmith/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n\r\n### [@mastra/libsql@1.6.4](https://github.com/mastra-ai/mastra/blob/@mastra/libsql@1.6.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/stores/libsql/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- - Fixed experiment pending count showing negative values when experiments are triggered from the Studio ([#13831](https://github.com/mastra-ai/mastra/pull/13831))\r\n  - Fixed scorer prompt metadata (analysis context, generated prompts) being lost when saving experiment scores\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/longmemeval@1.0.11](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.11//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/explorations/longmemeval/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`a8e2e2e`](https://github.com/mastra-ai/mastra/commit/a8e2e2e5ed899a1d1c30745a83e4bad03c1896a8), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`08072ec`](https://github.com/mastra-ai/mastra/commit/08072ec54b5dfe810ed66c0d583ae9d1a9103c11), [`ef9d0f0`](https://github.com/mastra-ai/mastra/commit/ef9d0f0fa98ff225b17afe071f5b84a9258dc142), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`3ada2da`](https://github.com/mastra-ai/mastra/commit/3ada2dadb4a777f909720aee599a422218995267), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`1391f22`](https://github.com/mastra-ai/mastra/commit/1391f227ff197080de185ac1073c1d1568c0631f), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`3ceb231`](https://github.com/mastra-ai/mastra/commit/3ceb2317aad7da36df5053e7c84f9381eeb68d11), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`1391f22`](https://github.com/mastra-ai/mastra/commit/1391f227ff197080de185ac1073c1d1568c0631f), [`ef888d2`](https://github.com/mastra-ai/mastra/commit/ef888d23c77f85f4c202228b63f8fd9b6d9361af), [`e7a567c`](https://github.com/mastra-ai/mastra/commit/e7a567cfb3e65c955a07d0167cb1b4141f5bda01), [`3626623`](https://github.com/mastra-ai/mastra/commit/36266238eb7db78fce2ac34187194613f6f53733), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/fastembed@1.0.1\r\n  - @mastra/memory@1.6.1\r\n  - @mastra/libsql@1.6.4\r\n\r\n### [@mastra/mcp@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/mcp@1.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/mcp/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added requestContext support to the custom fetch option in MCP client HTTP server definitions. The fetch function now receives the current request context as an optional third argument, enabling users to forward authentication cookies, bearer tokens, and other request-scoped data from the incoming request to remote MCP servers during tool execution. ([#13773](https://github.com/mastra-ai/mastra/pull/13773))\r\n\r\n  **Example usage:**\r\n\r\n  ```typescript\r\n  const mcp = new MCPClient({\r\n    servers: {\r\n      myServer: {\r\n        url: new URL(\"https://api.example.com/mcp\"),\r\n        fetch: async (url, init, requestContext) => {\r\n          const headers = new Headers(init?.headers);\r\n          const cookie = requestContext?.get(\"cookie\");\r\n          if (cookie) {\r\n            headers.set(\"cookie\", cookie);\r\n          }\r\n          return fetch(url, { ...init, headers });\r\n        }\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n  This change is fully backward-compatible — existing fetch functions with `(url, init)` signatures continue to work unchanged. Closes #13769.\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/mcp-docs-server@1.1.8](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/mcp-docs-server/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`9e21667`](https://github.com/mastra-ai/mastra/commit/9e2166746df81da8f1f933a918741fc52f922c70), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/mcp@1.1.0\r\n\r\n### [@mastra/memory@1.6.1](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.6.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/memory/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Improved confidence in observational memory threshold behavior through expanded automated test coverage. No public API changes. ([#13785](https://github.com/mastra-ai/mastra/pull/13785))\r\n\r\n- Improved Observational Memory reliability: fixed future-date annotations producing invalid strings, fixed a duplicate inline-date matching bug, and hardened the process-level operation registry against concurrent operation tracking errors. ([#13774](https://github.com/mastra-ai/mastra/pull/13774))\r\n\r\n- Fixed buffered activation cleanup to respect the configured retention floor so message history does not collapse unexpectedly after activation. ([#13745](https://github.com/mastra-ai/mastra/pull/13745))\r\n\r\n- Fixed orphaned vector embeddings accumulating when memory threads or messages are deleted. Calling `memory.deleteThread()` or `memory.deleteMessages()` now automatically cleans up associated vector embeddings across all supported vector store backends. Cleanup is non-blocking and does not slow down the delete call. Also fixed `updateMessages` not cleaning up old vectors correctly when using a non-default index separator (e.g. Pinecone). ([#12227](https://github.com/mastra-ai/mastra/pull/12227))\r\n\r\n- Repeated token counts in OM are faster and more reliable, estimates are now persisted on metadata, and totals remain consistent after saving and loading conversations. ([#13745](https://github.com/mastra-ai/mastra/pull/13745))\r\n\r\n- Improved observational memory marker creation consistency for more reliable debugging and UI status behavior. No public API changes. ([#13779](https://github.com/mastra-ai/mastra/pull/13779))\r\n\r\n- Fixed observational memory token counting to use stored model output for tool results transformed with toModelOutput. ([#13862](https://github.com/mastra-ai/mastra/pull/13862))\r\n\r\n- Fix working memory data corruption when using resource scope across threads ([#12415](https://github.com/mastra-ai/mastra/pull/12415))\r\n  - Add mutex protection to `updateWorkingMemory()` to prevent race conditions during concurrent updates\r\n  - Add normalized whitespace comparison to `__experimental_updateWorkingMemoryVNext()` to detect template duplicates with whitespace variations\r\n  - Add validation to `updateWorkingMemoryTool` to prevent LLM from accidentally wiping existing data by sending empty template\r\n  - Improve template removal logic to handle line ending variations\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/mongodb@1.5.4](https://github.com/mastra-ai/mastra/blob/@mastra/mongodb@1.5.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/stores/mongodb/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixed MongoDB observational memory buffering so legacy records with `bufferedObservationChunks: null` can append chunks safely and continue storing chunk buffers as arrays after activation. ([#13803](https://github.com/mastra-ai/mastra/pull/13803))\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/observability@1.3.1](https://github.com/mastra-ai/mastra/blob/@mastra/observability@1.3.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/mastra/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixed compatibility checks for `@mastra/observability` by requiring `@mastra/core >= 1.9.0`. ([#13838](https://github.com/mastra-ai/mastra/pull/13838))\r\n  This prevents installs with older core versions that can cause runtime errors.\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/opencode@0.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/integrations/opencode/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`08072ec`](https://github.com/mastra-ai/mastra/commit/08072ec54b5dfe810ed66c0d583ae9d1a9103c11), [`ef9d0f0`](https://github.com/mastra-ai/mastra/commit/ef9d0f0fa98ff225b17afe071f5b84a9258dc142), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`1391f22`](https://github.com/mastra-ai/mastra/commit/1391f227ff197080de185ac1073c1d1568c0631f), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`3ceb231`](https://github.com/mastra-ai/mastra/commit/3ceb2317aad7da36df5053e7c84f9381eeb68d11), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`1391f22`](https://github.com/mastra-ai/mastra/commit/1391f227ff197080de185ac1073c1d1568c0631f), [`ef888d2`](https://github.com/mastra-ai/mastra/commit/ef888d23c77f85f4c202228b63f8fd9b6d9361af), [`e7a567c`](https://github.com/mastra-ai/mastra/commit/e7a567cfb3e65c955a07d0167cb1b4141f5bda01), [`3626623`](https://github.com/mastra-ai/mastra/commit/36266238eb7db78fce2ac34187194613f6f53733), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/memory@1.6.1\r\n  - @mastra/libsql@1.6.4\r\n\r\n### [@mastra/otel-bridge@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/otel-bridge@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/otel-bridge/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n  - @mastra/otel-exporter@1.0.5\r\n\r\n### [@mastra/otel-exporter@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/otel-exporter@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/otel-exporter/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n\r\n### [@mastra/pg@1.7.2](https://github.com/mastra-ai/mastra/blob/@mastra/pg@1.7.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/stores/pg/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixed experiment pending count showing negative values when experiments are triggered from the Studio ([#13831](https://github.com/mastra-ai/mastra/pull/13831))\r\n  - Fixed scorer prompt metadata (analysis context, generated prompts) being lost when saving experiment scores\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n\r\n### [@mastra/playground-ui@15.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@15.2.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/playground-ui/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13236](https://github.com/mastra-ai/mastra/pull/13236))\r\n  - Updated dependency [`papaparse@^5.5.3` ↗︎](https://www.npmjs.com/package/papaparse/v/5.5.3) (from `^5.4.1`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13271](https://github.com/mastra-ai/mastra/pull/13271))\r\n  - Updated dependency [`@codemirror/merge@^6.12.0` ↗︎](https://www.npmjs.com/package/@codemirror/merge/v/6.12.0) (from `^6.10.2`, in `dependencies`)\r\n  - Updated dependency [`@codemirror/view@^6.39.15` ↗︎](https://www.npmjs.com/package/@codemirror/view/v/6.39.15) (from `^6.39.14`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13283](https://github.com/mastra-ai/mastra/pull/13283))\r\n  - Updated dependency [`semver@^7.7.4` ↗︎](https://www.npmjs.com/package/semver/v/7.7.4) (from `^7.7.2`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13771](https://github.com/mastra-ai/mastra/pull/13771))\r\n  - Updated dependency [`@uiw/codemirror-theme-dracula@^4.25.5` ↗︎](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula/v/4.25.5) (from `^4.25.4`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13847](https://github.com/mastra-ai/mastra/pull/13847))\r\n  - Updated dependency [`@codemirror/autocomplete@^6.20.1` ↗︎](https://www.npmjs.com/package/@codemirror/autocomplete/v/6.20.1) (from `^6.20.0`, in `dependencies`)\r\n  - Updated dependency [`@codemirror/lang-javascript@^6.2.5` ↗︎](https://www.npmjs.com/package/@codemirror/lang-javascript/v/6.2.5) (from `^6.2.4`, in `dependencies`)\r\n  - Updated dependency [`@codemirror/view@^6.39.16` ↗︎](https://www.npmjs.com/package/@codemirror/view/v/6.39.16) (from `^6.39.15`, in `dependencies`)\r\n\r\n- Fixed experiment results page showing only 10 items, empty summary tab with no scorers, and scores not updating during experiment runs. ([#13831](https://github.com/mastra-ai/mastra/pull/13831))\r\n\r\n- Updated skill activation indicators to match new skill tool names. ([#13744](https://github.com/mastra-ai/mastra/pull/13744))\r\n\r\n- Fix saving traces and scores as dataset items in the Studio. ([#13800](https://github.com/mastra-ai/mastra/pull/13800))\r\n  - Traces with structured message content (e.g. multi-part content arrays) can now be saved as dataset items without validation errors\r\n  - Score dialog now has a \"Save as Dataset Item\" button for scorer calibration workflows, pre-filling scorer input/output and expected score\r\n  - Dataset output schema updated to match the full experiment output shape (text, object, toolCalls, files, usage, etc.)\r\n\r\n- Fixed Playground UI agent settings so temperature is no longer reset to `1` on refresh. Temperature now stays unset unless saved settings or code defaults provide a value. ([#13778](https://github.com/mastra-ai/mastra/pull/13778))\r\n\r\n- Fixed documentation link in empty datasets page pointing to the correct datasets docs instead of evals ([#13872](https://github.com/mastra-ai/mastra/pull/13872))\r\n\r\n- Fix wrong threads showing for agents on studio ([#13789](https://github.com/mastra-ai/mastra/pull/13789))\r\n\r\n- Fixed dev playground auth bypass not working in capabilities endpoint. The client now passes MastraClient headers (including x-mastra-dev-playground) to the auth capabilities endpoint, and the server returns disabled state when this header is present. This prevents the login gate from appearing in dev playground mode. ([#13801](https://github.com/mastra-ai/mastra/pull/13801))\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`88061a8`](https://github.com/mastra-ai/mastra/commit/88061a8e45b75d9bdd42e2a5d20aa69a48f02753), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`d1e26f0`](https://github.com/mastra-ai/mastra/commit/d1e26f0091ea8685ee7219ea510124f4ed816fea), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/ai-sdk@1.1.2\r\n  - @mastra/client-js@1.7.3\r\n  - @mastra/react@0.2.9\r\n\r\n### [@mastra/posthog@1.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/posthog@1.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/posthog/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n\r\n### [@mastra/react@0.2.9](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/client-sdks/react/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`d1e26f0`](https://github.com/mastra-ai/mastra/commit/d1e26f0091ea8685ee7219ea510124f4ed816fea), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/client-js@1.7.3\r\n\r\n### [@mastra/sentry@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/sentry@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/observability/sentry/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`e9060ef`](https://github.com/mastra-ai/mastra/commit/e9060ef74c23a8706e43125cbc6ec8f196894600), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n  - @mastra/observability@1.3.1\r\n  - @mastra/otel-exporter@1.0.5\r\n\r\n### [@mastra/server@1.10.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.10.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.10.0/packages/server/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixed Studio so custom gateway models appear in the provider list. ([#13772](https://github.com/mastra-ai/mastra/pull/13772))\r\n  Improved /agents/providers API to include both built-in providers and providers from configured custom gateways.\r\n\r\n- Fixed dev playground auth bypass not working in capabilities endpoint. The client now passes MastraClient headers (including x-mastra-dev-playground) to the auth capabilities endpoint, and the server returns disabled state when this header is present. This prevents the login gate from appearing in dev playground mode. ([#13801](https://github.com/mastra-ai/mastra/pull/13801))\r\n\r\n- Updated dependencies [[`41e48c1`](https://github.com/mastra-ai/mastra/commit/41e48c198eee846478e60c02ec432c19d322a517), [`82469d3`](https://github.com/mastra-ai/mastra/commit/82469d3135d5a49dd8dc8feec0ff398b4e0225a0), [`33e2fd5`](https://github.com/mastra-ai/mastra/commit/33e2fd5088f83666df17401e2da68c943dbc0448), [`7ef6e2c`](https://github.com/mastra-ai/mastra/commit/7ef6e2c61be5a42e26f55d15b5902866fc76634f), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`fa37d39`](https://github.com/mastra-ai/mastra/commit/fa37d39910421feaf8847716292e3d65dd4f30c2), [`b12d2a5`](https://github.com/mastra-ai/mastra/commit/b12d2a59a48be0477cabae66eb6cf0fc94a7d40d), [`71c38bf`](https://github.com/mastra-ai/mastra/commit/71c38bf905905148ecd0e75c07c1f9825d299b76), [`f993c38`](https://github.com/mastra-ai/mastra/commit/f993c3848c97479b813231be872443bedeced6ab), [`f51849a`](https://github.com/mastra-ai/mastra/commit/f51849a568935122b5100b7ee69704e6d680cf7b), [`9bf3a0d`](https://github.com/mastra-ai/mastra/commit/9bf3a0dac602787925f1762f1f0387d7b4a59620), [`cafa045`](https://github.com/mastra-ai/mastra/commit/cafa0453c9de141ad50c09a13894622dffdd9978), [`1fd9ddb`](https://github.com/mastra-ai/mastra/commit/1fd9ddbb3fe83b281b12bd2e27e426ae86288266), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443), [`d9d228c`](https://github.com/mastra-ai/mastra/commit/d9d228c0c6ae82ae6ce3b540a3a56b2b1c2b8d98), [`5576507`](https://github.com/mastra-ai/mastra/commit/55765071e360fb97e443aa0a91ccf7e1cd8d92aa), [`79d69c9`](https://github.com/mastra-ai/mastra/commit/79d69c9d5f842ff1c31352fb6026f04c1f6190f3), [`94f44b8`](https://github.com/mastra-ai/mastra/commit/94f44b827ce57b179e50f4916a84c0fa6e7f3b8c), [`13187db`](https://github.com/mastra-ai/mastra/commit/13187dbac880174232dedc5a501ff6c5d0fe59bc), [`2ae5311`](https://github.com/mastra-ai/mastra/commit/2ae531185fff66a80fa165c0999e3d801900e89d), [`6135ef4`](https://github.com/mastra-ai/mastra/commit/6135ef4f5288652bf45f616ec590607e4c95f443)]:\r\n  - @mastra/core@1.10.0\r\n","publishedAt":"2026-03-09T12:11:39.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.10.0","media":[]},{"id":"rel_YwHLz7RFYEbrVRDXudcsQ","version":"@mastra/core@1.9.0","title":"March 4, 2026","summary":"## Highlights\r\n\r\n ### Major Workspace & Sandbox upgrades (token-aware output, mounts, process control, LSP resolution)\r\n Workspaces get significant ca...","content":"## Highlights\r\n\r\n ### Major Workspace & Sandbox upgrades (token-aware output, mounts, process control, LSP resolution)\r\n Workspaces get significant capabilities: workspace tool output is now token-limited, ANSI-stripped for model context, and `.gitignore`-aware to reduce token usage. Sandbox commands support `abortSignal` for cancellation, plus background process streaming callbacks (`onStdout`/`onStderr`/`onExit`), and local symlink mounts in `LocalSandbox`. Tools can be exposed under custom names via `WorkspaceToolConfig.name`. LSP binary resolution is now configurable (`binaryOverrides`, `searchPaths`, `packageRunner`), making workspace diagnostics work reliably across monorepos, global installs, and custom setups.\r\n\r\n### End-to-end Auth + RBAC across Server, Studio, and Providers\r\nMastra now ships a pluggable auth system (`@mastra/core/auth`) plus server-side auth routes and convention-based route permission enforcement (`@mastra/server` + all server adapters). New auth provider packages (`@mastra/auth-cloud`, `@mastra/auth-studio`, `@mastra/auth-workos`) add OAuth/SSO, session management, and RBAC—Studio UI also gains permission-gated auth screens/components.\r\n\r\n### Workflow execution path tracking + concurrent-safe workflow snapshot updates\r\n\r\nWorkflow results now include `stepExecutionPath` (also available mid-execution and preserved across resume/restart), and execution logs are smaller by deduping payloads. Storage backends add atomic `updateWorkflowResults`/`updateWorkflowState` with a `supportsConcurrentUpdates()` check—enabling safer concurrent workflow updates (supported in e.g. Postgres/LibSQL/MongoDB/DynamoDB/Upstash; explicitly not supported in some backends like ClickHouse/Cloudflare/Lance).\r\n\r\n### Breaking Changes\r\n- `harness.sendMessage()` now uses `files` instead of `images` (supports any file type, preserves filenames, and auto-decodes text-based files).\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.9.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.9.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `onStepFinish` and `onError` callbacks to `NetworkOptions`, allowing per-LLM-step progress monitoring and custom error handling during network execution. Closes #13362. ([#13370](https://github.com/mastra-ai/mastra/pull/13370))\r\n\r\n  **Before:** No way to observe per-step progress or handle errors during network execution.\r\n\r\n  ```typescript\r\n  const stream = await agent.network('Research AI trends', {\r\n    memory: { thread: 'my-thread', resource: 'my-resource' },\r\n  });\r\n  ```\r\n\r\n  **After:** `onStepFinish` and `onError` are now available in `NetworkOptions`.\r\n\r\n  ```typescript\r\n  const stream = await agent.network('Research AI trends', {\r\n    onStepFinish: event => {\r\n      console.log('Step completed:', event.finishReason, event.usage);\r\n    },\r\n    onError: ({ error }) => {\r\n      console.error('Network error:', error);\r\n    },\r\n    memory: { thread: 'my-thread', resource: 'my-resource' },\r\n  });\r\n  ```\r\n\r\n- Add workflow execution path tracking and optimize execution logs ([#11755](https://github.com/mastra-ai/mastra/pull/11755))\r\n\r\n  Workflow results now include a `stepExecutionPath` array showing the IDs of each step that executed during a workflow run. You can use this to understand exactly which path your workflow took.\r\n\r\n  ```ts\r\n  // Before: no execution path in results\r\n  const result = await workflow.execute({ triggerData });\r\n  // result.stepExecutionPath → undefined\r\n\r\n  // After: stepExecutionPath is available in workflow results\r\n  const result = await workflow.execute({ triggerData });\r\n  console.log(result.stepExecutionPath);\r\n  // → ['step1', 'step2', 'step4'] — the actual steps that ran\r\n  ```\r\n\r\n  `stepExecutionPath` is available in:\r\n  - **Workflow results** (`WorkflowResult.stepExecutionPath`) — see which steps ran after execution completes\r\n  - **Execution context** (`ExecutionContext.stepExecutionPath`) — access the path mid-execution inside your steps\r\n  - **Resume and restart operations** — execution path persists across suspend/resume and restart cycles\r\n\r\n  Workflow execution logs are now more compact and easier to read. Step outputs are no longer duplicated as the next step's input, reducing the size of execution results while maintaining full visibility.\r\n\r\n  **Key improvements:**\r\n  - Track which steps executed in your workflows with `stepExecutionPath`\r\n  - Smaller, more readable execution logs with automatic duplicate payload removal\r\n  - Execution path preserved when resuming or restarting workflows\r\n\r\n  This is particularly beneficial for AI agents and LLM-based workflows where reducing context size improves performance and cost efficiency.\r\n\r\n  Related: `#8951`\r\n\r\n- Added authentication interfaces and Enterprise Edition RBAC support. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))\r\n\r\n  **New `@mastra/core/auth` export** with pluggable interfaces for building auth providers:\r\n  - `IUserProvider` — user lookup and management\r\n  - `ISessionProvider` — session creation, validation, and cookie handling\r\n  - `ISSOProvider` — SSO login and callback flows\r\n  - `ICredentialsProvider` — username/password authentication\r\n\r\n  **Default implementations** included out of the box:\r\n  - Cookie-based session provider with configurable TTL and secure defaults\r\n  - In-memory session provider for development and testing\r\n\r\n  **Enterprise Edition (`@mastra/core/auth/ee`)** adds RBAC, ACL, and license validation:\r\n\r\n  ```ts\r\n  import { buildCapabilities } from '@mastra/core/auth/ee';\r\n\r\n  const capabilities = buildCapabilities({\r\n    rbac: myRBACProvider,\r\n    acl: myACLProvider,\r\n  });\r\n  ```\r\n\r\n  Built-in role definitions (owner, admin, editor, viewer) and a static RBAC provider are included for quick setup. Enterprise features require a valid license key via the `MASTRA_EE_LICENSE` environment variable.\r\n\r\n- Workspace sandbox tool results (`execute_command`, `kill_process`, `get_process_output`) sent to the model now strip ANSI color codes via `toModelOutput`, while streamed output to the user keeps colors. This reduces token usage and improves model readability. ([#13440](https://github.com/mastra-ai/mastra/pull/13440))\r\n\r\n  Workspace `execute_command` tool now extracts trailing `| tail -N` pipes from commands so output streams live to the user, while the final result sent to the model is still truncated to the last N lines.\r\n\r\n  Workspace tools that return potentially large output now enforce a token-based output limit (~3k tokens by default) using tiktoken for accurate counting. The limit is configurable per-tool via `maxOutputTokens` in `WorkspaceToolConfig`. Each tool uses a truncation strategy suited to its output:\r\n  - `read_file`, `grep`, `list_files` — truncate from the end (keep imports, first matches, top-level tree)\r\n  - `execute_command`, `get_process_output`, `kill_process` — head+tail sandwich (keep early output + final status)\r\n\r\n  ```ts\r\n  const workspace = new Workspace({\r\n    tools: {\r\n      mastra_workspace_execute_command: {\r\n        maxOutputTokens: 5000, // override default 3k\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n- Workspace tools (list_files, grep) now automatically respect .gitignore, filtering out directories like node_modules and dist from results. Explicitly targeting an ignored path still works. Also lowered the default tree depth from 3 to 2 to reduce token usage. ([#13724](https://github.com/mastra-ai/mastra/pull/13724))\r\n\r\n- Added `maxSteps` and `stopWhen` support to `HarnessSubagent`. ([#13653](https://github.com/mastra-ai/mastra/pull/13653))\r\n\r\n  You can now define `maxSteps` and `stopWhen` on a harness subagent so spawned subagents can use custom loop limits instead of relying only on the default `maxSteps: 50` fallback.\r\n\r\n  ```ts\r\n  const harness = new Harness({\r\n    id: 'dev-harness',\r\n    modes: [{ id: 'build', default: true, agent: buildAgent }],\r\n    subagents: [\r\n      {\r\n        id: 'explore',\r\n        name: 'Explore',\r\n        description: 'Inspect the codebase',\r\n        instructions: 'Investigate and summarize findings.',\r\n        defaultModelId: 'openai/gpt-4o',\r\n        maxSteps: 7,\r\n        stopWhen: ({ steps }) => steps.length >= 3,\r\n      },\r\n    ],\r\n  });\r\n  ```\r\n\r\n- Added OpenAI WebSocket transport for streaming responses with auto-close and manual transport access ([#13531](https://github.com/mastra-ai/mastra/pull/13531))\r\n\r\n- Added `name` property to `WorkspaceToolConfig` for remapping workspace tool names. Tools can now be exposed under custom names to the LLM while keeping the original constant as the config key. ([#13687](https://github.com/mastra-ai/mastra/pull/13687))\r\n\r\n  ```typescript\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({ basePath: './project' }),\r\n    tools: {\r\n      mastra_workspace_read_file: { name: 'view' },\r\n      mastra_workspace_grep: { name: 'search_content' },\r\n      mastra_workspace_edit_file: { name: 'string_replace_lsp' },\r\n    },\r\n  });\r\n  ```\r\n\r\n  Also removed hardcoded tool-name cross-references from edit-file and ast-edit tool descriptions, since tools can be renamed or disabled.\r\n\r\n- Adds requestContext passthrough to Harness runtime APIs. ([#13650](https://github.com/mastra-ai/mastra/pull/13650))\r\n\r\n  **Added**\r\n  You can now pass `requestContext` to Harness runtime methods so tools and subagents receive request-scoped values.\r\n\r\n- Added `binaryOverrides`, `searchPaths`, and `packageRunner` options to `LSPConfig` to support flexible language server binary resolution. ([#13677](https://github.com/mastra-ai/mastra/pull/13677))\r\n\r\n  Previously, workspace LSP diagnostics only worked when language server binaries were installed in the project's `node_modules/.bin/`. There was no way to use globally installed binaries or point to a custom install.\r\n\r\n  **New `LSPConfig` fields:**\r\n  - `binaryOverrides`: Override the binary command for a specific server, bypassing the default lookup. Useful when the binary is installed in a non-standard location.\r\n  - `searchPaths`: Additional directories to search when resolving Node.js modules (e.g. `typescript/lib/tsserver.js`). Each entry should be a directory whose `node_modules` contains the required packages.\r\n  - `packageRunner`: Package runner to use as a last-resort fallback when no binary is found (e.g. `'npx --yes'`, `'pnpm dlx'`, `'bunx'`). Off by default — package runners can hang in monorepos with workspace links.\r\n\r\n  Binary resolution order per server: explicit `binaryOverrides` override → project `node_modules/.bin/` → `process.cwd()` `node_modules/.bin/` → `searchPaths` `node_modules/.bin/` → global PATH → `packageRunner` fallback.\r\n\r\n  ```ts\r\n  const workspace = new Workspace({\r\n    lsp: {\r\n      // Point to a globally installed binary\r\n      binaryOverrides: {\r\n        typescript: '/usr/local/bin/typescript-language-server --stdio',\r\n      },\r\n      // Resolve typescript/lib/tsserver.js from a tool's own node_modules\r\n      searchPaths: ['/path/to/my-tool'],\r\n      // Use a package runner as last resort (off by default)\r\n      packageRunner: 'npx --yes',\r\n    },\r\n  });\r\n  ```\r\n\r\n  Also exported `buildServerDefs(config?)` for building config-aware server definitions, and `LSPConfig` / `LSPServerDef` types from `@mastra/core/workspace`.\r\n\r\n- Added a unified observability type system with interfaces for structured logging, metrics (counters, gauges, histograms), scores, and feedback alongside the existing tracing infrastructure. ([#13058](https://github.com/mastra-ai/mastra/pull/13058))\r\n\r\n  **Why?** Previously, only tracing flowed through execution contexts. Logging was ad-hoc and metrics did not exist. This change establishes the type system and context plumbing so that when concrete implementations land, logging and metrics will flow through execute callbacks automatically — no migration needed.\r\n\r\n  **What changed:**\r\n  - New `ObservabilityContext` interface combining tracing, logging, and metrics contexts\r\n  - New type definitions for `LoggerContext`, `MetricsContext`, `ScoreInput`, `FeedbackInput`, and `ObservabilityEventBus`\r\n  - `createObservabilityContext()` factory and `resolveObservabilityContext()` resolver with no-op defaults for graceful degradation\r\n  - Future logging and metrics signals will propagate automatically through execution contexts — no migration needed\r\n  - Added `loggerVNext` and `metrics` getters to the `Mastra` class\r\n\r\n- Added `setServer()` public method to the Mastra class, enabling post-construction configuration of server settings. This allows platform tooling to inject server defaults (e.g. auth) into user-created Mastra instances at deploy time. ([#13729](https://github.com/mastra-ai/mastra/pull/13729))\r\n\r\n  ```typescript\r\n  const mastra = new Mastra({ agents: { myAgent } });\r\n\r\n  // Platform tooling can inject server config after construction\r\n  mastra.setServer({ ...mastra.getServer(), auth: new MastraAuthWorkos() });\r\n  ```\r\n\r\n- **Added** local symlink mounts in `LocalSandbox` so sandboxed commands can access locally-mounted filesystem paths. ([#13474](https://github.com/mastra-ai/mastra/pull/13474))\r\n  **Improved** mounted paths so commands resolve consistently in local sandboxes.\r\n  **Improved** workspace instructions so developers can quickly find mounted data paths.\r\n\r\n  **Why:** Local sandboxes can now run commands against locally-mounted data without manual path workarounds.\r\n\r\n  **Usage example:**\r\n\r\n  ```typescript\r\n  const workspace = new Workspace({\r\n    mounts: {\r\n      '/data': new LocalFilesystem({ basePath: '/path/to/data' }),\r\n    },\r\n    sandbox: new LocalSandbox({ workingDirectory: './workspace' }),\r\n  });\r\n\r\n  await workspace.init();\r\n  // Sandboxed commands can access the mount path via symlink\r\n  await workspace.sandbox.executeCommand('ls data');\r\n  ```\r\n\r\n- Abort signal and background process callbacks ([#13597](https://github.com/mastra-ai/mastra/pull/13597))\r\n  - Sandbox commands and spawned processes can now be cancelled via `abortSignal` in command options\r\n  - Background processes spawned via `execute_command` now support `onStdout`, `onStderr`, and `onExit` callbacks for streaming output and exit notifications\r\n  - New `backgroundProcesses` config in workspace tool options for wiring up background process callbacks\r\n\r\n#### Patch Changes\r\n\r\n- Added `supportsConcurrentUpdates()` method to `WorkflowsStorage` base class and abstract `updateWorkflowResults`/`updateWorkflowState` methods for atomic workflow state updates. The evented workflow engine now checks `supportsConcurrentUpdates()` and throws a clear error if the storage backend does not support concurrent updates. ([#12575](https://github.com/mastra-ai/mastra/pull/12575))\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0))\r\n\r\n- Fixed sandbox command execution crashing the parent process on some Node.js versions by explicitly setting stdio to pipe for detached child processes. ([#13697](https://github.com/mastra-ai/mastra/pull/13697))\r\n\r\n- Fixed an issue where generating a response in an empty thread (system-only messages) would throw an error. Providers that support system-only prompts like Anthropic and OpenAI now work as expected. A warning is logged for providers that require at least one user message (e.g. Gemini). Fixes #13045. ([#13164](https://github.com/mastra-ai/mastra/pull/13164))\r\n\r\n- Sanitize invalid tool names in agent history so Bedrock retries continue instead of failing request validation. ([#13633](https://github.com/mastra-ai/mastra/pull/13633))\r\n\r\n- Fixed path matching for auto-indexing and skills discovery. ([#13511](https://github.com/mastra-ai/mastra/pull/13511))\r\n  Single file paths, directory globs, and `SKILL.md` file globs now resolve consistently.\r\n  Trailing slashes are now handled correctly.\r\n\r\n- `Harness.cloneThread()` now resolves dynamic memory factories before cloning, fixing \"cloneThread is not a function\" errors when memory is provided as a factory function. `HarnessConfig.memory` type widened to `DynamicArgument<MastraMemory>`. ([#13569](https://github.com/mastra-ai/mastra/pull/13569))\r\n\r\n- Fixed workspace tools being callable by their old default names (e.g. mastra_workspace_edit_file) when renamed via tools config. The tool's internal id is now updated to match the remapped name, preventing fallback resolution from bypassing the rename. ([#13694](https://github.com/mastra-ai/mastra/pull/13694))\r\n\r\n- Reduced default max output tokens from 3000 to 2000 for all workspace tools. List files tool uses a 1000 token limit. Suppressed \"No errors or warnings\" LSP diagnostic message when there are no issues. ([#13730](https://github.com/mastra-ai/mastra/pull/13730))\r\n\r\n- Add first-class custom provider support for MastraCode model selection and routing. ([#13682](https://github.com/mastra-ai/mastra/pull/13682))\r\n  - Add `/custom-providers` command to create, edit, and delete custom OpenAI-compatible providers and manage model IDs under each provider.\r\n  - Persist custom providers and model IDs in `settings.json` with schema parsing/validation updates.\r\n  - Extend Harness model catalog listing with `customModelCatalogProvider` so custom models appear in existing selectors (`/models`, `/subagents`).\r\n  - Route configured custom provider model IDs through `ModelRouterLanguageModel` using provider-specific URL and optional API key settings.\r\n\r\n- **`sendMessage` now accepts `files` instead of `images`**, supporting any file type with optional `filename`. ([#13574](https://github.com/mastra-ai/mastra/pull/13574))\r\n\r\n  **Breaking change:** Rename `images` to `files` when calling `harness.sendMessage()`:\r\n\r\n  ```ts\r\n  // Before\r\n  await harness.sendMessage({\r\n    content: 'Analyze this',\r\n    images: [{ data: base64Data, mimeType: 'image/png' }],\r\n  });\r\n\r\n  // After\r\n  await harness.sendMessage({\r\n    content: 'Analyze this',\r\n    files: [{ data: base64Data, mediaType: 'image/png', filename: 'screenshot.png' }],\r\n  });\r\n  ```\r\n\r\n  - `files` accepts `{ data, mediaType, filename? }` — filenames are now preserved through storage and message history\r\n  - Text-based files (`text/*`, `application/json`) are automatically decoded to readable text content instead of being sent as binary, which models could not process\r\n  - `HarnessMessageContent` now includes a `file` type, so file parts round-trip correctly through message history\r\n\r\n- Fixed Agent Network routing failures for users running Claude models through AWS Bedrock by removing trailing whitespace from the routing assistant message. ([#13624](https://github.com/mastra-ai/mastra/pull/13624))\r\n\r\n- Fixed thread title generation when user messages include file parts (for example, images). ([#13671](https://github.com/mastra-ai/mastra/pull/13671))\r\n  Titles now generate reliably instead of becoming empty.\r\n\r\n- Fixed parallel workflow tool calls so each call runs independently. ([#13478](https://github.com/mastra-ai/mastra/pull/13478))\r\n\r\n  When an agent starts multiple tool calls to the same workflow at the same time, each call now runs with its own workflow run context. This prevents duplicated results across parallel calls and ensures each call returns output for its own input. Also ensures workflow tool suspension and manual resumption correctly preserves the run context.\r\n\r\n- Fixed sub-agent instructions being overridden when the parent agent uses an OpenAI model. Previously, OpenAI models would fill in the optional `instructions` parameter when calling a sub-agent tool, completely replacing the sub-agent's own instructions. Now, any LLM-provided instructions are appended to the sub-agent's configured instructions instead of replacing them. ([#13578](https://github.com/mastra-ai/mastra/pull/13578))\r\n\r\n- Tool lifecycle hooks (`onInputStart`, `onInputDelta`, `onInputAvailable`, `onOutput`) now fire correctly during agent execution for tools created via `createTool()`. Previously these hooks were silently ignored. Affected: `createTool`, `Tool`, `CoreToolBuilder.build`, `CoreTool`. ([#13708](https://github.com/mastra-ai/mastra/pull/13708))\r\n\r\n- Fixed an issue where sub-agent messages inside a workflow tool would corrupt the parent agent's memory context. When an agent calls a workflow as a tool and the workflow runs sub-agents with their own memory threads, the parent's thread identity on the shared request context is now correctly saved before the workflow executes and restored afterward, preventing messages from being written to the wrong thread. ([#13637](https://github.com/mastra-ai/mastra/pull/13637))\r\n\r\n- Fix workspace tool output truncation to handle tokenizer special tokens ([#13725](https://github.com/mastra-ai/mastra/pull/13725))\r\n\r\n- Added a warning when a `LocalFilesystem` mount uses `contained: false`, alerting users to path resolution issues in mount-based workspaces. Use `contained: true` (default) or `allowedPaths` to allow specific host paths. ([#13474](https://github.com/mastra-ai/mastra/pull/13474))\r\n\r\n- Fixed harness handling for observational memory failures so streams stop immediately when OM reports a failed run or buffering cycle. ([#13563](https://github.com/mastra-ai/mastra/pull/13563))\r\n\r\n  The harness now emits the existing OM failure event (`om_observation_failed`, `om_reflection_failed`, or `om_buffering_failed`), emits a top-level error with OM context, and aborts the active stream. This prevents normal assistant output from continuing after an OM model failure.\r\n\r\n- Fixed subagents being unable to access files outside the project root. Subagents now inherit both user-approved sandbox paths and skill paths (e.g. `~/.claude/skills`) from the parent agent. ([#13700](https://github.com/mastra-ai/mastra/pull/13700))\r\n\r\n- Fixed agent-as-tools schema generation so Gemini accepts tool definitions for suspend/resume flows. ([#13715](https://github.com/mastra-ai/mastra/pull/13715))\r\n  This prevents schema validation failures when `resumeData` is present.\r\n\r\n- Fixed tool approval resume failing when Agent is used without an explicit Mastra instance. The Harness now creates an internal Mastra instance with storage and registers it on mode agents, ensuring workflow snapshots persist and load correctly. Also fixed requestContext serialization using toJSON() to prevent circular reference errors during snapshot persistence. ([#13519](https://github.com/mastra-ai/mastra/pull/13519))\r\n\r\n- Fixed spawn error handling in LocalSandbox by switching to execa. Previously, spawning a process with an invalid working directory or missing command could crash with an unhandled Node.js exception. Now returns descriptive error messages instead. Also fixed timeout handling to properly kill the entire process group for compound commands. ([#13734](https://github.com/mastra-ai/mastra/pull/13734))\r\n\r\n- HTTP request logging can now be configured in detail via `apiReqLogs` in the server config. The new `HttpLoggingConfig` type is exported from `@mastra/core/server`. ([#11907](https://github.com/mastra-ai/mastra/pull/11907))\r\n\r\n  ```ts\r\n  import type { HttpLoggingConfig } from '@mastra/core/server';\r\n\r\n  const loggingConfig: HttpLoggingConfig = {\r\n    enabled: true,\r\n    level: 'info',\r\n    excludePaths: ['/health', '/metrics'],\r\n    includeHeaders: true,\r\n    includeQueryParams: true,\r\n    redactHeaders: ['authorization', 'cookie'],\r\n  };\r\n  ```\r\n\r\n- Remove internal `processes` field from sandbox provider options ([#13597](https://github.com/mastra-ai/mastra/pull/13597))\r\n\r\n  The `processes` field is no longer exposed in constructor options for E2B, Daytona, and Blaxel sandbox providers. This field is managed internally and was not intended to be user-configurable.\r\n\r\n- Fixed abort signal propagation in agent networks. When using `abortSignal` with `agent.network()`, the signal now correctly prevents tool execution when abort fires during routing, and no longer saves partial results to memory when sub-agents, tools, or workflows are aborted. ([#13491](https://github.com/mastra-ai/mastra/pull/13491))\r\n\r\n- Fixed Memory.recall() to include pagination metadata (total, page, perPage, hasMore) in its response, ensuring consistent pagination regardless of whether agentId is provided. Fixes #13277 ([#13278](https://github.com/mastra-ai/mastra/pull/13278))\r\n\r\n- Fixed harness getTokenUsage() returning zeros when using AI SDK v5/v6. The token usage extraction now correctly reads both inputTokens/outputTokens (v5/v6) and promptTokens/completionTokens (v4) field names from the usage object. ([#13622](https://github.com/mastra-ai/mastra/pull/13622))\r\n\r\n- Model pack selection is now more consistent and reliable in mastracode. ([#13512](https://github.com/mastra-ai/mastra/pull/13512))\r\n  - `/models` is now the single command for choosing and managing model packs.\r\n  - Model picker ranking now learns from your recent selections and keeps those preferences across sessions.\r\n  - Pack choice now restores correctly per thread when switching between threads.\r\n  - Custom packs now support full create, rename, targeted edit, and delete workflows.\r\n  - The built-in **Varied** option has been retired; users who had it selected are automatically migrated to a saved custom pack named `varied`.\r\n\r\n- Added support for reading resource IDs from `Harness`. ([#13690](https://github.com/mastra-ai/mastra/pull/13690))\r\n\r\n  You can now get the default resource ID and list known resource IDs from stored threads.\r\n\r\n  ```ts\r\n  const defaultId = harness.getDefaultResourceId();\r\n  const knownIds = await harness.getKnownResourceIds();\r\n  ```\r\n\r\n- chore(harness): Update harness sub-agent instructions type to be dynamic ([#13706](https://github.com/mastra-ai/mastra/pull/13706))\r\n\r\n- Added `MastraMessagePart` to the public type exports of `@mastra/core/agent`, allowing it to be imported directly in downstream packages. ([#13297](https://github.com/mastra-ai/mastra/pull/13297))\r\n\r\n- Added `deleteThread({ threadId })` method to the Harness class for deleting threads and their messages from storage. Releases the thread lock and clears the active thread when deleting the current thread. Emits a `thread_deleted` event. ([#13625](https://github.com/mastra-ai/mastra/pull/13625))\r\n\r\n- Fixed tilde (~) paths not expanding to the home directory in LocalFilesystem and LocalSandbox. Paths like `~/my-project` were silently treated as relative paths, creating a literal `~/` directory instead of resolving to `$HOME`. This affects `basePath`, `allowedPaths`, `setAllowedPaths()`, all file operations in LocalFilesystem, and `workingDirectory` in LocalSandbox. ([#13739](https://github.com/mastra-ai/mastra/pull/13739))\r\n\r\n- Switched Mastra Code to workspace tools and enabled LSP by default ([#13437](https://github.com/mastra-ai/mastra/pull/13437))\r\n  - Switched from built-in tool implementations to workspace tools for file operations, search, edit, write, and command execution\r\n  - Enabled LSP (language server) by default with automatic package runner detection and bundled binary resolution\r\n  - Added real-time stdout/stderr streaming in the TUI for workspace command execution\r\n  - Added TUI rendering for process management tools (view output, kill processes)\r\n  - Fixed edit diff preview in the TUI to work with workspace tool arg names (`old_string`/`new_string`)\r\n\r\n- Fixed tilde paths (`~/foo`) in contained `LocalFilesystem` silently writing to the wrong location. Previously, `~/foo` would expand and then nest under basePath (e.g. `basePath/home/user/foo`). Tilde paths are now treated as real absolute paths, and throw `PermissionError` when the expanded path is outside `basePath` and `allowedPaths`. ([#13741](https://github.com/mastra-ai/mastra/pull/13741))\r\n\r\n### [@mastra/agent-builder@1.0.9](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/packages/agent-builder/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`359d687`](https://github.com/mastra-ai/mastra/commit/359d687527ab95a79e0ec0487dcecec8d9c7c7dc), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9e77e8f`](https://github.com/mastra-ai/mastra/commit/9e77e8f0e823ef58cb448dd1f390fce987a101f3), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`56f2018`](https://github.com/mastra-ai/mastra/commit/56f2018cb38969c11933e815a5f70cf631d3964a), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n  - @mastra/memory@1.6.0\r\n\r\n### [@mastra/ai-sdk@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/ai-sdk@1.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed message history and semantic recall persistence after AI SDK streams finish. ([#13297](https://github.com/mastra-ai/mastra/pull/13297))\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/arize@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/arize@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/observability/arize/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n  - @mastra/otel-exporter@1.0.4\r\n\r\n### [@mastra/auth-better-auth@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/auth-better-auth@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/auth/better-auth/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Expanded `@mastra/auth-better-auth` to implement the new auth interfaces (`IUserProvider`, `ISessionProvider`, `ICredentialsProvider`) from `@mastra/core/auth`. Adds support for username/password credential flows alongside the existing token-based authentication. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/auth-cloud@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/auth-cloud@1.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/auth/cloud/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `@mastra/auth-cloud` — a new auth provider for Mastra Cloud with PKCE OAuth flow, session management, and role-based access control. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))\r\n\r\n  ```ts\r\n  import { MastraCloudAuthProvider, MastraRBACCloud } from '@mastra/auth-cloud';\r\n\r\n  const mastra = new Mastra({\r\n    server: {\r\n      auth: new MastraCloudAuthProvider({\r\n        appId: process.env.MASTRA_APP_ID!,\r\n        apiKey: process.env.MASTRA_API_KEY!,\r\n      }),\r\n      rbac: new MastraRBACCloud({\r\n        appId: process.env.MASTRA_APP_ID!,\r\n        apiKey: process.env.MASTRA_API_KEY!,\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n  Handles the full OAuth lifecycle including login URL generation, PKCE challenge/verification, callback handling, and session cookie management.\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n  - @mastra/auth@1.0.0\r\n\r\n### [@mastra/auth-studio@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/auth-studio@1.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/auth/studio/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `@mastra/auth-studio` — an auth provider for deployed Mastra Studio instances that proxies authentication through the Mastra shared API. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))\r\n\r\n  Deployed instances need no secrets — all WorkOS authentication is handled by the shared API. The package provides SSO login/callback flows, session management via sealed cookies, RBAC with organization-scoped permissions, and automatic forced account picker on deploy logins.\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/auth-workos@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/auth-workos@1.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/auth/workos/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added full auth provider to `@mastra/auth-workos` with SSO, RBAC, SCIM directory sync, and admin portal support. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))\r\n\r\n  ```ts\r\n  import { MastraAuthWorkos, MastraRBACWorkos } from '@mastra/auth-workos';\r\n\r\n  const mastra = new Mastra({\r\n    server: {\r\n      auth: new MastraAuthWorkos({\r\n        apiKey: process.env.WORKOS_API_KEY,\r\n        clientId: process.env.WORKOS_CLIENT_ID,\r\n      }),\r\n      rbac: new MastraRBACWorkos({\r\n        apiKey: process.env.WORKOS_API_KEY,\r\n        clientId: process.env.WORKOS_CLIENT_ID,\r\n        roleMapping: {\r\n          admin: ['*'],\r\n          member: ['agents:read', 'workflows:*'],\r\n        },\r\n      }),\r\n    },\r\n  });\r\n  ```\r\n\r\n  - **SSO** via WorkOS AuthKit (SAML, OIDC)\r\n  - **RBAC** with wildcard permission mapping from WorkOS organization roles\r\n  - **Directory Sync** webhook handler for SCIM-based user provisioning\r\n  - **Admin Portal** helper for customer self-service SSO configuration\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n  - @mastra/auth@1.0.0\r\n\r\n### [@mastra/blaxel@0.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/blaxel@0.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/workspaces/blaxel/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Abort signal support in sandbox commands ([#13597](https://github.com/mastra-ai/mastra/pull/13597))\r\n  - Sandbox commands can now be cancelled via `abortSignal` in command options\r\n  - Partial stdout/stderr output is now preserved when a command is aborted or times out\r\n\r\n- Added background process management support for Blaxel sandboxes. Agents can now spawn, monitor, and kill long-running processes using the standard `ProcessHandle` interface. ([`79177b1`](https://github.com/mastra-ai/mastra/commit/79177b1fa8c9221196290d38f6ed5e4c592dc4e2))\r\n\r\n  **Example usage:**\r\n\r\n  ```typescript\r\n  const sandbox = new BlaxelSandbox({ timeout: '5m' });\r\n  const workspace = new Workspace({ sandbox });\r\n\r\n  // Process manager is available via sandbox.processes\r\n  const handle = await sandbox.processes.spawn('python server.py');\r\n\r\n  // Monitor output\r\n  handle.onStdout(data => console.log(data));\r\n\r\n  // Check status\r\n  const info = await sandbox.processes.list();\r\n\r\n  // Kill when done\r\n  await handle.kill();\r\n  ```\r\n\r\n  **Note:** Process stdin is not supported in Blaxel sandboxes.\r\n\r\n  **Additional improvements:**\r\n  - Fixed detection of expired sandboxes, ensuring operations automatically retry when a sandbox has timed out\r\n\r\n#### Patch Changes\r\n\r\n- Fixed command timeouts in Blaxel sandboxes so long-running commands now respect configured limits. ([#13520](https://github.com/mastra-ai/mastra/pull/13520))\r\n\r\n  Changed the default Blaxel image to `blaxel/ts-app:latest` (Debian-based), which supports both S3 and GCS mounts out of the box.\r\n\r\n  Added distro detection for mount scripts so S3 mounts work on Alpine-based images (e.g. `blaxel/node:latest`) via `apk`, and GCS mounts give a clear error on Alpine since gcsfuse is unavailable.\r\n\r\n  Removed working directory from sandbox instructions to avoid breaking prompt caching.\r\n\r\n- Remove internal `processes` field from sandbox provider options ([#13597](https://github.com/mastra-ai/mastra/pull/13597))\r\n\r\n  The `processes` field is no longer exposed in constructor options for E2B, Daytona, and Blaxel sandbox providers. This field is managed internally and was not intended to be user-configurable.\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/braintrust@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/braintrust@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/observability/braintrust/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`6a72884`](https://github.com/mastra-ai/mastra/commit/6a728842e796bcf7f19b5fd8e8e0f729d2a3e98b), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n  - @mastra/observability@1.3.0\r\n\r\n### [@mastra/clickhouse@1.2.3](https://github.com/mastra-ai/mastra/blob/@mastra/clickhouse@1.2.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/stores/clickhouse/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- `updateWorkflowResults` and `updateWorkflowState` now throw a not-implemented error. This storage backend does not support concurrent workflow updates. ([#12575](https://github.com/mastra-ai/mastra/pull/12575))\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/client-js@1.7.2](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.7.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/client-sdks/client-js/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added `getFullUrl` helper method for constructing auth redirect URLs and exported the `AuthCapabilities` type. HTTP retries now skip 4xx client errors to avoid retrying authentication failures. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))\r\n\r\n- Fixed CMS features (Create an agent button, clone, edit, create scorer) not appearing in built output. The build command now writes package metadata so the studio can detect installed Mastra packages at runtime. ([#13163](https://github.com/mastra-ai/mastra/pull/13163))\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/cloudflare@1.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/cloudflare@1.2.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/stores/cloudflare/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- `updateWorkflowResults` and `updateWorkflowState` now throw a not-implemented error. This storage backend does not support concurrent workflow updates. ([#12575](https://github.com/mastra-ai/mastra/pull/12575))\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/cloudflare-d1@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/cloudflare-d1@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/stores/cloudflare-d1/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- `updateWorkflowResults` and `updateWorkflowState` now throw a not-implemented error. This storage backend does not support concurrent workflow updates. ([#12575](https://github.com/mastra-ai/mastra/pull/12575))\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/convex@1.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/convex@1.0.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/stores/convex/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- `updateWorkflowResults` and `updateWorkflowState` now throw a not-implemented error. This storage backend does not support concurrent workflow updates. ([#12575](https://github.com/mastra-ai/mastra/pull/12575))\r\n\r\n- fix: use existing indexes for queryTable operations instead of full table scans ([#13630](https://github.com/mastra-ai/mastra/pull/13630))\r\n\r\n  The `queryTable` handler in the Convex storage mutation now automatically\r\n  selects the best matching index based on equality filters. Previously, all\r\n  `queryTable` operations performed a full table scan (up to 10,000 documents)\r\n  and filtered in JavaScript, which hit Convex's 16MB/32K document read limit\r\n  when enough records accumulated across threads.\r\n\r\n  Now, when equality filters are provided (e.g., `thread_id` for message queries\r\n  or `resourceId` for thread queries), the handler matches them against the\r\n  existing schema indexes (`by_thread`, `by_thread_created`, `by_resource`, etc.)\r\n  and uses `.withIndex()` for efficient indexed queries.\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n\r\n### [@mastra/datadog@1.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/datadog@1.0.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/observability/datadog/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`6a72884`](https://github.com/mastra-ai/mastra/commit/6a728842e796bcf7f19b5fd8e8e0f729d2a3e98b), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947652`](https://github.com/mastra-ai/mastra/commit/e9476527fdecb4449e54570e80dfaf8466901254), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`ec248f6`](https://github.com/mastra-ai/mastra/commit/ec248f6b56e8a037c066c49b2178e2507471d988)]:\r\n  - @mastra/core@1.9.0\r\n  - @mastra/observability@1.3.0\r\n\r\n### [@mastra/daytona@0.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/daytona@0.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.9.0/workspaces/daytona/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Add DaytonaSandbox workspace provider — Daytona cloud sandbox integration for Mastra workspaces, implementing the WorkspaceSandbox interface with support for command execution, environment variables, resource configuration, snapshots, and Daytona volumes. ([#13112](https://github.com/mastra-ai/mastra/pull/13112))\r\n\r\n  **Basic usage**\r\n\r\n  ```ts\r\n  import { Workspace } from '@mastra/core/workspace';\r\n  import { DaytonaSandbox } from '@mastra/daytona';\r\n\r\n  const sandbox = new DaytonaSandbox({\r\n    id: 'my-sandbox',\r\n    env: { NODE_ENV: 'production' },\r\n  });\r\n\r\n  const workspace = new Workspace({ sandbox });\r\n  await workspace.init();\r\n\r\n  const result = await workspace.sandbox.executeCommand('echo', ['Hello!']);\r\n  console.log(result.stdout); // \"Hello!\"\r\n\r\n  await workspace.destroy();\r\n  ```\r\n\r\n- Added S3 and GCS cloud filesystem mounting support via FUSE (s3fs-fuse, gcsfuse). Daytona sandboxes can now mount cloud storage as local directories, matching the mount capabilities of E2B and Blaxel providers. ([#13544](https://github.com/mastra-ai/mastra/pull/13544))\r\n\r\n  **New methods:**\r\n  - `mount(filesystem, mountPath)` — Mount an S3 or GCS filesystem at a path in the sandbox\r\n  - `unmount(mountPath)` — Unmount a previously mounted filesystem\r\n\r\n  **What changed:**\r\n  - Added S3 and GCS bucket mounts as local directories in Daytona sandboxes.\r\n  - Improved reconnect behavior so mounts are restored reliably.\r\n  - Added safety checks to prevent mounting into non-empty directories.\r\n  - Improved concurrent mount support by isolating credentials per mount.\r\n\r\n  **Usage:**\r\n\r\n  ```typescript\r\n  import { Workspace } from '@mastra/core/workspace';\r\n  import { S3Filesystem } from '@mastra/s3';\r\n  import { DaytonaSandbox } from '@mastra/daytona';\r\n\r\n  const workspace = new Workspace({\r\n    mounts: {\r\n      '/data': new S3Filesystem({\r\n        bucket: 'my-bucket',\r\n        region: 'us-east-1',\r\n        accessKeyId: process.env.AWS_ACCESS_KEY_ID,\r\n        secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,\r\n      }),\r\n    },\r\n    sandbox: new DaytonaSandbox(),\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Remove internal `processes` field from sandbox provider options ([#13597](https://github.com/mastra-ai/mastra/pull/13597))\r\n\r\n  The `processes` field is no longer exposed in constructor options for E2B, Daytona, and Blaxel sandbox providers. This field is managed internally and was not intended to be user-configurable.\r\n\r\n- Improved S3/GCS FUSE mounting reliability and sandbox reconnection. ([#13543](https://github.com/mastra-ai/mastra/pull/13543))\r\n\r\n  **Mounting improvements**\r\n  - Replaced direct SDK coupling in mount helpers with callback-based context, making mount operations more testable and resilient\r\n  - Added tmpfs overlay to handle FUSE-on-FUSE remount scenarios that previously failed with ENOENT\r\n  - Added `mount --move` fallback when standard FUSE unmount fails on stuck mounts\r\n  - `stop()` now unmounts all filesystems before stopping the sandbox\r\n  - Added early connectivity check for GCS mounting that detects Daytona's restricted internet tiers and fails fast with an actionable error message instead of hanging\r\n  - Improved gcsfuse installation with distro-aware codename detection (bookworm for Debian, jammy for Ubuntu)\r\n  - Added input validation for bucket names, endpoints, and credentials before interpolating into shell commands\r\n\r\n  **Reconnection improvements**\r\n  - `findExistingSandbox` now looks up sandboxes by name first (works for stopped sandboxes), then falls back to label search\r\n  - Added transitional state handling that polls and waits when a sandbox is starting/stopping/restoring before attempting to start it, avoiding \"State change in progress\" errors\r\n\r\n- Sandbox instructions no longer include a working directory path, keeping instructions stable across sessions. ([#13520](https://github.com/mastra-ai/mastra/pull/13520))\r\n\r\n- Updated dependencies [[`504fc8b`](https://github.com/mastra-ai/mastra/commit/504fc8b9d0ddab717577ad3bf9c95ea4bd5377bd), [`f9c150b`](https://github.com/mastra-ai/mastra/commit/f9c150b7595ad05ad9cc9a11098e2944361e8c22), [`88de7e8`](https://github.com/mastra-ai/mastra/commit/88de7e8dfe4b7e1951a9e441bb33136e705ce24e), [`edee4b3`](https://github.com/mastra-ai/mastra/commit/edee4b37dff0af515fc7cc0e8d71ee39e6a762f0), [`3790c75`](https://github.com/mastra-ai/mastra/commit/3790c7578cc6a47d854eb12d89e6b1912867fe29), [`e7a235b`](https://github.com/mastra-ai/mastra/commit/e7a235be6472e0c870ed6c791ddb17c492dc188b), [`d51d298`](https://github.com/mastra-ai/mastra/commit/d51d298953967aab1f58ec965b644d109214f085), [`6dbeeb9`](https://github.com/mastra-ai/mastra/commit/6dbeeb94a8b1eebb727300d1a98961f882180794), [`d5f0d8d`](https://github.com/mastra-ai/mastra/commit/d5f0d8d6a03e515ddaa9b5da19b7e44b8357b07b), [`09c3b18`](https://github.com/mastra-ai/mastra/commit/09c3b1802ff14e243a8a8baea327440bc8cc2e32), [`b896379`](https://github.com/mastra-ai/mastra/commit/b8963791c6afa79484645fcec596a201f936b9a2), [`85c84eb`](https://github.com/mastra-ai/mastra/commit/85c84ebb78aebfcba9d209c8e152b16d7a00cb71), [`a89272a`](https://github.com/mastra-ai/mastra/commit/a89272a5d71939b9fcd284e6a6dc1dd091a6bdcf), [`ee9c8df`](https://github.com/mastra-ai/mastra/commit/ee9c8df644f19d055af5f496bf4942705f5a47b7), [`77b4a25`](https://github.com/mastra-ai/mastra/commit/77b4a254e51907f8ff3a3ba95596a18e93ae4b35), [`276246e`](https://github.com/mastra-ai/mastra/commit/276246e0b9066a1ea48bbc70df84dbe528daaf99), [`08ecfdb`](https://github.com/mastra-ai/mastra/commit/08ecfdbdad6fb8285deef86a034bdf4a6047cfca), [`d5f628c`](https://github.com/mastra-ai/mastra/commit/d5f628ca86c6f6f3ff1035d52f635df32dd81cab), [`524c0f3`](https://github.com/mastra-ai/mastra/commit/524c0f3c434c3d9d18f66338dcef383d6161b59c), [`c18a0e9`](https://github.com/mastra-ai/mastra/commit/c18a0e9cef1e4ca004b2963d35e4cfc031971eac), [`4bd21ea`](https://github.com/mastra-ai/mastra/commit/4bd21ea43d44d0a0427414fc047577f9f0aa3bec), [`115a7a4`](https://github.com/mastra-ai/mastra/commit/115a7a47db5e9896fec12ae6507501adb9ec89bf), [`22a48ae`](https://github.com/mastra-ai/mastra/commit/22a48ae2513eb54d8d79dad361fddbca97a155e8), [`3c6ef79`](https://github.com/mastra-ai/mastra/commit/3c6ef798481e00d6d22563be2de98818fd4dd5e0), [`9311c17`](https://github.com/mastra-ai/mastra/commit/9311c17d7a0640d9c4da2e71b814dc67c57c6369), [`7edf78f`](https://github.com/mastra-ai/mastra/commit/7edf78f80422c43e84585f08ba11df0d4d0b73c5), [`1c4221c`](https://github.com/mastra-ai/mastra/commit/1c4221cf6032ec98d0e094d4ee11da3e48490d96), [`d25b9ea`](https://github.com/mastra-ai/mastra/commit/d25b9eabd400167255a97b690ffbc4ee4097ded5), [`fe1ce5c`](https://github.com/mastra-ai/mastra/commit/fe1ce5c9211c03d561606fda95cbfe7df1d9a9b5), [`b03c0e0`](https://github.com/mastra-ai/mastra/commit/b03c0e0389a799523929a458b0509c9e4244d562), [`0a8366b`](https://github.com/mastra-ai/mastra/commit/0a8366b0a692fcdde56c4d526e4cf03c502ae4ac), [`85664e9`](https://github.com/mastra-ai/mastra/commit/85664e9fd857320fbc245e301f764f45f66f32a3), [`bc79650`](https://github.com/mastra-ai/mastra/commit/bc796500c6e0334faa158a96077e3fb332274869), [`9257d01`](https://github.com/mastra-ai/mastra/commit/9257d01d1366d81f84c582fe02b5e200cf9621f4), [`3a3a59e`](https://github.com/mastra-ai/mastra/commit/3a3a59e8ffaa6a985fe3d9a126a3f5ade11a6724), [`3108d4e`](https://github.com/mastra-ai/mastra/commit/3108d4e649c9fddbf03253a6feeb388a5fa9fa5a), [`0c33b2c`](https://github.com/mastra-ai/mastra/commit/0c33b2c9db537f815e1c59e2c898ffce2e395a79), [`191e5bd`](https://github.com/mastra-ai/mastra/commit/191e5bd29b82f5bda35243945790da7bc7b695c2), [`f77cd94`](https://github.com/mastra-ai/mastra/commit/f77cd94c44eabed490384e7d19232a865e13214c), [`e8135c7`](https://github.com/mastra-ai/mastra/commit/e8135c7e300dac5040670eec7eab896ac6092e30), [`daca48f`](https://github.com/mastra-ai/mastra/commit/daca48f0fb17b7ae0b62a2ac40cf0e491b2fd0b7), [`257d14f`](https://github.com/mastra-ai/mastra/commit/257d14faca5931f2e4186fc165b6f0b1f915deee), [`352f25d`](https://github.com/mastra-ai/mastra/commit/352f25da316b24cdd5b410fd8dddf6a8b763da2a), [`93477d0`](https://github.com/mastra-ai/mastra/commit/93477d0769b8a13ea5ed73d508d967fb23eaeed9), [`31c78b3`](https://github.com/mastra-ai/mastra/commit/31c78b3eb28f58a8017f1dcc795c33214d87feac), [`0bc0720`](https://github.com/mastra-ai/mastra/commit/0bc07201095791858087cc56f353fcd65e87ab54), [`36516ac`](https://github.com/mastra-ai/mastra/commit/36516aca1021cbeb42e74751b46a2614101f37c8), [`e947","publishedAt":"2026-03-04T14:48:52.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.9.0","media":[]},{"id":"rel_jHM0VcCuyxaXJCoVJtfXH","version":"@mastra/core@1.8.0","title":"February 26, 2026","summary":"## Highlights\r\n\r\n### Supervisor Pattern for Multi-Agent Coordination\r\nA new supervisor pattern enables orchestrating multiple agents via `stream()` an...","content":"## Highlights\r\n\r\n### Supervisor Pattern for Multi-Agent Coordination\r\nA new supervisor pattern enables orchestrating multiple agents via `stream()` and `generate()`, with delegation hooks, iteration monitoring, completion scoring, memory isolation, tool approval propagation, context filtering, and a bail mechanism.\r\n\r\n### Metadata-Only Vector Queries (Optional `queryVector`)\r\nVector querying now supports metadata-only retrieval by making `queryVector` optional (with at least one of `queryVector` or `filter` required). `@mastra/pg`’s `PgVector.query()` explicitly supports filter-only queries, while other vector stores now throw a clear `MastraError` when metadata-only queries aren’t supported.\r\n\r\n### More Flexible Evaluations with `runEvals` Target Options\r\n`runEvals` adds `targetOptions` to forward execution/run options into `agent.generate()` or `workflow.run.start()`, plus per-item `startOptions` for workflow-specific overrides (e.g., `initialState`) on each eval datum.\r\n\r\n### LSP Diagnostics After Workspace Edits\r\nWorkspace edit tools (`write_file`, `edit_file`, `ast_edit`) can now surface Language Server Protocol diagnostics immediately after edits (TypeScript, Python/Pyright, Go/gopls, Rust/rust-analyzer, ESLint), helping catch type/lint errors before the next tool call.\r\n\r\n### New Blaxel Cloud Sandbox Provider\r\n`@mastra/blaxel` adds a Blaxel cloud sandbox provider, expanding deployment/runtime options for executing workspace tooling in a managed environment.\r\n\r\n### Breaking Changes\r\n- None noted in this changelog.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Make `queryVector` optional in the `QueryVectorParams` interface to support metadata-only queries. At least one of `queryVector` or `filter` must be provided. Not all vector store backends support metadata-only queries — check your store's documentation for details. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n  Also fixes documentation where the `query()` parameter was incorrectly named `vector` instead of `queryVector`.\r\n\r\n- Added `targetOptions` parameter to `runEvals` that is forwarded directly to `agent.generate()` (modern path) or `workflow.run.start()`. Also added per-item `startOptions` field to `RunEvalsDataItem` for per-item workflow options like `initialState`. ([#13366](https://github.com/mastra-ai/mastra/pull/13366))\r\n\r\n  **New feature: `targetOptions`**\r\n\r\n  Pass agent execution options (e.g. `maxSteps`, `modelSettings`, `instructions`) through to `agent.generate()`, or workflow run options (e.g. `perStep`, `outputOptions`) through to `workflow.run.start()`:\r\n\r\n  ```ts\r\n  // Agent - pass modelSettings or maxSteps\r\n  await runEvals({\r\n    data,\r\n    scorers,\r\n    target: myAgent,\r\n    targetOptions: { maxSteps: 5, modelSettings: { temperature: 0 } },\r\n  });\r\n\r\n  // Workflow - pass run options\r\n  await runEvals({\r\n    data,\r\n    scorers,\r\n    target: myWorkflow,\r\n    targetOptions: { perStep: true },\r\n  });\r\n  ```\r\n\r\n  **New feature: per-item `startOptions`**\r\n\r\n  Supply per-item workflow options (e.g. `initialState`) directly on each data item:\r\n\r\n  ```ts\r\n  await runEvals({\r\n    data: [\r\n      { input: { query: 'hello' }, startOptions: { initialState: { counter: 1 } } },\r\n      { input: { query: 'world' }, startOptions: { initialState: { counter: 2 } } },\r\n    ],\r\n    scorers,\r\n    target: myWorkflow,\r\n  });\r\n  ```\r\n\r\n  Per-item `startOptions` take precedence over global `targetOptions` for the same key. Runeval-managed options (`scorers`, `returnScorerData`, `requestContext`) cannot be overridden via `targetOptions`.\r\n\r\n- Add supervisor pattern for multi-agent coordination using `stream()` and `generate()`. Includes delegation hooks, iteration monitoring, completion scoring, memory isolation, tool approval propagation, context filtering, and bail mechanism. ([#13323](https://github.com/mastra-ai/mastra/pull/13323))\r\n\r\n- Add LSP diagnostics to workspace edit tools ([#13441](https://github.com/mastra-ai/mastra/pull/13441))\r\n\r\n  Language Server Protocol (LSP) diagnostics now appear after edits made with write_file, edit_file, and ast_edit.\r\n  Seeing type and lint errors immediately helps catch issues before the next tool call.\r\n  Edits still work without diagnostics when language servers are not installed.\r\n\r\n  Supports TypeScript, Python (Pyright), Go (gopls), Rust (rust-analyzer), and ESLint.\r\n\r\n  **Example**\r\n\r\n  Before:\r\n\r\n  ```ts\r\n  const workspace = new Workspace({ sandbox, filesystem });\r\n  ```\r\n\r\n  After:\r\n\r\n  ```ts\r\n  const workspace = new Workspace({ sandbox, filesystem, lsp: true });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Propagate tripwire's that are thrown from a nested workflow. ([#13502](https://github.com/mastra-ai/mastra/pull/13502))\r\n\r\n- Added `isProviderDefinedTool` helper to detect provider-defined AI SDK tools (e.g. `google.tools.googleSearch()`, `openai.tools.webSearch()`) for proper schema handling during serialization. ([#13507](https://github.com/mastra-ai/mastra/pull/13507))\r\n\r\n- Fixed `ModelRouterEmbeddingModel.doEmbed()` crashing with `TypeError: result.warnings is not iterable` when used with AI SDK v6's `embedMany`. The result now always includes a `warnings` array, ensuring forward compatibility across AI SDK versions. ([#13369](https://github.com/mastra-ai/mastra/pull/13369))\r\n\r\n- Fixed build error in `ModelRouterEmbeddingModel.doEmbed()` caused by `warnings` not existing on the return type. ([#13461](https://github.com/mastra-ai/mastra/pull/13461))\r\n\r\n- Fixed `Harness.createThread()` defaulting the thread title to `\"New Thread\"` which prevented `generateTitle` from working (see #13391). Threads created without an explicit title now have an empty string title, allowing the agent's title generation to produce a title from the first user message. ([#13393](https://github.com/mastra-ai/mastra/pull/13393))\r\n\r\n- Prevent unknown model IDs from being sorted to the front in `reorderModels()`. Models not present in the `modelIds` parameter are now moved to the end of the array. Fixes #13410. ([#13445](https://github.com/mastra-ai/mastra/pull/13445))\r\n\r\n- Include traceId on scores generated during experiment runs to restore traceability of experiment results ([#13464](https://github.com/mastra-ai/mastra/pull/13464))\r\n\r\n- Fixed `skill-read-reference` (and `getReference`, `getScript`, `getAsset` in `WorkspaceSkillsImpl`) to resolve file paths relative to the **skill root** instead of hardcoded subdirectories (`references/`, `scripts/`, `assets/`). ([#13363](https://github.com/mastra-ai/mastra/pull/13363))\r\n\r\n  Previously, calling `skill-read-reference` with `referencePath: \"docs/schema.md\"` would silently fail because it resolved to `<skill>/references/docs/schema.md` instead of `<skill>/docs/schema.md`. Now all paths like `references/colors.md`, `docs/schema.md`, and `./config.json` resolve correctly relative to the skill root. Path traversal attacks (e.g. `../../etc/passwd`) are still blocked.\r\n\r\n- Fixed workspace listing to show whether each workspace is global or agent-owned. ([#13468](https://github.com/mastra-ai/mastra/pull/13468))\r\n  Agent-owned workspaces now include the owning agent's ID and name so clients can distinguish them from global workspaces.\r\n\r\n- Fixed Observational Memory not working with AI SDK v4 models (legacy path). The legacy stream/generate path now calls processInputStep, enabling processors like Observational Memory to inject conversation history and observations. ([#13358](https://github.com/mastra-ai/mastra/pull/13358))\r\n\r\n- Added `resolveWorkspace()` so callers can access a dynamic workspace before the first request. ([#13457](https://github.com/mastra-ai/mastra/pull/13457))\r\n\r\n- Fixed abortSignal not stopping LLM generation or preventing memory persistence. When aborting a stream (e.g., client disconnect), the LLM response no longer continues processing in the background and partial/full responses are no longer saved to memory. Fixes #13117. ([#13206](https://github.com/mastra-ai/mastra/pull/13206))\r\n\r\n- Fixed observation activation to always preserve a minimum amount of context. Previously, swapping buffered observation chunks could unexpectedly drop the context window to near-zero tokens. ([#13476](https://github.com/mastra-ai/mastra/pull/13476))\r\n\r\n- Fixed a crash where the Node.js process would terminate with an unhandled TypeError when an LLM stream encountered an error. The ReadableStreamDefaultController would throw \"Controller is already closed\" when chunks were enqueued after a downstream consumer cancelled or terminated the stream. All controller.enqueue(), controller.close(), and controller.error() calls now check if the controller is still open before attempting operations. (https://github.com/mastra-ai/mastra/issues/13107) ([#13206](https://github.com/mastra-ai/mastra/pull/13206))\r\n\r\n- Updated dependencies [[`8d14a59`](https://github.com/mastra-ai/mastra/commit/8d14a591d46fbbbe81baa33c9c267d596f790329)]:\r\n  - @mastra/schema-compat@1.1.3\r\n\r\n### [@mastra/agent-builder@1.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.8//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/agent-builder/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/memory@1.5.2\r\n\r\n### [@mastra/ai-sdk@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/ai-sdk@1.1.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Update peer dependencies to match core package version bump (1.5.0) ([#13323](https://github.com/mastra-ai/mastra/pull/13323))\r\n\r\n#### Patch Changes\r\n\r\n- Fixed withMastra() re-persisting prior message history on later turns. When using generateText() multiple times on the same thread, previously stored messages were duplicated in storage. (fixes #13438) ([#13459](https://github.com/mastra-ai/mastra/pull/13459))\r\n\r\n- Suppress completion feedback display when suppressFeedback is set ([#13323](https://github.com/mastra-ai/mastra/pull/13323))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/astra@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/astra@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/astra/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/blaxel@0.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/blaxel@0.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/workspaces/blaxel/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Adds Blaxel cloud sandbox provider ([#13015](https://github.com/mastra-ai/mastra/pull/13015))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/chroma@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/chroma@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/chroma/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/client-js@1.7.1](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.7.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/client-sdks/client-js/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`8d14a59`](https://github.com/mastra-ai/mastra/commit/8d14a591d46fbbbe81baa33c9c267d596f790329), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/schema-compat@1.1.3\r\n\r\n### [@mastra/convex@1.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/convex@1.0.4//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/convex/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/couchbase@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/couchbase@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/couchbase/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/deployer@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/deployer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`ddf8e5c`](https://github.com/mastra-ai/mastra/commit/ddf8e5c8ad3981c1e67bac374464b12edd39cafd), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/server@1.8.0\r\n\r\n### [@mastra/deployer-cloud@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/deployers/cloud/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/deployer@1.8.0\r\n\r\n### [@mastra/deployer-cloudflare@1.1.5](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.5//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/deployers/cloudflare/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/deployer@1.8.0\r\n\r\n### [@mastra/deployer-netlify@1.0.9](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/deployers/netlify/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/deployer@1.8.0\r\n\r\n### [@mastra/deployer-vercel@1.0.9](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.0.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/deployers/vercel/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/deployer@1.8.0\r\n\r\n### [@mastra/duckdb@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/duckdb@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/duckdb/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/elasticsearch@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/elasticsearch@1.1.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/elasticsearch/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/express@1.1.7](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.1.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/server-adapters/express/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`ddf8e5c`](https://github.com/mastra-ai/mastra/commit/ddf8e5c8ad3981c1e67bac374464b12edd39cafd), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/server@1.8.0\r\n\r\n### [@mastra/fastify@1.1.7](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.1.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/server-adapters/fastify/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`ddf8e5c`](https://github.com/mastra-ai/mastra/commit/ddf8e5c8ad3981c1e67bac374464b12edd39cafd), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/server@1.8.0\r\n\r\n### [@mastra/hono@1.1.7](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.1.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/server-adapters/hono/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`ddf8e5c`](https://github.com/mastra-ai/mastra/commit/ddf8e5c8ad3981c1e67bac374464b12edd39cafd), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/server@1.8.0\r\n\r\n### [@mastra/koa@1.2.3](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.2.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/server-adapters/koa/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`ddf8e5c`](https://github.com/mastra-ai/mastra/commit/ddf8e5c8ad3981c1e67bac374464b12edd39cafd), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/server@1.8.0\r\n\r\n### [@mastra/lance@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/lance@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/lance/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/libsql@1.6.2](https://github.com/mastra-ai/mastra/blob/@mastra/libsql@1.6.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/libsql/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed observation activation to always preserve a minimum amount of context. Previously, swapping buffered observation chunks could unexpectedly drop the context window to near-zero tokens. ([#13476](https://github.com/mastra-ai/mastra/pull/13476))\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/longmemeval@1.0.9](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.9//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/explorations/longmemeval/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`4852a84`](https://github.com/mastra-ai/mastra/commit/4852a84f47b206f7ce22b9046a33bb284ea40369), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/libsql@1.6.2\r\n  - @mastra/memory@1.5.2\r\n  - @mastra/rag@2.1.2\r\n\r\n### [@mastra/mcp@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/mcp@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/mcp/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed MCP tool results returning empty `{}` when the server does not include `structuredContent` in responses (e.g. FastMCP, older MCP protocol versions). The client now extracts the actual result from the `content` array instead of returning the raw protocol envelope, which previously caused output schema validation to strip all properties. ([#13469](https://github.com/mastra-ai/mastra/pull/13469))\r\n\r\n- Fix MCP client `connect()` creating duplicate connections when called concurrently. This could leak stdio child processes or HTTP sessions. Fixes #13411. ([#13444](https://github.com/mastra-ai/mastra/pull/13444))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/mcp-docs-server@1.1.6](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/mcp-docs-server/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`b8621e2`](https://github.com/mastra-ai/mastra/commit/b8621e25e70cae69a9343353f878a9112493a2fe), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`74ae019`](https://github.com/mastra-ai/mastra/commit/74ae0197a6895f8897c369038c643d7e32dd84c2), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/mcp@1.0.2\r\n\r\n### [@mastra/memory@1.5.2](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.5.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/memory/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed observational memory buffering to preserve more context and activate at the right time. ([#13476](https://github.com/mastra-ai/mastra/pull/13476))\r\n  - **Fixed** activation timing so observations trigger mid-step as soon as the threshold is crossed, instead of waiting for the next user message.\r\n  - **Fixed** partial activations that left too much context — activation is now skipped when it can't compress enough, falling back to a full observation instead.\r\n  - **Fixed** token counting so reasoning-only message parts no longer inflate totals and cause premature context reduction.\r\n  - **Clarified** `blockAfter` behavior: values below 100 are treated as multipliers (e.g. `1.2` = 1.2× threshold), values ≥ 100 as absolute token counts.\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`8d14a59`](https://github.com/mastra-ai/mastra/commit/8d14a591d46fbbbe81baa33c9c267d596f790329), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/schema-compat@1.1.3\r\n\r\n### [@mastra/mongodb@1.5.2](https://github.com/mastra-ai/mastra/blob/@mastra/mongodb@1.5.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/mongodb/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed observation activation to always preserve a minimum amount of context. Previously, swapping buffered observation chunks could unexpectedly drop the context window to near-zero tokens. ([#13476](https://github.com/mastra-ai/mastra/pull/13476))\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/opencode@0.0.6](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.6//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/integrations/opencode/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/libsql@1.6.2\r\n  - @mastra/memory@1.5.2\r\n\r\n### [@mastra/opensearch@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/opensearch@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/opensearch/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/pg@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/pg@1.7.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/pg/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- `PgVector.query()` now supports querying by metadata filters alone without providing a query vector — useful when you need to retrieve records by metadata without performing similarity search. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n  **Before** (queryVector was required):\r\n\r\n  ```ts\r\n  const results = await pgVector.query({\r\n    indexName: 'my-index',\r\n    queryVector: [0.1, 0.2, ...],\r\n    filter: { category: 'docs' },\r\n  });\r\n  ```\r\n\r\n  **After** (metadata-only query):\r\n\r\n  ```ts\r\n  const results = await pgVector.query({\r\n    indexName: 'my-index',\r\n    filter: { category: 'docs' },\r\n  });\r\n  // Returns matching records with score: 0 (no similarity ranking)\r\n  ```\r\n\r\n  At least one of `queryVector` or `filter` must be provided. When `queryVector` is omitted, results are returned with `score: 0` since no similarity computation is performed.\r\n\r\n#### Patch Changes\r\n\r\n- Set REPLICA IDENTITY USING INDEX on the mastra_workflow_snapshot table so PostgreSQL logical replication can track row updates. The table only has a UNIQUE constraint with no PRIMARY KEY, which caused \"cannot update table because it does not have a replica identity and publishes updates\" errors when logical replication was enabled. Fixes #13097. ([#13178](https://github.com/mastra-ai/mastra/pull/13178))\r\n\r\n- Fixed observation activation to always preserve a minimum amount of context. Previously, swapping buffered observation chunks could unexpectedly drop the context window to near-zero tokens. ([#13476](https://github.com/mastra-ai/mastra/pull/13476))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/pinecone@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/pinecone@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/pinecone/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/playground-ui@15.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@15.0.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/playground-ui/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Update peer dependencies to match core package version bump (1.5.0) ([#13323](https://github.com/mastra-ai/mastra/pull/13323))\r\n\r\n#### Patch Changes\r\n\r\n- Target type and target ID fields in the experiment dialog are now searchable dropdowns. Scorers can be selected via a multi-select dropdown. All three dropdowns share a consistent searchable style and visual behavior. ([#13463](https://github.com/mastra-ai/mastra/pull/13463))\r\n\r\n- Show completion result UI for supervisor pattern delegations. Previously, completion check results were only displayed when `metadata.mode === 'network'`. Now they display for any response that includes `completionResult` metadata, supporting the new supervisor pattern. ([#13323](https://github.com/mastra-ai/mastra/pull/13323))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`b8f636a`](https://github.com/mastra-ai/mastra/commit/b8f636a83c5260a9817eec97c202b7ca7d613524), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`8d14a59`](https://github.com/mastra-ai/mastra/commit/8d14a591d46fbbbe81baa33c9c267d596f790329), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n  - @mastra/ai-sdk@1.1.0\r\n  - @mastra/schema-compat@1.1.3\r\n  - @mastra/react@0.2.7\r\n  - @mastra/client-js@1.7.1\r\n\r\n### [@mastra/qdrant@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/qdrant@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/qdrant/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/rag@2.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/rag@2.1.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/rag/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Improved token-based chunking performance in `token` and `semantic-markdown` strategies. Markdown knowledge bases now chunk significantly faster with lower tokenization overhead. ([#13495](https://github.com/mastra-ai/mastra/pull/13495))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/react@0.2.7](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.7//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/client-sdks/react/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added completionResult to MastraUIMessageMetadata ([#13323](https://github.com/mastra-ai/mastra/pull/13323))\r\n\r\n- Updated dependencies:\r\n  - @mastra/client-js@1.7.1\r\n\r\n### [@mastra/s3vectors@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/s3vectors@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/s3vectors/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/schema-compat@1.1.3](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.1.3//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/schema-compat/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fix `ZodNull` throwing \"does not support zod type: ZodNull\" for Anthropic and OpenAI reasoning models. MCP tools with nullable properties in their JSON Schema produce `z.null()` which was unhandled by these provider compat layers. ([#13496](https://github.com/mastra-ai/mastra/pull/13496))\r\n\r\n### [@mastra/server@1.8.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.8.0//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/packages/server/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed the skill reference endpoint (`GET /workspaces/:workspaceId/skills/:skillName/references/:referencePath`) returning 404 for valid reference files. ([#13506](https://github.com/mastra-ai/mastra/pull/13506))\r\n\r\n- Fixed `GET /api/workspaces` returning `source: 'mastra'` for all workspaces. Agent workspaces now correctly return `source: 'agent'` with `agentId` and `agentName` populated. ([#13468](https://github.com/mastra-ai/mastra/pull/13468))\r\n\r\n- Fixed /tools API endpoint crashing with provider-defined tools (e.g. `google.tools.googleSearch()`, `openai.tools.webSearch()`). These tools have a lazy `inputSchema` that is not a Zod schema, which caused `zodToJsonSchema` to throw `\"Cannot read properties of undefined (reading 'typeName')\"`. ([#13507](https://github.com/mastra-ai/mastra/pull/13507))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/turbopuffer@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/turbopuffer@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/turbopuffer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/upstash@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/upstash@1.0.2//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/upstash/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0\r\n\r\n### [@mastra/vectorize@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/vectorize@1.0.1//private/var/folders/d4/mn8gvlx91cz80s_9c4gjr12r0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.8.0/stores/vectorize/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Add a clear runtime error when `queryVector` is omitted for vector stores that require a vector for queries. Previously, omitting `queryVector` would produce confusing SDK-level errors; now each store throws a structured `MastraError` with `ErrorCategory.USER` explaining that metadata-only queries are not supported by that backend. ([#13286](https://github.com/mastra-ai/mastra/pull/13286))\r\n\r\n- Updated dependencies [[`df170fd`](https://github.com/mastra-ai/mastra/commit/df170fd139b55f845bfd2de8488b16435bd3d0da), [`ae55343`](https://github.com/mastra-ai/mastra/commit/ae5534397fc006fd6eef3e4f80c235bcdc9289ef), [`c290cec`](https://github.com/mastra-ai/mastra/commit/c290cec5bf9107225de42942b56b487107aa9dce), [`f03e794`](https://github.com/mastra-ai/mastra/commit/f03e794630f812b56e95aad54f7b1993dc003add), [`aa4a5ae`](https://github.com/mastra-ai/mastra/commit/aa4a5aedb80d8d6837bab8cbb2e301215d1ba3e9), [`de3f584`](https://github.com/mastra-ai/mastra/commit/de3f58408752a8d80a295275c7f23fc306cf7f4f), [`d3fb010`](https://github.com/mastra-ai/mastra/commit/d3fb010c98f575f1c0614452667396e2653815f6), [`702ee1c`](https://github.com/mastra-ai/mastra/commit/702ee1c41be67cc532b4dbe89bcb62143508f6f0), [`f495051`](https://github.com/mastra-ai/mastra/commit/f495051eb6496a720f637fc85b6d69941c12554c), [`e622f1d`](https://github.com/mastra-ai/mastra/commit/e622f1d3ab346a8e6aca6d1fe2eac99bd961e50b), [`861f111`](https://github.com/mastra-ai/mastra/commit/861f11189211b20ddb70d8df81a6b901fc78d11e), [`00f43e8`](https://github.com/mastra-ai/mastra/commit/00f43e8e97a80c82b27d5bd30494f10a715a1df9), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`96a1702`](https://github.com/mastra-ai/mastra/commit/96a1702ce362c50dda20c8b4a228b4ad1a36a17a), [`cb9f921`](https://github.com/mastra-ai/mastra/commit/cb9f921320913975657abb1404855d8c510f7ac5), [`114e7c1`](https://github.com/mastra-ai/mastra/commit/114e7c146ac682925f0fb37376c1be70e5d6e6e5), [`1b6f651`](https://github.com/mastra-ai/mastra/commit/1b6f65127d4a0d6c38d0a1055cb84527db529d6b), [`72df4a8`](https://github.com/mastra-ai/mastra/commit/72df4a8f9bf1a20cfd3d9006a4fdb597ad56d10a)]:\r\n  - @mastra/core@1.8.0","publishedAt":"2026-03-02T16:29:27.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.8.0","media":[]},{"id":"rel_AwYlmQJKhtKg9-_-rURWN","version":"@mastra/core@1.7.0","title":"February 24, 2026","summary":"## Highlights\r\n\r\n### Background Process Management in Workspaces & Sandboxes\r\nWorkspaces now support spawning and managing long-running background pro...","content":"## Highlights\r\n\r\n### Background Process Management in Workspaces & Sandboxes\r\nWorkspaces now support spawning and managing long-running background processes (via `SandboxProcessManager` / `ProcessHandle`), with new tools like `execute_command` (`background: true`), `get_process_output`, and `kill_process` plus improved streaming terminal-style UI.\r\n\r\n### Runtime Tool Configuration Updates via `Workspace.setToolsConfig()`\r\nYou can dynamically enable/disable tools at runtime on an existing workspace instance (including re-enabling all tools by passing `undefined`), enabling safer modes like plan/read-only without recreating the workspace.\r\n\r\n### Observational Memory Reliability & Introspection Improvements\r\nCore adds `Harness.getObservationalMemoryRecord()` for public access to the full OM record for the current thread, while `@mastra/memory` fixes major OM stability issues (shared tokenizer to prevent OOM/memory leaks, plus PostgreSQL deadlock fixes and clearer errors when threadId is missing).\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.7.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `getObservationalMemoryRecord()` method to the `Harness` class. Fixes #13392. ([#13395](https://github.com/mastra-ai/mastra/pull/13395))\r\n\r\n  This provides public access to the full `ObservationalMemoryRecord` for the current thread, including `activeObservations`, `generationCount`, and `observationTokenCount`. Previously, accessing raw observation text required bypassing the Harness abstraction by reaching into private storage internals.\r\n\r\n  ```typescript\r\n  const record = await harness.getObservationalMemoryRecord();\r\n  if (record) {\r\n    console.log(record.activeObservations);\r\n  }\r\n  ```\r\n\r\n- Added `Workspace.setToolsConfig()` method for dynamically updating per-tool configuration at runtime without recreating the workspace instance. Passing `undefined` re-enables all tools. ([#13439](https://github.com/mastra-ai/mastra/pull/13439))\r\n\r\n  ```ts\r\n  const workspace = new Workspace({ filesystem, sandbox });\r\n\r\n  // Disable write tools (e.g., in plan/read-only mode)\r\n  workspace.setToolsConfig({\r\n    mastra_workspace_write_file: { enabled: false },\r\n    mastra_workspace_edit_file: { enabled: false },\r\n  });\r\n\r\n  // Re-enable all tools\r\n  workspace.setToolsConfig(undefined);\r\n  ```\r\n\r\n- Added `HarnessDisplayState` so any UI can read a single state snapshot instead of handling 35+ individual events. ([#13427](https://github.com/mastra-ai/mastra/pull/13427))\r\n\r\n  **Why:** Previously, every UI (TUI, web, desktop) had to subscribe to dozens of granular Harness events and independently reconstruct what to display. This led to duplicated state tracking and inconsistencies across UI implementations. Now the Harness maintains a single canonical display state that any UI can read.\r\n\r\n  **Before:** UIs subscribed to raw events and built up display state locally:\r\n\r\n  ```ts\r\n  harness.subscribe((event) => {\r\n    if (event.type === 'agent_start') localState.isRunning = true;\r\n    if (event.type === 'agent_end') localState.isRunning = false;\r\n    if (event.type === 'tool_start') localState.tools.set(event.toolCallId, ...);\r\n    // ... 30+ more event types to handle\r\n  });\r\n  ```\r\n\r\n  **After:** UIs read a single snapshot from the Harness:\r\n\r\n  ```ts\r\n  import type { HarnessDisplayState } from '@mastra/core/harness';\r\n\r\n  harness.subscribe(event => {\r\n    const ds: HarnessDisplayState = harness.getDisplayState();\r\n    // ds.isRunning, ds.tokenUsage, ds.omProgress, ds.activeTools, etc.\r\n    renderUI(ds);\r\n  });\r\n  ```\r\n\r\n- **Workspace instruction improvements** ([#13304](https://github.com/mastra-ai/mastra/pull/13304))\r\n  - Added `Workspace.getInstructions()`: agents now receive accurate workspace context that distinguishes sandbox-accessible paths from workspace-only paths.\r\n  - Added `WorkspaceInstructionsProcessor`: workspace context is injected directly into the agent system message instead of embedded in tool descriptions.\r\n  - Deprecated `Workspace.getPathContext()` in favour of `getInstructions()`.\r\n\r\n  Added `instructions` option to `LocalFilesystem` and `LocalSandbox`. Pass a string to fully replace default instructions, or a function to extend them with access to the current `requestContext` for per-request customization (e.g. by tenant or locale).\r\n\r\n  ```typescript\r\n  const filesystem = new LocalFilesystem({\r\n    basePath: './workspace',\r\n    instructions: ({ defaultInstructions, requestContext }) => {\r\n      const locale = requestContext?.get('locale') ?? 'en';\r\n      return `${defaultInstructions}\\nLocale: ${locale}`;\r\n    },\r\n  });\r\n  ```\r\n\r\n- Added background process management to workspace sandboxes. ([#13293](https://github.com/mastra-ai/mastra/pull/13293))\r\n\r\n  You can now spawn, monitor, and manage long-running background processes (dev servers, watchers, REPLs) inside sandbox environments.\r\n\r\n  ```typescript\r\n  // Spawn a background process\r\n  const handle = await sandbox.processes.spawn('node server.js');\r\n\r\n  // Stream output and wait for exit\r\n  const result = await handle.wait({\r\n    onStdout: data => console.log(data),\r\n  });\r\n\r\n  // List and manage running processes\r\n  const procs = await sandbox.processes.list();\r\n  await sandbox.processes.kill(handle.pid);\r\n  ```\r\n\r\n  - `SandboxProcessManager` abstract base class with `spawn()`, `list()`, `get(pid)`, `kill(pid)`\r\n  - `ProcessHandle` base class with stdout/stderr accumulation, streaming callbacks, and `wait()`\r\n  - `LocalProcessManager` implementation wrapping Node.js `child_process`\r\n  - Node.js stream interop via `handle.reader` / `handle.writer`\r\n  - Default `executeCommand` implementation built on process manager (spawn + wait)\r\n\r\n- Added workspace tools for background process management and improved sandbox execution UI. ([#13309](https://github.com/mastra-ai/mastra/pull/13309))\r\n  - `execute_command` now supports `background: true` to spawn long-running processes and return a PID\r\n  - New `get_process_output` tool to check output/status of background processes (supports `wait` to block until exit)\r\n  - New `kill_process` tool to terminate background processes\r\n  - Output truncation helpers with configurable tail lines\r\n  - Sandbox execution badge UI: terminal-style output display with streaming, exit codes, killed status, and workspace metadata\r\n\r\n#### Patch Changes\r\n\r\n- Fixed agents-as-tools failing with OpenAI when using the model router. The auto-injected `resumeData` field (from `z.any()`) produced a JSON Schema without a `type` key, which OpenAI rejects. Tool schemas are now post-processed to ensure all properties have valid type information. ([#13326](https://github.com/mastra-ai/mastra/pull/13326))\r\n\r\n- Fixed `stopWhen` callback receiving empty `toolResults` on steps. `step.toolResults` now correctly reflects the tool results present in `step.content`. ([#13319](https://github.com/mastra-ai/mastra/pull/13319))\r\n\r\n- Added `hasJudge` metadata to scorer records so the studio can distinguish code-based scorers (e.g., textual-difference, content-similarity) from LLM-based scorers. This metadata is now included in all four score-saving paths: `runEvals`, scorer hooks, trace scoring, and dataset experiments. ([#13386](https://github.com/mastra-ai/mastra/pull/13386))\r\n\r\n- Fixed a bug where custom output processors could not emit stream events during final output processing. The `writer` object was always `undefined` when passed to output processors in the finish phase, preventing use cases like streaming moderation updates or custom UI events back to the client. ([#13454](https://github.com/mastra-ai/mastra/pull/13454))\r\n\r\n- Added per-file write locking to workspace tools (edit_file, write_file, ast_edit, delete). Concurrent tool calls targeting the same file are now serialized, preventing race conditions where parallel edits could silently overwrite each other. ([#13302](https://github.com/mastra-ai/mastra/pull/13302))\r\n\r\n### [@mastra/client-js@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.7.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/client-sdks/client-js/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/deployer@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.7.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/packages/deployer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/server@1.7.0\r\n\r\n### [@mastra/deployer-cloud@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.7.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/deployers/cloud/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/deployer@1.7.0\r\n\r\n### [@mastra/deployer-cloudflare@1.1.4](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.4//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/deployers/cloudflare/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/deployer@1.7.0\r\n\r\n### [@mastra/deployer-netlify@1.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.8//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/deployers/netlify/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/deployer@1.7.0\r\n\r\n### [@mastra/deployer-vercel@1.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.0.8//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/deployers/vercel/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/deployer@1.7.0\r\n\r\n### [@mastra/e2b@0.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/e2b@0.1.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/workspaces/e2b/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Fixed `getInstructions()` to report sandbox-level facts only (working directory, provider type) instead of counting all mount entries regardless of state. Added `instructions` option to `E2BSandbox` to override or extend default instructions. ([#13304](https://github.com/mastra-ai/mastra/pull/13304))\r\n\r\n- Added `E2BProcessManager` for background process management in E2B cloud sandboxes. ([#13293](https://github.com/mastra-ai/mastra/pull/13293))\r\n\r\n  Wraps E2B SDK's `commands.run()` with `background: true` and `commands.connect()` for reconnection. Processes spawned in E2B sandboxes are automatically cleaned up on `stop()` and `destroy()`.\r\n\r\n  Bumps `@mastra/core` peer dependency to `>=1.7.0-0` (requires `SandboxProcessManager` from core).\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/express@1.1.6](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.1.6//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/server-adapters/express/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/server@1.7.0\r\n\r\n### [@mastra/fastify@1.1.6](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.1.6//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/server-adapters/fastify/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/server@1.7.0\r\n\r\n### [@mastra/hono@1.1.6](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.1.6//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/server-adapters/hono/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/server@1.7.0\r\n\r\n### [@mastra/koa@1.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.2.2//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/server-adapters/koa/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/server@1.7.0\r\n\r\n### [@mastra/libsql@1.6.1](https://github.com/mastra-ai/mastra/blob/@mastra/libsql@1.6.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/stores/libsql/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed non-deterministic query ordering by adding secondary sort on id for dataset and dataset item queries. ([#13399](https://github.com/mastra-ai/mastra/pull/13399))\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/longmemeval@1.0.8](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.8//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/explorations/longmemeval/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`3af89bb`](https://github.com/mastra-ai/mastra/commit/3af89bbec72377dfc1fb06f15ffe3e71a8300550), [`551dc24`](https://github.com/mastra-ai/mastra/commit/551dc2445ffb6efa05eb268e8ab700bcd34ed39c), [`e8afc44`](https://github.com/mastra-ai/mastra/commit/e8afc44a41f24ffe8b8ae4a5ee27cfddbe7934a6), [`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`c2e02f1`](https://github.com/mastra-ai/mastra/commit/c2e02f181843cbda8db6fd893adce85edc0f8742), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/rag@2.1.1\r\n  - @mastra/libsql@1.6.1\r\n  - @mastra/memory@1.5.1\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/mcp-docs-server@1.1.5](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.5//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/packages/mcp-docs-server/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/memory@1.5.1](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.5.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/packages/memory/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- **Fixed memory leak in Observational Memory** ([#13425](https://github.com/mastra-ai/mastra/pull/13425))\r\n\r\n  Fixed several memory management issues that could cause OOM crashes in long-running processes with Observational Memory enabled:\r\n  - **Shared tokenizer**: The default Tiktoken encoder (~80-120 MB heap) is now shared across all OM instances instead of being allocated per request. This is the primary fix — previously each request allocated two encoders that persisted in memory due to async buffering promise retention.\r\n  - **Cleanup key fix**: Fixed a bug where reflection cycle IDs were not properly cleaned up due to using the wrong map key in `cleanupStaticMaps`.\r\n\r\n- Fixed PostgreSQL deadlock when parallel agents with different threadIds share the same resourceId while using Observational Memory. Thread scope now requires a valid threadId and throws a clear error if one is missing. Also fixed the database lock ordering in synchronous observation to prevent lock inversions. ([#13436](https://github.com/mastra-ai/mastra/pull/13436))\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/mongodb@1.5.1](https://github.com/mastra-ai/mastra/blob/@mastra/mongodb@1.5.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/stores/mongodb/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/opencode@0.0.5](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.5//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/integrations/opencode/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`551dc24`](https://github.com/mastra-ai/mastra/commit/551dc2445ffb6efa05eb268e8ab700bcd34ed39c), [`e8afc44`](https://github.com/mastra-ai/mastra/commit/e8afc44a41f24ffe8b8ae4a5ee27cfddbe7934a6), [`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`c2e02f1`](https://github.com/mastra-ai/mastra/commit/c2e02f181843cbda8db6fd893adce85edc0f8742), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/libsql@1.6.1\r\n  - @mastra/memory@1.5.1\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/pg@1.6.1](https://github.com/mastra-ai/mastra/blob/@mastra/pg@1.6.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/stores/pg/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed non-deterministic query ordering by adding secondary sort on id for dataset and dataset item queries. ([#13399](https://github.com/mastra-ai/mastra/pull/13399))\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/playground-ui@14.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@14.0.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/packages/playground-ui/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added new Chip component and expanded ItemList with Cell, LinkCell, IdCell, DateCell, and VersionCell sub-components. Improved dataset version comparison page with inline navigation links, version status indicators, and a refreshed row layout. ([#13399](https://github.com/mastra-ai/mastra/pull/13399))\r\n\r\n#### Patch Changes\r\n\r\n- Improved comparison selection behavior: selecting a third item now replaces the most recent selection instead of being blocked. Applies to dataset version, item version, and dataset item comparison flows. ([#13406](https://github.com/mastra-ai/mastra/pull/13406))\r\n\r\n- Improved the score dialog to show \"N/A\" with an explanation instead of \"null\" for empty scorer fields. Code-based scorers show \"N/A — code-based scorer does not use prompts\" and LLM scorers with unconfigured steps show \"N/A — step not configured\". Detection uses the `hasJudge` metadata flag with a heuristic fallback for older data. ([#13386](https://github.com/mastra-ai/mastra/pull/13386))\r\n\r\n- Added workspace tools for background process management and improved sandbox execution UI. ([#13309](https://github.com/mastra-ai/mastra/pull/13309))\r\n  - `execute_command` now supports `background: true` to spawn long-running processes and return a PID\r\n  - New `get_process_output` tool to check output/status of background processes (supports `wait` to block until exit)\r\n  - New `kill_process` tool to terminate background processes\r\n  - Output truncation helpers with configurable tail lines\r\n  - Sandbox execution badge UI: terminal-style output display with streaming, exit codes, killed status, and workspace metadata\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n  - @mastra/client-js@1.7.0\r\n  - @mastra/ai-sdk@1.0.5\r\n  - @mastra/react@0.2.6\r\n\r\n### [@mastra/rag@2.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/rag@2.1.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/packages/rag/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13318](https://github.com/mastra-ai/mastra/pull/13318))\r\n  - Updated dependency [`zeroentropy@0.1.0-alpha.7` ↗︎](https://www.npmjs.com/package/zeroentropy/v/0.1.0) (from `0.1.0-alpha.6`, in `dependencies`)\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n### [@mastra/react@0.2.6](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.6//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/client-sdks/react/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc)]:\r\n  - @mastra/client-js@1.7.0\r\n\r\n### [@mastra/server@1.7.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.7.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.7.0/packages/server/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`24284ff`](https://github.com/mastra-ai/mastra/commit/24284ffae306ddf0ab83273e13f033520839ef40), [`f5097cc`](https://github.com/mastra-ai/mastra/commit/f5097cc8a813c82c3378882c31178320cadeb655), [`71e237f`](https://github.com/mastra-ai/mastra/commit/71e237fa852a3ad9a50a3ddb3b5f3b20b9a8181c), [`13a291e`](https://github.com/mastra-ai/mastra/commit/13a291ebb9f9bca80befa0d9166b916bb348e8e9), [`397af5a`](https://github.com/mastra-ai/mastra/commit/397af5a69f34d4157f51a7c8da3f1ded1e1d611c), [`d4701f7`](https://github.com/mastra-ai/mastra/commit/d4701f7e24822b081b70f9c806c39411b1a712e7), [`2b40831`](https://github.com/mastra-ai/mastra/commit/2b40831dcca2275c9570ddf09b7f25ba3e8dc7fc), [`6184727`](https://github.com/mastra-ai/mastra/commit/6184727e812bf7a65cee209bacec3a2f5a16e923), [`0c338b8`](https://github.com/mastra-ai/mastra/commit/0c338b87362dcd95ff8191ca00df645b6953f534), [`6f6385b`](https://github.com/mastra-ai/mastra/commit/6f6385be5b33687cd21e71fc27e972e6928bb34c), [`14aba61`](https://github.com/mastra-ai/mastra/commit/14aba61b9cff76d72bc7ef6f3a83ae2c5d059193), [`dd9dd1c`](https://github.com/mastra-ai/mastra/commit/dd9dd1c9ae32ae79093f8c4adde1732ac6357233)]:\r\n  - @mastra/core@1.7.0\r\n\r\n","publishedAt":"2026-02-25T09:16:42.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.7.0","media":[]},{"id":"rel_l-myhTR6yoT5MJuTIC-uD","version":"@mastra/core@1.6.0","title":"February 23, 2026","summary":"## Highlights\r\n\r\n### AST-Based Workspace Edit Tool (`mastra_workspace_ast_edit`)\r\n\r\nA new AST edit tool enables intelligent code transformations (rena...","content":"## Highlights\r\n\r\n### AST-Based Workspace Edit Tool (`mastra_workspace_ast_edit`)\r\n\r\nA new AST edit tool enables intelligent code transformations (rename identifiers, add/remove/merge imports, pattern-based replacements with metavariables) and is automatically available when `@ast-grep/napi` is installed, enabling robust refactors beyond string-based edits.\r\n\r\n### Harness UX + Built-ins: Streaming Tool Argument Previews and Task Tools\r\n\r\nTool renderers now stream argument previews in real time (including diffs for edits and streamed file content for writes) via partial JSON parsing, and `task_write`/`task_check` are now built-in Harness tools automatically injected into agent calls for structured task tracking.\r\n\r\n### Observational Memory Continuity Improvements (Suggested Continuation + Current Task)\r\n\r\nObservational Memory now preserves `suggestedContinuation` and `currentTask` across activations (with storage adapter support), improving conversational continuity when the message window shrinks; activation/priority handling is improved to better hit retention targets and avoid runaway observer output.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.6.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/packages/core/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added AST edit tool (`workspace_ast_edit`) for intelligent code transformations using AST analysis. Supports renaming identifiers, adding/removing/merging imports, and pattern-based find-and-replace with metavariable substitution. Automatically available when `@ast-grep/napi` is installed in the project. ([#13233](https://github.com/mastra-ai/mastra/pull/13233))\r\n\r\n  **Example:**\r\n\r\n  ```ts\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({ basePath: '/my/project' }),\r\n  });\r\n  const tools = createWorkspaceTools(workspace);\r\n\r\n  // Rename all occurrences of an identifier\r\n  await tools['mastra_workspace_ast_edit'].execute({\r\n    path: '/src/utils.ts',\r\n    transform: 'rename',\r\n    targetName: 'oldName',\r\n    newName: 'newName',\r\n  });\r\n\r\n  // Add an import (merges into existing imports from the same module)\r\n  await tools['mastra_workspace_ast_edit'].execute({\r\n    path: '/src/app.ts',\r\n    transform: 'add-import',\r\n    importSpec: { module: 'react', names: ['useState', 'useEffect'] },\r\n  });\r\n\r\n  // Pattern-based replacement with metavariables\r\n  await tools['mastra_workspace_ast_edit'].execute({\r\n    path: '/src/app.ts',\r\n    pattern: 'console.log($ARG)',\r\n    replacement: 'logger.debug($ARG)',\r\n  });\r\n  ```\r\n\r\n- Added streaming tool argument previews across all tool renderers. Tool names, file paths, and commands now appear immediately as the model generates them, rather than waiting for the complete tool call. ([#13328](https://github.com/mastra-ai/mastra/pull/13328))\r\n  - **Generic tools** show live key/value argument previews as args stream in\r\n  - **Edit tool** renders a bordered diff preview as soon as `old_str` and `new_str` are available, even before the tool result arrives\r\n  - **Write tool** streams syntax-highlighted file content in a bordered box while args arrive\r\n  - **Find files** shows the glob pattern in the pending header\r\n  - **Task write** streams items directly into the pinned task list component in real-time\r\n\r\n  All tools use partial JSON parsing to progressively display argument information. This is enabled automatically for all Harness-based agents — no configuration required.\r\n\r\n- Added optional `threadLock` callbacks to `HarnessConfig` for preventing concurrent thread access across processes. The Harness calls `acquire`/`release` during `selectOrCreateThread`, `createThread`, and `switchThread` when configured. Locking is opt-in — when `threadLock` is not provided, behavior is unchanged. ([#13334](https://github.com/mastra-ai/mastra/pull/13334))\r\n\r\n  ```ts\r\n  const harness = new Harness({\r\n    id: 'my-harness',\r\n    storage: myStore,\r\n    modes: [{ id: 'default', agent: myAgent }],\r\n    threadLock: {\r\n      acquire: threadId => acquireThreadLock(threadId),\r\n      release: threadId => releaseThreadLock(threadId),\r\n    },\r\n  });\r\n  ```\r\n\r\n- Refactored all Harness class methods to accept object parameters instead of positional arguments, and standardized method naming. ([#13353](https://github.com/mastra-ai/mastra/pull/13353))\r\n\r\n  **Why:** Positional arguments make call sites harder to read, especially for methods with optional middle parameters or multiple string arguments. Object parameters are self-documenting and easier to extend without breaking changes.\r\n  - Methods returning arrays use `list` prefix (`listModes`, `listAvailableModels`, `listMessages`, `listMessagesForThread`)\r\n  - `persistThreadSetting` → `setThreadSetting`\r\n  - `resolveToolApprovalDecision` → `respondToToolApproval` (consistent with `respondToQuestion` / `respondToPlanApproval`)\r\n  - `setPermissionCategory` → `setPermissionForCategory`\r\n  - `setPermissionTool` → `setPermissionForTool`\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  await harness.switchMode('build');\r\n  await harness.sendMessage('Hello', { images });\r\n  const modes = harness.getModes();\r\n  const models = await harness.getAvailableModels();\r\n  harness.resolveToolApprovalDecision('approve');\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  await harness.switchMode({ modeId: 'build' });\r\n  await harness.sendMessage({ content: 'Hello', images });\r\n  const modes = harness.listModes();\r\n  const models = await harness.listAvailableModels();\r\n  harness.respondToToolApproval({ decision: 'approve' });\r\n  ```\r\n\r\n  The `HarnessRequestContext` interface methods (`registerQuestion`, `registerPlanApproval`, `getSubagentModelId`) are also updated to use object parameters.\r\n\r\n- Added `task_write` and `task_check` as built-in Harness tools. These tools are automatically injected into every agent call, allowing agents to track structured task lists without manual tool registration. ([#13344](https://github.com/mastra-ai/mastra/pull/13344))\r\n\r\n  ```ts\r\n  // Agents can call task_write to create/update a task list\r\n  await tools['task_write'].execute({\r\n    tasks: [\r\n      { content: 'Fix authentication bug', status: 'in_progress', activeForm: 'Fixing authentication bug' },\r\n      { content: 'Add unit tests', status: 'pending', activeForm: 'Adding unit tests' },\r\n    ],\r\n  });\r\n\r\n  // Agents can call task_check to verify all tasks are complete before finishing\r\n  await tools['task_check'].execute({});\r\n  // Returns: { completed: 1, inProgress: 0, pending: 1, allDone: false, incomplete: [...] }\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- Fixed duplicate Vercel AI Gateway configuration that could cause incorrect API key resolution. Removed a redundant override that conflicted with the upstream models.dev registry. ([#13291](https://github.com/mastra-ai/mastra/pull/13291))\r\n\r\n- Fixed Vercel AI Gateway failing when using the model router string format (e.g. `vercel/openai/gpt-oss-120b`). The provider registry was overriding `createGateway`'s base URL with an incorrect value, causing API requests to hit the wrong endpoint. Removed the URL override so the AI SDK uses its own correct default. Closes #13280. ([#13287](https://github.com/mastra-ai/mastra/pull/13287))\r\n\r\n- Fixed recursive schema warnings for processor graph entries by unrolling to a fixed depth of 3 levels, matching the existing rule group pattern ([#13292](https://github.com/mastra-ai/mastra/pull/13292))\r\n\r\n- Fixed Observational Memory status not updating during conversations. The harness was missing streaming handlers for OM data chunks (status, observation start/end, buffering, activation), so the TUI never received real-time OM progress updates. Also added switchObserverModel and switchReflectorModel methods so changing OM models properly emits events to subscribers. ([#13330](https://github.com/mastra-ai/mastra/pull/13330))\r\n\r\n- Fixed thread resuming in git worktrees. Previously, starting mastracode in a new worktree would resume a thread from another worktree of the same repo. Threads are now auto-tagged with the project path and filtered on resume so each worktree gets its own thread scope. ([#13343](https://github.com/mastra-ai/mastra/pull/13343))\r\n\r\n- Fixed a crash where the Node.js process would terminate with an unhandled TypeError when an LLM stream encountered an error. The ReadableStreamDefaultController would throw \"Controller is already closed\" when chunks were enqueued after a downstream consumer cancelled or terminated the stream. All controller.enqueue(), controller.close(), and controller.error() calls now check if the controller is still open before attempting operations. (https://github.com/mastra-ai/mastra/issues/13107) ([#13142](https://github.com/mastra-ai/mastra/pull/13142))\r\n\r\n- Added `suggestedContinuation` and `currentTask` fields to the in-memory storage adapter's Observational Memory activation result, aligning it with the persistent storage implementations. ([#13354](https://github.com/mastra-ai/mastra/pull/13354))\r\n\r\n- Fixed provider-executed tools (e.g. Anthropic web_search) causing stream bail when called in parallel with regular tools. The tool-call-step now provides a fallback result for provider-executed tools whose output was not propagated, preventing the mapping step from misidentifying them as pending HITL interactions. Fixes #13125. ([#13126](https://github.com/mastra-ai/mastra/pull/13126))\r\n\r\n- Updated dependencies [[`7184d87`](https://github.com/mastra-ai/mastra/commit/7184d87c9237d26862f500ccfd0c9f9eadd38ddf)]:\r\n  - @mastra/schema-compat@1.1.2\r\n\r\n### [@mastra/arize@1.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/arize@1.0.4//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/arize/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/otel-exporter@1.0.3\r\n\r\n### [@mastra/braintrust@1.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/braintrust@1.0.4//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/braintrust/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n\r\n### [@mastra/clickhouse@1.2.2](https://github.com/mastra-ai/mastra/blob/@mastra/clickhouse@1.2.2//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/stores/clickhouse/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added MCP server table and CRUD operations to storage adapters, enabling MCP server configurations to be persisted alongside agents and workflows. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n### [@mastra/client-js@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/client-js@1.6.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/client-sdks/client-js/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`7184d87`](https://github.com/mastra-ai/mastra/commit/7184d87c9237d26862f500ccfd0c9f9eadd38ddf), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/schema-compat@1.1.2\r\n\r\n### [@mastra/cloudflare@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/cloudflare@1.2.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/stores/cloudflare/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Added MCP server table and CRUD operations to storage adapters, enabling MCP server configurations to be persisted alongside agents and workflows. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n### [@mastra/datadog@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/datadog@1.0.3//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/datadog/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n\r\n### [@mastra/deployer@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.6.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/packages/deployer/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`3f8f1b3`](https://github.com/mastra-ai/mastra/commit/3f8f1b31146d2a8316157171962ad825628aa251), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/server@1.6.0\r\n\r\n### [@mastra/deployer-cloud@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloud@1.6.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/deployers/cloud/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/deployer@1.6.0\r\n\r\n### [@mastra/deployer-cloudflare@1.1.3](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-cloudflare@1.1.3//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/deployers/cloudflare/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/deployer@1.6.0\r\n\r\n### [@mastra/deployer-netlify@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-netlify@1.0.7//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/deployers/netlify/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/deployer@1.6.0\r\n\r\n### [@mastra/deployer-vercel@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/deployer-vercel@1.0.7//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/deployers/vercel/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/deployer@1.6.0\r\n\r\n### [@mastra/express@1.1.5](https://github.com/mastra-ai/mastra/blob/@mastra/express@1.1.5//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/server-adapters/express/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`3f8f1b3`](https://github.com/mastra-ai/mastra/commit/3f8f1b31146d2a8316157171962ad825628aa251), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/server@1.6.0\r\n\r\n### [@mastra/fastify@1.1.5](https://github.com/mastra-ai/mastra/blob/@mastra/fastify@1.1.5//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/server-adapters/fastify/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`3f8f1b3`](https://github.com/mastra-ai/mastra/commit/3f8f1b31146d2a8316157171962ad825628aa251), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/server@1.6.0\r\n\r\n### [@mastra/hono@1.1.5](https://github.com/mastra-ai/mastra/blob/@mastra/hono@1.1.5//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/server-adapters/hono/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`3f8f1b3`](https://github.com/mastra-ai/mastra/commit/3f8f1b31146d2a8316157171962ad825628aa251), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/server@1.6.0\r\n\r\n### [@mastra/koa@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/koa@1.2.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/server-adapters/koa/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`3f8f1b3`](https://github.com/mastra-ai/mastra/commit/3f8f1b31146d2a8316157171962ad825628aa251), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/server@1.6.0\r\n\r\n### [@mastra/laminar@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/laminar@1.0.3//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/laminar/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n\r\n### [@mastra/langfuse@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/langfuse@1.0.3//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/langfuse/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n\r\n### [@mastra/langsmith@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/langsmith@1.1.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/langsmith/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n\r\n### [@mastra/libsql@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/libsql@1.6.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/stores/libsql/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added MCP server table and CRUD operations to storage adapters, enabling MCP server configurations to be persisted alongside agents and workflows. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n#### Patch Changes\r\n\r\n- Storage adapters now return `suggestedContinuation` and `currentTask` fields on Observational Memory activation, enabling agents to maintain conversational context across activation boundaries. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n### [@mastra/longmemeval@1.0.7](https://github.com/mastra-ai/mastra/blob/@mastra/longmemeval@1.0.7//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/explorations/longmemeval/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`5c70aeb`](https://github.com/mastra-ai/mastra/commit/5c70aeb391434c34f9e43caa2e8572d412bcb2b0), [`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`270dd16`](https://github.com/mastra-ai/mastra/commit/270dd168a86698a699d8a9de8dbce1a40f72d862), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`5c70aeb`](https://github.com/mastra-ai/mastra/commit/5c70aeb391434c34f9e43caa2e8572d412bcb2b0), [`b260123`](https://github.com/mastra-ai/mastra/commit/b2601234bd093d358c92081a58f9b0befdae52b3), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`5c70aeb`](https://github.com/mastra-ai/mastra/commit/5c70aeb391434c34f9e43caa2e8572d412bcb2b0), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/libsql@1.6.0\r\n  - @mastra/core@1.6.0\r\n  - @mastra/memory@1.5.0\r\n\r\n### [@mastra/mcp-docs-server@1.1.4](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.4//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/packages/mcp-docs-server/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n### [@mastra/memory@1.5.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.5.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/packages/memory/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Improved conversational continuity when the message window shrinks during Observational Memory activation. The agent now preserves its suggested next response and current task across activation, so it maintains context instead of losing track of the conversation. ([#13354](https://github.com/mastra-ai/mastra/pull/13354))\r\n\r\n  Also improved the Observer to capture user messages more faithfully, reduce repetitive observations, and treat the most recent user message as the highest-priority signal.\r\n\r\n#### Patch Changes\r\n\r\n- Improved Observational Memory priority handling. User messages and task completions are now always treated as high priority, ensuring the observer captures the most relevant context during conversations. ([#13329](https://github.com/mastra-ai/mastra/pull/13329))\r\n\r\n- Improved Observational Memory activation to preserve more usable context after activation. Previously, activation could leave the agent with too much or too little context depending on how chunks aligned with the retention target. ([#13305](https://github.com/mastra-ai/mastra/pull/13305))\r\n  - Activation now lands closer to the retention target by biasing chunk selection to slightly overshoot rather than undershoot\r\n  - Added safeguards to prevent activation from consuming too much context (95% ceiling and 1000-token floor)\r\n  - When pending tokens exceed `blockAfter`, activation now aggressively reduces context to unblock the conversation\r\n  - `bufferActivation` now accepts absolute token values (>= 1000) in addition to ratios (0–1), giving more precise control over when activation triggers\r\n\r\n- Observations no longer inflate token counts from degenerate LLM output. Runaway or repetitive observer/reflector output is automatically detected and retried, preventing excessive context usage after activation. ([#13354](https://github.com/mastra-ai/mastra/pull/13354))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`7184d87`](https://github.com/mastra-ai/mastra/commit/7184d87c9237d26862f500ccfd0c9f9eadd38ddf), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/schema-compat@1.1.2\r\n\r\n### [@mastra/mongodb@1.5.0](https://github.com/mastra-ai/mastra/blob/@mastra/mongodb@1.5.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/stores/mongodb/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added MCP server table and CRUD operations to storage adapters, enabling MCP server configurations to be persisted alongside agents and workflows. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n#### Patch Changes\r\n\r\n- Storage adapters now return `suggestedContinuation` and `currentTask` fields on Observational Memory activation, enabling agents to maintain conversational context across activation boundaries. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n### [@mastra/observability@1.2.1](https://github.com/mastra-ai/mastra/blob/@mastra/observability@1.2.1//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/mastra/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed telemetry spans being silently dropped when the default exporter was used. The exporter now holds spans in memory until initialization completes, ensuring all spans are propagated to your tracing backend. ([#12936](https://github.com/mastra-ai/mastra/pull/12936))\r\n\r\n- Fixed `keysToStrip.has is not a function` crash in `deepClean()` when bundlers transform `new Set([...])` into a plain object or array. This affected agents with memory deployed to Mastra Cloud. ([#13322](https://github.com/mastra-ai/mastra/pull/13322))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n### [@mastra/opencode@0.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/opencode@0.0.4//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/integrations/opencode/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`5c70aeb`](https://github.com/mastra-ai/mastra/commit/5c70aeb391434c34f9e43caa2e8572d412bcb2b0), [`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`270dd16`](https://github.com/mastra-ai/mastra/commit/270dd168a86698a699d8a9de8dbce1a40f72d862), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`5c70aeb`](https://github.com/mastra-ai/mastra/commit/5c70aeb391434c34f9e43caa2e8572d412bcb2b0), [`b260123`](https://github.com/mastra-ai/mastra/commit/b2601234bd093d358c92081a58f9b0befdae52b3), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`5c70aeb`](https://github.com/mastra-ai/mastra/commit/5c70aeb391434c34f9e43caa2e8572d412bcb2b0), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/libsql@1.6.0\r\n  - @mastra/core@1.6.0\r\n  - @mastra/memory@1.5.0\r\n\r\n### [@mastra/otel-bridge@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/otel-bridge@1.0.3//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/otel-bridge/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n  - @mastra/otel-exporter@1.0.3\r\n\r\n### [@mastra/otel-exporter@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/otel-exporter@1.0.3//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/otel-exporter/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n\r\n### [@mastra/pg@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/pg@1.6.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/stores/pg/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added MCP server table and CRUD operations to storage adapters, enabling MCP server configurations to be persisted alongside agents and workflows. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n#### Patch Changes\r\n\r\n- Storage adapters now return `suggestedContinuation` and `currentTask` fields on Observational Memory activation, enabling agents to maintain conversational context across activation boundaries. ([#13357](https://github.com/mastra-ai/mastra/pull/13357))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n### [@mastra/playground-ui@13.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@13.0.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/packages/playground-ui/CHANGELOG.md)\r\n#### Minor Changes\r\n\r\n- Added `Tree.Input` component for inline file and folder creation within the Tree. Supports auto-focus, Enter to confirm, Escape to cancel, and blur handling with correct depth indentation. ([#13264](https://github.com/mastra-ai/mastra/pull/13264))\r\n\r\n  ```tsx\r\n  import { Tree } from '@mastra/playground-ui';\r\n\r\n  <Tree.Folder name=\"src\" defaultOpen>\r\n    <Tree.Input\r\n      type=\"file\"\r\n      placeholder=\"new-file.ts\"\r\n      onSubmit={name => createFile(name)}\r\n      onCancel={() => setCreating(false)}\r\n    />\r\n    <Tree.File name=\"index.ts\" />\r\n  </Tree.Folder>;\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13284](https://github.com/mastra-ai/mastra/pull/13284))\r\n  - Updated dependency [`sonner@^2.0.7` ↗︎](https://www.npmjs.com/package/sonner/v/2.0.7) (from `^2.0.5`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13300](https://github.com/mastra-ai/mastra/pull/13300))\r\n  - Updated dependency [`superjson@^2.2.6` ↗︎](https://www.npmjs.com/package/superjson/v/2.2.6) (from `^2.2.2`, in `dependencies`)\r\n\r\n- Added a side-by-side diff view to the Dataset comparison pages (Compare Items and Compare Item Versions), making it easier to spot differences between dataset entries at a glance. ([#13267](https://github.com/mastra-ai/mastra/pull/13267))\r\n\r\n- Fixed the Experiment Result panel crashing with a type error when results contained nested objects instead of plain strings. ([#13275](https://github.com/mastra-ai/mastra/pull/13275))\r\n\r\n- Added a searchable combobox header to the Dataset page, allowing you to quickly filter and switch between datasets without scrolling through a long list. ([#13273](https://github.com/mastra-ai/mastra/pull/13273))\r\n\r\n- Added a composable Tree component for displaying file-system-like views with collapsible folders, file type icons, selection support, and action slots ([#13259](https://github.com/mastra-ai/mastra/pull/13259))\r\n\r\n- Updated dependencies [[`e4034e5`](https://github.com/mastra-ai/mastra/commit/e4034e5442b27f1bcae80456bfd21be388962eb8), [`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`7184d87`](https://github.com/mastra-ai/mastra/commit/7184d87c9237d26862f500ccfd0c9f9eadd38ddf), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`3f8f1b3`](https://github.com/mastra-ai/mastra/commit/3f8f1b31146d2a8316157171962ad825628aa251), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/react@0.2.5\r\n  - @mastra/core@1.6.0\r\n  - @mastra/client-js@1.6.0\r\n  - @mastra/schema-compat@1.1.2\r\n  - @mastra/ai-sdk@1.0.5\r\n\r\n### [@mastra/posthog@1.0.4](https://github.com/mastra-ai/mastra/blob/@mastra/posthog@1.0.4//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/posthog/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n\r\n### [@mastra/react@0.2.5](https://github.com/mastra-ai/mastra/blob/@mastra/react@0.2.5//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/client-sdks/react/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13308](https://github.com/mastra-ai/mastra/pull/13308))\r\n  - Updated dependency [`tailwind-merge@^3.4.1` ↗︎](https://www.npmjs.com/package/tailwind-merge/v/3.4.1) (from `^3.3.1`, in `dependencies`)\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`3f8f1b3`](https://github.com/mastra-ai/mastra/commit/3f8f1b31146d2a8316157171962ad825628aa251)]:\r\n  - @mastra/client-js@1.6.0\r\n\r\n### [@mastra/schema-compat@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.1.2//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/packages/schema-compat/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Fixed Groq provider not receiving schema compatibility transformations, which caused HTTP 400 errors when AI models omitted optional parameters from workspace tool calls (e.g. list_files). Groq now correctly gets the same optional-to-nullable schema handling as OpenAI. ([#13303](https://github.com/mastra-ai/mastra/pull/13303))\r\n\r\n### [@mastra/sentry@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/sentry@1.0.3//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/observability/sentry/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2246a6f`](https://github.com/mastra-ai/mastra/commit/2246a6f6effd444d42abc7077cca52da3df2c5d2), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9), [`b4b75ca`](https://github.com/mastra-ai/mastra/commit/b4b75caae9b0c777e33b83364791fccfedf3cdba)]:\r\n  - @mastra/core@1.6.0\r\n  - @mastra/observability@1.2.1\r\n  - @mastra/otel-exporter@1.0.3\r\n\r\n### [@mastra/server@1.6.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.6.0//private/var/folders/r2/qpk_zznx2qlbc61wr2gtsm4h0000gn/T/mastra-mastra-ai-mastra-_mastra_core_1.6.0/packages/server/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Fixed recursive schema warnings for processor graph entries by unrolling to a fixed depth of 3 levels, matching the existing rule group pattern ([#13292](https://github.com/mastra-ai/mastra/pull/13292))\r\n\r\n- Workspace tools like `ast_edit` are now correctly detected at runtime based on available dependencies (e.g. `@ast-grep/napi`), preventing missing tools from being advertised to agents. ([#13233](https://github.com/mastra-ai/mastra/pull/13233))\r\n\r\n- Updated dependencies [[`0d9efb4`](https://github.com/mastra-ai/mastra/commit/0d9efb47992c34aa90581c18b9f51f774f6252a5), [`5caa13d`](https://github.com/mastra-ai/mastra/commit/5caa13d1b2a496e2565ab124a11de9a51ad3e3b9), [`940163f`](https://github.com/mastra-ai/mastra/commit/940163fc492401d7562301e6f106ccef4fefe06f), [`47892c8`](https://github.com/mastra-ai/mastra/commit/47892c85708eac348209f99f10f9a5f5267e11c0), [`45bb78b`](https://github.com/mastra-ai/mastra/commit/45bb78b70bd9db29678fe49476cd9f4ed01bfd0b), [`70eef84`](https://github.com/mastra-ai/mastra/commit/70eef84b8f44493598fdafa2980a0e7283415eda), [`d84e52d`](https://github.com/mastra-ai/mastra/commit/d84e52d0f6511283ddd21ed5fe7f945449d0f799), [`24b80af`](https://github.com/mastra-ai/mastra/commit/24b80af87da93bb84d389340181e17b7477fa9ca), [`608e156`](https://github.com/mastra-ai/mastra/commit/608e156def954c9604c5e3f6d9dfce3bcc7aeab0), [`2b2e157`](https://github.com/mastra-ai/mastra/commit/2b2e157a092cd597d9d3f0000d62b8bb4a7348ed), [`59d30b5`](https://github.com/mastra-ai/mastra/commit/59d30b5d0cb44ea7a1c440e7460dfb57eac9a9b5), [`453693b`](https://github.com/mastra-ai/mastra/commit/453693bf9e265ddccecef901d50da6caaea0fbc6), [`78d1c80`](https://github.com/mastra-ai/mastra/commit/78d1c808ad90201897a300af551bcc1d34458a20), [`c204b63`](https://github.com/mastra-ai/mastra/commit/c204b632d19e66acb6d6e19b11c4540dd6ad5380), [`742a417`](https://github.com/mastra-ai/mastra/commit/742a417896088220a3b5560c354c45c5ca6d88b9)]:\r\n  - @mastra/core@1.6.0\r\n\r\n","publishedAt":"2026-02-24T16:55:36.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.6.0","media":[]},{"id":"rel_Q4hqUv20EQifWqFbdi8BS","version":"@mastra/core@1.5.0","title":"February 19, 2026","summary":"## Highlights\r\n\r\n### Core Harness: A Reusable Orchestration Layer for Agent Apps\r\n\r\nA new generic `Harness` in `@mastra/core` provides a foundation fo...","content":"## Highlights\r\n\r\n### Core Harness: A Reusable Orchestration Layer for Agent Apps\r\n\r\nA new generic `Harness` in `@mastra/core` provides a foundation for building agent-powered applications with modes, state management, built-in tools (`ask_user`, `submit_plan`), subagent support, Observational Memory integration, model discovery, permission-aware tool approval, and event-driven/thread/heartbeat management.\r\n\r\n### Workspace Capability Upgrades (Security, Discovery, and Search)\r\n\r\nWorkspaces gain **least-privilege filesystem access** via `LocalFilesystem.allowedPaths` (plus runtime updates with `setAllowedPaths()`), expanded **glob-based configuration** for file listing/indexing/skill discovery, and a new regex search tool `mastra_workspace_grep` to complement semantic search.\r\n\r\n### Better Tool I/O and Streaming Behavior in the Agent Loop\r\n\r\nTools can now define `toModelOutput` to transform tool results into model-friendly content while preserving raw outputs in storage, and workspace tools now return raw text (moving structured metadata to `data-workspace-metadata` stream chunks) to reduce token usage. Streaming reliability also improves (correct chunk types for tool errors, onChunk receives raw Mastra chunks, agent loop continues after tool errors).\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.5.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.5.0/packages/core/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added `allowedPaths` option to `LocalFilesystem` for granting agents access to specific directories outside `basePath` without disabling containment. ([#13054](https://github.com/mastra-ai/mastra/pull/13054))\r\n\r\n  ```typescript\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({\r\n      basePath: './workspace',\r\n      allowedPaths: ['/home/user/.config', '/home/user/documents'],\r\n    }),\r\n  });\r\n  ```\r\n\r\n  Allowed paths can be updated at runtime using `setAllowedPaths()`:\r\n\r\n  ```typescript\r\n  workspace.filesystem.setAllowedPaths(prev => [...prev, '/home/user/new-dir']);\r\n  ```\r\n\r\n  This is the recommended approach for least-privilege access — agents can only reach the specific directories you allow, while containment stays enabled for everything else.\r\n\r\n- Added generic Harness class for orchestrating agents with modes, state management, built-in tools (ask_user, submit_plan), subagent support, Observational Memory integration, model discovery, and permission-aware tool approval. The Harness provides a reusable foundation for building agent-powered applications with features like thread management, heartbeat monitoring, and event-driven architecture. ([#13245](https://github.com/mastra-ai/mastra/pull/13245))\r\n\r\n- Added glob pattern support for workspace configuration. The `list_files` tool now accepts a `pattern` parameter for filtering files (e.g., `**/*.ts`, `src/**/*.test.ts`). `autoIndexPaths` accepts glob patterns like `./docs/**/*.md` to selectively index files for BM25 search. Skills paths support globs like `./**/skills` to discover skill directories at any depth, including dot-directories like `.agents/skills`. ([#13023](https://github.com/mastra-ai/mastra/pull/13023))\r\n\r\n  **`list_files` tool with pattern:**\r\n\r\n  ```typescript\r\n  // Agent can now use glob patterns to filter files\r\n  const result = await workspace.tools.workspace_list_files({\r\n    path: '/',\r\n    pattern: '**/*.test.ts',\r\n  });\r\n  ```\r\n\r\n  **`autoIndexPaths` with globs:**\r\n\r\n  ```typescript\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({ basePath: './project' }),\r\n    bm25: true,\r\n    // Only index markdown files under ./docs\r\n    autoIndexPaths: ['./docs/**/*.md'],\r\n  });\r\n  ```\r\n\r\n  **Skills paths with globs:**\r\n\r\n  ```typescript\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({ basePath: './project' }),\r\n    // Discover any directory named 'skills' within 4 levels of depth\r\n    skills: ['./**/skills'],\r\n  });\r\n  ```\r\n\r\n  Note: Skills glob discovery walks up to 4 directory levels deep from the glob's static prefix. Use more specific patterns like `./src/**/skills` to narrow the search scope for large workspaces.\r\n\r\n- Added direct skill path discovery — you can now pass a path directly to a skill directory or SKILL.md file in the workspace skills configuration (e.g., `skills: ['/path/to/my-skill']` or `skills: ['/path/to/my-skill/SKILL.md']`). Previously only parent directories were supported. Also improved error handling when a configured skills path is inaccessible (e.g., permission denied), logging a warning instead of breaking discovery for all skills. ([#13031](https://github.com/mastra-ai/mastra/pull/13031))\r\n\r\n- Add optional `instruction` field to ObservationalMemory config types ([#13240](https://github.com/mastra-ai/mastra/pull/13240))\r\n\r\n  Adds `instruction?: string` to `ObservationalMemoryObservationConfig` and `ObservationalMemoryReflectionConfig` interfaces, allowing external consumers to pass custom instructions to observational memory.\r\n\r\n- Added typed workspace providers — `workspace.filesystem` and `workspace.sandbox` now return the concrete types you passed to the constructor, improving autocomplete and eliminating casts. ([#13021](https://github.com/mastra-ai/mastra/pull/13021))\r\n\r\n  When mounts are configured, `workspace.filesystem` returns a typed `CompositeFilesystem<TMounts>` with per-key narrowing via `mounts.get()`.\r\n\r\n  **Before:**\r\n\r\n  ```ts\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({ basePath: '/tmp' }),\r\n    sandbox: new E2BSandbox({ timeout: 60000 }),\r\n  });\r\n  workspace.filesystem; // WorkspaceFilesystem | undefined\r\n  workspace.sandbox; // WorkspaceSandbox | undefined\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```ts\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({ basePath: '/tmp' }),\r\n    sandbox: new E2BSandbox({ timeout: 60000 }),\r\n  });\r\n  workspace.filesystem; // LocalFilesystem\r\n  workspace.sandbox; // E2BSandbox\r\n\r\n  // Mount-aware workspaces get typed per-key access:\r\n  const ws = new Workspace({\r\n    mounts: { '/local': new LocalFilesystem({ basePath: '/tmp' }) },\r\n  });\r\n  ws.filesystem.mounts.get('/local'); // LocalFilesystem\r\n  ```\r\n\r\n- Added support for Vercel AI Gateway in the model router. You can now use `model: 'vercel/google/gemini-3-flash'` with agents and it will route through the official AI SDK gateway provider. ([#13149](https://github.com/mastra-ai/mastra/pull/13149))\r\n\r\n- Added `toModelOutput` support to the agent loop. Tool definitions can now include a `toModelOutput` function that transforms the raw tool result before it's sent to the model, while preserving the raw result in storage. This matches the AI SDK `toModelOutput` convention — the function receives the raw output directly and returns `{ type: 'text', value: string }` or `{ type: 'content', value: ContentPart[] }`. ([#13171](https://github.com/mastra-ai/mastra/pull/13171))\r\n\r\n  ```ts\r\n  import { createTool } from '@mastra/core/tools';\r\n  import { z } from 'zod';\r\n\r\n  const weatherTool = createTool({\r\n    id: 'weather',\r\n    inputSchema: z.object({ city: z.string() }),\r\n    execute: async ({ city }) => ({\r\n      city,\r\n      temperature: 72,\r\n      conditions: 'sunny',\r\n      humidity: 45,\r\n      raw_sensor_data: [0.12, 0.45, 0.78],\r\n    }),\r\n    // The model sees a concise summary instead of the full JSON\r\n    toModelOutput: output => ({\r\n      type: 'text',\r\n      value: `${output.city}: ${output.temperature}°F, ${output.conditions}`,\r\n    }),\r\n  });\r\n  ```\r\n\r\n- Added `mastra_workspace_grep` workspace tool for regex-based content search across files. This complements the existing semantic search tool by providing direct pattern matching with support for case-insensitive search, file filtering by extension, context lines, and result limiting. ([#13010](https://github.com/mastra-ai/mastra/pull/13010))\r\n\r\n  The tool is automatically available when a workspace has a filesystem configured:\r\n\r\n  ```typescript\r\n  import { Workspace, WORKSPACE_TOOLS } from '@mastra/core/workspace';\r\n  import { LocalFilesystem } from '@mastra/core/workspace';\r\n\r\n  const workspace = new Workspace({\r\n    filesystem: new LocalFilesystem({ basePath: './my-project' }),\r\n  });\r\n\r\n  // The grep tool is auto-injected and available as:\r\n  // WORKSPACE_TOOLS.SEARCH.GREP → 'mastra_workspace_grep'\r\n  ```\r\n\r\n- Removed `outputSchema` from workspace tools to return raw text instead of JSON, optimizing for token usage and LLM performance. Structured metadata that was previously returned in tool output is now emitted as `data-workspace-metadata` chunks via `writer.custom()`, keeping it available for UI consumption without passing it to the LLM. Tools are also extracted into individual files and can be imported directly (e.g. `import { readFileTool } from '@mastra/core/workspace'`). ([#13166](https://github.com/mastra-ai/mastra/pull/13166))\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13127](https://github.com/mastra-ai/mastra/pull/13127))\r\n  - Updated dependency [`hono@^4.11.9` ↗︎](https://www.npmjs.com/package/hono/v/4.11.9) (from `^4.11.3`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13167](https://github.com/mastra-ai/mastra/pull/13167))\r\n  - Updated dependency [`lru-cache@^11.2.6` ↗︎](https://www.npmjs.com/package/lru-cache/v/11.2.6) (from `^11.2.2`, in `dependencies`)\r\n\r\n- Export `AnyWorkspace` type from `@mastra/core/workspace` for accepting any Workspace regardless of generic parameters. Updates Agent and Mastra to use `AnyWorkspace` so workspaces with typed mounts/sandbox (e.g. E2BSandbox, GCSFilesystem) are accepted without type errors. ([#13155](https://github.com/mastra-ai/mastra/pull/13155))\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878))\r\n\r\n- Fixed skill processor tools (skill-activate, skill-search, skill-read-reference, skill-read-script, skill-read-asset) being incorrectly suspended for approval when `requireToolApproval: true` is set. These internal tools now bypass the approval check and execute directly. ([#13160](https://github.com/mastra-ai/mastra/pull/13160))\r\n\r\n- Fixed a bug where `requestContext` metadata was not propagated to child spans. When using `requestContextKeys`, only root spans were enriched with request context values — child spans (e.g. `agent_run` inside a workflow) were missing them. All spans in a trace are now correctly enriched. Fixes #12818. ([#12819](https://github.com/mastra-ai/mastra/pull/12819))\r\n\r\n- Fixed semantic recall search in Mastra Studio returning no results when using non-default embedding dimensions (e.g., fastembed with 384-dim). The SemanticRecall processor now probes the embedder for its actual output dimension, ensuring the vector index name matches between write and read paths. Previously, the processor defaulted to a 1536-dim index name regardless of the actual embedder, causing a mismatch with the dimension-aware index name used by Studio's search. Fixes #13039 ([#13059](https://github.com/mastra-ai/mastra/pull/13059))\r\n\r\n- Fixed `CompositeFilesystem` instructions: agents and tools no longer receive an incorrect claim that files written via workspace tools are accessible at sandbox paths. The instructions now accurately describe only the available mounted filesystems. ([#13221](https://github.com/mastra-ai/mastra/pull/13221))\r\n\r\n- Fixed onChunk callback to receive raw Mastra chunks instead of AI SDK v5 converted chunks for tool results. Also added missing onChunk calls for tool-error chunks and tool-result chunks in mixed-error scenarios. ([#13243](https://github.com/mastra-ai/mastra/pull/13243))\r\n\r\n- Fixed tool execution errors stopping the agentic loop. The agent now continues after tool errors, allowing the model to see the error and retry with corrected arguments. ([#13242](https://github.com/mastra-ai/mastra/pull/13242))\r\n\r\n- Added runtime `requestContext` forwarding to tool executions. ([#13094](https://github.com/mastra-ai/mastra/pull/13094))\r\n\r\n  Tools invoked within agentic workflow steps now receive the caller's `requestContext` — including authenticated API clients, feature flags, and user metadata set by middleware. Runtime `requestContext` is preferred over build-time context when both are available.\r\n\r\n  **Why:** Previously, `requestContext` values were silently dropped in two places: (1) the workflow loop stream created a new empty `RequestContext` instead of forwarding the caller's, and (2) `createToolCallStep` didn't pass `requestContext` in tool options. This aligns both the agent generate/stream and agentic workflow paths with the agent network path, where `requestContext` was already forwarded correctly.\r\n\r\n  **Before:** Tools received an empty `requestContext`, losing all values set by the workflow step.\r\n\r\n  ```ts\r\n  // requestContext with auth data set in workflow step\r\n  requestContext.set('apiClient', authedClient);\r\n  // tool receives empty RequestContext — apiClient is undefined\r\n  ```\r\n\r\n  **After:** Pass `requestContext` via `MastraToolInvocationOptions` and tools receive it.\r\n\r\n  ```ts\r\n  // requestContext with auth data flows through to the tool\r\n  requestContext.set('apiClient', authedClient);\r\n  // tool receives the same RequestContext — apiClient is available\r\n  ```\r\n\r\n  Fixes #13088\r\n\r\n- Fixed tsc out-of-memory crash caused by step-schema.d.ts expanding to 50k lines. Added explicit type annotations to all exported Zod schema constants, reducing declaration output from 49,729 to ~500 lines without changing runtime behavior. ([#13229](https://github.com/mastra-ai/mastra/pull/13229))\r\n\r\n- Fixed TypeScript type generation hanging or running out of memory when packages depend on @mastra/core tool types. Changed ZodLikeSchema from a nominal union type to structural typing, which prevents TypeScript from performing deep comparisons of zod v3/v4 type trees during generic inference. ([#13239](https://github.com/mastra-ai/mastra/pull/13239))\r\n\r\n- Fixed tool execution errors being emitted as `tool-result` instead of `tool-error` in fullStream. Previously, when a tool's execute function threw an error, the error was caught and returned as a value, causing the stream to emit a `tool-result` chunk containing the error object. Now errors are properly propagated, so the stream emits `tool-error` chunks, allowing consumers (including the `@mastra/ai-sdk` conversion pipeline) to correctly distinguish between successful tool results and failed tool executions. Fixes #13123. ([#13147](https://github.com/mastra-ai/mastra/pull/13147))\r\n\r\n- Fixed thread title not being generated for pre-created threads. When threads were created before starting a conversation (e.g., for URL routing or storing metadata), the title stayed as a placeholder because the title generation condition checked whether the thread existed rather than whether it had a title. Threads created without an explicit title now get an empty title instead of a placeholder, and title generation fires whenever a thread has no title. Resolves #13145. ([#13151](https://github.com/mastra-ai/mastra/pull/13151))\r\n\r\n- Fixed `inputData` in `dowhile` and `dountil` loop condition functions to be properly typed as the step's output schema instead of `any`. This means you no longer need to manually cast `inputData` in your loop conditions — TypeScript will now correctly infer the type from your step's `outputSchema`. ([#12977](https://github.com/mastra-ai/mastra/pull/12977))\r\n\r\n- Migrated MastraCode from the prototype harness to the generic CoreHarness from @mastra/core. The createMastraCode function is now fully configurable with optional parameters for modes, subagents, storage, tools, and more. Removed the deprecated prototype harness implementation. ([#13245](https://github.com/mastra-ai/mastra/pull/13245))\r\n\r\n- Fixed the writer object being undefined in processOutputStream, allowing output processors to emit custom events to the stream during chunk processing. This enables use cases like streaming moderation results back to the client. ([#13056](https://github.com/mastra-ai/mastra/pull/13056))\r\n\r\n- Fixed sub-agent tool approval resume flow. When a sub-agent tool required approval and was approved, the agent would restart from scratch instead of resuming, causing an infinite loop. The resume data is now correctly passed through for agent tools so they properly resume after approval. ([#13241](https://github.com/mastra-ai/mastra/pull/13241))\r\n\r\n- Dataset schemas now appear in the Edit Dataset dialog. Previously the `inputSchema` and `groundTruthSchema` fields were not passed to the dialog, so editing a dataset always showed empty schemas. ([#13175](https://github.com/mastra-ai/mastra/pull/13175))\r\n\r\n  Schema edits in the JSON editor no longer cause the cursor to jump to the top of the field. Typing `{\"type\": \"object\"}` in the schema editor now behaves like a normal text input instead of resetting on every keystroke.\r\n\r\n  Validation errors are now surfaced when updating a dataset schema that conflicts with existing items. For example, adding a `required: [\"name\"]` constraint when existing items lack a `name` field now shows \"2 existing item(s) fail validation\" in the dialog instead of silently dropping the error.\r\n\r\n  Disabling a dataset schema from the Studio UI now correctly clears it. Previously the server converted `null` (disable) to `undefined` (no change), so the old schema persisted and validation continued.\r\n\r\n  Workflow schemas fetched via `client.getWorkflow().getSchema()` are now correctly parsed. The server serializes schemas with `superjson`, but the client was using plain `JSON.parse`, yielding a `{json: {...}}` wrapper instead of the actual JSON Schema object.\r\n\r\n- Fixed network mode messages missing metadata for filtering. All internal network messages (sub-agent results, tool execution results, workflow results) now include `metadata.mode: 'network'` in their content metadata, making it possible to filter them from user-facing messages without parsing JSON content. Previously, consumers had to parse the JSON body of each message to check for `isNetwork: true` — now they can simply check `message.content.metadata.mode === 'network'`. Fixes #13106. ([#13144](https://github.com/mastra-ai/mastra/pull/13144))\r\n\r\n- Fixed sub-agent memory context pollution that caused 'Exhausted all fallback models' errors when using Observational Memory with sub-agents. The parent agent's memory context is now preserved across sub-agent tool execution. ([#13051](https://github.com/mastra-ai/mastra/pull/13051))\r\n\r\n- Fixed CompositeAuth losing public and protected route configurations from underlying auth providers. Routes marked as public or protected now work correctly when deployed to Mastra Cloud. ([#13086](https://github.com/mastra-ai/mastra/pull/13086))\r\n\r\n- Trimmed the agent experiment result `output` to only persist relevant fields instead of the entire `FullOutput` blob. The stored output now contains: `text`, `object`, `toolCalls`, `toolResults`, `sources`, `files`, `usage`, `reasoningText`, `traceId`, and `error`. ([#13158](https://github.com/mastra-ai/mastra/pull/13158))\r\n\r\n  Dropped fields like `steps`, `response`, `messages`, `rememberedMessages`, `request`, `providerMetadata`, `warnings`, `scoringData`, `suspendPayload`, and other provider/debugging internals that were duplicated elsewhere or not useful for experiment evaluation.\r\n\r\n- Fixed `.branch()` condition receiving `undefined` inputData when resuming a suspended nested workflow after `.map()`. ([#13055](https://github.com/mastra-ai/mastra/pull/13055))\r\n\r\n  Previously, when a workflow used `.map()` followed by `.branch()` and a nested workflow inside the branch called `suspend()`, resuming would fail with `TypeError: Cannot read properties of undefined` because the branch conditions were unnecessarily re-evaluated with stale data.\r\n\r\n  Resume now skips condition re-evaluation for `.branch()` entries and goes directly to the correct suspended branch, matching the existing behavior for `.parallel()` entries.\r\n\r\n  Fixes #12982\r\n\r\n- Updated dependencies [[`1415bcd`](https://github.com/mastra-ai/mastra/commit/1415bcd894baba03e07640b3b1986037db49559d)]:\r\n  - @mastra/schema-compat@1.1.1\r\n\r\n### [@mastra/codemod@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/codemod@1.0.3/packages/codemod/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- Update internal dependency `@clack/prompts` to v1 ([#13095](https://github.com/mastra-ai/mastra/pull/13095))\r\n\r\n### [@mastra/deployer@1.5.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.5.0/packages/deployer/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13127](https://github.com/mastra-ai/mastra/pull/13127))\r\n  - Updated dependency [`hono@^4.11.9` ↗︎](https://www.npmjs.com/package/hono/v/4.11.9) (from `^4.11.3`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13152](https://github.com/mastra-ai/mastra/pull/13152))\r\n  - Updated dependency [`@babel/core@^7.29.0` ↗︎](https://www.npmjs.com/package/@babel/core/v/7.29.0) (from `^7.28.6`, in `dependencies`)\r\n  - Updated dependency [`@babel/preset-typescript@^7.28.5` ↗︎](https://www.npmjs.com/package/@babel/preset-typescript/v/7.28.5) (from `^7.27.1`, in `dependencies`)\r\n\r\n- Fixes `mastra build` on Windows that incorrectly added spurious npm dependencies from monorepo directory names. ([#13035](https://github.com/mastra-ai/mastra/pull/13035))\r\n\r\n  Workspace paths are normalized to use forward slashes so import-path comparisons match Rollup on Windows.\r\n\r\n  Fixes https://github.com/mastra-ai/mastra/issues/13022\r\n\r\n- Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`84fb4bf`](https://github.com/mastra-ai/mastra/commit/84fb4bfab048527db4474375842abba73056af4d), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:\r\n  - @mastra/core@1.5.0\r\n  - @mastra/server@1.5.0\r\n\r\n### [@mastra/evals@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/evals@1.1.2/packages/evals/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#12998](https://github.com/mastra-ai/mastra/pull/12998))\r\n  - Updated dependency [`compromise@^14.14.5` ↗︎](https://www.npmjs.com/package/compromise/v/14.14.5) (from `^14.14.4`, in `dependencies`)\r\n- Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:\r\n  - @mastra/core@1.5.0\r\n\r\n### [@mastra/loggers@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/loggers@1.0.2/packages/loggers/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13237](https://github.com/mastra-ai/mastra/pull/13237))\r\n  - Updated dependency [`pino-pretty@^13.1.3` ↗︎](https://www.npmjs.com/package/pino-pretty/v/13.1.3) (from `^13.0.0`, in `dependencies`)\r\n- Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:\r\n  - @mastra/core@1.5.0\r\n\r\n### [@mastra/mcp-docs-server@1.1.3](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.3/packages/mcp-docs-server/CHANGELOG.md)\r\n#### Patch Changes\r\n\r\n- Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:\r\n  - @mastra/core@1.5.0\r\n\r\n### [@mastra/memory@1.4.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.4.0/packages/memory/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Add `instruction` property to observational memory configs ([#13240](https://github.com/mastra-ai/mastra/pull/13240))\r\n\r\n  Adds optional `instruction` field to `ObservationConfig` and `ReflectionConfig` that allows users to extend the built-in observer/reflector system prompts with custom guidance.\r\n\r\n  Example:\r\n\r\n  ```typescript\r\n  const memory = new ObservationalMemory({\r\n    model: openai('gpt-4'),\r\n    observation: {\r\n      instruction: 'Focus on user preferences about food and dietary restrictions.',\r\n    },\r\n    reflection: {\r\n      instruction: 'Prioritize consolidating health-related observations together.',\r\n    },\r\n  });\r\n  ```\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13167](https://github.com/mastra-ai/mastra/pull/13167))\r\n  - Updated dependency [`lru-cache@^11.2.6` ↗︎](https://www.npmjs.com/package/lru-cache/v/11.2.6) (from `^11.2.2`, in `dependencies`)\r\n\r\n- Reflection retry logic now attempts compression up to level 3, so reflections more consistently shrink to meet token limits ([#13170](https://github.com/mastra-ai/mastra/pull/13170))\r\n  - Default target compression reduced from 50% to 25% (`sliceTokenEstimate * 0.75`), making automatic trimming less aggressive\r\n  - `tokensBuffered` marker now reports the actual slice size rather than total observation tokens, giving accurate size monitoring\r\n\r\n  These changes reduce failed reflections and make reported metrics match what is actually being processed.\r\n\r\n- Fixed a bug where the OM context window would jump to extremely high token counts (e.g. 16k → 114k) after observation activation. Two issues were causing this: ([#13070](https://github.com/mastra-ai/mastra/pull/13070))\r\n  - **Token counter included OM metadata parts**: `data-om-activation` marker parts (which contain the full observation text, up to 150k+ characters) were being counted as message tokens when loaded from the database. These parts are never sent to the LLM and are now skipped during token counting.\r\n  - **Marker duplication on messages**: Activation markers were being added to assistant messages twice — once by the AI SDK stream and once by the persistence layer — doubling every marker and compounding the token inflation. Both `persistMarkerToMessage` and `persistMarkerToStorage` now deduplicate by `type + cycleId` before adding a marker.\r\n\r\n- Fixed thread title not being generated for pre-created threads. When threads were created before starting a conversation (e.g., for URL routing or storing metadata), the title stayed as a placeholder because the title generation condition checked whether the thread existed rather than whether it had a title. Threads created without an explicit title now get an empty title instead of a placeholder, and title generation fires whenever a thread has no title. Resolves #13145. ([#13151](https://github.com/mastra-ai/mastra/pull/13151))\r\n\r\n- Fixed sub-agent memory context pollution that caused 'Exhausted all fallback models' errors when using Observational Memory with sub-agents. The parent agent's memory context is now preserved across sub-agent tool execution. ([#13051](https://github.com/mastra-ai/mastra/pull/13051))\r\n\r\n- Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`1415bcd`](https://github.com/mastra-ai/mastra/commit/1415bcd894baba03e07640b3b1986037db49559d), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:\r\n  - @mastra/core@1.5.0\r\n  - @mastra/schema-compat@1.1.1\r\n\r\n### [@mastra/playground-ui@12.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@12.0.0/packages/playground-ui/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Various improvements for ongoing project ([#13040](https://github.com/mastra-ai/mastra/pull/13040))\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#12921](https://github.com/mastra-ai/mastra/pull/12921))\r\n  - Updated dependency [`@assistant-ui/react@^0.12.10` ↗︎](https://www.npmjs.com/package/@assistant-ui/react/v/0.12.10) (from `^0.12.3`, in `dependencies`)\r\n  - Updated dependency [`@assistant-ui/react-markdown@^0.12.3` ↗︎](https://www.npmjs.com/package/@assistant-ui/react-markdown/v/0.12.3) (from `^0.12.1`, in `dependencies`)\r\n  - Updated dependency [`@assistant-ui/react-syntax-highlighter@^0.12.3` ↗︎](https://www.npmjs.com/package/@assistant-ui/react-syntax-highlighter/v/0.12.3) (from `^0.12.1`, in `dependencies`)\r\n\r\n- dependencies updates: ([#13100](https://github.com/mastra-ai/mastra/pull/13100))\r\n  - Updated dependency [`@codemirror/view@^6.39.14` ↗︎](https://www.npmjs.com/package/@codemirror/view/v/6.39.14) (from `^6.39.13`, in `dependencies`)\r\n\r\n- Fixed React error `#310` crash when using observational memory in Mastra Studio. The chat view would crash when observation markers appeared alongside regular tool calls during streaming. ([#13216](https://github.com/mastra-ai/mastra/pull/13216))\r\n\r\n- Fixed dragged column appearing offset from cursor when mapping CSV columns in dataset import dialog ([#13176](https://github.com/mastra-ai/mastra/pull/13176))\r\n\r\n- Fixed schema form to apply changes only on Save click instead of every keystroke. Removed AgentPromptExperimentProvider in favor of inline prompt rendering. Switched hooks to use merged request context for proper request-scoped data fetching. ([#13034](https://github.com/mastra-ai/mastra/pull/13034))\r\n\r\n- Added a \"Try to connect\" button in the MCP client sidebar to preview available tools before creating. Fixed SSE response parsing for MCP servers returning event streams. ([#13093](https://github.com/mastra-ai/mastra/pull/13093))\r\n\r\n- Fix dataset import creating a new version per item. CSV and JSON import dialogs now use the batch insert endpoint so all imported items land on a single version. ([#13214](https://github.com/mastra-ai/mastra/pull/13214))\r\n\r\n- Fix experiment result detail panel showing output data under \"Input\" label, add missing Output section, and add Input column to experiment results list table. ([#13165](https://github.com/mastra-ai/mastra/pull/13165))\r\n\r\n- Updated style of Button and Select experimental variants ([#13186](https://github.com/mastra-ai/mastra/pull/13186))\r\n\r\n- Added requestContext support to listScorers for request-scoped scorer resolution ([#13034](https://github.com/mastra-ai/mastra/pull/13034))\r\n\r\n- Added mount picker for skill installation when multiple filesystem mounts are available. Skills table and detail page now show skill paths and mount labels. ([#13031](https://github.com/mastra-ai/mastra/pull/13031))\r\n\r\n- Removed unused Dataset Item Edit Dialog ([#13199](https://github.com/mastra-ai/mastra/pull/13199))\r\n\r\n- Hide Dataset Item History panel when item is edited ([#13195](https://github.com/mastra-ai/mastra/pull/13195))\r\n\r\n- Dataset schemas now appear in the Edit Dataset dialog. Previously the `inputSchema` and `groundTruthSchema` fields were not passed to the dialog, so editing a dataset always showed empty schemas. ([#13175](https://github.com/mastra-ai/mastra/pull/13175))\r\n\r\n  Schema edits in the JSON editor no longer cause the cursor to jump to the top of the field. Typing `{\"type\": \"object\"}` in the schema editor now behaves like a normal text input instead of resetting on every keystroke.\r\n\r\n  Validation errors are now surfaced when updating a dataset schema that conflicts with existing items. For example, adding a `required: [\"name\"]` constraint when existing items lack a `name` field now shows \"2 existing item(s) fail validation\" in the dialog instead of silently dropping the error.\r\n\r\n  Disabling a dataset schema from the Studio UI now correctly clears it. Previously the server converted `null` (disable) to `undefined` (no change), so the old schema persisted and validation continued.\r\n\r\n  Workflow schemas fetched via `client.getWorkflow().getSchema()` are now correctly parsed. The server serializes schemas with `superjson`, but the client was using plain `JSON.parse`, yielding a `{json: {...}}` wrapper instead of the actual JSON Schema object.\r\n\r\n- Fixed \"Tried to unmount a fiber that is already unmounted\" error in the playground agent chat. Switching threads rapidly or creating new threads no longer causes this console error. ([#13182](https://github.com/mastra-ai/mastra/pull/13182))\r\n\r\n- Updated visuals of Dataset Items List empty state ([#13203](https://github.com/mastra-ai/mastra/pull/13203))\r\n\r\n- Updated workspace tool badges for execute command and list files tools. Execute command badge now shows running state for silent commands and correctly scopes output to individual tool calls during parallel execution. ([#13166](https://github.com/mastra-ai/mastra/pull/13166))\r\n\r\n- Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`55a0ab1`](https://github.com/mastra-ai/mastra/commit/55a0ab13187b3c656247a1d9bfa715077af6e422), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`1415bcd`](https://github.com/mastra-ai/mastra/commit/1415bcd894baba03e07640b3b1986037db49559d), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`55a0ab1`](https://github.com/mastra-ai/mastra/commit/55a0ab13187b3c656247a1d9bfa715077af6e422), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`ec36c0c`](https://github.com/mastra-ai/mastra/commit/ec36c0cb117bc8c092d14605bcae092411fe3906), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:\r\n  - @mastra/core@1.5.0\r\n  - @mastra/react@0.2.4\r\n  - @mastra/client-js@1.5.0\r\n  - @mastra/schema-compat@1.1.1\r\n  - @mastra/ai-sdk@1.0.5\r\n\r\n### [@mastra/schema-compat@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/schema-compat@1.1.1/packages/schema-compat/CHANGELOG.md)\r\n\r\n#### Patch Changes\r\n\r\n- The `zodToJsonSchema` function now reliably detects and routes Zod v3 vs v4 schemas regardless of which version the ambient `zod` import resolves to. Previously, the detection relied on checking `'toJSONSchema' in z` against the ambient `z` import, which could resolve to either v3 or v4 depending on the environment (monorepo vs global install). This caused v3 schemas to be passed to v4's `toJSONSchema()` (crashing with \"Cannot read properties of undefined (reading 'def')\") or v4 schemas to be passed to the v3 converter (producing schemas missing the `type` field).\r\n\r\n  The fix explicitly imports `z as zV4` from `zod/v4` and routes based on the schema's own `_zod` property, making the behavior environment-independent.\r\n\r\n  Also migrates all mastracode tool files from `zod/v3` to `zod` imports now that the schema-compat fix supports both versions correctly.\r\n\r\n### [@mastra/server@1.5.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.5.0/packages/server/CHANGELOG.md)\r\n\r\n#### Minor Changes\r\n\r\n- Added workspace and skill storage domains with full CRUD, versioning, and implementations across LibSQL, Postgres, and MongoDB. ([#13156](https://github.com/mastra-ai/mastra/pull/13156))\r\n\r\n#### Patch Changes\r\n\r\n- dependencies updates: ([#13127](https://github.com/mastra-ai/mastra/pull/13127))\r\n  - Updated dependency [`hono@^4.11.9` ↗︎](https://www.npmjs.com/package/hono/v/4.11.9) (from `^4.11.3`, in `dependencies`)\r\n\r\n- Use dynamic import in server for stored skills related feature. ([#13217](https://github.com/mastra-ai/mastra/pull/13217))\r\n\r\n- Register `mastra_workspace_grep` tool in studio workspace tools listing so it appears in the agent metadata UI when a workspace has a filesystem configured. ([#13010](https://github.com/mastra-ai/mastra/pull/13010))\r\n\r\n- Fixed skill removal for glob-discovered skills. The remove handler now looks up a skill's actual discovered path instead of assuming the hardcoded `.agents/skills` directory, so skills discovered via glob patterns can be correctly deleted. ([#13023](https://github.com/mastra-ai/mastra/pull/13023))\r\n\r\n- Dataset schemas now appear in the Edit Dataset dialog. Previously the `inputSchema` and `groundTruthSchema` fields were not passed to the dialog, so editing a dataset always showed empty schemas. ([#13175](https://github.com/mastra-ai/mastra/pull/13175))\r\n\r\n- Added mount-aware skill installation for CompositeFilesystem workspaces. The install, remove, and update handlers now resolve the correct mount when multiple filesystem mounts are configured. Workspace info endpoint now includes mount metadata when available. ([#13031](https://github.com/mastra-ai/mastra/pull/13031))\r\n\r\n- Updated dependencies [[`252580a`](https://github.com/mastra-ai/mastra/commit/252580a71feb0e46d0ccab04a70a79ff6a2ee0ab), [`f8e819f`](https://github.com/mastra-ai/mastra/commit/f8e819fabdfdc43d2da546a3ad81ba23685f603d), [`5c75261`](https://github.com/mastra-ai/mastra/commit/5c7526120d936757d4ffb7b82232e1641ebd45cb), [`e27d832`](https://github.com/mastra-ai/mastra/commit/e27d83281b5e166fd63a13969689e928d8605944), [`e37ef84`](https://github.com/mastra-ai/mastra/commit/e37ef8404043c94ca0c8e35ecdedb093b8087878), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`10cf521`](https://github.com/mastra-ai/mastra/commit/10cf52183344743a0d7babe24cd24fd78870c354), [`efdb682`](https://github.com/mastra-ai/mastra/commit/efdb682887f6522149769383908f9790c188ab88), [`0dee7a0`](https://github.com/mastra-ai/mastra/commit/0dee7a0ff4c2507e6eb6e6ee5f9738877ebd4ad1), [`04c2c8e`](https://github.com/mastra-ai/mastra/commit/04c2c8e888984364194131aecb490a3d6e920e61), [`02dc07a`](https://github.com/mastra-ai/mastra/commit/02dc07acc4ad42d93335825e3308f5b42266eba2), [`bb7262b`](https://github.com/mastra-ai/mastra/commit/bb7262b7c0ca76320d985b40510b6ffbbb936582), [`cf1c6e7`](https://github.com/mastra-ai/mastra/commit/cf1c6e789b131f55638fed52183a89d5078b4876), [`5ffadfe`](https://github.com/mastra-ai/mastra/commit/5ffadfefb1468ac2612b20bb84d24c39de6961c0), [`1e1339c`](https://github.com/mastra-ai/mastra/commit/1e1339cc276e571a48cfff5014487877086bfe68), [`d03df73`](https://github.com/mastra-ai/mastra/commit/d03df73f8fe9496064a33e1c3b74ba0479bf9ee6), [`79b8f45`](https://github.com/mastra-ai/mastra/commit/79b8f45a6767e1a5c3d56cd3c5b1214326b81661), [`9bbf08e`](https://github.com/mastra-ai/mastra/commit/9bbf08e3c20731c79dea13a765895b9fcf29cbf1), [`0a25952`](https://github.com/mastra-ai/mastra/commit/0a259526b5e1ac11e6efa53db1f140272962af2d), [`ffa5468`](https://github.com/mastra-ai/mastra/commit/ffa546857fc4821753979b3a34e13b4d76fbbcd4), [`3264a04`](https://github.com/mastra-ai/mastra/commit/3264a04e30340c3c5447433300a035ea0878df85), [`6fdd3d4`](https://github.com/mastra-ai/mastra/commit/6fdd3d451a07a8e7e216c62ac364f8dd8e36c2af), [`088d9ba`](https://github.com/mastra-ai/mastra/commit/088d9ba2577518703c52b0dccd617178d9ee6b0d), [`74fbebd`](https://github.com/mastra-ai/mastra/commit/74fbebd918a03832a2864965a8bea59bf617d3a2), [`aea6217`](https://github.com/mastra-ai/mastra/commit/aea621790bfb2291431b08da0cc5e6e150303ae7), [`b6a855e`](https://github.com/mastra-ai/mastra/commit/b6a855edc056e088279075506442ba1d6fa6def9), [`ae408ea`](https://github.com/mastra-ai/mastra/commit/ae408ea7128f0d2710b78d8623185198e7cb19c1), [`17e942e`](https://github.com/mastra-ai/mastra/commit/17e942eee2ba44985b1f807e6208cdde672f82f9), [`2015cf9`](https://github.com/mastra-ai/mastra/commit/2015cf921649f44c3f5bcd32a2c052335f8e49b4), [`7ef454e`](https://github.com/mastra-ai/mastra/commit/7ef454eaf9dcec6de60021c8f42192052dd490d6), [`2be1d99`](https://github.com/mastra-ai/mastra/commit/2be1d99564ce79acc4846071082bff353035a87a), [`2708fa1`](https://github.com/mastra-ai/mastra/commit/2708fa1055ac91c03e08b598869f6b8fb51fa37f), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ba74aef`](https://github.com/mastra-ai/mastra/commit/ba74aef5716142dbbe931351f5243c9c6e4128a9), [`ec53e89`](https://github.com/mastra-ai/mastra/commit/ec53e8939c76c638991e21af762e51378eff7543), [`9b5a8cb`](https://github.com/mastra-ai/mastra/commit/9b5a8cb13e120811b0bf14140ada314f1c067894), [`607e66b`](https://github.com/mastra-ai/mastra/commit/607e66b02dc7f531ee37799f3456aa2dc0ca7ac5), [`a215d06`](https://github.com/mastra-ai/mastra/commit/a215d06758dcf590eabfe0b7afd4ae39bdbf082c), [`6909c74`](https://github.com/mastra-ai/mastra/commit/6909c74a7781e0447d475e9dbc1dc871b700f426), [`192438f`](https://github.com/mastra-ai/mastra/commit/192438f8a90c4f375e955f8ff179bf8dc6821a83)]:\r\n  - @mastra/core@1.5.0","publishedAt":"2026-02-20T09:07:26.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.5.0","media":[]},{"id":"rel_buYQdJJsDXKsoxSFN4EvY","version":"@mastra/core@1.4.0","title":"February 13, 2026","summary":"## Highlights\r\n\r\n### Datasets & Experiments (core + server + Studio UI)\r\n\r\nMastra now has first-class evaluation primitives: versioned Datasets (with ...","content":"## Highlights\r\n\r\n### Datasets & Experiments (core + server + Studio UI)\r\n\r\nMastra now has first-class evaluation primitives: versioned Datasets (with JSON Schema validation and SCD-2 item versioning) and Experiments that run agents against datasets with configurable scorers and result tracking. This ships end-to-end across `@mastra/core` APIs, new `/datasets` REST endpoints in `@mastra/server`, and a full Studio UI for managing datasets, triggering experiments, and comparing results.\r\n\r\n### Workspace & Filesystem Lifecycle + Safer Filesystem Introspection\r\n\r\nWorkspace lifecycle interfaces were split into `FilesystemLifecycle` and `SandboxLifecycle`, and `MastraFilesystem` now supports `onInit`/`onDestroy` callbacks. Filesystem path resolution and metadata were improved (generic `FilesystemInfo<TMetadata>`, provider-specific metadata, safer instructions for uncontained filesystems) and filesystem info is now exposed via the workspaces API response.\r\n\r\n### Workflow foreach Progress Streaming\r\n\r\nWorkflows now emit a `workflow-step-progress` stream event for `foreach` steps (completed/total, current index, per-iteration status/output), supported by both execution engines. Studio renders real-time progress bars, and `@mastra/react` watch hooks now accumulate `foreachProgress` into step state.\r\n\r\n### Breaking Changes\r\n\r\n- `@mastra/memory`: `observe()` now takes a single object parameter (e.g., `observe({ threadId, resourceId })`) instead of positional arguments.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.4.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.4.0/packages/core/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added Datasets and Experiments to core. Datasets let you store and version collections of test inputs with JSON Schema validation. Experiments let you run AI outputs against dataset items with configurable scorers to track quality over time. ([#12747](https://github.com/mastra-ai/mastra/pull/12747))\r\n\r\n  **New exports from `@mastra/core/datasets`:**\r\n  - `DatasetsManager` — orchestrates dataset CRUD, item versioning (SCD-2), and experiment execution\r\n  - `Dataset` — single-dataset handle for adding items and running experiments\r\n\r\n  **New storage domains:**\r\n  - `DatasetsStorage` — abstract base class for dataset persistence (datasets, items, versions)\r\n  - `ExperimentsStorage` — abstract base class for experiment lifecycle and result tracking\r\n\r\n  **Example:**\r\n\r\n  ```ts\r\n  import { Mastra } from \"@mastra/core\";\r\n\r\n  const mastra = new Mastra({\r\n    /* ... */\r\n  });\r\n\r\n  const dataset = await mastra.datasets.create({ name: \"my-eval-set\" });\r\n  await dataset.addItems([{ input: { query: \"What is 2+2?\" }, groundTruth: { answer: \"4\" } }]);\r\n\r\n  const result = await dataset.runExperiment({\r\n    targetType: \"agent\",\r\n    targetId: \"my-agent\",\r\n    scorerIds: [\"accuracy\"]\r\n  });\r\n  ```\r\n\r\n- Fix LocalFilesystem.resolvePath handling of absolute paths and improve filesystem info. ([#12971](https://github.com/mastra-ai/mastra/pull/12971))\r\n  - Fix absolute path resolution: paths were incorrectly stripped of leading slashes and resolved relative to basePath, causing PermissionError for valid paths (e.g. skills processor accessing project-local skills directories).\r\n  - Make `FilesystemInfo` generic (`FilesystemInfo<TMetadata>`) so providers can type their metadata.\r\n  - Move provider-specific fields (`basePath`, `contained`) to metadata in LocalFilesystem.getInfo().\r\n  - Update LocalFilesystem.getInstructions() for uncontained filesystems to warn agents against listing /.\r\n  - Use FilesystemInfo type in WorkspaceInfo instead of duplicated inline shape.\r\n\r\n- Add `workflow-step-progress` stream event for foreach workflow steps. Each iteration emits a progress event with `completedCount`, `totalCount`, `currentIndex`, `iterationStatus` (`success` | `failed` | `suspended`), and optional `iterationOutput`. Both the default and evented execution engines emit these events. ([#12838](https://github.com/mastra-ai/mastra/pull/12838))\r\n\r\n  The Mastra Studio UI now renders a progress bar with an N/total counter on foreach nodes, updating in real time as iterations complete:\r\n\r\n  ```ts\r\n  // Consuming progress events from the workflow stream\r\n  const run = workflow.createRun();\r\n  const result = await run.start({ inputData });\r\n  const stream = result.stream;\r\n\r\n  for await (const chunk of stream) {\r\n    if (chunk.type === \"workflow-step-progress\") {\r\n      console.log(`${chunk.payload.completedCount}/${chunk.payload.totalCount} - ${chunk.payload.iterationStatus}`);\r\n    }\r\n  }\r\n  ```\r\n\r\n  **MCP Client Storage**\r\n\r\n  New storage domain for persisting MCP client configurations with CRUD operations. Each MCP client can contain multiple servers with independent tool selection:\r\n\r\n  ```ts\r\n  // Store an MCP client with multiple servers\r\n  await storage.mcpClients.create({\r\n    id: \"my-mcp\",\r\n    name: \"My MCP Client\",\r\n    servers: {\r\n      \"github-server\": { url: \"https://mcp.github.com/sse\" },\r\n      \"slack-server\": { url: \"https://mcp.slack.com/sse\" }\r\n    }\r\n  });\r\n  ```\r\n\r\n  LibSQL, PostgreSQL, and MongoDB storage adapters all implement the new MCP client domain.\r\n\r\n  **ToolProvider Interface**\r\n\r\n  New `ToolProvider` interface at `@mastra/core/tool-provider` enables third-party tool catalog integration (e.g., Composio, Arcade AI):\r\n\r\n  ```ts\r\n  import type { ToolProvider } from '@mastra/core/tool-provider';\r\n\r\n  # Providers implement: listToolkits(), listTools(), getToolSchema(), resolveTools()\r\n  ```\r\n\r\n  `resolveTools()` receives `requestContext` from the current request, enabling per-user API keys and credentials in multi-tenant setups:\r\n\r\n  ```ts\r\n  const tools = await provider.resolveTools(slugs, configs, {\r\n    requestContext: { apiKey: \"user-specific-key\", userId: \"tenant-123\" }\r\n  });\r\n  ```\r\n\r\n  **Tool Selection Semantics**\r\n\r\n  Both `mcpClients` and `integrationTools` on stored agents follow consistent three-state selection:\r\n  - `{ tools: undefined }` — provider registered, no tools selected\r\n  - `{ tools: {} }` — all tools from provider included\r\n  - `{ tools: { 'TOOL_SLUG': { description: '...' } } }` — specific tools with optional overrides\r\n\r\n- **Added** ([#12764](https://github.com/mastra-ai/mastra/pull/12764))\r\n  Added a `suppressFeedback` option to hide internal completion‑check messages from the stream. This keeps the conversation history clean while leaving existing behavior unchanged by default.\r\n\r\n  **Example**\r\n  Before:\r\n\r\n  ```ts\r\n  const agent = await mastra.createAgent({\r\n    completion: { validate: true }\r\n  });\r\n  ```\r\n\r\n  After:\r\n\r\n  ```ts\r\n  const agent = await mastra.createAgent({\r\n    completion: { validate: true, suppressFeedback: true }\r\n  });\r\n  ```\r\n\r\n- **Split workspace lifecycle interfaces** ([#12978](https://github.com/mastra-ai/mastra/pull/12978))\r\n\r\n  The shared `Lifecycle` interface has been split into provider-specific types that match actual usage:\r\n  - `FilesystemLifecycle` — two-phase: `init()` → `destroy()`\r\n  - `SandboxLifecycle` — three-phase: `start()` → `stop()` → `destroy()`\r\n\r\n  The base `Lifecycle` type is still exported for backward compatibility.\r\n\r\n  **Added `onInit` / `onDestroy` callbacks to `MastraFilesystem`**\r\n\r\n  The `MastraFilesystem` base class now accepts optional lifecycle callbacks via `MastraFilesystemOptions`, matching the existing `onStart` / `onStop` / `onDestroy` callbacks on `MastraSandbox`.\r\n\r\n  ```ts\r\n  const fs = new LocalFilesystem({\r\n    basePath: \"./data\",\r\n    onInit: ({ filesystem }) => {\r\n      console.log(\"Filesystem ready:\", filesystem.status);\r\n    },\r\n    onDestroy: ({ filesystem }) => {\r\n      console.log(\"Cleaning up...\");\r\n    }\r\n  });\r\n  ```\r\n\r\n  `onInit` fires after the filesystem reaches `ready` status (non-fatal on failure). `onDestroy` fires before the filesystem is torn down.\r\n\r\n### Patch Changes\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b))\r\n\r\n- Fixed Anthropic API rejection errors caused by empty text content blocks in assistant messages. During streaming with web search citations, empty text parts could be persisted to the database and then rejected by Anthropic's API with 'text content blocks must be non-empty' errors. The fix filters out these empty text blocks before persistence, ensuring stored conversation history remains valid for Anthropic models. Fixes `#12553`. ([#12711](https://github.com/mastra-ai/mastra/pull/12711))\r\n\r\n- Improve error messages when processor workflows or model fallback retries fail. ([#12970](https://github.com/mastra-ai/mastra/pull/12970))\r\n  - Include the last error message and cause when all fallback models are exhausted, instead of the generic \"Exhausted all fallback models\" message.\r\n  - Extract error details from failed workflow results and individual step failures when a processor workflow fails, instead of just reporting \"failed with status: failed\".\r\n\r\n- Fixed tool-not-found errors crashing the agentic loop. When a model hallucinates a tool name (e.g., Gemini 3 Flash adding prefixes like `creating:view` instead of `view`), the error is now returned to the model as a tool result instead of throwing. This allows the model to self-correct and retry with the correct tool name on the next turn. The error message includes available tool names to help the model recover. Fixes #12895. ([#12961](https://github.com/mastra-ai/mastra/pull/12961))\r\n\r\n- Fixed structured output failing with Anthropic models when memory is enabled. The error \"assistant message in the final position\" occurred because the prompt sent to Anthropic ended with an assistant-role message, which is not supported when using output format. Resolves https://github.com/mastra-ai/mastra/issues/12800 ([#12835](https://github.com/mastra-ai/mastra/pull/12835))\r\n\r\n### [@mastra/codemod@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/codemod@1.0.2/packages/codemod/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- dependencies updates: ([#12989](https://github.com/mastra-ai/mastra/pull/12989))\r\n  - Updated dependency [`commander@^14.0.3` ↗︎](https://www.npmjs.com/package/commander/v/14.0.3) (from `^14.0.2`, in `dependencies`)\r\n\r\n### [@mastra/deployer@1.4.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.4.0/packages/deployer/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`5fbb1a8`](https://github.com/mastra-ai/mastra/commit/5fbb1a8f68a5953b4c7a60dd6d081c33111223f4), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`6297864`](https://github.com/mastra-ai/mastra/commit/62978644cd93b0782eae75c9f202fe846e7802d7), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`d87e96b`](https://github.com/mastra-ai/mastra/commit/d87e96b63cb47f0fe87d9147b915ebd0509f4ca3), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428)]:\r\n  - @mastra/core@1.4.0\r\n  - @mastra/server@1.4.0\r\n\r\n### [@mastra/mcp-docs-server@1.1.2](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.2/packages/mcp-docs-server/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:\r\n  - @mastra/core@1.4.0\r\n\r\n### [@mastra/memory@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.3.0/packages/memory/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- @mastra/opencode: Add opencode plugin for Observational Memory integration ([#12925](https://github.com/mastra-ai/mastra/pull/12925))\r\n\r\n  Added standalone `observe()` API that accepts external messages directly, so integrations can trigger observation without duplicating messages into Mastra's storage.\r\n\r\n  **New exports:**\r\n  - `ObserveHooks` — lifecycle callbacks (`onObservationStart`, `onObservationEnd`, `onReflectionStart`, `onReflectionEnd`) for hooking into observation/reflection cycles\r\n  - `OBSERVATION_CONTEXT_PROMPT` — preamble that introduces the observations block\r\n  - `OBSERVATION_CONTEXT_INSTRUCTIONS` — rules for interpreting observations (placed after the `<observations>` block)\r\n  - `OBSERVATION_CONTINUATION_HINT` — behavioral guidance that prevents models from awkwardly acknowledging the memory system\r\n  - `getOrCreateRecord()` — now public, allows eager record initialization before the first observation cycle\r\n\r\n  ```ts\r\n  import { ObservationalMemory } from \"@mastra/memory/processors\";\r\n\r\n  const om = new ObservationalMemory({ storage, model: \"google/gemini-2.5-flash\" });\r\n\r\n  // Eagerly initialize a record\r\n  await om.getOrCreateRecord(threadId);\r\n\r\n  // Pass messages directly with lifecycle hooks\r\n  await om.observe({\r\n    threadId,\r\n    messages: myMessages,\r\n    hooks: {\r\n      onObservationStart: () => console.log(\"Observing...\"),\r\n      onObservationEnd: () => console.log(\"Done!\"),\r\n      onReflectionStart: () => console.log(\"Reflecting...\"),\r\n      onReflectionEnd: () => console.log(\"Reflected!\")\r\n    }\r\n  });\r\n  ```\r\n\r\n  **Breaking:** `observe()` now takes an object param instead of positional args. Update calls from `observe(threadId, resourceId)` to `observe({ threadId, resourceId })`.\r\n\r\n### Patch Changes\r\n\r\n- Fixed observational memory writing non-integer token counts to PostgreSQL, which caused `invalid input syntax for type integer` errors. Token counts are now correctly rounded to integers before all database writes. ([#12976](https://github.com/mastra-ai/mastra/pull/12976))\r\n\r\n- Fixed cloneThread not copying working memory to the cloned thread. Thread-scoped working memory is now properly carried over when cloning, and resource-scoped working memory is copied when the clone uses a different resourceId. ([#12833](https://github.com/mastra-ai/mastra/pull/12833))\r\n\r\n- Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:\r\n  - @mastra/core@1.4.0\r\n\r\n### [@mastra/playground-ui@11.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@11.0.0/packages/playground-ui/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added Datasets and Experiments UI. Includes dataset management (create, edit, delete, duplicate), item CRUD with CSV/JSON import and export, SCD-2 version browsing and comparison, experiment triggering with scorer selection, experiment results with trace visualization, and cross-experiment comparison with score deltas. Uses `coreFeatures` runtime flag for feature gating instead of build-time env var. ([#12747](https://github.com/mastra-ai/mastra/pull/12747))\r\n\r\n- Add `workflow-step-progress` stream event for foreach workflow steps. Each iteration emits a progress event with `completedCount`, `totalCount`, `currentIndex`, `iterationStatus` (`success` | `failed` | `suspended`), and optional `iterationOutput`. Both the default and evented execution engines emit these events. ([#12838](https://github.com/mastra-ai/mastra/pull/12838))\r\n\r\n  The Mastra Studio UI now renders a progress bar with an N/total counter on foreach nodes, updating in real time as iterations complete:\r\n\r\n  ```ts\r\n  // Consuming progress events from the workflow stream\r\n  const run = workflow.createRun();\r\n  const result = await run.start({ inputData });\r\n  const stream = result.stream;\r\n\r\n  for await (const chunk of stream) {\r\n    if (chunk.type === \"workflow-step-progress\") {\r\n      console.log(`${chunk.payload.completedCount}/${chunk.payload.totalCount} - ${chunk.payload.iterationStatus}`);\r\n    }\r\n  }\r\n  ```\r\n\r\n- Revamped agent CMS experience with dedicated route pages for each section (Identity, Instruction Blocks, Tools, Agents, Scorers, Workflows, Memory, Variables) and sidebar navigation ([#13016](https://github.com/mastra-ai/mastra/pull/13016))\r\n\r\n- Added ability to create sub-agents on-the-fly via a SideDialog in the Sub-Agents section of the agent editor ([#12952](https://github.com/mastra-ai/mastra/pull/12952))\r\n\r\n### Patch Changes\r\n\r\n- dependencies updates: ([#12949](https://github.com/mastra-ai/mastra/pull/12949))\r\n  - Updated dependency [`@codemirror/view@^6.39.13` ↗︎](https://www.npmjs.com/package/@codemirror/view/v/6.39.13) (from `^6.39.12`, in `dependencies`)\r\n\r\n- Removed experiment mode from the agent prompt sidebar. The system prompt is now displayed as readonly. ([#12994](https://github.com/mastra-ai/mastra/pull/12994))\r\n\r\n- Aligned frontend rule engine types with backend, added support for greater_than_or_equal, less_than_or_equal, exists, and not_exists operators, and switched instruction blocks to use RuleGroup ([#12864](https://github.com/mastra-ai/mastra/pull/12864))\r\n\r\n- Skip `awaitBufferStatus` calls when observational memory is disabled. Previously the Studio sidebar would unconditionally hit `/memory/observational-memory/buffer-status` after every agent message, which returns a 400 when OM is not configured and halts agent execution. ([#13025](https://github.com/mastra-ai/mastra/pull/13025))\r\n\r\n- Fix prompt experiment localStorage persisting stale prompts: only save to localStorage when the user edits the prompt away from the code-defined value, and clear it when they match. Previously, the code-defined prompt was eagerly saved on first load, causing code changes to agent instructions to be ignored. ([#12929](https://github.com/mastra-ai/mastra/pull/12929))\r\n\r\n- Fixed chat briefly showing an empty conversation after sending the first message on a new thread. ([#13018](https://github.com/mastra-ai/mastra/pull/13018))\r\n\r\n- Fixed missing validation for the instructions field in the scorer creation form and replaced manual submission state tracking with the mutation hook's built-in pending state ([#12993](https://github.com/mastra-ai/mastra/pull/12993))\r\n\r\n- Default Studio file browser to basePath when filesystem containment is disabled, preventing the browser from showing the host root directory. ([#12971](https://github.com/mastra-ai/mastra/pull/12971))\r\n\r\n- Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`3da8a73`](https://github.com/mastra-ai/mastra/commit/3da8a73c9b9f042d528975ca330babc99563bd12), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`4ba40dc`](https://github.com/mastra-ai/mastra/commit/4ba40dcb6c9ef31eedbb01b6d5b8b0b3c71e5b61), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`40f224e`](https://github.com/mastra-ai/mastra/commit/40f224ec14e9b01a36802d8c5445a547a33992a5), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:\r\n  - @mastra/core@1.4.0\r\n  - @mastra/client-js@1.4.0\r\n  - @mastra/react@0.2.3\r\n  - @mastra/ai-sdk@1.0.4\r\n\r\n### [@mastra/server@1.4.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.4.0/packages/server/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added REST API routes for Datasets and Experiments. New endpoints under `/datasets` for full CRUD on datasets, items, versions, experiments, and experiment results. Includes batch operations and experiment comparison. ([#12747](https://github.com/mastra-ai/mastra/pull/12747))\r\n\r\n### Patch Changes\r\n\r\n- Fixed the /api/tools endpoint returning an empty list even when tools are registered on the Mastra instance. Closes #12983 ([#13008](https://github.com/mastra-ai/mastra/pull/13008))\r\n\r\n- Fixed custom API routes registered via `registerApiRoute()` being silently ignored by Koa, Express, Fastify, and Hono server adapters. Routes previously appeared in the OpenAPI spec but returned 404 at runtime. Custom routes now work correctly across all server adapters. ([#12960](https://github.com/mastra-ai/mastra/pull/12960))\r\n\r\n  **Example:**\r\n\r\n  ```ts\r\n  import Koa from \"koa\";\r\n  import { Mastra } from \"@mastra/core\";\r\n  import { registerApiRoute } from \"@mastra/core/server\";\r\n  import { MastraServer } from \"@mastra/koa\";\r\n\r\n  const mastra = new Mastra({\r\n    server: {\r\n      apiRoutes: [\r\n        registerApiRoute(\"/hello\", {\r\n          method: \"GET\",\r\n          handler: async (c) => c.json({ message: \"Hello!\" })\r\n        })\r\n      ]\r\n    }\r\n  });\r\n\r\n  const app = new Koa();\r\n  const server = new MastraServer({ app, mastra });\r\n  await server.init();\r\n  // GET /hello now returns 200 instead of 404\r\n  ```\r\n\r\n- Added API routes for stored MCP clients and tool provider discovery. ([#12974](https://github.com/mastra-ai/mastra/pull/12974))\r\n\r\n  **Stored MCP Client Routes**\r\n\r\n  New REST endpoints for managing stored MCP client configurations:\r\n  - `GET /api/stored-mcp-clients` — List all stored MCP clients\r\n  - `GET /api/stored-mcp-clients/:id` — Get a specific MCP client\r\n  - `POST /api/stored-mcp-clients` — Create a new MCP client\r\n  - `PATCH /api/stored-mcp-clients/:id` — Update an existing MCP client\r\n  - `DELETE /api/stored-mcp-clients/:id` — Delete an MCP client\r\n\r\n  ```ts\r\n  // Create a stored MCP client\r\n  const response = await fetch(\"/api/stored-mcp-clients\", {\r\n    method: \"POST\",\r\n    body: JSON.stringify({\r\n      id: \"my-mcp-client\",\r\n      name: \"My MCP Client\",\r\n      servers: {\r\n        \"github-server\": { url: \"https://mcp.github.com/sse\" }\r\n      }\r\n    })\r\n  });\r\n  ```\r\n\r\n  **Tool Provider Routes**\r\n\r\n  New REST endpoints for browsing registered tool providers and their tools:\r\n  - `GET /api/tool-providers` — List all registered tool providers with metadata\r\n  - `GET /api/tool-providers/:providerId/toolkits` — List toolkits for a provider\r\n  - `GET /api/tool-providers/:providerId/tools` — List tools (with optional toolkit/search filtering)\r\n  - `GET /api/tool-providers/:providerId/tools/:toolSlug/schema` — Get input schema for a tool\r\n\r\n  ```ts\r\n  // List all registered tool providers\r\n  const providers = await fetch(\"/api/tool-providers\");\r\n\r\n  // Browse tools in a specific toolkit\r\n  const tools = await fetch(\"/api/tool-providers/composio/tools?toolkit=github\");\r\n\r\n  // Get schema for a specific tool\r\n  const schema = await fetch(\"/api/tool-providers/composio/tools/GITHUB_LIST_ISSUES/schema\");\r\n  ```\r\n\r\n  Updated stored agent schemas to include `mcpClients` and `integrationTools` conditional fields, and updated agent version tracking accordingly.\r\n\r\n- Fixed requestContextSchema missing from the agent list API response. Agents with a requestContextSchema now correctly include it when listed via GET /agents. ([#12954](https://github.com/mastra-ai/mastra/pull/12954))\r\n\r\n- Expose filesystem info from getInfo() in the GET /api/workspaces/:id API response, including provider type, status, readOnly, and provider-specific metadata. ([#12971](https://github.com/mastra-ai/mastra/pull/12971))\r\n\r\n- Updated dependencies [[`7ef618f`](https://github.com/mastra-ai/mastra/commit/7ef618f3c49c27e2f6b27d7f564c557c0734325b), [`b373564`](https://github.com/mastra-ai/mastra/commit/b37356491d43b4d53067f10cb669abaf2502f218), [`927c2af`](https://github.com/mastra-ai/mastra/commit/927c2af9792286c122e04409efce0f3c804f777f), [`b896b41`](https://github.com/mastra-ai/mastra/commit/b896b41343de7fcc14442fb40fe82d189e65bbe2), [`6415277`](https://github.com/mastra-ai/mastra/commit/6415277a438faa00db2af850ead5dee25f40c428), [`0831bbb`](https://github.com/mastra-ai/mastra/commit/0831bbb5bc750c18e9b22b45f18687c964b70828), [`63f7eda`](https://github.com/mastra-ai/mastra/commit/63f7eda605eb3e0c8c35ee3912ffe7c999c69f69), [`a5b67a3`](https://github.com/mastra-ai/mastra/commit/a5b67a3589a74415feb663a55d1858324a2afde9), [`877b02c`](https://github.com/mastra-ai/mastra/commit/877b02cdbb15e199184c7f2b8f217be8d3ebada7), [`7567222`](https://github.com/mastra-ai/mastra/commit/7567222b1366f0d39980594792dd9d5060bfe2ab), [`af71458`](https://github.com/mastra-ai/mastra/commit/af71458e3b566f09c11d0e5a0a836dc818e7a24a), [`eb36bd8`](https://github.com/mastra-ai/mastra/commit/eb36bd8c52fcd6ec9674ac3b7a6412405b5983e1), [`3cbf121`](https://github.com/mastra-ai/mastra/commit/3cbf121f55418141924754a83102aade89835947)]:\r\n  - @mastra/core@1.4.0\r\n","publishedAt":"2026-02-16T16:45:52.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.4.0","media":[]},{"id":"rel_DHGZdZQnyxhvxyLMhaQi7","version":"@mastra/core@1.3.0","title":"February 11, 2026","summary":"## Highlights\r\n\r\n### Observational Memory Async Buffering (default-on) + New Streaming Events\r\n\r\nObservational memory now buffers background observati...","content":"## Highlights\r\n\r\n### Observational Memory Async Buffering (default-on) + New Streaming Events\r\n\r\nObservational memory now buffers background observations/reflections by default to avoid blocking as conversations grow, and introduces structured streaming status/events (`data-om-status` plus buffering start/end/failed markers) for better UI/telemetry.\r\n\r\n### Workspace Mounts (CompositeFilesystem)\r\n\r\nWorkspaces can now mount multiple filesystem providers (S3/GCS/local/etc.) into a single unified directory tree via `CompositeFilesystem`, so agents and tools can access files across backends through one path structure.\r\n\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.3.0/packages/core/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added mount support to workspaces, so you can combine multiple storage providers (S3, GCS, local disk, etc.) under a single directory tree. This lets agents access files from different sources through one unified filesystem. ([#12851](https://github.com/mastra-ai/mastra/pull/12851))\r\n\r\n  **Why:** Previously a workspace could only use one filesystem. With mounts, you can organize files from different providers under different paths — for example, S3 data at `/data` and GCS models at `/models` — without agents needing to know which provider backs each path.\r\n\r\n  **What's new:**\r\n  - Added `CompositeFilesystem` for combining multiple filesystems under one tree\r\n  - Added descriptive error types for sandbox and mount failures (e.g., `SandboxTimeoutError`, `MountError`)\r\n  - Improved `MastraFilesystem` and `MastraSandbox` base classes with safer concurrent lifecycle handling\r\n\r\n  ```ts\r\n  import { Workspace, CompositeFilesystem } from \"@mastra/core/workspace\";\r\n\r\n  // Mount multiple filesystems under one tree\r\n  const composite = new CompositeFilesystem({\r\n    mounts: {\r\n      \"/data\": s3Filesystem,\r\n      \"/models\": gcsFilesystem\r\n    }\r\n  });\r\n\r\n  const workspace = new Workspace({\r\n    filesystem: composite,\r\n    sandbox: e2bSandbox\r\n  });\r\n  ```\r\n\r\n Stored agent fields (`tools`, `model`, `workflows`, `agents`, `memory`, `scorers`, `inputProcessors`, `outputProcessors`, `defaultOptions`) can now be configured as conditional variants with rule groups that evaluate against request context at runtime. All matching variants accumulate — arrays are concatenated and objects are shallow-merged — so agents dynamically compose their configuration based on the incoming request context.\r\n\r\n  **New `requestContextSchema` field**\r\n\r\n  Stored agents now accept an optional `requestContextSchema` (JSON Schema) that is converted to a Zod schema and passed to the Agent constructor, enabling request context validation.\r\n\r\n  **Conditional field example**\r\n\r\n  ```ts\r\n  await agentsStore.create({\r\n    agent: {\r\n      id: \"my-agent\",\r\n      name: \"My Agent\",\r\n      instructions: \"You are a helpful assistant\",\r\n      model: { provider: \"openai\", name: \"gpt-4\" },\r\n      tools: [\r\n        { value: { \"basic-tool\": {} } },\r\n        {\r\n          value: { \"premium-tool\": {} },\r\n          rules: {\r\n            operator: \"AND\",\r\n            conditions: [{ field: \"tier\", operator: \"equals\", value: \"premium\" }]\r\n          }\r\n        }\r\n      ],\r\n      requestContextSchema: {\r\n        type: \"object\",\r\n        properties: { tier: { type: \"string\" } }\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n- Add native `@ai-sdk/groq` support to model router. Groq models now use the official AI SDK package instead of falling back to OpenAI-compatible mode. ([#12741](https://github.com/mastra-ai/mastra/pull/12741))\r\n\r\n  - Added a new `scorer-definitions` storage domain for storing LLM-as-judge and preset scorer configurations in the database\r\n  - Introduced a `VersionedStorageDomain` generic base class that unifies `AgentsStorage`, `PromptBlocksStorage`, and `ScorerDefinitionsStorage` with shared CRUD methods (`create`, `getById`, `getByIdResolved`, `update`, `delete`, `list`, `listResolved`)\r\n  - Flattened stored scorer type system: replaced nested `preset`/`customLLMJudge` config with top-level `type`, `instructions`, `scoreRange`, and `presetConfig` fields\r\n  - Refactored `MastraEditor` to use a namespace pattern (`editor.agent.*`, `editor.scorer.*`, `editor.prompt.*`) backed by a `CrudEditorNamespace` base class with built-in caching and an `onCacheEvict` hook\r\n  - Added `rawConfig` support to `MastraBase` and `MastraScorer` via `toRawConfig()`, so hydrated primitives carry their stored configuration\r\n  - Added prompt block and scorer registration to the `Mastra` class (`addPromptBlock`, `removePromptBlock`, `addScorer`, `removeScorer`)\r\n\r\n  **Creating a stored scorer (LLM-as-judge):**\r\n\r\n  ```ts\r\n  const scorer = await editor.scorer.create({\r\n    id: \"my-scorer\",\r\n    name: \"Response Quality\",\r\n    type: \"llm-judge\",\r\n    instructions: \"Evaluate the response for accuracy and helpfulness.\",\r\n    model: { provider: \"openai\", name: \"gpt-4o\" },\r\n    scoreRange: { min: 0, max: 1 }\r\n  });\r\n  ```\r\n\r\n  **Retrieving and resolving a stored scorer:**\r\n\r\n  ```ts\r\n  // Fetch the stored definition from DB\r\n  const definition = await editor.scorer.getById(\"my-scorer\");\r\n\r\n  // Resolve it into a runnable MastraScorer instance\r\n  const runnableScorer = editor.scorer.resolve(definition);\r\n\r\n  // Execute the scorer\r\n  const result = await runnableScorer.run({\r\n    input: \"What is the capital of France?\",\r\n    output: \"The capital of France is Paris.\"\r\n  });\r\n  ```\r\n\r\n  **Editor namespace pattern (before/after):**\r\n\r\n  ```ts\r\n  // Before\r\n  const agent = await editor.getStoredAgentById(\"abc\");\r\n  const prompts = await editor.listPromptBlocks();\r\n\r\n  // After\r\n  const agent = await editor.agent.getById(\"abc\");\r\n  const prompts = await editor.prompt.list();\r\n  ```\r\n\r\n  **Generic storage domain methods (before/after):**\r\n\r\n  ```ts\r\n  // Before\r\n  const store = storage.getStore(\"agents\");\r\n  await store.createAgent({ agent: input });\r\n  await store.getAgentById({ id: \"abc\" });\r\n  await store.deleteAgent({ id: \"abc\" });\r\n\r\n  // After\r\n  const store = storage.getStore(\"agents\");\r\n  await store.create({ agent: input });\r\n  await store.getById(\"abc\");\r\n  await store.delete(\"abc\");\r\n  ```\r\n\r\n- Added mount status and error information to filesystem directory listings, so the UI can show whether each mount is healthy or has issues. Improved error handling when mount operations fail. Fixed tree formatter to use case-insensitive sorting to match native tree output. ([#12605](https://github.com/mastra-ai/mastra/pull/12605))\r\n\r\n- Added workspace registration and tool context support. ([#12607](https://github.com/mastra-ai/mastra/pull/12607))\r\n\r\n  **Why** - Makes it easier to manage multiple workspaces at runtime and lets tools read/write files in the intended workspace.\r\n\r\n  **Workspace Registration** - Added a workspace registry so you can list and fetch workspaces by id with `addWorkspace()`, `getWorkspaceById()`, and `listWorkspaces()`. Agent workspaces are auto-registered when adding agents.\r\n\r\n  **Before**\r\n\r\n  ```typescript\r\n  const mastra = new Mastra({ workspace: myWorkspace });\r\n  // No way to look up workspaces by id or list all workspaces\r\n  ```\r\n\r\n  **After**\r\n\r\n  ```typescript\r\n  const mastra = new Mastra({ workspace: myWorkspace });\r\n\r\n  // Look up by id\r\n  const ws = mastra.getWorkspaceById(\"my-workspace\");\r\n\r\n  // List all registered workspaces\r\n  const allWorkspaces = mastra.listWorkspaces();\r\n\r\n  // Register additional workspaces\r\n  mastra.addWorkspace(anotherWorkspace);\r\n  ```\r\n\r\n  **Tool Workspace Access** - Tools can access the workspace through `context.workspace` during execution, enabling filesystem and sandbox operations.\r\n\r\n  ```typescript\r\n  const myTool = createTool({\r\n    id: \"file-reader\",\r\n    execute: async ({ context }) => {\r\n      const fs = context.workspace?.filesystem;\r\n      const content = await fs?.readFile(\"config.json\");\r\n      return { content };\r\n    }\r\n  });\r\n  ```\r\n\r\n  **Dynamic Workspace Configuration** - Workspace can be configured dynamically via agent config functions. Dynamically created workspaces are auto-registered with Mastra, making them available via `listWorkspaces()`.\r\n\r\n  ```typescript\r\n  const agent = new Agent({\r\n    workspace: ({ mastra, requestContext }) => {\r\n      // Return workspace dynamically based on context\r\n      const workspaceId = requestContext?.get(\"workspaceId\") || \"default\";\r\n      return mastra.getWorkspaceById(workspaceId);\r\n    }\r\n  });\r\n  ```\r\n\r\n  - Changed stored agent `tools` field from `string[]` to `Record<string, { description?: string }>` to allow per-tool description overrides\r\n  - When a stored agent specifies a custom `description` for a tool, the override is applied at resolution time\r\n  - Updated server API schemas, client SDK types, and editor resolution logic accordingly\r\n\r\n- **Breaking:** Removed `cloneAgent()` from the `Agent` class. Agent cloning is now handled by the editor package via `editor.agent.clone()`. ([#12904](https://github.com/mastra-ai/mastra/pull/12904))\r\n\r\n  If you were calling `agent.cloneAgent()` directly, use the editor's agent namespace instead:\r\n\r\n  ```ts\r\n  // Before\r\n  const result = await agent.cloneAgent({ newId: \"my-clone\" });\r\n\r\n  // After\r\n  const editor = mastra.getEditor();\r\n  const result = await editor.agent.clone(agent, { newId: \"my-clone\" });\r\n  ```\r\n\r\n  **Why:** The `Agent` class should not be responsible for storage serialization. The editor package already handles converting between runtime agents and stored configurations, so cloning belongs there.\r\n\r\n  **Added** `getConfiguredProcessorIds()` to the `Agent` class, which returns raw input/output processor IDs for the agent's configuration.\r\n\r\n### Patch Changes\r\n\r\n- Update provider registry and model documentation with latest models and providers ([`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004))\r\n\r\n- Fixed observational memory progress bars resetting to zero after agent responses finish. ([#12934](https://github.com/mastra-ai/mastra/pull/12934))\r\n\r\n- Fixed issues with stored agents ([#12790](https://github.com/mastra-ai/mastra/pull/12790))\r\n\r\n- Fixed sub-agent tool approval and suspend events not being surfaced to the parent agent stream. This enables proper suspend/resume workflows and approval handling when nested agents require tool approvals. ([#12732](https://github.com/mastra-ai/mastra/pull/12732))\r\n\r\n  Related to issue #12552.\r\n\r\n- Fixed stale agent data in CMS pages by adding removeAgent method to Mastra and updating clearStoredAgentCache to clear both Editor cache and Mastra registry when stored agents are updated or deleted ([#12693](https://github.com/mastra-ai/mastra/pull/12693))\r\n\r\n- Fixed stored scorers not being registered on the Mastra instance. Scorers created via the editor are now automatically discoverable through `mastra.getScorer()` and `mastra.getScorerById()`, matching the existing behavior of stored agents. Previously, stored scorers could only be resolved inline but were invisible to the runtime registry, causing lookups to fail. ([#12903](https://github.com/mastra-ai/mastra/pull/12903))\r\n\r\n- Fixed `generateTitle` running on every conversation turn instead of only the first, which caused redundant title generation calls. This happened when `lastMessages` was disabled or set to `false`. Titles are now correctly generated only on the first turn. ([#12890](https://github.com/mastra-ai/mastra/pull/12890))\r\n\r\n- Fixed workflow step errors not being propagated to the configured Mastra logger. The execution engine now properly propagates the Mastra logger through the inheritance chain, and the evented step executor logs errors with structured MastraError context (matching the default engine behavior). Closes #12793 ([#12834](https://github.com/mastra-ai/mastra/pull/12834))\r\n\r\n- Update memory config and exports: ([#12704](https://github.com/mastra-ai/mastra/pull/12704))\r\n  - Updated `SerializedMemoryConfig` to allow `embedder?: EmbeddingModelId | string` for flexibility\r\n  - Exported `EMBEDDING_MODELS` and `EmbeddingModelInfo` for use in server endpoints\r\n\r\n- Fixed a catch-22 where third-party AI SDK providers (like `ollama-ai-provider-v2`) were rejected by both `stream()` and `streamLegacy()` due to unrecognized `specificationVersion` values. ([#12856](https://github.com/mastra-ai/mastra/pull/12856))\r\n\r\n  When a model has a `specificationVersion` that isn't `'v1'`, `'v2'`, or `'v3'` (e.g., from a third-party provider), two fixes now apply:\r\n  1. **Auto-wrapping in `resolveModelConfig()`**: Models with unknown spec versions that have `doStream`/`doGenerate` methods are automatically wrapped as AI SDK v5 models, preventing the catch-22 entirely.\r\n  2. **Improved error messages**: If a model still reaches the version check, error messages now show the actual unrecognized `specificationVersion` instead of creating circular suggestions between `stream()` and `streamLegacy()`.\r\n\r\n- Fixed routing output so users only see the final answer when routing handles a request directly. Previously, an internal routing explanation appeared before the answer and was duplicated. Fixes #12545. ([#12786](https://github.com/mastra-ai/mastra/pull/12786))\r\n\r\n- Supporting changes for async buffering in observational memory, including new config options, streaming events, and UI markers. ([#12891](https://github.com/mastra-ai/mastra/pull/12891))\r\n\r\n- Fixed an issue where processor retry (via `abort({ retry: true })` in `processOutputStep`) would send the rejected assistant response back to the LLM on retry. This confused models and often caused empty text responses. The rejected response is now removed from the message list before the retry iteration. ([#12799](https://github.com/mastra-ai/mastra/pull/12799))\r\n\r\n- Fixed Moonshot AI (moonshotai and moonshotai-cn) models using the wrong base URL. The Anthropic-compatible endpoint was not being applied, causing API calls to fail with an upstream LLM error. ([#12750](https://github.com/mastra-ai/mastra/pull/12750))\r\n\r\n- Fixed messages not being persisted to the database when using the stream-legacy endpoint. The thread is now saved to the database immediately when created, preventing a race condition where storage backends like PostgreSQL would reject message inserts because the thread didn't exist yet. Fixes #12566. ([#12774](https://github.com/mastra-ai/mastra/pull/12774))\r\n\r\n- When calling `mastra.setLogger()`, memory instances were not being updated with the new logger. This caused memory-related errors to be logged via the default ConsoleLogger instead of the configured logger. ([#12905](https://github.com/mastra-ai/mastra/pull/12905))\r\n\r\n- Fixed tool input validation failing when LLMs return stringified JSON for array or object parameters. Some models (e.g., GLM4.7) send `\"[\\\"file.py\\\"]\"` instead of `[\"file.py\"]` for array fields, which caused Zod validation to reject the input. The validation pipeline now automatically detects and parses stringified JSON values when the schema expects an array or object. (GitHub #12757) ([#12771](https://github.com/mastra-ai/mastra/pull/12771))\r\n\r\n- Fixed working memory tools being injected when no thread or resource context is provided. Made working memory tool execute scope-aware: thread-scoped requires threadId, resource-scoped requires resourceId (previously both were always required regardless of scope). ([#12831](https://github.com/mastra-ai/mastra/pull/12831))\r\n\r\n- Fixed a crash when using agent workflows that have no input schema. Input now passes through on first invocation, so workflows run instead of failing. (#12739) ([#12785](https://github.com/mastra-ai/mastra/pull/12785))\r\n\r\n- Fixes issue where client tools could not be used with agent.network(). Client tools configured in an agent's defaultOptions will now be available during network execution. ([#12821](https://github.com/mastra-ai/mastra/pull/12821))\r\n\r\n  Fixes #12752\r\n\r\n- Steps now support an optional `metadata` property for storing arbitrary key-value data. This metadata is preserved through step serialization and is available in the workflow graph, enabling use cases like UI annotations or custom step categorization. ([#12861](https://github.com/mastra-ai/mastra/pull/12861))\r\n\r\n  ```diff\r\n  import { createStep } from \"@mastra/core/workflows\";\r\n  import { z } from \"zod\";\r\n\r\n  const step = createStep({\r\n    //...step information\r\n  +  metadata: {\r\n  +    category: \"orders\",\r\n  +    priority: \"high\",\r\n  +    version: \"1.0.0\",\r\n  +  },\r\n  });\r\n  ```\r\n\r\n  Metadata values must be serializable (no functions or circular references).\r\n\r\n- Fixed: You can now pass workflows with a `requestContextSchema` to the Mastra constructor without a type error. Related: #12773. ([#12857](https://github.com/mastra-ai/mastra/pull/12857))\r\n\r\n- Fixed TypeScript type errors when using `.optional().default()` in workflow input schemas. Workflows with default values in their schemas no longer produce false type errors when chaining steps with `.then()`. Fixes #12634 ([#12778](https://github.com/mastra-ai/mastra/pull/12778))\r\n\r\n- Fix setLogger to update workflow loggers ([#12889](https://github.com/mastra-ai/mastra/pull/12889))\r\n\r\n  When calling `mastra.setLogger()`, workflows were not being updated with the new logger. This caused workflow errors to be logged via the default ConsoleLogger instead of the configured logger (e.g., PinoLogger with HttpTransport), resulting in missing error logs in Cloud deployments.\r\n\r\n### [@mastra/agent-builder@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/agent-builder@1.0.3/packages/agent-builder/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`2e02cd7`](https://github.com/mastra-ai/mastra/commit/2e02cd7e08ba2d84a275c80d80c069d2b8b66211), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n  - @mastra/memory@1.2.0\r\n\r\n### [@mastra/deployer@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/deployer@1.3.0/packages/deployer/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added support for request context presets in Mastra Studio. You can now define a JSON file with named requestContext presets and pass it via the `--request-context-presets` CLI flag to both `mastra dev` and `mastra studio` commands. A dropdown selector appears in the Studio Playground, allowing you to quickly switch between preset configurations. ([#12501](https://github.com/mastra-ai/mastra/pull/12501))\r\n\r\n  **Usage:**\r\n\r\n  ```bash\r\n  mastra dev --request-context-presets ./presets.json\r\n  mastra studio --request-context-presets ./presets.json\r\n  ```\r\n\r\n  **Presets file format:**\r\n\r\n  ```json\r\n  {\r\n    \"development\": { \"userId\": \"dev-user\", \"env\": \"development\" },\r\n    \"production\": { \"userId\": \"prod-user\", \"env\": \"production\" }\r\n  }\r\n  ```\r\n\r\n  When presets are loaded, a dropdown appears above the JSON editor on the Request Context page. Selecting a preset populates the editor, and manually editing the JSON automatically switches back to \"Custom\".\r\n\r\n### Patch Changes\r\n\r\n- Fixed bundling of workspace packages in monorepo setups. ([#12645](https://github.com/mastra-ai/mastra/pull/12645))\r\n\r\n  **What was fixed:**\r\n  - Bundles now correctly include workspace packages with hyphenated names\r\n  - Workspace TypeScript sources compile correctly when resolved through workspace symlinks\r\n  - Transitive workspace dependencies are included when the entry point is generated\r\n\r\n  **Why this happened:**\r\n\r\n  Earlier workspace resolution logic skipped some workspace paths and virtual entries, so those dependencies were missed.\r\n\r\n- Fixed TypeScript path alias resolution in workspace packages configured with `transpilePackages`. The bundler now correctly resolves imports using path aliases (e.g., `@/_` → `./src/_`) in transpiled workspace packages, preventing build failures in monorepo setups. ([#12239](https://github.com/mastra-ai/mastra/pull/12239))\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`b7fe535`](https://github.com/mastra-ai/mastra/commit/b7fe535fedcff7920fc0c5263da1761b704b81b3), [`27e9a34`](https://github.com/mastra-ai/mastra/commit/27e9a34bdb67c6aa59bd45cbaba619b9bd1f44a0), [`1d8cd0a`](https://github.com/mastra-ai/mastra/commit/1d8cd0ac18e4ba45200093f2bc0c3067cbc6471b), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`a211248`](https://github.com/mastra-ai/mastra/commit/a21124845b1b1321b6075a8377c341c7f5cda1b6), [`218849f`](https://github.com/mastra-ai/mastra/commit/218849fd337e13c35f788456744d75c6f5102b6b), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`a211248`](https://github.com/mastra-ai/mastra/commit/a21124845b1b1321b6075a8377c341c7f5cda1b6), [`d917195`](https://github.com/mastra-ai/mastra/commit/d917195995422dff39ee46a516fe7f7205158858), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n  - @mastra/server@1.3.0\r\n\r\n### [@mastra/editor@0.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/editor@0.3.0/packages/editor/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added `requestContextSchema` and rule-based conditional fields for stored agents. ([#12896](https://github.com/mastra-ai/mastra/pull/12896))\r\n\r\n  Stored agent fields (`tools`, `model`, `workflows`, `agents`, `memory`, `scorers`, `inputProcessors`, `outputProcessors`, `defaultOptions`) can now be configured as conditional variants with rule groups that evaluate against request context at runtime. All matching variants accumulate — arrays are concatenated and objects are shallow-merged — so agents dynamically compose their configuration based on the incoming request context.\r\n\r\n  **New `requestContextSchema` field**\r\n\r\n  Stored agents now accept an optional `requestContextSchema` (JSON Schema) that is converted to a Zod schema and passed to the Agent constructor, enabling request context validation.\r\n\r\n  **Conditional field example**\r\n\r\n  ```ts\r\n  await agentsStore.create({\r\n    agent: {\r\n      id: \"my-agent\",\r\n      name: \"My Agent\",\r\n      instructions: \"You are a helpful assistant\",\r\n      model: { provider: \"openai\", name: \"gpt-4\" },\r\n      tools: [\r\n        { value: { \"basic-tool\": {} } },\r\n        {\r\n          value: { \"premium-tool\": {} },\r\n          rules: {\r\n            operator: \"AND\",\r\n            conditions: [{ field: \"tier\", operator: \"equals\", value: \"premium\" }]\r\n          }\r\n        }\r\n      ],\r\n      requestContextSchema: {\r\n        type: \"object\",\r\n        properties: { tier: { type: \"string\" } }\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n- Added dynamic instructions for stored agents. Agent instructions can now be composed from reusable prompt blocks with conditional rules and variable interpolation, enabling a prompt-CMS-like editing experience. ([#12861](https://github.com/mastra-ai/mastra/pull/12861))\r\n\r\n  **Instruction blocks** can be mixed in an agent's instructions array:\r\n  - `text` — static text with `{{variable}}` interpolation\r\n  - `prompt_block_ref` — reference to a versioned prompt block stored in the database\r\n  - `prompt_block` — inline prompt block with optional conditional rules\r\n\r\n  **Creating a prompt block and using it in a stored agent:**\r\n\r\n  ```ts\r\n  // Create a reusable prompt block\r\n  const block = await editor.createPromptBlock({\r\n    id: \"security-rules\",\r\n    name: \"Security Rules\",\r\n    content: \"You must verify the user's identity. The user's role is {{user.role}}.\",\r\n    rules: {\r\n      operator: \"AND\",\r\n      conditions: [{ field: \"user.isAuthenticated\", operator: \"equals\", value: true }]\r\n    }\r\n  });\r\n\r\n  // Create a stored agent that references the prompt block\r\n  await editor.createStoredAgent({\r\n    id: \"support-agent\",\r\n    name: \"Support Agent\",\r\n    instructions: [\r\n      { type: \"text\", content: \"You are a helpful support agent for {{company}}.\" },\r\n      { type: \"prompt_block_ref\", id: \"security-rules\" },\r\n      {\r\n        type: \"prompt_block\",\r\n        content: \"Always be polite.\",\r\n        rules: { operator: \"AND\", conditions: [{ field: \"tone\", operator: \"equals\", value: \"formal\" }] }\r\n      }\r\n    ],\r\n    model: { provider: \"openai\", name: \"gpt-4o\" }\r\n  });\r\n\r\n  // At runtime, instructions resolve dynamically based on request context\r\n  const agent = await editor.getStoredAgentById(\"support-agent\");\r\n  const result = await agent.generate(\"Help me reset my password\", {\r\n    requestContext: new RequestContext([\r\n      [\"company\", \"Acme Corp\"],\r\n      [\"user.isAuthenticated\", true],\r\n      [\"user.role\", \"admin\"],\r\n      [\"tone\", \"formal\"]\r\n    ])\r\n  });\r\n  ```\r\n\r\n  Prompt blocks are versioned — updating a block's content takes effect immediately for all agents referencing it, with no cache clearing required.\r\n\r\n  - Added a new `scorer-definitions` storage domain for storing LLM-as-judge and preset scorer configurations in the database\r\n  - Introduced a `VersionedStorageDomain` generic base class that unifies `AgentsStorage`, `PromptBlocksStorage`, and `ScorerDefinitionsStorage` with shared CRUD methods (`create`, `getById`, `getByIdResolved`, `update`, `delete`, `list`, `listResolved`)\r\n  - Flattened stored scorer type system: replaced nested `preset`/`customLLMJudge` config with top-level `type`, `instructions`, `scoreRange`, and `presetConfig` fields\r\n  - Refactored `MastraEditor` to use a namespace pattern (`editor.agent.*`, `editor.scorer.*`, `editor.prompt.*`) backed by a `CrudEditorNamespace` base class with built-in caching and an `onCacheEvict` hook\r\n  - Added `rawConfig` support to `MastraBase` and `MastraScorer` via `toRawConfig()`, so hydrated primitives carry their stored configuration\r\n  - Added prompt block and scorer registration to the `Mastra` class (`addPromptBlock`, `removePromptBlock`, `addScorer`, `removeScorer`)\r\n\r\n  **Creating a stored scorer (LLM-as-judge):**\r\n\r\n  ```ts\r\n  const scorer = await editor.scorer.create({\r\n    id: \"my-scorer\",\r\n    name: \"Response Quality\",\r\n    type: \"llm-judge\",\r\n    instructions: \"Evaluate the response for accuracy and helpfulness.\",\r\n    model: { provider: \"openai\", name: \"gpt-4o\" },\r\n    scoreRange: { min: 0, max: 1 }\r\n  });\r\n  ```\r\n\r\n  **Retrieving and resolving a stored scorer:**\r\n\r\n  ```ts\r\n  // Fetch the stored definition from DB\r\n  const definition = await editor.scorer.getById(\"my-scorer\");\r\n\r\n  // Resolve it into a runnable MastraScorer instance\r\n  const runnableScorer = editor.scorer.resolve(definition);\r\n\r\n  // Execute the scorer\r\n  const result = await runnableScorer.run({\r\n    input: \"What is the capital of France?\",\r\n    output: \"The capital of France is Paris.\"\r\n  });\r\n  ```\r\n\r\n  **Editor namespace pattern (before/after):**\r\n\r\n  ```ts\r\n  // Before\r\n  const agent = await editor.getStoredAgentById(\"abc\");\r\n  const prompts = await editor.listPromptBlocks();\r\n\r\n  // After\r\n  const agent = await editor.agent.getById(\"abc\");\r\n  const prompts = await editor.prompt.list();\r\n  ```\r\n\r\n  **Generic storage domain methods (before/after):**\r\n\r\n  ```ts\r\n  // Before\r\n  const store = storage.getStore(\"agents\");\r\n  await store.createAgent({ agent: input });\r\n  await store.getAgentById({ id: \"abc\" });\r\n  await store.deleteAgent({ id: \"abc\" });\r\n\r\n  // After\r\n  const store = storage.getStore(\"agents\");\r\n  await store.create({ agent: input });\r\n  await store.getById(\"abc\");\r\n  await store.delete(\"abc\");\r\n  ```\r\n\r\n  - Changed stored agent `tools` field from `string[]` to `Record<string, { description?: string }>` to allow per-tool description overrides\r\n  - When a stored agent specifies a custom `description` for a tool, the override is applied at resolution time\r\n  - Updated server API schemas, client SDK types, and editor resolution logic accordingly\r\n\r\n- **Breaking:** Removed `cloneAgent()` from the `Agent` class. Agent cloning is now handled by the editor package via `editor.agent.clone()`. ([#12904](https://github.com/mastra-ai/mastra/pull/12904))\r\n\r\n  If you were calling `agent.cloneAgent()` directly, use the editor's agent namespace instead:\r\n\r\n  ```ts\r\n  // Before\r\n  const result = await agent.cloneAgent({ newId: \"my-clone\" });\r\n\r\n  // After\r\n  const editor = mastra.getEditor();\r\n  const result = await editor.agent.clone(agent, { newId: \"my-clone\" });\r\n  ```\r\n\r\n  **Why:** The `Agent` class should not be responsible for storage serialization. The editor package already handles converting between runtime agents and stored configurations, so cloning belongs there.\r\n\r\n  **Added** `getConfiguredProcessorIds()` to the `Agent` class, which returns raw input/output processor IDs for the agent's configuration.\r\n\r\n### Patch Changes\r\n\r\n- Fixed stale agent data in CMS pages by adding removeAgent method to Mastra and updating clearStoredAgentCache to clear both Editor cache and Mastra registry when stored agents are updated or deleted ([#12693](https://github.com/mastra-ai/mastra/pull/12693))\r\n\r\n- Fixed stored scorers not being registered on the Mastra instance. Scorers created via the editor are now automatically discoverable through `mastra.getScorer()` and `mastra.getScorerById()`, matching the existing behavior of stored agents. Previously, stored scorers could only be resolved inline but were invisible to the runtime registry, causing lookups to fail. ([#12903](https://github.com/mastra-ai/mastra/pull/12903))\r\n\r\n- Fix memory persistence: ([#12704](https://github.com/mastra-ai/mastra/pull/12704))\r\n  - Fixed memory persistence bug by handling missing vector store gracefully\r\n  - When semantic recall is enabled but no vector store is configured, it now disables semantic recall instead of failing\r\n  - Fixed type compatibility for `embedder` field when creating agents from stored config\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`2e02cd7`](https://github.com/mastra-ai/mastra/commit/2e02cd7e08ba2d84a275c80d80c069d2b8b66211), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n  - @mastra/memory@1.2.0\r\n\r\n### [@mastra/evals@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/evals@1.1.1/packages/evals/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fixed faithfulness scorer failing with 'expected record, received array' error when used with live agents. The preprocess step now returns claims as an object instead of a raw array, matching the expected storage schema. ([#12892](https://github.com/mastra-ai/mastra/pull/12892))\r\n\r\n- Fixed LLM scorer schema compatibility with Anthropic API by replacing `z.number().min(0).max(1)` with `z.number().refine()` for score validation. The min/max constraints were being converted to JSON Schema minimum/maximum properties which some providers don't support. ([#12722](https://github.com/mastra-ai/mastra/pull/12722))\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n\r\n### [@mastra/mcp@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/mcp@1.0.1/packages/mcp/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Update README ([#12817](https://github.com/mastra-ai/mastra/pull/12817))\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n\r\n### [@mastra/mcp-docs-server@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/mcp-docs-server@1.1.1/packages/mcp-docs-server/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`2d2decc`](https://github.com/mastra-ai/mastra/commit/2d2decc9c62743b23a064cd599871639a61867a0), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n  - @mastra/mcp@1.0.1\r\n\r\n### [@mastra/memory@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/memory@1.2.0/packages/memory/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- **Async buffering for observational memory is now enabled by default.** Observations are pre-computed in the background as conversations grow — when the context window fills up, buffered observations activate instantly with no blocking LLM call. This keeps agents responsive during long conversations. ([#12939](https://github.com/mastra-ai/mastra/pull/12939))\r\n\r\n  **Default settings:**\r\n  - `observation.bufferTokens: 0.2` — buffer every 20% of `messageTokens` (~6k tokens with the default 30k threshold)\r\n  - `observation.bufferActivation: 0.8` — on activation, retain 20% of the message window\r\n  - `reflection.bufferActivation: 0.5` — start background reflection at 50% of the observation threshold\r\n\r\n  **Disabling async buffering:**\r\n\r\n  Set `observation.bufferTokens: false` to disable async buffering for both observations and reflections:\r\n\r\n  ```ts\r\n  const memory = new Memory({\r\n    options: {\r\n      observationalMemory: {\r\n        model: \"google/gemini-2.5-flash\",\r\n        observation: {\r\n          bufferTokens: false\r\n        }\r\n      }\r\n    }\r\n  });\r\n  ```\r\n\r\n  **Model is now required** when passing an observational memory config object. Use `observationalMemory: true` for the default (google/gemini-2.5-flash), or set a model explicitly:\r\n\r\n  ```ts\r\n  // Uses default model (google/gemini-2.5-flash)\r\n  observationalMemory: true\r\n\r\n  // Explicit model\r\n  observationalMemory: {\r\n    model: \"google/gemini-2.5-flash\",\r\n  }\r\n  ```\r\n\r\n  **`shareTokenBudget` requires `bufferTokens: false`** (temporary limitation). If you use `shareTokenBudget: true`, you must explicitly disable async buffering:\r\n\r\n  ```ts\r\n  observationalMemory: {\r\n    model: \"google/gemini-2.5-flash\",\r\n    shareTokenBudget: true,\r\n    observation: { bufferTokens: false },\r\n  }\r\n  ```\r\n\r\n  **New streaming event:** `data-om-status` replaces `data-om-progress` with a structured status object containing active window usage, buffered observation/reflection state, and projected activation impact.\r\n\r\n  **Buffering markers:** New `data-om-buffering-start`, `data-om-buffering-end`, and `data-om-buffering-failed` streaming events for UI feedback during background operations.\r\n\r\n### Patch Changes\r\n\r\n- Fixed observational memory progress bars resetting to zero after agent responses finish. ([#12934](https://github.com/mastra-ai/mastra/pull/12934))\r\n\r\n- Fixed working memory tools being injected when no thread or resource context is provided. Made working memory tool execute scope-aware: thread-scoped requires threadId, resource-scoped requires resourceId (previously both were always required regardless of scope). ([#12831](https://github.com/mastra-ai/mastra/pull/12831))\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n\r\n### [@mastra/playground-ui@10.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/playground-ui@10.0.0/packages/playground-ui/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added new agent creation page with CMS-style layout featuring Identity, Capabilities, and Revisions tabs. The page includes a prompt editor with Handlebars template support, partials management, and instruction diff viewing for revisions. ([#12569](https://github.com/mastra-ai/mastra/pull/12569))\r\n\r\n- Added support for request context presets in Mastra Studio. You can now define a JSON file with named requestContext presets and pass it via the `--request-context-presets` CLI flag to both `mastra dev` and `mastra studio` commands. A dropdown selector appears in the Studio Playground, allowing you to quickly switch between preset configurations. ([#12501](https://github.com/mastra-ai/mastra/pull/12501))\r\n\r\n  **Usage:**\r\n\r\n  ```bash\r\n  mastra dev --request-context-presets ./presets.json\r\n  mastra studio --request-context-presets ./presets.json\r\n  ```\r\n\r\n  **Presets file format:**\r\n\r\n  ```json\r\n  {\r\n    \"development\": { \"userId\": \"dev-user\", \"env\": \"development\" },\r\n    \"production\": { \"userId\": \"prod-user\", \"env\": \"production\" }\r\n  }\r\n  ```\r\n\r\n  When presets are loaded, a dropdown appears above the JSON editor on the Request Context page. Selecting a preset populates the editor, and manually editing the JSON automatically switches back to \"Custom\".\r\n\r\n- Added multi-block instruction editing for agents. Instructions can now be split into separate blocks that are reorderable via drag-and-drop, each with optional conditional display rules based on agent variables. Includes a preview dialog to test how blocks compile with different variable values. ([#12759](https://github.com/mastra-ai/mastra/pull/12759))\r\n\r\n- Update peer dependencies to match core package version bump (1.1.0) ([#12508](https://github.com/mastra-ai/mastra/pull/12508))\r\n\r\n### Patch Changes\r\n\r\n- dependencies updates: ([#11750](https://github.com/mastra-ai/mastra/pull/11750))\r\n  - Updated dependency [`@assistant-ui/react@^0.12.3` ↗︎](https://www.npmjs.com/package/@assistant-ui/react/v/0.12.3) (from `^0.11.47`, in `dependencies`)\r\n  - Updated dependency [`@assistant-ui/react-markdown@^0.12.1` ↗︎](https://www.npmjs.com/package/@assistant-ui/react-markdown/v/0.12.1) (from `^0.11.6`, in `dependencies`)\r\n  - Updated dependency [`@assistant-ui/react-syntax-highlighter@^0.12.1` ↗︎](https://www.npmjs.com/package/@assistant-ui/react-syntax-highlighter/v/0.12.1) (from `^0.11.6`, in `dependencies`)\r\n\r\n- dependencies updates: ([#11829](https://github.com/mastra-ai/mastra/pull/11829))\r\n  - Updated dependency [`@codemirror/autocomplete@^6.20.0` ↗︎](https://www.npmjs.com/package/@codemirror/autocomplete/v/6.20.0) (from `^6.18.0`, in `dependencies`)\r\n  - Updated dependency [`@codemirror/lang-javascript@^6.2.4` ↗︎](https://www.npmjs.com/package/@codemirror/lang-javascript/v/6.2.4) (from `^6.2.2`, in `dependencies`)\r\n  - Updated dependency [`@codemirror/state@^6.5.4` ↗︎](https://www.npmjs.com/package/@codemirror/state/v/6.5.4) (from `^6.5.2`, in `dependencies`)\r\n  - Updated dependency [`@codemirror/view@^6.39.12` ↗︎](https://www.npmjs.com/package/@codemirror/view/v/6.39.12) (from `^6.38.6`, in `dependencies`)\r\n\r\n- dependencies updates: ([#11830](https://github.com/mastra-ai/mastra/pull/11830))\r\n  - Updated dependency [`@uiw/codemirror-theme-dracula@^4.25.4` ↗︎](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula/v/4.25.4) (from `^4.23.14`, in `dependencies`)\r\n\r\n- dependencies updates: ([#11843](https://github.com/mastra-ai/mastra/pull/11843))\r\n  - Updated dependency [`@uiw/react-codemirror@^4.25.4` ↗︎](https://www.npmjs.com/package/@uiw/react-codemirror/v/4.25.4) (from `^4.23.14`, in `dependencies`)\r\n\r\n- dependencies updates: ([#12782](https://github.com/mastra-ai/mastra/pull/12782))\r\n  - Updated dependency [`@uiw/codemirror-theme-github@^4.25.4` ↗︎](https://www.npmjs.com/package/@uiw/codemirror-theme-github/v/4.25.4) (from `^4.25.3`, in `dependencies`)\r\n\r\n- Improved workspace file browser with mount point support. Mounted directories now display provider-specific icons (S3, GCS, Azure, Cloudflare, MinIO) and optional description tooltips. File entries include mount metadata for distinguishing storage providers at a glance. ([#12851](https://github.com/mastra-ai/mastra/pull/12851))\r\n\r\n- Fix memory configuration in agent forms: ([#12704](https://github.com/mastra-ai/mastra/pull/12704))\r\n  - Fixed memory configuration in agent forms to use `SerializedMemoryConfig` object instead of string\r\n  - Added `MemoryConfigurator` component for proper memory settings UI\r\n  - Fixed scorer sampling configuration to remove unsupported 'count' option\r\n  - Added `useVectors` and `useEmbedders` hooks to fetch available options from API\r\n  - Fixed agent creation flow to use the server-returned agent ID for navigation\r\n  - Fixed form validation schema to properly handle memory configuration object\r\n\r\n- Update docs links to request context ([#12144](https://github.com/mastra-ai/mastra/pull/12144))\r\n\r\n- Supporting changes for async buffering in observational memory, including new config options, streaming events, and UI markers. ([#12891](https://github.com/mastra-ai/mastra/pull/12891))\r\n\r\n- Fixed skill install/update/remove error toasts showing generic \"Internal Server Error\" instead of the actual error message. Added mount status indicators to the file browser. ([#12605](https://github.com/mastra-ai/mastra/pull/12605))\r\n\r\n- Supporting work to enable workflow step metadata ([#12508](https://github.com/mastra-ai/mastra/pull/12508))\r\n\r\n- Made description and instructions required fields in the scorer edit form ([#12897](https://github.com/mastra-ai/mastra/pull/12897))\r\n\r\n- Fixed chat messages flashing when loading a thread. Messages now update reactively via useEffect instead of lazy state initialization, preventing the brief flash of empty state. ([#12863](https://github.com/mastra-ai/mastra/pull/12863))\r\n\r\n- Fixed observational memory progress bars resetting to zero after agent responses finish. The messages and observations sidebar bars now retain their values on stream completion, cancellation, and page reload. ([#12939](https://github.com/mastra-ai/mastra/pull/12939))\r\n\r\n- Fixed skills search dialog to correctly identify individual skills. Selection now highlights only the clicked skill, and the Installed badge only shows for the exact skill that was installed (matching by source repository + name). Gracefully handles older server versions without source info by falling back to name-only matching. ([#12678](https://github.com/mastra-ai/mastra/pull/12678))\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`f8772f5`](https://github.com/mastra-ai/mastra/commit/f8772f595d34926ae2135ed4ec2e9441704d239c), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`2e02cd7`](https://github.com/mastra-ai/mastra/commit/2e02cd7e08ba2d84a275c80d80c069d2b8b66211), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`42a2e13`](https://github.com/mastra-ai/mastra/commit/42a2e1388869c87d81f09fcdc58b1e9e3c99abe6), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`73b0925`](https://github.com/mastra-ai/mastra/commit/73b0925b63edaeacd32b0613f83fcd1daec40846), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`be42958`](https://github.com/mastra-ai/mastra/commit/be42958d62c9f3d6b3a037580a6ef362afa47240), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`5bee8ea`](https://github.com/mastra-ai/mastra/commit/5bee8eaa5e25566994a10f1c76fd9e72e05f925a), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`a211248`](https://github.com/mastra-ai/mastra/commit/a21124845b1b1321b6075a8377c341c7f5cda1b6), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`4493fb9`](https://github.com/mastra-ai/mastra/commit/4493fb93f68e504c8531b90fd5b2e1866bee6381), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`e8f3910`](https://github.com/mastra-ai/mastra/commit/e8f3910d5323d91a69ec35ad78d14a524f54ca8a), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n  - @mastra/client-js@1.3.0\r\n  - @mastra/ai-sdk@1.0.4\r\n  - @mastra/react@0.2.2\r\n\r\n### [@mastra/server@1.3.0](https://github.com/mastra-ai/mastra/blob/@mastra/server@1.3.0/packages/server/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- **Added stored scorer CRUD API and updated editor namespace calls** ([#12846](https://github.com/mastra-ai/mastra/pull/12846))\r\n  - Added server routes for stored scorer definitions: create, read, update, delete, list, and list resolved\r\n  - Added `StoredScorer` resource to the client SDK with full CRUD support\r\n  - Updated all server handlers to use the new editor namespace pattern (`editor.agent.getById`, `editor.agent.list`, `editor.prompt.preview`) and generic storage domain methods (`store.create`, `store.getById`, `store.delete`)\r\n\r\n- Update peer dependencies to match core package version bump (1.1.0) ([#12508](https://github.com/mastra-ai/mastra/pull/12508))\r\n\r\n  - Changed stored agent `tools` field from `string[]` to `Record<string, { description?: string }>` to allow per-tool description overrides\r\n  - When a stored agent specifies a custom `description` for a tool, the override is applied at resolution time\r\n  - Updated server API schemas, client SDK types, and editor resolution logic accordingly\r\n\r\n### Patch Changes\r\n\r\n- Fixed observational memory progress bars resetting to zero after agent responses finish. ([#12934](https://github.com/mastra-ai/mastra/pull/12934))\r\n\r\n- Fixed issues with stored agents ([#12790](https://github.com/mastra-ai/mastra/pull/12790))\r\n\r\n- Added `requestContextSchema` and conditional field validation to stored agent API schemas. The stored agent create, update, and version endpoints now accept conditional variants for dynamically-configurable fields (`tools`, `model`, `workflows`, `agents`, `memory`, `scorers`, `inputProcessors`, `outputProcessors`, `defaultOptions`). ([#12896](https://github.com/mastra-ai/mastra/pull/12896))\r\n\r\n- Fix stored agents functionality: ([#12704](https://github.com/mastra-ai/mastra/pull/12704))\r\n  - Fixed auto-versioning bug where `activeVersionId` wasn't being updated when creating new versions\r\n  - Added `GET /vectors` endpoint to list available vector stores\r\n  - Added `GET /embedders` endpoint to list available embedding models\r\n  - Added validation for memory configuration when semantic recall is enabled\r\n  - Fixed version comparison in `handleAutoVersioning` to use the active version instead of latest\r\n  - Added proper cache clearing after agent updates\r\n\r\n- Added `POST /stored/agents/preview-instructions` endpoint for resolving instruction blocks against a request context. This enables UI previews of how agent instructions will render with specific variables and rule conditions. Updated Zod schemas to support the new `AgentInstructionBlock` union type (`text, prompt_block_ref, inline prompt_block`) in agent version and stored agent responses. ([#12776](https://github.com/mastra-ai/mastra/pull/12776))\r\n\r\n- Improved workspace lookup performance while keeping backwards compatibility. ([#12607](https://github.com/mastra-ai/mastra/pull/12607))\r\n\r\n  The workspace handlers now use Mastra's workspace registry (`getWorkspaceById()`) for faster lookup when available, and fall back to iterating through agents for older `@mastra/core` versions.\r\n\r\n  This change is backwards compatible - newer @mastra/server works with both older and newer @mastra/core versions.\r\n\r\n- Route server errors through Mastra logger instead of console.error ([#12888](https://github.com/mastra-ai/mastra/pull/12888))\r\n\r\n  Server adapter errors (handler errors, parsing errors, auth errors) now use the configured Mastra logger instead of console.error. This ensures errors are properly\r\n  formatted as structured logs and sent to configured transports like HttpTransport.\r\n\r\n- Fixed Swagger UI not including the API prefix (e.g., `/api`) in request URLs. The OpenAPI spec now includes a servers field with the configured prefix, so Swagger UI correctly generates URLs like `http://localhost:4111/api/agents` instead of `http://localhost:4111/agents`. ([#12847](https://github.com/mastra-ai/mastra/pull/12847))\r\n\r\n- Fixed sort direction parameters being silently ignored in Thread Messages API when using bracket notation query params (e.g., `orderBy[field]=createdAt&orderBy[direction]=DESC`). The `normalizeQueryParams` function now reconstructs nested objects from bracket-notation keys, so both JSON format and bracket notation work correctly for `orderBy`, `filter`, `metadata`, and other complex query parameters. (Fixes #12816) ([#12832](https://github.com/mastra-ai/mastra/pull/12832))\r\n\r\n- Supporting work to enable workflow step metadata ([#12508](https://github.com/mastra-ai/mastra/pull/12508))\r\n\r\n- Made description and instructions required fields in the scorer edit form ([#12897](https://github.com/mastra-ai/mastra/pull/12897))\r\n\r\n- Added mount metadata to the workspace file listing response. File entries now include provider, icon, display name, and description for mounted filesystems. ([#12851](https://github.com/mastra-ai/mastra/pull/12851))\r\n\r\n- Added source repository info to workspace skill listings so clients can distinguish identically named skills installed from different repos. ([#12678](https://github.com/mastra-ai/mastra/pull/12678))\r\n\r\n- Improved error messages when skill installation fails, now showing the actual error instead of a generic message. ([#12605](https://github.com/mastra-ai/mastra/pull/12605))\r\n\r\n- **Breaking:** Removed `cloneAgent()` from the `Agent` class. Agent cloning is now handled by the editor package via `editor.agent.clone()`. ([#12904](https://github.com/mastra-ai/mastra/pull/12904))\r\n\r\n  If you were calling `agent.cloneAgent()` directly, use the editor's agent namespace instead:\r\n\r\n  ```ts\r\n  // Before\r\n  const result = await agent.cloneAgent({ newId: \"my-clone\" });\r\n\r\n  // After\r\n  const editor = mastra.getEditor();\r\n  const result = await editor.agent.clone(agent, { newId: \"my-clone\" });\r\n  ```\r\n\r\n  **Why:** The `Agent` class should not be responsible for storage serialization. The editor package already handles converting between runtime agents and stored configurations, so cloning belongs there.\r\n\r\n  **Added** `getConfiguredProcessorIds()` to the `Agent` class, which returns raw input/output processor IDs for the agent's configuration.\r\n\r\n- Updated dependencies [[`717ffab`](https://github.com/mastra-ai/mastra/commit/717ffab42cfd58ff723b5c19ada4939997773004), [`b31c922`](https://github.com/mastra-ai/mastra/commit/b31c922215b513791d98feaea1b98784aa00803a), [`e4b6dab`](https://github.com/mastra-ai/mastra/commit/e4b6dab171c5960e340b3ea3ea6da8d64d2b8672), [`5719fa8`](https://github.com/mastra-ai/mastra/commit/5719fa8880e86e8affe698ec4b3807c7e0e0a06f), [`83cda45`](https://github.com/mastra-ai/mastra/commit/83cda4523e588558466892bff8f80f631a36945a), [`11804ad`](https://github.com/mastra-ai/mastra/commit/11804adf1d6be46ebe216be40a43b39bb8b397d7), [`aa95f95`](https://github.com/mastra-ai/mastra/commit/aa95f958b186ae5c9f4219c88e268f5565c277a2), [`90f7894`](https://github.com/mastra-ai/mastra/commit/90f7894568dc9481f40a4d29672234fae23090bb), [`f5501ae`](https://github.com/mastra-ai/mastra/commit/f5501aedb0a11106c7db7e480d6eaf3971b7bda8), [`44573af`](https://github.com/mastra-ai/mastra/commit/44573afad0a4bc86f627d6cbc0207961cdcb3bc3), [`00e3861`](https://github.com/mastra-ai/mastra/commit/00e3861863fbfee78faeb1ebbdc7c0223aae13ff), [`8109aee`](https://github.com/mastra-ai/mastra/commit/8109aeeab758e16cd4255a6c36f044b70eefc6a6), [`7bfbc52`](https://github.com/mastra-ai/mastra/commit/7bfbc52a8604feb0fff2c0a082c13c0c2a3df1a2), [`1445994`](https://github.com/mastra-ai/mastra/commit/1445994aee19c9334a6a101cf7bd80ca7ed4d186), [`61f44a2`](https://github.com/mastra-ai/mastra/commit/61f44a26861c89e364f367ff40825bdb7f19df55), [`37145d2`](https://github.com/mastra-ai/mastra/commit/37145d25f99dc31f1a9105576e5452609843ce32), [`fdad759`](https://github.com/mastra-ai/mastra/commit/fdad75939ff008b27625f5ec0ce9c6915d99d9ec), [`e4569c5`](https://github.com/mastra-ai/mastra/commit/e4569c589e00c4061a686c9eb85afe1b7050b0a8), [`7309a85`](https://github.com/mastra-ai/mastra/commit/7309a85427281a8be23f4fb80ca52e18eaffd596), [`99424f6`](https://github.com/mastra-ai/mastra/commit/99424f6862ffb679c4ec6765501486034754a4c2), [`44eb452`](https://github.com/mastra-ai/mastra/commit/44eb4529b10603c279688318bebf3048543a1d61), [`6c40593`](https://github.com/mastra-ai/mastra/commit/6c40593d6d2b1b68b0c45d1a3a4c6ac5ecac3937), [`8c1135d`](https://github.com/mastra-ai/mastra/commit/8c1135dfb91b057283eae7ee11f9ec28753cc64f), [`dd39e54`](https://github.com/mastra-ai/mastra/commit/dd39e54ea34532c995b33bee6e0e808bf41a7341), [`b6fad9a`](https://github.com/mastra-ai/mastra/commit/b6fad9a602182b1cc0df47cd8c55004fa829ad61), [`4129c07`](https://github.com/mastra-ai/mastra/commit/4129c073349b5a66643fd8136ebfe9d7097cf793), [`5b930ab`](https://github.com/mastra-ai/mastra/commit/5b930aba1834d9898e8460a49d15106f31ac7c8d), [`4be93d0`](https://github.com/mastra-ai/mastra/commit/4be93d09d68e20aaf0ea3f210749422719618b5f), [`047635c`](https://github.com/mastra-ai/mastra/commit/047635ccd7861d726c62d135560c0022a5490aec), [`8c90ff4`](https://github.com/mastra-ai/mastra/commit/8c90ff4d3414e7f2a2d216ea91274644f7b29133), [`ed232d1`](https://github.com/mastra-ai/mastra/commit/ed232d1583f403925dc5ae45f7bee948cf2a182b), [`3891795`](https://github.com/mastra-ai/mastra/commit/38917953518eb4154a984ee36e6ededdcfe80f72), [`4f955b2`](https://github.com/mastra-ai/mastra/commit/4f955b20c7f66ed282ee1fd8709696fa64c4f19d), [`55a4c90`](https://github.com/mastra-ai/mastra/commit/55a4c9044ac7454349b9f6aeba0bbab5ee65d10f)]:\r\n  - @mastra/core@1.3.0\r\n","publishedAt":"2026-02-11T17:24:13.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.3.0","media":[]},{"id":"rel_b6SPTHvtw9Qilo0iBriLq","version":"mastra@1.2.0","title":"February 4, 2026","summary":"## Highlights\r\n\r\n### Observational Memory for long-running agents\r\n\r\nObservational Memory is a new Mastra Memory feature which makes small context win...","content":"## Highlights\r\n\r\n### Observational Memory for long-running agents\r\n\r\nObservational Memory is a new Mastra Memory feature which makes small context windows behave like large ones, while retaining long-term memory. It compresses conversations into dense observations logs (5–40x smaller than raw messages). When observations grow too long, they're condensed into reflections. Supports thread and resource scopes. It requires the latest versions of `@mastra/core`, `@mastra/memory`, `mastra`, and `@mastra/pg`, `@mastra/libsql`, or `@mastra/mongodb`.\r\n\r\n### Skills.sh ecosystem integration (server + UI + CLI)\r\n\r\n`@mastra/server` adds skills.sh proxy endpoints (search/browse/preview/install/update/remove), Studio adds an “Add Skill” dialog for browsing/installing skills, and the CLI wizard can optionally install Mastra skills during `create-mastra` (with non-interactive `--skills` support).\r\n\r\n### Dynamic tool discovery with `ToolSearchProcessor`\r\n\r\nAdds `ToolSearchProcessor` to let agents search and load tools on demand via built-in `search_tools` and `load_tool` meta-tools, dramatically reducing context usage for large tool libraries (e.g., MCP/integration-heavy setups).\r\n\r\n### New `@mastra/editor`: store, version, and resolve agents from a database\r\n\r\nIntroduces `@mastra/editor` for persisting complete agent configurations (instructions, models, tools, workflows, nested agents, processors, memory), managing versions/activation, and instantiating dependencies from the Mastra registry with caching and type-safe serialization.\r\n\r\n### Breaking Changes\r\n\r\n- `@mastra/elasticsearch`: vector document IDs now come from Elasticsearch `_id`; stored `id` fields are no longer written (breaking if you relied on `source.id`).\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/core/CHANGELOG.md)\r\n\r\n- Update provider registry and model documentation with latest models and providers\r\n\r\n\tFixes: [e6fc281](https://github.com/mastra-ai/mastra/commit/e6fc281896a3584e9e06465b356a44fe7faade65)\r\n\r\n- Fixed processors returning `{ tools: {}, toolChoice: 'none' }` being ignored. Previously, when a processor returned empty tools with an explicit `toolChoice: 'none'` to prevent tool calls, the toolChoice was discarded and defaulted to 'auto'. This fix preserves the explicit 'none' value, enabling patterns like ensuring a final text response when `maxSteps` is reached.\r\n\r\n\tFixes: [#12601](https://github.com/mastra-ai/mastra/pull/12601)\r\n\r\n- Internal changes to enable observational memory\r\n\r\n- Internal changes to enable `@mastra/editor`\r\n\r\n- Fix moonshotai/kimi-k2.5 multi-step tool calling failing with \"reasoning_content is missing in assistant tool call message\"\r\n\r\n- Changed moonshotai and moonshotai-cn (China version) providers to use Anthropic-compatible API endpoints instead of OpenAI-compatible\r\n  - moonshotai: `https://api.moonshot.ai/anthropic/v1`\r\n  - moonshotai-cn: `https://api.moonshot.cn/anthropic/v1`\r\n\tThis properly handles reasoning_content for kimi-k2.5 model\r\n\r\n\tFixes: [#12530](https://github.com/mastra-ai/mastra/pull/12530)\r\n\r\n- Fixed custom input processors from disabling workspace skill tools in generate() and stream(). Custom processors now replace only the processors you configured, while memory and skills remain available. Fixes #12612.\r\n\r\n\tFixes: [#12676](https://github.com/mastra-ai/mastra/pull/12676)\r\n\r\n- **Fixed**\r\n  Workspace search index names now use underscores so they work with SQL-based vector stores (PgVector, LibSQL).\r\n\r\n\t**Added**\r\n\tYou can now set a custom index name with `searchIndexName`.\r\n\t\r\n\t**Why**\r\n\tSome SQL vector stores reject hyphens in index names.\r\n\t\r\n\t**Example**\r\n\t\r\n\t```ts\r\n\t// Before - would fail with PgVector\r\n\tnew Workspace({ id: \"my-workspace\", vectorStore, embedder });\r\n\t\r\n\t// After - works with all vector stores\r\n\tnew Workspace({ id: \"my-workspace\", vectorStore, embedder });\r\n\t\r\n\t// Or use a custom index name\r\n\tnew Workspace({ vectorStore, embedder, searchIndexName: \"my_workspace_vectors\" });\r\n\t```\r\n\t\r\n\tFixes: [#12673](https://github.com/mastra-ai/mastra/pull/12673)\r\n\r\n- Added logger support to Workspace filesystem and sandbox providers. Providers extending MastraFilesystem or MastraSandbox now automatically receive the Mastra logger for consistent logging of file operations and command executions.\r\n\r\n\tFixes: [#12606](https://github.com/mastra-ai/mastra/pull/12606)\r\n\r\n- Added ToolSearchProcessor for dynamic tool discovery.\r\n\r\n\tAgents can now discover and load tools on demand instead of having all tools available upfront. This reduces context token usage by ~94% when working with large tool libraries.\r\n\t\r\n\t**New API:**\r\n\t\r\n\t```typescript\r\n\timport { ToolSearchProcessor } from \"@mastra/core/processors\";\r\n\timport { Agent } from \"@mastra/core\";\r\n\t\r\n\t// Create a processor with searchable tools\r\n\tconst toolSearch = new ToolSearchProcessor({\r\n\t  tools: {\r\n\t    createIssue: githubTools.createIssue,\r\n\t    sendEmail: emailTools.send\r\n\t    // ... hundreds of tools\r\n\t  },\r\n\t  search: {\r\n\t    topK: 5, // Return top 5 results (default: 5)\r\n\t    minScore: 0.1 // Filter results below this score (default: 0)\r\n\t  }\r\n\t});\r\n\t\r\n\t// Attach processor to agent\r\n\tconst agent = new Agent({\r\n\t  name: \"my-agent\",\r\n\t  inputProcessors: [toolSearch],\r\n\t  tools: {\r\n\t    /* always-available tools */\r\n\t  }\r\n\t});\r\n\t```\r\n\t\r\n\t**How it works:**\r\n\t\r\n\tThe processor automatically provides two meta-tools to the agent:\r\n\t\r\n\t- `search_tools` - Search for available tools by keyword relevance\r\n\t- `load_tool` - Load a specific tool into the conversation\r\n\t\r\n\tThe agent discovers what it needs via search and loads tools on demand. Loaded tools are available immediately and persist within the conversation thread.\r\n\t\r\n\t**Why:**\r\n\t\r\n\tWhen agents have access to 100+ tools (from MCP servers or integrations), including all tool definitions in the context can consume significant tokens (~1,500 tokens per tool). This pattern reduces context usage by giving agents only the tools they need, when they need them.\r\n\t\r\n\tFixes: [#12290](https://github.com/mastra-ai/mastra/pull/12290)\r\n\r\n- Catch up evented workflows on parity with default execution engine\r\n\r\n\tFixes: [#12555](https://github.com/mastra-ai/mastra/pull/12555)\r\n\r\n- Expose token usage from embedding operations\r\n\r\n- `saveMessages` now returns `usage: { tokens: number }` with aggregated token count from all embeddings\r\n- `recall` now returns `usage: { tokens: number }` from the vector search query embedding\r\n- Updated abstract method signatures in `MastraMemory` to include optional `usage` in return types\r\n\r\n\tThis allows users to track embedding token usage when using the Memory class.\r\n\t\r\n\tFixes: [#12556](https://github.com/mastra-ai/mastra/pull/12556)\r\n\r\n- Fixed a security issue where sensitive observability credentials (such as Langfuse API keys) could be exposed in tool execution error logs. The tracingContext is now properly excluded from logged data.\r\n\r\n\tFixes: [#12669](https://github.com/mastra-ai/mastra/pull/12669)\r\n\r\n- Fixed issue where some models incorrectly call skill names directly as tools instead of using skill-activate. Added clearer system instructions that explicitly state skills are NOT tools and must be activated via skill-activate with the skill name as the \"name\" parameter. Fixes #12654.\r\n\r\n\tFixes: [#12677](https://github.com/mastra-ai/mastra/pull/12677)\r\n\r\n- Improved workspace filesystem error handling: return 404 for not-found errors instead of 500, show user-friendly error messages in UI, and add MastraClientError class with status/body properties for better error handling\r\n\r\n\tFixes: [#12533](https://github.com/mastra-ai/mastra/pull/12533)\r\n\r\n- Improved workspace tool descriptions with clearer usage guidance for read_file, edit_file, and execute_command tools.\r\n\r\n\tFixes: [#12640](https://github.com/mastra-ai/mastra/pull/12640)\r\n\r\n- Fixed JSON parsing in agent network to handle malformed LLM output. Uses parsePartialJson from AI SDK to recover truncated JSON, missing braces, and unescaped control characters instead of failing immediately. This reduces unnecessary retry round-trips when the routing agent generates slightly malformed JSON for tool/workflow prompts. Fixes #12519.\r\n\r\n\tFixes: [#12526](https://github.com/mastra-ai/mastra/pull/12526)\r\n\r\n### [@mastra/client-js@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/client-sdks/client-js/CHANGELOG.md)\r\n\r\n- Internal changes to enable observational memory\r\n\r\n- Internal changes to enable `@mastra/editor`\r\n\r\n- Improved workspace filesystem error handling: return 404 for not-found errors instead of 500, show user-friendly error messages in UI, and add MastraClientError class with status/body properties for better error handling\r\n\r\n\tFixes: [#12533](https://github.com/mastra-ai/mastra/pull/12533)\r\n\r\n### [@mastra/convex@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/stores/convex/CHANGELOG.md)\r\n\r\n- Fixed import path for storage constants in Convex server storage to use the correct @mastra/core/storage/constants subpath export\r\n\r\n\tFixes: [#12560](https://github.com/mastra-ai/mastra/pull/12560)\r\n\r\n### [@mastra/editor@0.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/editor/CHANGELOG.md)\r\n\r\nCreated @mastra/editor package for managing and resolving stored agent configurations\r\n\r\nThis major addition introduces the editor package, which provides a complete solution for storing, versioning, and instantiating agent configurations from a database. The editor seamlessly integrates with Mastra's storage layer to enable dynamic agent management.\r\n\r\n**Key Features:**\r\n\r\n- **Agent Storage & Retrieval**: Store complete agent configurations including instructions, model settings, tools, workflows, nested agents, scorers, processors, and memory configuration\r\n- **Version Management**: Create and manage multiple versions of agents, with support for activating specific versions\r\n- **Dependency Resolution**: Automatically resolves and instantiates all agent dependencies (tools, workflows, sub-agents, etc.) from the Mastra registry\r\n- **Caching**: Built-in caching for improved performance when repeatedly accessing stored agents\r\n- **Type Safety**: Full TypeScript support with proper typing for stored configurations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\nimport { MastraEditor } from \"@mastra/editor\";\r\nimport { Mastra } from \"@mastra/core\";\r\n\r\n// Initialize editor with Mastra\r\nconst mastra = new Mastra({\r\n  /* config */\r\n  editor: new MastraEditor()\r\n});\r\n\r\n// Store an agent configuration\r\nconst agentId = await mastra.storage.stores?.agents?.createAgent({\r\n  name: \"customer-support\",\r\n  instructions: \"Help customers with inquiries\",\r\n  model: { provider: \"openai\", name: \"gpt-4\" },\r\n  tools: [\"search-kb\", \"create-ticket\"],\r\n  workflows: [\"escalation-flow\"],\r\n  memory: { vector: \"pinecone-db\" }\r\n});\r\n\r\n// Retrieve and use the stored agent\r\nconst agent = await mastra.getEditor()?.getStoredAgentById(agentId);\r\nconst response = await agent?.generate(\"How do I reset my password?\");\r\n\r\n// List all stored agents\r\nconst agents = await mastra.getEditor()?.listStoredAgents({ pageSize: 10 });\r\n```\r\n\r\n**Storage Improvements:**\r\n\r\n- Fixed JSONB handling in LibSQL, PostgreSQL, and MongoDB adapters\r\n- Improved agent resolution queries to properly merge version data\r\n- Enhanced type safety for serialized configurations\r\n\r\nFixes: [#12631](https://github.com/mastra-ai/mastra/pull/12631)\r\n\r\n### [@mastra/elasticsearch@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/stores/elasticsearch/CHANGELOG.md)\r\n\r\n**Added** API key, basic, and bearer authentication options for Elasticsearch connections.\r\n\r\n**Changed** vector IDs now come from Elasticsearch `_id`; stored `id` fields are no longer written (breaking if you relied on `source.id`).\r\n\r\n**Why** This aligns with Elasticsearch auth best practices and avoids duplicate IDs in stored documents.\r\n\r\n**Before**\r\n\r\n```ts\r\nconst store = new ElasticSearchVector({ url, id: \"my-index\" });\r\n```\r\n\r\n**After**\r\n\r\n```ts\r\nconst store = new ElasticSearchVector({\r\n  url,\r\n  id: \"my-index\",\r\n  auth: { apiKey: process.env.ELASTICSEARCH_API_KEY! }\r\n});\r\n```\r\n\r\nFixes: [#11298](https://github.com/mastra-ai/mastra/pull/11298)\r\n\r\n### [@mastra/evals@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/evals/CHANGELOG.md)\r\n\r\nAdded `getContext` hook to hallucination scorer for dynamic context resolution at runtime. This enables live scoring scenarios where context (like tool results) is only available when the scorer runs. Also added `extractToolResults` utility function to help extract tool results from scorer output.\r\n\r\n**Before (static context):**\r\n\r\n```typescript\r\nconst scorer = createHallucinationScorer({\r\n  model: openai(\"gpt-4o\"),\r\n  options: {\r\n    context: [\"The capital of France is Paris.\", \"France is in Europe.\"]\r\n  }\r\n});\r\n```\r\n\r\n**After (dynamic context from tool results):**\r\n\r\n```typescript\r\nimport { extractToolResults } from \"@mastra/evals/scorers\";\r\n\r\nconst scorer = createHallucinationScorer({\r\n  model: openai(\"gpt-4o\"),\r\n  options: {\r\n    getContext: ({ run }) => {\r\n      const toolResults = extractToolResults(run.output);\r\n      return toolResults.map((t) => JSON.stringify({ tool: t.toolName, result: t.result }));\r\n    }\r\n  }\r\n});\r\n```\r\n\r\nFixes: [#12639](https://github.com/mastra-ai/mastra/pull/12639)\r\n\r\n### [@mastra/fastify@1.1.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/server-adapters/fastify/CHANGELOG.md)\r\n\r\nFixed missing cross-origin headers on streaming responses when using the Fastify adapter. Headers set by plugins (like @fastify/cors) are now preserved when streaming. See https://github.com/mastra-ai/mastra/issues/12622\r\n\r\nFixes: [#12633](https://github.com/mastra-ai/mastra/pull/12633)\r\n\r\n### [@mastra/inngest@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/workflows/inngest/CHANGELOG.md)\r\n\r\nFix long running steps causing inngest workflow to fail\r\n\r\nFixes: [#12522](https://github.com/mastra-ai/mastra/pull/12522)\r\n\r\n### [@mastra/libsql@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/stores/libsql/CHANGELOG.md)\r\n\r\n- Internal changes to enable observational memory\r\n\r\n- Internal changes to enable `@mastra/editor`\r\n\r\n### [@mastra/mcp-docs-server@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/mcp-docs-server/CHANGELOG.md)\r\n\r\nRestructure and tidy up the MCP Docs Server. It now focuses more on documentation and uses fewer tools.\r\n\r\nRemoved tools that sourced content from:\r\n\r\n- Blog\r\n- Package changelog\r\n- Examples\r\n\r\nThe local docs source is now using the generated llms.txt files from the official documentation, making it more accurate and easier to maintain.\r\n\r\nFixes: [#12623](https://github.com/mastra-ai/mastra/pull/12623)\r\n\r\n### [@mastra/memory@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/memory/CHANGELOG.md)\r\n\r\nAdded Observational Memory — a new memory system that keeps your agent's context window small while preserving long-term memory across conversations.\r\n\r\n**Why:** Long conversations cause context rot and waste tokens. Observational Memory compresses conversation history into observations (5–40x compression) and periodically condenses those into reflections. Your agent stays fast and focused, even after thousands of messages.\r\n\r\n**Usage:**\r\n\r\n```ts\r\nimport { Memory } from \"@mastra/memory\";\r\nimport { PostgresStore } from \"@mastra/pg\";\r\n\r\nconst memory = new Memory({\r\n  storage: new PostgresStore({ connectionString: process.env.DATABASE_URL }),\r\n  options: {\r\n    observationalMemory: true\r\n  }\r\n});\r\n\r\nconst agent = new Agent({\r\n  name: \"my-agent\",\r\n  model: openai(\"gpt-4o\"),\r\n  memory\r\n});\r\n```\r\n\r\n**What's new:**\r\n\r\n- `observationalMemory: true` enables the three-tier memory system (recent messages → observations → reflections)\r\n- Thread-scoped (per-conversation) and resource-scoped (shared across all threads for a user) modes\r\n- Manual `observe()` API for triggering observation outside the normal agent loop\r\n- New OM storage methods for pg, libsql, and mongodb adapters (conditionally enabled)\r\n- `Agent.findProcessor()` method for looking up processors by ID\r\n- `processorStates` for persisting processor state across loop iterations\r\n- Abort signal propagation to processors\r\n- `ProcessorStreamWriter` for custom stream events from processors\r\n\r\nFixes: [#12599](https://github.com/mastra-ai/mastra/pull/12599)\r\n\r\n- Expose token usage from embedding operations\r\n\r\n- `saveMessages` now returns `usage: { tokens: number }` with aggregated token count from all embeddings\r\n- `recall` now returns `usage: { tokens: number }` from the vector search query embedding\r\n- Updated abstract method signatures in `MastraMemory` to include optional `usage` in return types\r\n\r\n\tThis allows users to track embedding token usage when using the Memory class.\r\n\t\r\n\tFixes: [#12556](https://github.com/mastra-ai/mastra/pull/12556)\r\n\r\n### [@mastra/mongodb@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/stores/mongodb/CHANGELOG.md)\r\n\r\n- Internal changes to enable observational memory\r\n\r\n- Internal changes to enable `@mastra/editor`\r\n\r\n### [@mastra/observability@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/observability/mastra/CHANGELOG.md)\r\n\r\n- Increased default serialization limits for AI tracing. The maxStringLength is now 128KB (previously 1KB) and maxDepth is 8 (previously 6). These changes prevent truncation of large LLM prompts and responses during tracing.\r\n\r\n\tTo restore the previous behavior, set `serializationOptions` in your observability config:\r\n\t\r\n\t```ts\r\n\tserializationOptions: {\r\n\t  maxStringLength: 1024,\r\n\t  maxDepth: 6,\r\n\t}\r\n\t```\r\n\t\r\n\tFixes: [#12579](https://github.com/mastra-ai/mastra/pull/12579)\r\n\r\n- Fix CloudFlare Workers deployment failure caused by `fileURLToPath` being called at module initialization time.\r\n\r\n\tMoved `SNAPSHOTS_DIR` calculation from top-level module code into a lazy getter function. In CloudFlare Workers (V8 runtime), `import.meta.url` is `undefined` during worker startup, causing the previous code to throw. The snapshot functionality is only used for testing, so deferring initialization has no impact on normal operation.\r\n\t\r\n\tFixes: [#12540](https://github.com/mastra-ai/mastra/pull/12540)\r\n\r\n### [@mastra/pg@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/stores/pg/CHANGELOG.md)\r\n\r\n- Internal changes to enable observational memory\r\n\r\n- Internal changes to enable `@mastra/editor`\r\n\r\n### [@mastra/playground-ui@9.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/playground-ui/CHANGELOG.md)\r\n\r\n- Use EntryCell icon prop for source indicator in agent table\r\n\r\n\tFixes: [#12515](https://github.com/mastra-ai/mastra/pull/12515)\r\n\r\n- Add Observational Memory UI to the playground. Shows observation/reflection markers inline in the chat thread, and adds an Observational Memory panel to the agent info section with observations, reflection history, token usage, and config. All OM UI is gated behind a context provider that no-ops when OM isn't configured.\r\n\r\n\tFixes: [#12599](https://github.com/mastra-ai/mastra/pull/12599)\r\n\r\n- Added MultiCombobox component for multi-select scenarios, and JSONSchemaForm compound component for building JSON schema definitions visually. The Combobox component now supports description text on options and error states.\r\n\r\n\tFixes: [#12616](https://github.com/mastra-ai/mastra/pull/12616)\r\n\r\n- Added ContentBlocks, a reusable drag-and-drop component for building ordered lists of editable content. Also includes AgentCMSBlocks, a ready-to-use implementation for agent system prompts with add, delete, and reorder functionality.\r\n\r\n\tFixes: [#12629](https://github.com/mastra-ai/mastra/pull/12629)\r\n\r\n- Redesigned toast component with outline circle icons, left-aligned layout, and consistent design system styling\r\n\r\n\tFixes: [#12618](https://github.com/mastra-ai/mastra/pull/12618)\r\n\r\n- Updated Badge component styling: increased height to 28px, changed to pill shape with rounded-full, added border, and increased padding for better visual appearance.\r\n\r\n\tFixes: [#12511](https://github.com/mastra-ai/mastra/pull/12511)\r\n\r\n- Fixed custom gateway provider detection in Studio.\r\n\r\n\t**What changed:**\r\n\t\r\n\t- Studio now correctly detects connected custom gateway providers (e.g., providers registered as `acme/custom` are now found when the agent uses model `acme/custom/gpt-4o`)\r\n\t- The model selector properly displays and updates models for custom gateway providers\r\n\t- \"Enhance prompt\" feature works correctly with custom gateway providers\r\n\t\r\n\t**Why:**\r\n\tCustom gateway providers are stored with a gateway prefix (e.g., `acme/custom`), but the model router extracts just the provider part (e.g., `custom`). The lookups were failing because they only did exact matching. Now both backend and frontend use fallback logic to find providers with gateway prefixes.\r\n\t\r\n\tFixes: [#11815](https://github.com/mastra-ai/mastra/pull/11815)\r\n\r\n- Fixed variable highlighting in markdown lists - variables like `{{name}}` now correctly display in orange inside list items.\r\n\r\n\tFixes: [#12653](https://github.com/mastra-ai/mastra/pull/12653)\r\n\r\n- Added markdown language support to CodeEditor with syntax highlighting for headings, emphasis, links, and code blocks. New `language` prop accepts 'json' (default) or 'markdown'. Added variable highlighting extension that visually distinguishes `{{variableName}}` patterns with orange styling when `highlightVariables` prop is enabled.\r\n\r\n\tFixes: [#12621](https://github.com/mastra-ai/mastra/pull/12621)\r\n\r\n- Fixed the Tools page incorrectly displaying as empty when tools are defined inline in agent files.\r\n\r\n\tFixes: [#12531](https://github.com/mastra-ai/mastra/pull/12531)\r\n\r\n- Fixed rule engine bugs: type-safe comparisons for greater_than/less_than operators, array support for contains/not_contains, consistent path parsing for dot notation, and prevented Infinity/NaN strings from being converted to JS special values\r\n\r\n\tFixes: [#12624](https://github.com/mastra-ai/mastra/pull/12624)\r\n\r\n- Added Add Skill dialog for browsing and installing skills from skills.sh registry.\r\n\r\n\t**New features:**\r\n\t\r\n\t- Search skills or browse popular skills from skills.sh\r\n\t- Preview skill content with rendered SKILL.md (tables, code blocks, etc.)\r\n\t- Install, update, and remove skills directly from the UI\r\n\t- Shows installed status for skills already in workspace\r\n\t\r\n\tFixes: [#12492](https://github.com/mastra-ai/mastra/pull/12492)\r\n\r\n- Fixed toast imports to use custom wrapper for consistent styling\r\n\r\n\tFixes: [#12618](https://github.com/mastra-ai/mastra/pull/12618)\r\n\r\n- Fixed sidebar tooltip styling in collapsed mode by removing hardcoded color overrides\r\n\r\n\tFixes: [#12537](https://github.com/mastra-ai/mastra/pull/12537)\r\n\r\n- Added CMS block conditional rules component and unified JsonSchema types across the codebase. The new AgentCMSBlockRules component allows content blocks to be displayed conditionally based on rules. Also added jsonSchemaToFields utility for bi-directional schema conversion.\r\n\r\n\tFixes: [#12651](https://github.com/mastra-ai/mastra/pull/12651)\r\n\r\n- Improved workspace filesystem error handling: return 404 for not-found errors instead of 500, show user-friendly error messages in UI, and add MastraClientError class with status/body properties for better error handling\r\n\r\n\tFixes: [#12533](https://github.com/mastra-ai/mastra/pull/12533)\r\n\r\n- Fixed combobox dropdowns in agent create/edit dialogs to render within the modal container, preventing z-index and scrolling issues.\r\n\r\n\tFixes: [#12510](https://github.com/mastra-ai/mastra/pull/12510)\r\n\r\n- Added warning toast and banner when installing skills that aren't discovered due to missing .agents/skills path configuration.\r\n\r\n\tFixes: [#12547](https://github.com/mastra-ai/mastra/pull/12547)\r\n\r\n### [@mastra/schema-compat@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/schema-compat/CHANGELOG.md)\r\n\r\n- Added [Standard Schema](https://github.com/standard-schema/standard-schema) support to `@mastra/schema-compat`. This enables interoperability with any schema library that implements the Standard Schema specification.\r\n\r\n\t**New exports:**\r\n\t\r\n\t- `toStandardSchema()` - Convert Zod, JSON Schema, or AI SDK schemas to Standard Schema format\r\n\t- `StandardSchemaWithJSON` - Type for schemas implementing both validation and JSON Schema conversion\r\n\t- `InferInput`, `InferOutput` - Utility types for type inference\r\n\t\r\n\t**Example usage:**\r\n\t\r\n\t```typescript\r\n\timport { toStandardSchema } from \"@mastra/schema-compat/schema\";\r\n\timport { z } from \"zod\";\r\n\t\r\n\t// Convert a Zod schema to Standard Schema\r\n\tconst zodSchema = z.object({ name: z.string(), age: z.number() });\r\n\tconst standardSchema = toStandardSchema(zodSchema);\r\n\t\r\n\t// Use validation\r\n\tconst result = standardSchema[\"~standard\"].validate({ name: \"John\", age: 30 });\r\n\t\r\n\t// Get JSON Schema\r\n\tconst jsonSchema = standardSchema[\"~standard\"].jsonSchema.output({ target: \"draft-07\" });\r\n\t```\r\n\t\r\n\tFixes: [#12527](https://github.com/mastra-ai/mastra/pull/12527)\r\n\r\n### [@mastra/server@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/server/CHANGELOG.md)\r\n\r\n- Internal changes to enable observational memory\r\n\r\n- Internal changes to enable `@mastra/editor`\r\n\r\n- Internal changes for better gateway selection in Studio\r\n\r\n- Improved workspace filesystem error handling: return 404 for not-found errors instead of 500, show user-friendly error messages in UI, and add MastraClientError class with status/body properties for better error handling\r\n\r\n\tFixes: [#12533](https://github.com/mastra-ai/mastra/pull/12533)\r\n\r\n### [mastra@1.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.2.0/packages/cli/CHANGELOG.md)\r\n\r\n- Fixed peer dependency checker fix command to suggest the correct package to upgrade:\r\n- If peer dep is too old (below range) → suggests upgrading the peer dep (e.g., `@mastra/core`)\r\n- If peer dep is too new (above range) → suggests upgrading the package requiring it (e.g., `@mastra/libsql`)\r\n\r\n\tFixes: [#12529](https://github.com/mastra-ai/mastra/pull/12529)\r\n\r\n- **New feature:** You can install the Mastra skill during the `create-mastra` wizard.\r\n\r\n\tThe wizard now asks you to install the official Mastra skill. Choose your favorite agent and your newly created project is set up.\r\n\tFor non-interactive setup, use the `--skills` flag that accepts comma-separated agent names (e.g. `--skills claude-code`).\r\n\t\r\n\tFixes: [#12582](https://github.com/mastra-ai/mastra/pull/12582)\r\n\r\n- Pre-select Claude Code, Codex, OpenCode, and Cursor as default agents when users choose to install Mastra skills during project creation. Codex has been promoted to the popular agents list for better visibility.\r\n\r\n\tFixes: [#12626](https://github.com/mastra-ai/mastra/pull/12626)\r\n\r\n- Add `AGENTS.md` file (and optionally `CLAUDE.md`) during `create mastra` creation\r\n\r\n\tFixes: [#12658](https://github.com/mastra-ai/mastra/pull/12658)\r\n","publishedAt":"2026-02-04T23:13:20.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/mastra%401.2.0","media":[]},{"id":"rel__IkZ5vxBZJmmGThxZ0-i9","version":"mastra@1.1.0","title":"January 30, 2026","summary":"## Highlights\r\n\r\n### Unified Workspace API (Filesystem + Sandbox Execution + Search + Skills)\r\n\r\nA new `Workspace` capability unifies agent-accessible...","content":"## Highlights\r\n\r\n### Unified Workspace API (Filesystem + Sandbox Execution + Search + Skills)\r\n\r\nA new `Workspace` capability unifies agent-accessible filesystem operations, sandboxed command/code execution, keyword/semantic/hybrid search, and SKILL.md discovery with safety controls (read-only, approval flows, read-before-write guards). The Workspace is exposed end-to-end: core Workspace class (`@mastra/core/workspace`), server API endpoints (`/workspaces/...`), and new `@mastra/client-js` workspace client methods (files, skills, references, search).\r\n\r\n### Observability & Streaming Improvements (Trace Status, Better Spans, Tool Approval Tracing)\r\n\r\nTracing is more actionable: `listTraces` now returns a `status` (`success|error|running`), spans are cleaner (inherit entity metadata, remove internal spans, emit model chunk spans for all streaming chunks), and tool approval requests are visible in traces. Token accounting for Langfuse/PostHog is corrected (cached tokens separated) and default tracing tags are preserved across exporters.\r\n\r\n### Server Adapters: Serverless MCP Support + Explicit Route Auth Controls\r\n\r\nExpress/Fastify/Hono/Koa adapters gain `mcpOptions` (notably `serverless: true`) to run MCP HTTP transport statelessly in serverless/edge environments without overriding response handling. Adapters and `@mastra/server` also add explicit `requiresAuth` per route (defaulting to protected), improved custom-route auth enforcement (including path params), and corrected route prefix replacement/normalization.\r\n\r\n### requestContextSchema: Runtime-Validated, Type-Safe Request Context Everywhere\r\n\r\nTools, agents, workflows, and steps can now define a `requestContextSchema` (Zod) to validate required context at runtime and get typed access in execution; `RequestContext.all` provides convenient access to all validated values. This also flows into Studio UX (Request Context tab/forms) and fixes/improves propagation through agent networks and nested workflow execution for better observability and analytics.\r\n\r\n### Breaking Changes\r\n\r\n- Google embedding model router removes deprecated `text-embedding-004`; use `google/gemini-embedding-001` instead.\r\n\r\n## Changelog\r\n\r\n### [@mastra/core@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/core/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`@isaacs/ttlcache@^2.1.4` ↗︎](https://www.npmjs.com/package/@isaacs/ttlcache/v/2.1.4) (from `^1.4.1`, in `dependencies`)\r\n\r\nFixes: [#10184](https://github.com/mastra-ai/mastra/pull/10184)\r\n- Update provider registry and model documentation with latest models and providers\r\n\r\nFixes: [1cf5d2e](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b)\r\n- Fixed skill loading error caused by Zod version conflicts between v3 and v4. Replaced Zod schemas with plain TypeScript validation functions in skill metadata validation.\r\n\r\nFixes: [#12485](https://github.com/mastra-ai/mastra/pull/12485)\r\n- Restructured stored agents to use a thin metadata record with versioned configuration snapshots.\r\n\r\nThe agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.\r\n\r\n**Key changes:**\r\n\r\n- Stored Agent records are now thin metadata-only (StorageAgentType)\r\n- All config lives in version snapshots (StorageAgentSnapshotType)\r\n- New resolved type (StorageResolvedAgentType) merges agent record + active version config\r\n- Renamed `ownerId` to `authorId` for multi-tenant filtering\r\n- Changed `memory` field type from `string` to `Record<string, unknown>`\r\n- Added `status` field ('draft' | 'published') to agent records\r\n- Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)\r\n- Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)\r\n- List endpoints return resolved agents (thin record + active version config)\r\n- Auto-versioning on update with retention limits and race condition handling\r\n\r\nFixes: [#12488](https://github.com/mastra-ai/mastra/pull/12488)\r\n- Fix model router routing providers that use non-default AI SDK packages (e.g. `@ai-sdk/anthropic`, `@ai-sdk/openai`) to their correct SDK instead of falling back to `openai-compatible`. Add `cerebras`, `togetherai`, and `deepinfra` as native SDK providers.\r\n\r\nFixes: [#12450](https://github.com/mastra-ai/mastra/pull/12450)\r\n- Make suspendedToolRunId nullable to fix the null issue in tool input validation\r\n\r\nFixes: [#12303](https://github.com/mastra-ai/mastra/pull/12303)\r\n- Fixed agent.network() to properly pass requestContext to workflow runs. Workflow execution now includes user metadata (userId, resourceId) for observability and analytics. (Fixes #12330)\r\n\r\nFixes: [#12379](https://github.com/mastra-ai/mastra/pull/12379)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Fix ModelRouterLanguageModel to propagate supportedUrls from underlying model providers\r\n\r\nPreviously, `ModelRouterLanguageModel` (used when specifying models as strings like `\"mistral/mistral-large-latest\"` or `\"openai/gpt-4o\"`) had `supportedUrls` hardcoded as an empty object. This caused Mastra to download all file URLs and convert them to bytes/base64, even when the model provider supports URLs natively.\r\n\r\nThis fix:\r\n\r\n- Changes `supportedUrls` to a lazy `PromiseLike` that resolves the underlying model's supported URL patterns\r\n- Updates `llm-execution-step.ts` to properly await `supportedUrls` when preparing messages\r\n\r\n**Impact:**\r\n\r\n- Mistral: PDF URLs are now passed directly (fixes #12152)\r\n- OpenAI: Image URLs (and PDF URLs in response models) are now passed directly\r\n- Anthropic: Image URLs are now passed directly\r\n- Google: Files from Google endpoints are now passed directly\r\n\r\n**Note:** Users who were relying on Mastra to download files from URLs that model providers cannot directly access (internal URLs, auth-protected URLs) may need to adjust their approach by either using base64-encoded content or ensuring URLs are publicly accessible to the model provider.\r\n\r\nFixes: [#12167](https://github.com/mastra-ai/mastra/pull/12167)\r\n- Extended readOnly memory option to also apply to working memory. When readOnly: true, working memory data is provided as context but the updateWorkingMemory tool is not available.\r\n\r\n**Example:**\r\n\r\n```typescript\r\n// Working memory is loaded but agent cannot update it\r\nconst response = await agent.generate(\"What do you know about me?\", {\r\n  memory: {\r\n    thread: \"conversation-123\",\r\n    resource: \"user-alice-456\",\r\n    options: { readOnly: true },\r\n  },\r\n});\r\n```\r\n\r\nFixes: [#12471](https://github.com/mastra-ai/mastra/pull/12471)\r\n- fix(core): skip non-serializable values in RequestContext.toJSON\r\n\r\nFixes: [#12344](https://github.com/mastra-ai/mastra/pull/12344)\r\n- Added unified Workspace API for agent filesystem access, code execution, and search capabilities.\r\n\r\n**New Workspace class** combines filesystem, sandbox, and search into a single interface that agents can use for file operations, command execution, and content search.\r\n\r\n**Key features:**\r\n\r\n- Filesystem operations (read, write, copy, move, delete) through pluggable providers\r\n- Code and command execution in secure sandboxed environments with optional OS-level isolation\r\n- Keyword search, semantic search, and hybrid search modes\r\n- Skills system for discovering and using SKILL.md instruction files\r\n- Safety controls including read-before-write guards, approval flows, and read-only mode\r\n\r\n**Usage:**\r\n\r\n```typescript\r\nimport { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace';\r\n\r\nconst workspace = new Workspace({\r\n  filesystem: new LocalFilesystem({ basePath: './workspace' }),\r\n  sandbox: new LocalSandbox({ workingDirectory: './workspace' }),\r\n  bm25: true,\r\n});\r\n\r\nconst agent = new Agent({\r\n  workspace,\r\n  // Agent automatically receives workspace tools\r\n});\r\n```\r\n\r\nFixes: [#11986](https://github.com/mastra-ai/mastra/pull/11986)\r\n- Fixed TypeScript error when calling bail() in workflow steps. bail() now accepts any value, so workflows can exit early with a custom result. Fixes #12424.\r\n\r\nFixes: [#12429](https://github.com/mastra-ai/mastra/pull/12429)\r\n- Fixed type error when using createTool with Agent when exactOptionalPropertyTypes is enabled in TypeScript config. The ProviderDefinedTool structural type now correctly marks inputSchema as optional and allows execute to be undefined, matching the ToolAction interface.\r\n\r\nFixes: [#12325](https://github.com/mastra-ai/mastra/pull/12325)\r\n- Fixed tracingOptions.tags not being preserved when merging defaultOptions with call-site options. Tags set in agent's defaultOptions.tracingOptions are now correctly passed to all observability exporters (Langfuse, Langsmith, Braintrust, Datadog, etc.). Fixes #12209.\r\n\r\nFixes: [#12220](https://github.com/mastra-ai/mastra/pull/12220)\r\n- Added activeTools parameter support to model loop stream. The activeTools parameter can now be passed through the ModelLoopStreamArgs to control which tools are available during LLM execution.\r\n\r\nFixes: [#12082](https://github.com/mastra-ai/mastra/pull/12082)\r\n- Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields.\r\n\r\nFixes: [#12213](https://github.com/mastra-ai/mastra/pull/12213)\r\n- Fixed agent network crashing with 'Invalid task input' error when routing agent returns malformed JSON for tool/workflow prompts. The error is now fed back to the routing agent, allowing it to retry with valid JSON on the next iteration.\r\n\r\nFixes: [#12477](https://github.com/mastra-ai/mastra/pull/12477)\r\n- Fixed type error when passing MastraVoice implementations (like OpenAIVoice) directly to Agent's voice config. Previously, the voice property only accepted CompositeVoice, requiring users to wrap their voice provider. Now you can pass any MastraVoice implementation directly.\r\n\r\n**Before (required wrapper):**\r\n\r\n```typescript\r\nconst agent = new Agent({\r\n  voice: new CompositeVoice({ output: new OpenAIVoice() }),\r\n});\r\n```\r\n\r\n**After (direct usage):**\r\n\r\n```typescript\r\nconst agent = new Agent({\r\n  voice: new OpenAIVoice(),\r\n});\r\n```\r\n\r\nFixes: [#12329](https://github.com/mastra-ai/mastra/pull/12329)\r\n- Fixed output processors not being applied to messages saved during network execution. When using agent.network(), configured output processors (like TraceIdInjector for feedback attribution) are now correctly applied to all messages before they are saved to storage.\r\n\r\nFixes: [#12346](https://github.com/mastra-ai/mastra/pull/12346)\r\n- Removed deprecated Google `text-embedding-004` embedding model from the model router. Google shut down this model on January 14, 2026. Use `google/gemini-embedding-001` instead.\r\n\r\nFixes: [#12433](https://github.com/mastra-ai/mastra/pull/12433)\r\n- Fixed tool input validation failing when LLMs send null for optional fields (#12362). Zod's .optional() only accepts undefined, not null, causing validation errors with Gemini and other LLMs. Validation now retries with null values stripped when the initial attempt fails, so .optional() fields accept null while .nullable() fields continue to work correctly.\r\n\r\nFixes: [#12396](https://github.com/mastra-ai/mastra/pull/12396)\r\n- Tracing fixes:\r\n- Spans now inherit entityType/entityId from the closest non-internal parent (#12250)\r\n- Processor spans correctly track separate input and output data\r\n- Model chunk spans are now emitted for all streaming chunks\r\n- Internal framework spans no longer appear in exported traces\r\n\r\nFixes: [#12370](https://github.com/mastra-ai/mastra/pull/12370)\r\n- Fixed generated provider types so IDs starting with digits no longer break TypeScript builds\r\n\r\nFixes: [#12418](https://github.com/mastra-ai/mastra/pull/12418)\r\n- Added `RequestContext.all` to access the entire `RequestContext` object values.\r\n\r\n```typescript\r\nconst { userId, featureFlags } = requestContext.all;\r\n```\r\n\r\nAdded `requestContextSchema` support to tools, agents, workflows, and steps. Define a Zod schema to validate and type requestContext values at runtime.\r\n\r\n**Tool example:**\r\n\r\n```typescript\r\nimport { createTool } from '@mastra/core/tools';\r\nimport { z } from 'zod';\r\n\r\nconst myTool = createTool({\r\n  id: 'my-tool',\r\n  inputSchema: z.object({ query: z.string() }),\r\n  requestContextSchema: z.object({\r\n    userId: z.string(),\r\n    apiKey: z.string(),\r\n  }),\r\n  execute: async (input, context) => {\r\n    // context.requestContext is typed as RequestContext<{ userId: string, apiKey: string }>\r\n    const userId = context.requestContext?.get('userId');\r\n    return { result: 'success' };\r\n  },\r\n});\r\n```\r\n\r\n**Agent example:**\r\n\r\n```typescript\r\nimport { Agent } from '@mastra/core/agent';\r\nimport { z } from 'zod';\r\n\r\nconst agent = new Agent({\r\n  name: 'my-agent',\r\n  model: openai('gpt-4o'),\r\n  requestContextSchema: z.object({\r\n    userId: z.string(),\r\n    featureFlags: z.object({\r\n      debugMode: z.boolean().optional(),\r\n      enableSearch: z.boolean().optional(),\r\n    }).optional(),\r\n  }),\r\n  instructions: ({ requestContext }) => {\r\n    // Access validated context values with type safety\r\n    const { userId, featureFlags } = requestContext.all;\r\n\r\n    const baseInstructions = `You are a helpful assistant. The current user ID is: ${userId}.`;\r\n\r\n    if (featureFlags?.debugMode) {\r\n      return `${baseInstructions} Debug mode is enabled - provide verbose responses.`;\r\n    }\r\n\r\n    return baseInstructions;\r\n  },\r\n  tools: ({ requestContext }) => {\r\n    const tools: Record<string, any> = {\r\n      weatherInfo,\r\n    };\r\n\r\n    // Conditionally add tools based on validated feature flags\r\n    const { featureFlags } = requestContext.all;\r\n    if (featureFlags?.enableSearch) {\r\n      tools['web_search_preview'] = openai.tools.webSearchPreview();\r\n    }\r\n\r\n    return tools;\r\n  },\r\n});\r\n```\r\n\r\n**Workflow example:**\r\n\r\n```typescript\r\nimport { createWorkflow } from '@mastra/core/workflows';\r\nimport { z } from 'zod';\r\n\r\nconst workflow = createWorkflow({\r\n  id: 'my-workflow',\r\n  inputSchema: z.object({ data: z.string() }),\r\n  requestContextSchema: z.object({\r\n    tenantId: z.string(),\r\n  }),\r\n});\r\n\r\nconst step = createStep({\r\n  id: 'my-step',\r\n  description: 'My step description',\r\n  inputSchema: z.object({ data: z.string() }),\r\n  outputSchema: z.object({ result: z.string() }),\r\n  requestContextSchema: z.object({\r\n    userId: z.string(),\r\n  }),\r\n  execute: async ({ inputData, requestContext }) => {\r\n    const userId = requestContext?.get('userId');\r\n    return {\r\n      result: 'some result here',\r\n    };\r\n  },\r\n});\r\n\r\nworkflow.then(step).commit()\r\n```\r\n\r\nWhen requestContextSchema is defined, validation runs automatically and throws an error if required context values are missing or invalid.\r\n\r\nFixes: [#12259](https://github.com/mastra-ai/mastra/pull/12259)\r\n- Fixed network mode not applying user-configured input/output processors (like token limiters) to the routing agent. This caused unbounded context growth during network iterations.\r\n\r\nUser-configured processors are now correctly passed to the routing agent, while memory-derived processors (which could interfere with routing logic) are excluded.\r\n\r\nFixes: [#12074](https://github.com/mastra-ai/mastra/pull/12074)\r\n- Fixed repeated build failures caused by stale global cache (~/.cache/mastra/) containing invalid TypeScript in provider-types.generated.d.ts. Provider names starting with digits (e.g. 302ai) are now properly quoted, and the global cache sync validates .d.ts files before copying to prevent corrupted files from overwriting correct ones.\r\n\r\nFixes: [#12425](https://github.com/mastra-ai/mastra/pull/12425)\r\n- Update @isaacs/ttlcache to v2 and fix import for v2 compatibility (changed from default to named export)\r\n\r\nFixes: [#10184](https://github.com/mastra-ai/mastra/pull/10184)\r\n- Fixed custom data parts from writer.custom() breaking subsequent messages with Gemini. Messages containing only data-\\* parts no longer produce empty content arrays that cause Gemini to fail with 'must include at least one parts field'.\r\n\r\nFixes: [#12373](https://github.com/mastra-ai/mastra/pull/12373)\r\n- Improve autoresume prompt sent to LLM to ensure gemini resumes well.\r\nGemini sometimes doesn't use the previous messages to create inputData for the tool to resume, the prompt was updated to make sure it gets the inputData from the suspended tool call.\r\n\r\nFixes: [#12320](https://github.com/mastra-ai/mastra/pull/12320)\r\n- Fixed sub-agents in Agent Networks seeing completion-check feedback from prior iterations, so delegated agents stay focused on their task.\r\n\r\nFixes: [#12338](https://github.com/mastra-ai/mastra/pull/12338)\r\n- Fix TypeScript types for custom API route handlers to include `requestContext` in Hono context Variables. Previously, only `mastra` was typed, causing TypeScript errors when accessing `c.get('requestContext')` even though the runtime correctly provided this context.\r\n\r\nFixes: [#12419](https://github.com/mastra-ai/mastra/pull/12419)\r\n- Let callers cancel a running agent network call and handle abort callbacks.\r\n\r\n**Example**\r\nBefore:\r\n```ts\r\nconst stream = await agent.network(task);\r\n```\r\n\r\nAfter:\r\n```ts\r\nconst controller = new AbortController();\r\nconst stream = await agent.network(task, {\r\n  abortSignal: controller.signal,\r\n  onAbort: ({ primitiveType, primitiveId }) => {\r\n    logger.info(`Aborted ${primitiveType}:${primitiveId}`);\r\n  },\r\n});\r\n\r\ncontroller.abort();\r\n```\r\n\r\nRelated issue: `#12282`\r\n\r\nFixes: [#12351](https://github.com/mastra-ai/mastra/pull/12351)\r\n\r\n### [@internal/playground@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/playground/CHANGELOG.md)\r\n- Fix link to evals documentation\r\n\r\nFixes: [#12122](https://github.com/mastra-ai/mastra/pull/12122)\r\n- Fixed the swagger-ui link to use a relative path instead of localhost.\r\n\r\nFixes: [#12120](https://github.com/mastra-ai/mastra/pull/12120)\r\n\r\n### [@mastra/agent-builder@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/agent-builder/CHANGELOG.md)\r\n- Fixed file naming conversion when merging templates. Kebab-case filenames like `csv-to-questions-workflow.ts` were incorrectly converted to all-lowercase (`csvtoquestionsworkflow.ts`) instead of proper camelCase (`csvToQuestionsWorkflow.ts`). PascalCase and acronym-boundary conversions are also fixed.\r\n\r\nFixes: [#12436](https://github.com/mastra-ai/mastra/pull/12436)\r\n- Fixed latent Memory storage bug in AgentBuilder. AgentBuilder was created without providing storage to Memory, causing intermittent failures when Memory operations were invoked. Now uses InMemoryStore as a fallback when no storage is provided, allowing it to function without explicit storage configuration.\r\n\r\nFixes: [#12347](https://github.com/mastra-ai/mastra/pull/12347)\r\n\r\n### [@mastra/ai-sdk@1.0.3](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/client-sdks/ai-sdk/CHANGELOG.md)\r\n- fix(ai-sdk): import ReadableStream and TransformStream from node:stream/web to fix TypeScript async iterator errors\r\n\r\nFixed TypeScript build errors when using toAISdkStream() with for await...of loops. The function now explicitly imports ReadableStream and TransformStream from 'node:stream/web', ensuring the Node.js types (which include Symbol.asyncIterator support) are used instead of global types that may not have async iterator support in all TypeScript configurations.\r\n\r\nThis resolves issue #11884 where users encountered the error: \"Type 'ReadableStream<InferUIMessageChunk<UIMessage>>' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"\r\n\r\nFixes: [#12159](https://github.com/mastra-ai/mastra/pull/12159)\r\n\r\n### [@mastra/arize@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/observability/arize/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`@arizeai/openinference-genai@0.1.5` ↗︎](https://www.npmjs.com/package/@arizeai/openinference-genai/v/0.1.5) (from `0.1.0`, in `dependencies`)\r\n\r\nFixes: [#12146](https://github.com/mastra-ai/mastra/pull/12146)\r\n- dependencies updates:\r\n  - Updated dependency [`@arizeai/openinference-semantic-conventions@^2.1.7` ↗︎](https://www.npmjs.com/package/@arizeai/openinference-semantic-conventions/v/2.1.7) (from `^2.1.2`, in `dependencies`)\r\n\r\nFixes: [#12147](https://github.com/mastra-ai/mastra/pull/12147)\r\n- Fixed incorrect span kind mapping in @mastra/arize. Workflow spans now correctly map to CHAIN, agent spans to AGENT, and tool spans to TOOL instead of defaulting to LLM.\r\n\r\nFixes: [#12423](https://github.com/mastra-ai/mastra/pull/12423)\r\n\r\n### [@mastra/clickhouse@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/stores/clickhouse/CHANGELOG.md)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields.\r\n\r\nFixes: [#12213](https://github.com/mastra-ai/mastra/pull/12213)\r\n\r\n### [@mastra/client-js@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/client-sdks/client-js/CHANGELOG.md)\r\n- Restructured stored agents to use a thin metadata record with versioned configuration snapshots.\r\n\r\nThe agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.\r\n\r\n**Key changes:**\r\n\r\n- Stored Agent records are now thin metadata-only (StorageAgentType)\r\n- All config lives in version snapshots (StorageAgentSnapshotType)\r\n- New resolved type (StorageResolvedAgentType) merges agent record + active version config\r\n- Renamed `ownerId` to `authorId` for multi-tenant filtering\r\n- Changed `memory` field type from `string` to `Record<string, unknown>`\r\n- Added `status` field ('draft' | 'published') to agent records\r\n- Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)\r\n- Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)\r\n- List endpoints return resolved agents (thin record + active version config)\r\n- Auto-versioning on update with retention limits and race condition handling\r\n\r\nFixes: [#12488](https://github.com/mastra-ai/mastra/pull/12488)\r\n- Added workspace client methods for interacting with workspace API endpoints.\r\n\r\n**New methods on `MastraClient`:**\r\n\r\n- `listWorkspaces()` - List all available workspaces\r\n- `getWorkspace(workspaceId)` - Get a workspace client for a specific workspace\r\n- `workspace.info()` - Get workspace info and capabilities\r\n- `workspace.listFiles()` / `readFile()` / `writeFile()` / `delete()` / `mkdir()` / `stat()` - Filesystem operations\r\n- `workspace.listSkills()` / `getSkill(name).details()` / `.listReferences()` / `.getReference()` - Skill management\r\n- `workspace.search()` - Search indexed content\r\n\r\n**Usage:**\r\n\r\n```typescript\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:4111' });\r\n\r\n// List workspaces and get the first one\r\nconst { workspaces } = await client.listWorkspaces();\r\nconst workspace = client.getWorkspace(workspaces[0].id);\r\n\r\n// Read a file\r\nconst { content } = await workspace.readFile('/docs/guide.md');\r\n\r\n// List skills\r\nconst { skills } = await workspace.listSkills();\r\n\r\n// Get skill details\r\nconst skill = workspace.getSkill('my-skill');\r\nconst details = await skill.details();\r\n\r\n// Search content\r\nconst { results } = await workspace.search({ query: 'authentication', mode: 'hybrid' });\r\n```\r\n\r\nFixes: [#11986](https://github.com/mastra-ai/mastra/pull/11986)\r\n- Added requestContextSchema type support.\r\n\r\nFixes: [#12259](https://github.com/mastra-ai/mastra/pull/12259)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Added `apiPrefix` option to `MastraClient` for connecting to servers with custom API route prefixes.\r\n\r\n**Before:** The client always used the `/api` prefix for all endpoints.\r\n\r\n**After:** You can now specify a custom prefix when deploying Mastra behind non-default paths:\r\n\r\n```typescript\r\nconst client = new MastraClient({\r\n  baseUrl: 'http://localhost:3000',\r\n  apiPrefix: '/mastra', // Calls /mastra/agents, /mastra/workflows, etc.\r\n});\r\n```\r\n\r\nThe default remains `/api` for backward compatibility. See #12261 for more details.\r\n\r\nFixes: [#12295](https://github.com/mastra-ai/mastra/pull/12295)\r\n- Stored agent edits no longer fail silently. PATCH requests now save changes correctly.\r\n\r\nFixes: [#12504](https://github.com/mastra-ai/mastra/pull/12504)\r\n- Fix PATCH request JSON-body handling in `@mastra/client-js` so stored agent edit flows work correctly. Fix stored agent schema migration in `@mastra/libsql` and `@mastra/pg` to drop and recreate the versions table when the old snapshot-based schema is detected, clean up stale draft records from partial create failures, and remove lingering legacy tables. Restores create and edit flows for stored agents.\r\n\r\nFixes: [#12504](https://github.com/mastra-ai/mastra/pull/12504)\r\n\r\n### [@mastra/cloudflare@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/stores/cloudflare/CHANGELOG.md)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n\r\n### [@mastra/codemod@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/codemod/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`@clack/prompts@1.0.0-alpha.9` ↗︎](https://www.npmjs.com/package/@clack/prompts/v/1.0.0) (from `1.0.0-alpha.6`, in `dependencies`)\r\n\r\nFixes: [#11584](https://github.com/mastra-ai/mastra/pull/11584)\r\n- Added `workflow-get-init-data` codemod that transforms `getInitData()` calls to `getInitData<any>()`.\r\n\r\nThis codemod helps migrate code after the `getInitData` return type changed from `any` to `unknown`. Adding the explicit `<any>` type parameter restores the previous behavior while maintaining type safety.\r\n\r\n**Usage:**\r\n\r\n```bash\r\nnpx @mastra/codemod@latest v1/workflow-get-init-data .\r\n```\r\n\r\n**Before:**\r\n\r\n```typescript\r\ncreateStep({\r\n  execute: async ({ getInitData }) => {\r\n    const initData = getInitData();\r\n    if (initData.key === 'value') {}\r\n  },\r\n});\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\ncreateStep({\r\n  execute: async ({ getInitData }) => {\r\n    const initData = getInitData<any>();\r\n    if (initData.key === 'value') {}\r\n  },\r\n});\r\n```\r\n\r\nFixes: [#12212](https://github.com/mastra-ai/mastra/pull/12212)\r\n\r\n### [@mastra/convex@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/stores/convex/CHANGELOG.md)\r\n- Fixed Convex schema validation error where `mastra_workflow_snapshots` index `by_record_id` referenced a missing `id` field. The `id` field is now explicitly defined in the Convex workflow snapshots table schema. This enables successful `npx convex dev` deployments that were previously failing with SchemaDefinitionError.\r\n\r\nFixes: [#12319](https://github.com/mastra-ai/mastra/pull/12319)\r\n\r\n### [@mastra/deployer@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/deployer/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`@babel/core@^7.28.6` ↗︎](https://www.npmjs.com/package/@babel/core/v/7.28.6) (from `^7.28.5`, in `dependencies`)\r\n\r\nFixes: [#12191](https://github.com/mastra-ai/mastra/pull/12191)\r\n- dependencies updates:\r\n  - Updated dependency [`rollup@~4.55.1` ↗︎](https://www.npmjs.com/package/rollup/v/4.55.1) (from `~4.50.2`, in `dependencies`)\r\n\r\nFixes: [#9737](https://github.com/mastra-ai/mastra/pull/9737)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Fixed lint errors in deployer package\r\n\r\nFixes: [#12476](https://github.com/mastra-ai/mastra/pull/12476)\r\n- Fixed swagger-ui to use the correct OpenAPI endpoint URL (/api/openapi.json).\r\n\r\nFixes: [#11786](https://github.com/mastra-ai/mastra/pull/11786)\r\n- Fixed dependency version resolution in monorepos.\r\n\r\n**What's fixed:**\r\n\r\n- Dependency versions are now accurately resolved in monorepos, even with hoisted dependencies\r\n- ESM-only packages and transitive workspace dependencies are now correctly handled\r\n- Deployer-provided packages (like `hono`) that aren't in your project are now resolved correctly\r\n\r\n**Why this happened:**\r\n\r\nPreviously, dependency versions were resolved at bundle time without the correct project context, causing the bundler to fall back to `latest` instead of using the actual installed version.\r\n\r\nFixes: [#12125](https://github.com/mastra-ai/mastra/pull/12125)\r\n\r\n### [@mastra/deployer-cloudflare@1.0.2](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/deployers/cloudflare/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`@babel/core@^7.28.6` ↗︎](https://www.npmjs.com/package/@babel/core/v/7.28.6) (from `^7.28.5`, in `dependencies`)\r\n\r\nFixes: [#12191](https://github.com/mastra-ai/mastra/pull/12191)\r\n- dependencies updates:\r\n  - Updated dependency [`rollup@~4.55.1` ↗︎](https://www.npmjs.com/package/rollup/v/4.55.1) (from `~4.50.2`, in `dependencies`)\r\n\r\nFixes: [#9737](https://github.com/mastra-ai/mastra/pull/9737)\r\n- Fixed Cloudflare Workers exceeding the 3MB size limit due to TypeScript being bundled. The deployer now stubs out TypeScript (~10MB) since the agent-builder gracefully falls back to basic validation when it's unavailable.\r\n\r\nFixes: [#12420](https://github.com/mastra-ai/mastra/pull/12420)\r\n\r\n### [@mastra/evals@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/evals/CHANGELOG.md)\r\n- Force alpha version bump for @mastra/evals, @mastra/loggers, @mastra/observability, and @mastra/memory\r\n\r\nFixes: [#12505](https://github.com/mastra-ai/mastra/pull/12505)\r\n\r\n### [@mastra/express@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/server-adapters/express/CHANGELOG.md)\r\n- Added explicit auth control to built-in API routes. All routes now have a requiresAuth property that determines whether authentication is required. This eliminates route matching overhead and makes auth requirements clear in route definitions. Routes default to requiresAuth: true (protected) for security. To make a route public, set requiresAuth: false in the route definition.\r\n\r\nFixes: [#12153](https://github.com/mastra-ai/mastra/pull/12153)\r\n- Fixed authentication bypass for custom routes in dev mode. Routes registered with registerApiRoute and requiresAuth: true now correctly enforce authentication even when MASTRA_DEV=true.\r\n\r\nFixes: [#12339](https://github.com/mastra-ai/mastra/pull/12339)\r\n- Added `mcpOptions` to server adapters for serverless MCP support.\r\n\r\n**Why:** MCP HTTP transport uses session management by default, which requires persistent state across requests. This doesn't work in serverless environments like Cloudflare Workers or Vercel Edge where each request runs in isolation. The new `mcpOptions` parameter lets you enable stateless mode without overriding the entire `sendResponse()` method.\r\n\r\n**Before:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n});\r\n// No way to pass serverless option to MCP HTTP transport\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n  mcpOptions: {\r\n    serverless: true,\r\n  },\r\n});\r\n// MCP HTTP transport now runs in stateless mode\r\n```\r\n\r\nFixes: [#12324](https://github.com/mastra-ai/mastra/pull/12324)\r\n- Fixed route prefix behavior to correctly replace the default /api prefix instead of prepending to it. Previously, setting prefix: '/api/v2' resulted in routes at /api/v2/api/agents. Now routes correctly appear at /api/v2/agents as documented.\r\n\r\nFixes: [#12221](https://github.com/mastra-ai/mastra/pull/12221)\r\n\r\n### [@mastra/fastify@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/server-adapters/fastify/CHANGELOG.md)\r\n- Added explicit auth control to built-in API routes. All routes now have a requiresAuth property that determines whether authentication is required. This eliminates route matching overhead and makes auth requirements clear in route definitions. Routes default to requiresAuth: true (protected) for security. To make a route public, set requiresAuth: false in the route definition.\r\n\r\nFixes: [#12153](https://github.com/mastra-ai/mastra/pull/12153)\r\n- Fixed authentication bypass for custom routes in dev mode. Routes registered with registerApiRoute and requiresAuth: true now correctly enforce authentication even when MASTRA_DEV=true.\r\n\r\nFixes: [#12339](https://github.com/mastra-ai/mastra/pull/12339)\r\n- Added `mcpOptions` to server adapters for serverless MCP support.\r\n\r\n**Why:** MCP HTTP transport uses session management by default, which requires persistent state across requests. This doesn't work in serverless environments like Cloudflare Workers or Vercel Edge where each request runs in isolation. The new `mcpOptions` parameter lets you enable stateless mode without overriding the entire `sendResponse()` method.\r\n\r\n**Before:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n});\r\n// No way to pass serverless option to MCP HTTP transport\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n  mcpOptions: {\r\n    serverless: true,\r\n  },\r\n});\r\n// MCP HTTP transport now runs in stateless mode\r\n```\r\n\r\nFixes: [#12324](https://github.com/mastra-ai/mastra/pull/12324)\r\n- Fixed route prefix behavior to correctly replace the default /api prefix instead of prepending to it. Previously, setting prefix: '/api/v2' resulted in routes at /api/v2/api/agents. Now routes correctly appear at /api/v2/agents as documented.\r\n\r\nFixes: [#12221](https://github.com/mastra-ai/mastra/pull/12221)\r\n\r\n### [@mastra/google-cloud-pubsub@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/pubsub/google-cloud-pubsub/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`@google-cloud/pubsub@^5.2.2` ↗︎](https://www.npmjs.com/package/@google-cloud/pubsub/v/5.2.2) (from `^5.2.0`, in `dependencies`)\r\n\r\nFixes: [#12265](https://github.com/mastra-ai/mastra/pull/12265)\r\n\r\n### [@mastra/hono@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/server-adapters/hono/CHANGELOG.md)\r\n- Added explicit auth control to built-in API routes. All routes now have a requiresAuth property that determines whether authentication is required. This eliminates route matching overhead and makes auth requirements clear in route definitions. Routes default to requiresAuth: true (protected) for security. To make a route public, set requiresAuth: false in the route definition.\r\n\r\nFixes: [#12153](https://github.com/mastra-ai/mastra/pull/12153)\r\n- Fixed authentication bypass for custom routes in dev mode. Routes registered with registerApiRoute and requiresAuth: true now correctly enforce authentication even when MASTRA_DEV=true.\r\n\r\nFixes: [#12339](https://github.com/mastra-ai/mastra/pull/12339)\r\n- Fixed malformed JSON body handling in Hono adapter. When a POST request contains invalid JSON (e.g., missing closing braces), the server now returns HTTP 400 Bad Request with a structured error message instead of silently accepting the request with HTTP 200. This prevents workflows from starting with undefined input data. ([#12310](https://github.com/mastra-ai/mastra/issues/12310))\r\n\r\nFixes: [#12332](https://github.com/mastra-ai/mastra/pull/12332)\r\n- Added `mcpOptions` to server adapters for serverless MCP support.\r\n\r\n**Why:** MCP HTTP transport uses session management by default, which requires persistent state across requests. This doesn't work in serverless environments like Cloudflare Workers or Vercel Edge where each request runs in isolation. The new `mcpOptions` parameter lets you enable stateless mode without overriding the entire `sendResponse()` method.\r\n\r\n**Before:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n});\r\n// No way to pass serverless option to MCP HTTP transport\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n  mcpOptions: {\r\n    serverless: true,\r\n  },\r\n});\r\n// MCP HTTP transport now runs in stateless mode\r\n```\r\n\r\nFixes: [#12324](https://github.com/mastra-ai/mastra/pull/12324)\r\n- Fixed route prefix behavior to correctly replace the default /api prefix instead of prepending to it. Previously, setting prefix: '/api/v2' resulted in routes at /api/v2/api/agents. Now routes correctly appear at /api/v2/agents as documented.\r\n\r\nFixes: [#12221](https://github.com/mastra-ai/mastra/pull/12221)\r\n\r\n### [@mastra/inngest@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/workflows/inngest/CHANGELOG.md)\r\n- Added requestContextSchema type support.\r\n\r\nFixes: [#12259](https://github.com/mastra-ai/mastra/pull/12259)\r\n\r\n### [@mastra/koa@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/server-adapters/koa/CHANGELOG.md)\r\n- Added explicit auth control to built-in API routes. All routes now have a requiresAuth property that determines whether authentication is required. This eliminates route matching overhead and makes auth requirements clear in route definitions. Routes default to requiresAuth: true (protected) for security. To make a route public, set requiresAuth: false in the route definition.\r\n\r\nFixes: [#12153](https://github.com/mastra-ai/mastra/pull/12153)\r\n- Fixed authentication bypass for custom routes in dev mode. Routes registered with registerApiRoute and requiresAuth: true now correctly enforce authentication even when MASTRA_DEV=true.\r\n\r\nFixes: [#12339](https://github.com/mastra-ai/mastra/pull/12339)\r\n- Added `mcpOptions` to server adapters for serverless MCP support.\r\n\r\n**Why:** MCP HTTP transport uses session management by default, which requires persistent state across requests. This doesn't work in serverless environments like Cloudflare Workers or Vercel Edge where each request runs in isolation. The new `mcpOptions` parameter lets you enable stateless mode without overriding the entire `sendResponse()` method.\r\n\r\n**Before:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n});\r\n// No way to pass serverless option to MCP HTTP transport\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n  mcpOptions: {\r\n    serverless: true,\r\n  },\r\n});\r\n// MCP HTTP transport now runs in stateless mode\r\n```\r\n\r\nFixes: [#12324](https://github.com/mastra-ai/mastra/pull/12324)\r\n- Fixed route prefix behavior to correctly replace the default /api prefix instead of prepending to it. Previously, setting prefix: '/api/v2' resulted in routes at /api/v2/api/agents. Now routes correctly appear at /api/v2/agents as documented.\r\n\r\nFixes: [#12221](https://github.com/mastra-ai/mastra/pull/12221)\r\n\r\n### [@mastra/langfuse@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/observability/langfuse/CHANGELOG.md)\r\n- Fixed token usage reporting for Langfuse and PostHog exporters. The `input` token count now correctly excludes cached tokens, matching each platform's expected format for accurate cost calculation. Cache read and cache write tokens are now properly reported as separate fields (`cache_read_input_tokens`, `cache_creation_input_tokens`) rather than being included in the base input count. Added defensive clamping to ensure input tokens never go negative if cache values exceed the total.\r\n\r\nFixes: [#12465](https://github.com/mastra-ai/mastra/pull/12465)\r\n\r\n### [@mastra/libsql@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/stores/libsql/CHANGELOG.md)\r\n- Restructured stored agents to use a thin metadata record with versioned configuration snapshots.\r\n\r\nThe agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.\r\n\r\n**Key changes:**\r\n\r\n- Stored Agent records are now thin metadata-only (StorageAgentType)\r\n- All config lives in version snapshots (StorageAgentSnapshotType)\r\n- New resolved type (StorageResolvedAgentType) merges agent record + active version config\r\n- Renamed `ownerId` to `authorId` for multi-tenant filtering\r\n- Changed `memory` field type from `string` to `Record<string, unknown>`\r\n- Added `status` field ('draft' | 'published') to agent records\r\n- Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)\r\n- Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)\r\n- List endpoints return resolved agents (thin record + active version config)\r\n- Auto-versioning on update with retention limits and race condition handling\r\n\r\nFixes: [#12488](https://github.com/mastra-ai/mastra/pull/12488)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields.\r\n\r\nFixes: [#12213](https://github.com/mastra-ai/mastra/pull/12213)\r\n- Stored agent edits no longer fail silently. PATCH requests now save changes correctly.\r\n\r\nFixes: [#12504](https://github.com/mastra-ai/mastra/pull/12504)\r\n- Fix PATCH request JSON-body handling in `@mastra/client-js` so stored agent edit flows work correctly. Fix stored agent schema migration in `@mastra/libsql` and `@mastra/pg` to drop and recreate the versions table when the old snapshot-based schema is detected, clean up stale draft records from partial create failures, and remove lingering legacy tables. Restores create and edit flows for stored agents.\r\n\r\nFixes: [#12504](https://github.com/mastra-ai/mastra/pull/12504)\r\n\r\n### [@mastra/loggers@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/loggers/CHANGELOG.md)\r\n- Force alpha version bump for @mastra/evals, @mastra/loggers, @mastra/observability, and @mastra/memory\r\n\r\nFixes: [#12505](https://github.com/mastra-ai/mastra/pull/12505)\r\n\r\n### [@mastra/memory@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/memory/CHANGELOG.md)\r\n- Force alpha version bump for @mastra/evals, @mastra/loggers, @mastra/observability, and @mastra/memory\r\n\r\nFixes: [#12505](https://github.com/mastra-ai/mastra/pull/12505)\r\n- Extended readOnly memory option to also apply to working memory. When readOnly: true, working memory data is provided as context but the updateWorkingMemory tool is not available.\r\n\r\n**Example:**\r\n\r\n```typescript\r\n// Working memory is loaded but agent cannot update it\r\nconst response = await agent.generate(\"What do you know about me?\", {\r\n  memory: {\r\n    thread: \"conversation-123\",\r\n    resource: \"user-alice-456\",\r\n    options: { readOnly: true },\r\n  },\r\n});\r\n```\r\n\r\nFixes: [#12471](https://github.com/mastra-ai/mastra/pull/12471)\r\n\r\n### [@mastra/mongodb@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/stores/mongodb/CHANGELOG.md)\r\n- Restructured stored agents to use a thin metadata record with versioned configuration snapshots.\r\n\r\nThe agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.\r\n\r\n**Key changes:**\r\n\r\n- Stored Agent records are now thin metadata-only (StorageAgentType)\r\n- All config lives in version snapshots (StorageAgentSnapshotType)\r\n- New resolved type (StorageResolvedAgentType) merges agent record + active version config\r\n- Renamed `ownerId` to `authorId` for multi-tenant filtering\r\n- Changed `memory` field type from `string` to `Record<string, unknown>`\r\n- Added `status` field ('draft' | 'published') to agent records\r\n- Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)\r\n- Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)\r\n- List endpoints return resolved agents (thin record + active version config)\r\n- Auto-versioning on update with retention limits and race condition handling\r\n\r\nFixes: [#12488](https://github.com/mastra-ai/mastra/pull/12488)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields.\r\n\r\nFixes: [#12213](https://github.com/mastra-ai/mastra/pull/12213)\r\n\r\n### [@mastra/mssql@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/stores/mssql/CHANGELOG.md)\r\n- Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields.\r\n\r\nFixes: [#12213](https://github.com/mastra-ai/mastra/pull/12213)\r\n\r\n### [@mastra/observability@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/observability/mastra/CHANGELOG.md)\r\n- Force alpha version bump for @mastra/evals, @mastra/loggers, @mastra/observability, and @mastra/memory\r\n\r\nFixes: [#12505](https://github.com/mastra-ai/mastra/pull/12505)\r\n- Fixed tracingOptions.tags not being preserved when merging defaultOptions with call-site options. Tags set in agent's defaultOptions.tracingOptions are now correctly passed to all observability exporters (Langfuse, Langsmith, Braintrust, Datadog, etc.). Fixes #12209.\r\n\r\nFixes: [#12220](https://github.com/mastra-ai/mastra/pull/12220)\r\n- Requires @mastra/core 1.0.5 or later. If upgrading, ensure your @mastra/core package is also updated.\r\n\r\nFixes: [#12370](https://github.com/mastra-ai/mastra/pull/12370)\r\n- Tracing fixes:\r\n- Spans now inherit entityType/entityId from the closest non-internal parent (#12250)\r\n- Processor spans correctly track separate input and output data\r\n- Model chunk spans are now emitted for all streaming chunks\r\n- Internal framework spans no longer appear in exported traces\r\n\r\nFixes: [#12370](https://github.com/mastra-ai/mastra/pull/12370)\r\n- Add tool approval tracing to spans for debugging\r\n\r\nAdded the ability to see tool approval requests in traces for debugging purposes. When a tool requires approval, a `MODEL_CHUNK` span named `chunk: 'tool-call-approval'` is now created containing:\r\n- The tool call ID and name for identification\r\n- The arguments that need approval\r\n- The resume schema defining the approval response format\r\n\r\nThis enables users to debug their system by seeing approval requests in traces, making it easier to understand the flow of tool approvals and their payloads.\r\n\r\nFixes: [#12171](https://github.com/mastra-ai/mastra/pull/12171)\r\n\r\n### [@mastra/pg@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/stores/pg/CHANGELOG.md)\r\n- Restructured stored agents to use a thin metadata record with versioned configuration snapshots.\r\n\r\nThe agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.\r\n\r\n**Key changes:**\r\n\r\n- Stored Agent records are now thin metadata-only (StorageAgentType)\r\n- All config lives in version snapshots (StorageAgentSnapshotType)\r\n- New resolved type (StorageResolvedAgentType) merges agent record + active version config\r\n- Renamed `ownerId` to `authorId` for multi-tenant filtering\r\n- Changed `memory` field type from `string` to `Record<string, unknown>`\r\n- Added `status` field ('draft' | 'published') to agent records\r\n- Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)\r\n- Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)\r\n- List endpoints return resolved agents (thin record + active version config)\r\n- Auto-versioning on update with retention limits and race condition handling\r\n\r\nFixes: [#12488](https://github.com/mastra-ai/mastra/pull/12488)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Added `status` field to `listTraces` response. The status field indicates the trace state: `success` (completed without error), `error` (has error), or `running` (still in progress). This makes it easier to filter and display traces by their current state without having to derive it from the `error` and `endedAt` fields.\r\n\r\nFixes: [#12213](https://github.com/mastra-ai/mastra/pull/12213)\r\n- Stored agent edits no longer fail silently. PATCH requests now save changes correctly.\r\n\r\nFixes: [#12504](https://github.com/mastra-ai/mastra/pull/12504)\r\n- Fix PATCH request JSON-body handling in `@mastra/client-js` so stored agent edit flows work correctly. Fix stored agent schema migration in `@mastra/libsql` and `@mastra/pg` to drop and recreate the versions table when the old snapshot-based schema is detected, clean up stale draft records from partial create failures, and remove lingering legacy tables. Restores create and edit flows for stored agents.\r\n\r\nFixes: [#12504](https://github.com/mastra-ai/mastra/pull/12504)\r\n\r\n### [@mastra/playground-ui@8.0.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/playground-ui/CHANGELOG.md)\r\n- Fix link to evals documentation\r\n\r\nFixes: [#12122](https://github.com/mastra-ai/mastra/pull/12122)\r\n- Added ghost variant support to domain comboboxes (AgentCombobox, WorkflowCombobox, MCPServerCombobox, ScorerCombobox, ToolCombobox) and moved them into the breadcrumb for a cleaner navigation pattern\r\n\r\nFixes: [#12357](https://github.com/mastra-ai/mastra/pull/12357)\r\n- Added processor combobox to processor page header for quick navigation between processors\r\n\r\nFixes: [#12368](https://github.com/mastra-ai/mastra/pull/12368)\r\n- Restructured stored agents to use a thin metadata record with versioned configuration snapshots.\r\n\r\nThe agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.\r\n\r\n**Key changes:**\r\n\r\n- Stored Agent records are now thin metadata-only (StorageAgentType)\r\n- All config lives in version snapshots (StorageAgentSnapshotType)\r\n- New resolved type (StorageResolvedAgentType) merges agent record + active version config\r\n- Renamed `ownerId` to `authorId` for multi-tenant filtering\r\n- Changed `memory` field type from `string` to `Record<string, unknown>`\r\n- Added `status` field ('draft' | 'published') to agent records\r\n- Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)\r\n- Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)\r\n- List endpoints return resolved agents (thin record + active version config)\r\n- Auto-versioning on update with retention limits and race condition handling\r\n\r\nFixes: [#12488](https://github.com/mastra-ai/mastra/pull/12488)\r\n- Moved model provider and model selection dropdowns from the agent side panel to the chat composer area for easier access during conversations\r\n\r\nFixes: [#12407](https://github.com/mastra-ai/mastra/pull/12407)\r\n- Added Request Context tab to Tools, Agents, and Workflows in Mastra Studio. When an entity defines a requestContextSchema, a form is displayed allowing you to input context values before execution.\r\n\r\nFixes: [#12259](https://github.com/mastra-ai/mastra/pull/12259)\r\n- Fixed keyboard events in command palette propagating to underlying page elements like tables\r\n\r\nFixes: [#12458](https://github.com/mastra-ai/mastra/pull/12458)\r\n- Refactored Combobox component to use @base-ui/react instead of custom Radix UI Popover implementation. This removes ~70 lines of manual keyboard navigation code while preserving the same props interface and styling.\r\n\r\nFixes: [#12377](https://github.com/mastra-ai/mastra/pull/12377)\r\n- fix workflow run input caching bug in studio UI\r\n\r\nFixes: [#11784](https://github.com/mastra-ai/mastra/pull/11784)\r\n- Refactored agent model dropdowns to use the Combobox design system component, reducing code complexity while preserving all features including custom model ID support and provider connection status indicators.\r\n\r\nFixes: [#12367](https://github.com/mastra-ai/mastra/pull/12367)\r\n- Fixed model combobox auto-opening on mount. The model selector now only opens when explicitly changing providers, improving the initial page load experience.\r\n\r\nFixes: [#12456](https://github.com/mastra-ai/mastra/pull/12456)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Fixed legacy agent runs so each request now gets a unique run ID, improving trace readability in observability tools.\r\n\r\nFixes: [#12229](https://github.com/mastra-ai/mastra/pull/12229)\r\n- Improved skill activation styling with cleaner badge appearance and dark-themed tooltip on hover.\r\n\r\nFixes: [#12487](https://github.com/mastra-ai/mastra/pull/12487)\r\n- Added workflow run ID to breadcrumbs with truncation and copy functionality\r\n\r\nFixes: [#12409](https://github.com/mastra-ai/mastra/pull/12409)\r\n- Added Command component (CMDK) with CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandSeparator, and CommandShortcut subcomponents for building command palettes and searchable menus\r\n\r\nFixes: [#12360](https://github.com/mastra-ai/mastra/pull/12360)\r\n- Refactored WorkflowTrigger component into focused sub-components for better maintainability. Extracted WorkflowTriggerForm, WorkflowSuspendedSteps, WorkflowCancelButton, and WorkflowStepsStatus. Added useSuspendedSteps and useWorkflowSchemas hooks for memoized computations. No changes to public API.\r\n\r\nFixes: [#12349](https://github.com/mastra-ai/mastra/pull/12349)\r\n- Bump playground-ui to v7.1.0\r\n\r\nFixes: [#12186](https://github.com/mastra-ai/mastra/pull/12186)\r\n- Added keyboard navigation support to Table component with new `useTableKeyboardNavigation` hook and `isActive` prop on Row\r\n\r\nFixes: [#12352](https://github.com/mastra-ai/mastra/pull/12352)\r\n- Use useExecuteWorkflow hook from @mastra/react instead of local implementation in playground-ui\r\n\r\nFixes: [#12138](https://github.com/mastra-ai/mastra/pull/12138)\r\n- Refined color palette for a more polished dark theme. Surfaces now use warm near-blacks, accents are softer and less neon, borders are subtle white overlays for a modern look.\r\n\r\nFixes: [#12350](https://github.com/mastra-ai/mastra/pull/12350)\r\n- Added useCancelWorkflowRun hook to @mastra/react for canceling workflow runs. This hook was previously only available internally in playground-ui and is now exported for use in custom applications.\r\n\r\nFixes: [#12142](https://github.com/mastra-ai/mastra/pull/12142)\r\n- Added global command palette (Cmd+K) for quick navigation to any entity in Mastra Studio. Press Cmd+K (or Ctrl+K on Windows/Linux) to search and navigate to agents, workflows, tools, scorers, processors, and MCP servers.\r\n\r\nFixes: [#12360](https://github.com/mastra-ai/mastra/pull/12360)\r\n- Fixed skill detail page crashing when skills have object-typed compatibility or metadata fields. Skills from skills.sh and other external sources now display correctly.\r\n\r\nFixes: [#12491](https://github.com/mastra-ai/mastra/pull/12491)\r\n- Remove hardcoded temperature: 0.5 and topP: 1 defaults from playground agent settings\r\nLet agent config and provider defaults handle these values instead\r\n\r\nFixes: [#12256](https://github.com/mastra-ai/mastra/pull/12256)\r\n- Added useStreamWorkflow hook to @mastra/react for streaming workflow execution. This hook supports streaming, observing, resuming, and time-traveling workflows. It accepts tracingOptions and onError as parameters for better customization.\r\n\r\nFixes: [#12151](https://github.com/mastra-ai/mastra/pull/12151)\r\n- Improved command palette with sidebar toggle, direct links to agent/workflow traces, and preserved search result ordering\r\n\r\nFixes: [#12406](https://github.com/mastra-ai/mastra/pull/12406)\r\n- Added view transitions to internal sidebar navigation links for smoother page transitions\r\n\r\nFixes: [#12358](https://github.com/mastra-ai/mastra/pull/12358)\r\n- Added raw SKILL.md source view in skill detail page. The 'Source' toggle now shows the full file contents including YAML frontmatter.\r\n\r\nFixes: [#12497](https://github.com/mastra-ai/mastra/pull/12497)\r\n- Added workspace UI components for the Mastra playground.\r\n\r\n**New components:**\r\n\r\n- `FileBrowser` - Browse and manage workspace files with breadcrumb navigation\r\n- `FileViewer` - View file contents with syntax highlighting\r\n- `SkillsTable` - List and search available skills\r\n- `SkillDetail` - View skill details, instructions, and references\r\n- `SearchPanel` - Search workspace content with BM25/vector/hybrid modes\r\n- `ReferenceViewerDialog` - View skill reference file contents\r\n\r\n**Usage:**\r\n\r\n```tsx\r\nimport { FileBrowser, FileViewer, SkillsTable } from '@mastra/playground-ui';\r\n\r\n// File browser with navigation\r\n<FileBrowser\r\n  entries={files}\r\n  currentPath=\"/docs\"\r\n  onNavigate={setPath}\r\n  onFileSelect={handleFileSelect}\r\n/>\r\n\r\n// Skills table with search\r\n<SkillsTable\r\n  skills={skills}\r\n  onSkillSelect={handleSkillSelect}\r\n/>\r\n```\r\n\r\nFixes: [#11986](https://github.com/mastra-ai/mastra/pull/11986)\r\n- Added IconButton design system component that combines button styling with built-in tooltip support. Replaced TooltipIconButton with IconButton throughout the chat interface for consistency.\r\n\r\nFixes: [#12410](https://github.com/mastra-ai/mastra/pull/12410)\r\n- Developers can now configure a custom API route prefix in the Studio UI, enabling Studio to work with servers using custom base paths (e.g., `/mastra` instead of the default `/api`). See #12261 for more details.\r\n\r\nFixes: [#12295](https://github.com/mastra-ai/mastra/pull/12295)\r\n\r\n### [@mastra/posthog@1.0.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/observability/posthog/CHANGELOG.md)\r\n- Fixed token usage reporting for Langfuse and PostHog exporters. The `input` token count now correctly excludes cached tokens, matching each platform's expected format for accurate cost calculation. Cache read and cache write tokens are now properly reported as separate fields (`cache_read_input_tokens`, `cache_creation_input_tokens`) rather than being included in the base input count. Added defensive clamping to ensure input tokens never go negative if cache values exceed the total.\r\n\r\nFixes: [#12465](https://github.com/mastra-ai/mastra/pull/12465)\r\n\r\n### [@mastra/rag@2.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/rag/CHANGELOG.md)\r\n- Added support for 20 additional languages in code chunking\r\n\r\nExtended RecursiveCharacterTransformer to support all languages defined in the Language enum. Previously, only 6 languages were supported (CPP, C, TS, MARKDOWN, LATEX, PHP), causing runtime errors for other defined languages.\r\n\r\n**Newly supported languages:**\r\n- GO, JAVA, KOTLIN, JS, PYTHON, RUBY, RUST, SCALA, SWIFT (popular programming languages)\r\n- HTML, SOL (Solidity), CSHARP, COBOL, LUA, PERL, HASKELL, ELIXIR, POWERSHELL (additional languages)\r\n- PROTO (Protocol Buffers), RST (reStructuredText) (data/documentation formats)\r\n\r\nEach language has been configured with appropriate separators based on its syntax patterns (modules, classes, functions, control structures) to enable semantic code chunking.\r\n\r\n**Before:**\r\n\r\n```typescript\r\nimport { RecursiveCharacterTransformer, Language } from '@mastra/rag';\r\n\r\n// These would all throw \"Language X is not supported!\" errors\r\nconst goTransformer = RecursiveCharacterTransformer.fromLanguage(Language.GO);\r\nconst pythonTransformer = RecursiveCharacterTransformer.fromLanguage(Language.PYTHON);\r\nconst rustTransformer = RecursiveCharacterTransformer.fromLanguage(Language.RUST);\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\nimport { RecursiveCharacterTransformer, Language } from '@mastra/rag';\r\n\r\n// All languages now work seamlessly\r\nconst goTransformer = RecursiveCharacterTransformer.fromLanguage(Language.GO);\r\nconst goChunks = goTransformer.transform(goCodeDocument);\r\n\r\nconst pythonTransformer = RecursiveCharacterTransformer.fromLanguage(Language.PYTHON);\r\nconst pythonChunks = pythonTransformer.transform(pythonCodeDocument);\r\n\r\nconst rustTransformer = RecursiveCharacterTransformer.fromLanguage(Language.RUST);\r\nconst rustChunks = rustTransformer.transform(rustCodeDocument);\r\n// All languages in the Language enum are now fully supported\r\n```\r\n\r\nFixes: [#12154](https://github.com/mastra-ai/mastra/pull/12154)\r\n- Add support for PHP in Language enum\r\n\r\nPreviously, the Language enum defined PHP, but it was not supported in the `getSeparatorsForLanguage` method. This caused runtime errors when trying to use PHP for code chunking.\r\n\r\nThis change adds proper separator definitions for PHP, ensuring that PHP defined in the Language enum is now fully supported. PHP has been configured with appropriate separators based on its syntax and common programming patterns (classes, functions, control structures, etc.).\r\n\r\n**Before:**\r\n\r\n```typescript\r\nimport { RecursiveCharacterTransformer, Language } from '@mastra/rag';\r\n\r\nconst transformer = RecursiveCharacterTransformer.fromLanguage(Language.PHP);\r\nconst chunks = transformer.transform(phpCodeDocument);\r\n// Throws: \"Language PHP is not supported!\"\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\nimport { RecursiveCharacterTransformer, Language } from '@mastra/rag';\r\n\r\nconst transformer = RecursiveCharacterTransformer.fromLanguage(Language.PHP);\r\nconst chunks = transformer.transform(phpCodeDocument);\r\n// Successfully chunks PHP code at namespace, class, function boundaries\r\n```\r\n\r\nFixes the issue where using `Language.PHP` would throw \"Language PHP is not supported!\" error.\r\n\r\nFixes: [#12124](https://github.com/mastra-ai/mastra/pull/12124)\r\n\r\n### [@mastra/react@0.2.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/client-sdks/react/CHANGELOG.md)\r\n- Added `apiPrefix` prop to `MastraClientProvider` for connecting to servers with custom API route prefixes (defaults to `/api`).\r\n\r\n**Default usage (no change required):**\r\n\r\n```tsx\r\n<MastraClientProvider baseUrl=\"http://localhost:3000\">\r\n  {children}\r\n</MastraClientProvider>\r\n```\r\n\r\n**Custom prefix usage:**\r\n\r\n```tsx\r\n<MastraClientProvider baseUrl=\"http://localhost:3000\" apiPrefix=\"/mastra\">\r\n  {children}\r\n</MastraClientProvider>\r\n```\r\n\r\nSee #12261 for more details.\r\n\r\nFixes: [#12295](https://github.com/mastra-ai/mastra/pull/12295)\r\n- Use useExecuteWorkflow hook from @mastra/react instead of local implementation in playground-ui\r\n\r\nFixes: [#12138](https://github.com/mastra-ai/mastra/pull/12138)\r\n- Added useCancelWorkflowRun hook to @mastra/react for canceling workflow runs. This hook was previously only available internally in playground-ui and is now exported for use in custom applications.\r\n\r\nFixes: [#12142](https://github.com/mastra-ai/mastra/pull/12142)\r\n- Added useStreamWorkflow hook to @mastra/react for streaming workflow execution. This hook supports streaming, observing, resuming, and time-traveling workflows. It accepts tracingOptions and onError as parameters for better customization.\r\n\r\nFixes: [#12151](https://github.com/mastra-ai/mastra/pull/12151)\r\n\r\n### [@mastra/server@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/server/CHANGELOG.md)\r\n- Restructured stored agents to use a thin metadata record with versioned configuration snapshots.\r\n\r\nThe agent record now only stores metadata fields (id, status, activeVersionId, authorId, metadata, timestamps). All configuration fields (name, instructions, model, tools, etc.) live exclusively in version snapshot rows, enabling full version history and rollback.\r\n\r\n**Key changes:**\r\n\r\n- Stored Agent records are now thin metadata-only (StorageAgentType)\r\n- All config lives in version snapshots (StorageAgentSnapshotType)\r\n- New resolved type (StorageResolvedAgentType) merges agent record + active version config\r\n- Renamed `ownerId` to `authorId` for multi-tenant filtering\r\n- Changed `memory` field type from `string` to `Record<string, unknown>`\r\n- Added `status` field ('draft' | 'published') to agent records\r\n- Flattened CreateAgent/UpdateAgent input types (config fields at top level, no nested snapshot)\r\n- Version config columns are top-level in the agent_versions table (no single snapshot jsonb column)\r\n- List endpoints return resolved agents (thin record + active version config)\r\n- Auto-versioning on update with retention limits and race condition handling\r\n\r\nFixes: [#12488](https://github.com/mastra-ai/mastra/pull/12488)\r\n- Fixed server handlers to find stored and sub-agents, not just registered agents. Agents created via the API or stored in the database are now correctly resolved in A2A, memory, scores, tools, and voice endpoints.\r\n\r\nFixes: [#12481](https://github.com/mastra-ai/mastra/pull/12481)\r\n- Added explicit auth control to built-in API routes. All routes now have a requiresAuth property that determines whether authentication is required. This eliminates route matching overhead and makes auth requirements clear in route definitions. Routes default to requiresAuth: true (protected) for security. To make a route public, set requiresAuth: false in the route definition.\r\n\r\nFixes: [#12153](https://github.com/mastra-ai/mastra/pull/12153)\r\n- Fixed a bug introduced in PR #12251 where requestContext was not passed through to agent and workflow operations. This could cause tools and nested operations that rely on requestContext values to fail or behave incorrectly.\r\n\r\nFixes: [#12428](https://github.com/mastra-ai/mastra/pull/12428)\r\n- Fix broken import for deepEqual by inlining the function into server.\r\n\r\nFixes: [#12446](https://github.com/mastra-ai/mastra/pull/12446)\r\n- Added requestContextSchema type support.\r\n\r\nFixes: [#12259](https://github.com/mastra-ai/mastra/pull/12259)\r\n- Fixed authentication bypass for custom routes in dev mode. Routes registered with registerApiRoute and requiresAuth: true now correctly enforce authentication even when MASTRA_DEV=true.\r\n\r\nFixes: [#12339](https://github.com/mastra-ai/mastra/pull/12339)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Fixed malformed JSON body handling in Hono adapter. When a POST request contains invalid JSON (e.g., missing closing braces), the server now returns HTTP 400 Bad Request with a structured error message instead of silently accepting the request with HTTP 200. This prevents workflows from starting with undefined input data. ([#12310](https://github.com/mastra-ai/mastra/issues/12310))\r\n\r\nFixes: [#12332](https://github.com/mastra-ai/mastra/pull/12332)\r\n- Fix path parameter routes not respecting requiresAuth setting\r\n\r\nFixes issue where custom API routes with path parameters (e.g., `/users/:id`) were incorrectly requiring authentication even when `requiresAuth` was set to `false`. The authentication middleware now uses pattern matching to correctly match dynamic routes against registered patterns.\r\n\r\nChanges:\r\n- Inlined path pattern matching utility (based on regexparam) to avoid dependency complexity\r\n- Updated `isCustomRoutePublic()` to iterate through routes and match path patterns\r\n- Enhanced `pathMatchesPattern()` to support path parameters (`:id`), optional parameters (`:id?`), and wildcards (`*`)\r\n- Added comprehensive test coverage for path parameter matching scenarios\r\n\r\nFixes: [#12143](https://github.com/mastra-ai/mastra/pull/12143)\r\n- Improves CommonJS support by adding typefiles to the root directory\r\n\r\nFixes: [#12068](https://github.com/mastra-ai/mastra/pull/12068)\r\n- Added `mcpOptions` to server adapters for serverless MCP support.\r\n\r\n**Why:** MCP HTTP transport uses session management by default, which requires persistent state across requests. This doesn't work in serverless environments like Cloudflare Workers or Vercel Edge where each request runs in isolation. The new `mcpOptions` parameter lets you enable stateless mode without overriding the entire `sendResponse()` method.\r\n\r\n**Before:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n});\r\n// No way to pass serverless option to MCP HTTP transport\r\n```\r\n\r\n**After:**\r\n\r\n```typescript\r\nconst server = new MastraServer({\r\n  app,\r\n  mastra,\r\n  mcpOptions: {\r\n    serverless: true,\r\n  },\r\n});\r\n// MCP HTTP transport now runs in stateless mode\r\n```\r\n\r\nFixes: [#12324](https://github.com/mastra-ai/mastra/pull/12324)\r\n- Fixed memory API endpoints to respect MASTRA_RESOURCE_ID_KEY and MASTRA_THREAD_ID_KEY from middleware. Previously, these endpoints ignored the reserved context keys and used client-provided values directly, allowing authenticated users to potentially access other users' threads and messages. Now when middleware sets these reserved keys, they take precedence over client-provided values for secure user isolation.\r\n\r\nFixes: [#12251](https://github.com/mastra-ai/mastra/pull/12251)\r\n- Added support for including custom API routes in the generated OpenAPI documentation. Custom routes registered via `registerApiRoute()` now appear in the OpenAPI spec alongside built-in Mastra routes.\r\n\r\nFixes: [#11786](https://github.com/mastra-ai/mastra/pull/11786)\r\n- Added workspace API endpoints for filesystem operations, skill management, and content search.\r\n\r\n**New endpoints:**\r\n\r\n- `GET /workspaces` - List all workspaces (from Mastra instance and agents)\r\n- `GET /workspaces/:workspaceId` - Get workspace info and capabilities\r\n- `GET/POST/DELETE /workspaces/:workspaceId/fs/*` - Filesystem operations (read, write, list, delete, mkdir, stat)\r\n- `GET /workspaces/:workspaceId/skills` - List available skills\r\n- `GET /workspaces/:workspaceId/skills/:skillName` - Get skill details\r\n- `GET /workspaces/:workspaceId/skills/:skillName/references` - List skill references\r\n- `GET /workspaces/:workspaceId/search` - Search indexed content\r\n\r\n**Usage:**\r\n\r\n```typescript\r\n// List workspaces\r\nconst { workspaces } = await fetch('/api/workspaces').then(r => r.json());\r\nconst workspaceId = workspaces[0].id;\r\n\r\n// Read a file\r\nconst response = await fetch(`/api/workspaces/${workspaceId}/fs/read?path=/docs/guide.md`);\r\nconst { content } = await response.json();\r\n\r\n// List skills\r\nconst skills = await fetch(`/api/workspaces/${workspaceId}/skills`).then(r => r.json());\r\n\r\n// Search content\r\nconst results = await fetch(`/api/workspaces/${workspaceId}/search?query=authentication&mode=hybrid`)\r\n  .then(r => r.json());\r\n```\r\n\r\nFixes: [#11986](https://github.com/mastra-ai/mastra/pull/11986)\r\n- Route prefixes are now normalized for consistent handling (trailing slashes removed, leading slashes added, multiple slashes collapsed).\r\n\r\nFixes: [#12295](https://github.com/mastra-ai/mastra/pull/12295)\r\n- Fixed route prefix behavior to correctly replace the default /api prefix instead of prepending to it. Previously, setting prefix: '/api/v2' resulted in routes at /api/v2/api/agents. Now routes correctly appear at /api/v2/agents as documented.\r\n\r\nFixes: [#12221](https://github.com/mastra-ai/mastra/pull/12221)\r\n\r\n### [@mastra/voice-google-gemini-live@0.11.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/voice/google-gemini-live-api/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`ws@^8.19.0` ↗︎](https://www.npmjs.com/package/ws/v/8.19.0) (from `^8.18.3`, in `dependencies`)\r\n\r\nFixes: [#11645](https://github.com/mastra-ai/mastra/pull/11645)\r\n\r\n### [@mastra/voice-openai-realtime@0.12.1](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/voice/openai-realtime-api/CHANGELOG.md)\r\n- dependencies updates:\r\n  - Updated dependency [`ws@^8.19.0` ↗︎](https://www.npmjs.com/package/ws/v/8.19.0) (from `^8.18.3`, in `dependencies`)\r\n\r\nFixes: [#11645](https://github.com/mastra-ai/mastra/pull/11645)\r\n\r\n### [create-mastra@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/create-mastra/CHANGELOG.md)\r\n- fix workflow run input caching bug in studio UI\r\n\r\nFixes: [#11784](https://github.com/mastra-ai/mastra/pull/11784)\r\n\r\n### [mastra@1.1.0](https://github.com/mastra-ai/mastra/blob/@mastra/core@1.1.0/packages/cli/CHANGELOG.md)\r\n- Fixed Studio CLI placeholder replacement so generated URLs are valid.\r\n\r\nFixes: [#12108](https://github.com/mastra-ai/mastra/pull/12108)\r\n- Fixed peer dependency checker to correctly validate prerelease versions (e.g., 1.1.0-alpha.1 now satisfies >=1.0.0-0 <2.0.0-0)\r\n\r\nFixes: [#12495](https://github.com/mastra-ai/mastra/pull/12495)\r\n- Added peer dependency version validation when running `mastra dev` and `mastra build`. The CLI now checks if installed @mastra/* packages satisfy each other's peer dependency requirements and displays a warning with upgrade instructions when mismatches are detected.\r\n\r\nFixes: [#12469](https://github.com/mastra-ai/mastra/pull/12469)\r\n- Improved peer dependency version mismatch warnings in the CLI:\r\n\r\n- When the dev server crashes with an error, a hint is now shown suggesting that updating mismatched packages may fix the issue\r\n- The update command now uses the correct package manager (pnpm/npm/yarn) detected from lockfiles\r\n- The update command uses `add @package@latest` instead of `update` to ensure major version updates are applied\r\n- Added `MASTRA_SKIP_PEERDEP_CHECK=1` environment variable to skip the peer dependency check\r\n\r\nFixes: [#12479](https://github.com/mastra-ai/mastra/pull/12479)\r\n- fix workflow run input caching bug in studio UI\r\n\r\nFixes: [#11784](https://github.com/mastra-ai/mastra/pull/11784)\r\n- Added dynamic agent management with CRUD operations and version tracking\r\n\r\n**New Features:**\r\n\r\n- Create, edit, and delete agents directly from the Mastra Studio UI\r\n- Full version history for agents with compare and restore capabilities\r\n- Visual diff viewer to compare agent configurations across versions\r\n- Agent creation modal with comprehensive configuration options (model selection, instructions, tools, workflows, sub-agents, memory)\r\n- AI-powered instruction enhancement\r\n\r\n**Storage:**\r\n\r\n- New storage interfaces for stored agents and agent versions\r\n- PostgreSQL, LibSQL, and MongoDB implementations included\r\n- In-memory storage for development and testing\r\n\r\n**API:**\r\n\r\n- RESTful endpoints for agent CRUD operations\r\n- Version management endpoints (create, list, activate, restore, delete, compare)\r\n- Automatic versioning on agent updates when enabled\r\n\r\n**Client SDK:**\r\n\r\n- JavaScript client with full support for stored agents and versions\r\n- Type-safe methods for all CRUD and version operations\r\n\r\n**Usage Example:**\r\n\r\n```typescript\r\n// Server-side: Configure storage\r\nimport { Mastra } from '@mastra/core';\r\nimport { PgAgentsStorage } from '@mastra/pg';\r\n\r\nconst mastra = new Mastra({\r\n  agents: { agentOne },\r\n  storage: {\r\n    agents: new PgAgentsStorage({\r\n      connectionString: process.env.DATABASE_URL,\r\n    }),\r\n  },\r\n});\r\n\r\n// Client-side: Use the SDK\r\nimport { MastraClient } from '@mastra/client-js';\r\n\r\nconst client = new MastraClient({ baseUrl: 'http://localhost:3000' });\r\n\r\n// Create a stored agent\r\nconst agent = await client.createStoredAgent({\r\n  name: 'Customer Support Agent',\r\n  description: 'Handles customer inquiries',\r\n  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5' },\r\n  instructions: 'You are a helpful customer support agent...',\r\n  tools: ['search', 'email'],\r\n});\r\n\r\n// Create a version snapshot\r\nawait client.storedAgent(agent.id).createVersion({\r\n  name: 'v1.0 - Initial release',\r\n  changeMessage: 'First production version',\r\n});\r\n\r\n// Compare versions\r\nconst diff = await client.storedAgent(agent.id).compareVersions('version-1', 'version-2');\r\n```\r\n\r\n**Why:**\r\nThis feature enables teams to manage agents dynamically without code changes, making it easier to iterate on agent configurations and maintain a complete audit trail of changes.\r\n\r\nFixes: [#12038](https://github.com/mastra-ai/mastra/pull/12038)\r\n- Fixed Studio scorers page crash when navigating directly to a scorer URL or reloading the page. The page would crash with 'Cannot read properties of undefined' due to a race condition between scorer and agents data loading.\r\n\r\nFixes: [#12126](https://github.com/mastra-ai/mastra/pull/12126)\r\n- Added `--server-api-prefix` option to `mastra studio` command for connecting to servers with custom API route prefixes.\r\n\r\n```bash\r\n# Connect to server using custom prefix\r\nmastra studio --server-port 3000 --server-api-prefix /mastra\r\n```\r\n\r\nFixes: [#12295](https://github.com/mastra-ai/mastra/pull/12295)\r\n","publishedAt":"2026-01-30T16:26:51.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/mastra%401.1.0","media":[]},{"id":"rel_nSn6xQIoGOfgumOoa0kb8","version":"@mastra/core@1.0.0-beta.21","title":"January 9, 2026","summary":"# Changelog\r\n\r\n## [@mastra/ai-sdk@1.0.0-beta.14](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/client-sdks/ai-sdk/...","content":"# Changelog\r\n\r\n## [@mastra/ai-sdk@1.0.0-beta.14](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/client-sdks/ai-sdk/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add structured output support to agent.network() method. Users can now pass a `structuredOutput` option with a Zod schema to get typed results from network execution. ([#11701](https://github.com/mastra-ai/mastra/pull/11701))\r\n\r\n  The stream exposes `.object` (Promise) and `.objectStream` (ReadableStream) getters, and emits `network-object` and `network-object-result` chunk types. The structured output is generated after task completion using the provided schema.\r\n\r\n  ```typescript\r\n  const stream = await agent.network('Research AI trends', {\r\n    structuredOutput: {\r\n      schema: z.object({\r\n        summary: z.string(),\r\n        recommendations: z.array(z.string()),\r\n      }),\r\n    },\r\n  });\r\n\r\n  const result = await stream.object;\r\n  // result is typed: { summary: string; recommendations: string[] }\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/arize@1.0.0-beta.12](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/observability/arize/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat(observability): add zero-config environment variable support for all exporters ([#11686](https://github.com/mastra-ai/mastra/pull/11686))\r\n\r\n  All observability exporters now support zero-config setup via environment variables. Set the appropriate environment variables and instantiate exporters with no configuration:\r\n  - **Langfuse**: `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_BASE_URL`\r\n  - **Braintrust**: `BRAINTRUST_API_KEY`, `BRAINTRUST_ENDPOINT`\r\n  - **PostHog**: `POSTHOG_API_KEY`, `POSTHOG_HOST`\r\n  - **Arize/Phoenix**: `ARIZE_SPACE_ID`, `ARIZE_API_KEY`, `ARIZE_PROJECT_NAME`, `PHOENIX_ENDPOINT`, `PHOENIX_API_KEY`, `PHOENIX_PROJECT_NAME`\r\n  - **OTEL Providers**:\r\n    - Dash0: `DASH0_API_KEY`, `DASH0_ENDPOINT`, `DASH0_DATASET`\r\n    - SigNoz: `SIGNOZ_API_KEY`, `SIGNOZ_REGION`, `SIGNOZ_ENDPOINT`\r\n    - New Relic: `NEW_RELIC_LICENSE_KEY`, `NEW_RELIC_ENDPOINT`\r\n    - Traceloop: `TRACELOOP_API_KEY`, `TRACELOOP_DESTINATION_ID`, `TRACELOOP_ENDPOINT`\r\n    - Laminar: `LMNR_PROJECT_API_KEY`, `LAMINAR_ENDPOINT`, `LAMINAR_TEAM_ID`\r\n\r\n  Example usage:\r\n\r\n  ```typescript\r\n  // Zero-config - reads from environment variables\r\n  new LangfuseExporter();\r\n  new BraintrustExporter();\r\n  new PosthogExporter();\r\n  new ArizeExporter();\r\n  new OtelExporter({ provider: { signoz: {} } });\r\n  ```\r\n\r\n  Explicit configuration still works and takes precedence over environment variables.\r\n\r\n---\r\n\r\n## [@mastra/braintrust@1.0.0-beta.12](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/observability/braintrust/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat(observability): add zero-config environment variable support for all exporters ([#11686](https://github.com/mastra-ai/mastra/pull/11686))\r\n\r\n  All observability exporters now support zero-config setup via environment variables. Set the appropriate environment variables and instantiate exporters with no configuration:\r\n  - **Langfuse**: `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_BASE_URL`\r\n  - **Braintrust**: `BRAINTRUST_API_KEY`, `BRAINTRUST_ENDPOINT`\r\n  - **PostHog**: `POSTHOG_API_KEY`, `POSTHOG_HOST`\r\n  - **Arize/Phoenix**: `ARIZE_SPACE_ID`, `ARIZE_API_KEY`, `ARIZE_PROJECT_NAME`, `PHOENIX_ENDPOINT`, `PHOENIX_API_KEY`, `PHOENIX_PROJECT_NAME`\r\n  - **OTEL Providers**:\r\n    - Dash0: `DASH0_API_KEY`, `DASH0_ENDPOINT`, `DASH0_DATASET`\r\n    - SigNoz: `SIGNOZ_API_KEY`, `SIGNOZ_REGION`, `SIGNOZ_ENDPOINT`\r\n    - New Relic: `NEW_RELIC_LICENSE_KEY`, `NEW_RELIC_ENDPOINT`\r\n    - Traceloop: `TRACELOOP_API_KEY`, `TRACELOOP_DESTINATION_ID`, `TRACELOOP_ENDPOINT`\r\n    - Laminar: `LMNR_PROJECT_API_KEY`, `LAMINAR_ENDPOINT`, `LAMINAR_TEAM_ID`\r\n\r\n  Example usage:\r\n\r\n  ```typescript\r\n  // Zero-config - reads from environment variables\r\n  new LangfuseExporter();\r\n  new BraintrustExporter();\r\n  new PosthogExporter();\r\n  new ArizeExporter();\r\n  new OtelExporter({ provider: { signoz: {} } });\r\n  ```\r\n\r\n  Explicit configuration still works and takes precedence over environment variables.\r\n\r\n---\r\n\r\n## [@mastra/core@1.0.0-beta.21](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/core/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Add structured output support to agent.network() method. Users can now pass a `structuredOutput` option with a Zod schema to get typed results from network execution. ([#11701](https://github.com/mastra-ai/mastra/pull/11701))\r\n\r\n  The stream exposes `.object` (Promise) and `.objectStream` (ReadableStream) getters, and emits `network-object` and `network-object-result` chunk types. The structured output is generated after task completion using the provided schema.\r\n\r\n  ```typescript\r\n  const stream = await agent.network('Research AI trends', {\r\n    structuredOutput: {\r\n      schema: z.object({\r\n        summary: z.string(),\r\n        recommendations: z.array(z.string()),\r\n      }),\r\n    },\r\n  });\r\n\r\n  const result = await stream.object;\r\n  // result is typed: { summary: string; recommendations: string[] }\r\n  ```\r\n\r\n### Patch Changes\r\n\r\n- Add additional context to workflow `onFinish` and `onError` callbacks ([#11705](https://github.com/mastra-ai/mastra/pull/11705))\r\n\r\n  The `onFinish` and `onError` lifecycle callbacks now receive additional properties:\r\n  - `runId` - The unique identifier for the workflow run\r\n  - `workflowId` - The workflow's identifier\r\n  - `resourceId` - Optional resource identifier (if provided when creating the run)\r\n  - `getInitData()` - Function that returns the initial input data passed to the workflow\r\n  - `mastra` - The Mastra instance (if workflow is registered with Mastra)\r\n  - `requestContext` - Request-scoped context data\r\n  - `logger` - The workflow's logger instance\r\n  - `state` - The workflow's current state object\r\n\r\n  ```typescript\r\n  const workflow = createWorkflow({\r\n    id: 'order-processing',\r\n    inputSchema: z.object({ orderId: z.string() }),\r\n    outputSchema: z.object({ status: z.string() }),\r\n    options: {\r\n      onFinish: async ({ runId, workflowId, getInitData, logger, state, mastra }) => {\r\n        const inputData = getInitData();\r\n        logger.info(`Workflow ${workflowId} run ${runId} completed`, {\r\n          orderId: inputData.orderId,\r\n          finalState: state,\r\n        });\r\n\r\n        // Access other Mastra components if needed\r\n        const agent = mastra?.getAgent('notification-agent');\r\n      },\r\n      onError: async ({ runId, workflowId, error, logger, requestContext }) => {\r\n        logger.error(`Workflow ${workflowId} run ${runId} failed: ${error?.message}`);\r\n        // Access request context for additional debugging\r\n        const userId = requestContext.get('userId');\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n- Make initialState optional in studio ([#11744](https://github.com/mastra-ai/mastra/pull/11744))\r\n\r\n- Refactor: consolidate duplicate applyMessages helpers in workflow.ts ([#11688](https://github.com/mastra-ai/mastra/pull/11688))\r\n  - Added optional `defaultSource` parameter to `ProcessorRunner.applyMessagesToMessageList` to support both 'input' and 'response' default sources\r\n  - Removed 3 duplicate inline `applyMessages` helper functions from workflow.ts (in input, outputResult, and outputStep phases)\r\n  - All phases now use the shared `ProcessorRunner.applyMessagesToMessageList` static method\r\n\r\n  This is an internal refactoring with no changes to external behavior.\r\n\r\n- Cache processor instances in MastraMemory to preserve embedding cache across calls ([#11720](https://github.com/mastra-ai/mastra/pull/11720))\r\n  Fixed issue where getInputProcessors() and getOutputProcessors() created new processor instances on each call, causing the SemanticRecall embedding cache to be discarded. Processor instances (SemanticRecall, WorkingMemory, MessageHistory) are now cached and reused, reducing unnecessary embedding API calls and improving latency.\r\n  Also added cache invalidation when setStorage(), setVector(), or setEmbedder() are called to ensure processors use updated dependencies.\r\n  Fixes #11455\r\n\r\n---\r\n\r\n## [@mastra/datadog@1.0.0-beta.2](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/observability/datadog/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added a Datadog LLM Observability exporter for Mastra applications. ([#11305](https://github.com/mastra-ai/mastra/pull/11305))\r\n\r\n  This exporter integrates with Datadog's LLM Observability product to provide comprehensive tracing and monitoring for AI/LLM applications built with Mastra.\r\n  - **LLM Observability Integration**: Exports traces to Datadog's dedicated LLM Observability product\r\n  - **Dual Mode Support**: Works with direct HTTPS (agentless) or through a local Datadog Agent\r\n  - **Span Type Mapping**: Automatically maps Mastra span types to Datadog LLMObs kinds (llm, agent, tool, workflow, task)\r\n  - **Message Formatting**: LLM inputs/outputs are formatted as message arrays for proper visualization in Datadog\r\n  - **Token Metrics**: Captures inputTokens, outputTokens, totalTokens, reasoningTokens, and cached tokens\r\n  - **Error Tracking**: Error spans include detailed error info (message, ID, domain, category)\r\n  - **Hierarchical Traces**: Tree-based span emission preserves parent-child relationships\r\n\r\n  Required settings:\r\n  - `mlApp`: Groups traces under an ML application name (required)\r\n  - `apiKey`: Datadog API key (required for agentless mode)\r\n\r\n  Optional settings:\r\n  - `site`: Datadog site (datadoghq.com, datadoghq.eu, us3.datadoghq.com)\r\n  - `agentless`: true for direct HTTPS (default), false for local agent\r\n  - `service`, `env`: APM tagging\r\n  - `integrationsEnabled`: Enable dd-trace auto-instrumentation (default: false)\r\n\r\n  ```typescript\r\n  import { Mastra } from '@mastra/core';\r\n  import { Observability } from '@mastra/observability';\r\n  import { DatadogExporter } from '@mastra/datadog';\r\n\r\n  const mastra = new Mastra({\r\n    observability: new Observability({\r\n      configs: {\r\n        datadog: {\r\n          serviceName: 'my-service',\r\n          exporters: [\r\n            new DatadogExporter({\r\n              mlApp: 'my-llm-app',\r\n              apiKey: process.env.DD_API_KEY,\r\n            }),\r\n          ],\r\n        },\r\n      },\r\n    }),\r\n  });\r\n  ```\r\n\r\n  This is an initial experimental beta release. Breaking changes may occur in future versions as the API evolves.\r\n\r\n---\r\n\r\n## [@mastra/inngest@1.0.0-beta.12](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/workflows/inngest/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Added `createServe` factory function to support multiple web framework adapters for Inngest workflows. ([#11667](https://github.com/mastra-ai/mastra/pull/11667))\r\n\r\n  Previously, the `serve` function only supported Hono. Now you can use any framework adapter provided by the Inngest package (Express, Fastify, Koa, Next.js, and more).\r\n\r\n  **Before (Hono only)**\r\n\r\n  ```typescript\r\n  import { serve } from '@mastra/inngest';\r\n\r\n  // Only worked with Hono\r\n  app.all('/api/inngest', c => serve({ mastra, inngest })(c));\r\n  ```\r\n\r\n  **After (any framework)**\r\n\r\n  ```typescript\r\n  import { createServe } from '@mastra/inngest';\r\n  import { serve as expressAdapter } from 'inngest/express';\r\n  import { serve as fastifyAdapter } from 'inngest/fastify';\r\n\r\n  // Express\r\n  app.use('/api/inngest', createServe(expressAdapter)({ mastra, inngest }));\r\n\r\n  // Fastify\r\n  fastify.route({\r\n    method: ['GET', 'POST', 'PUT'],\r\n    url: '/api/inngest',\r\n    handler: createServe(fastifyAdapter)({ mastra, inngest }),\r\n  });\r\n  ```\r\n\r\n  The existing `serve` export remains available for backward compatibility with Hono.\r\n\r\n  Fixes #10053\r\n\r\n### Patch Changes\r\n\r\n- Add additional context to workflow `onFinish` and `onError` callbacks ([#11705](https://github.com/mastra-ai/mastra/pull/11705))\r\n\r\n  The `onFinish` and `onError` lifecycle callbacks now receive additional properties:\r\n  - `runId` - The unique identifier for the workflow run\r\n  - `workflowId` - The workflow's identifier\r\n  - `resourceId` - Optional resource identifier (if provided when creating the run)\r\n  - `getInitData()` - Function that returns the initial input data passed to the workflow\r\n  - `mastra` - The Mastra instance (if workflow is registered with Mastra)\r\n  - `requestContext` - Request-scoped context data\r\n  - `logger` - The workflow's logger instance\r\n  - `state` - The workflow's current state object\r\n\r\n  ```typescript\r\n  const workflow = createWorkflow({\r\n    id: 'order-processing',\r\n    inputSchema: z.object({ orderId: z.string() }),\r\n    outputSchema: z.object({ status: z.string() }),\r\n    options: {\r\n      onFinish: async ({ runId, workflowId, getInitData, logger, state, mastra }) => {\r\n        const inputData = getInitData();\r\n        logger.info(`Workflow ${workflowId} run ${runId} completed`, {\r\n          orderId: inputData.orderId,\r\n          finalState: state,\r\n        });\r\n\r\n        // Access other Mastra components if needed\r\n        const agent = mastra?.getAgent('notification-agent');\r\n      },\r\n      onError: async ({ runId, workflowId, error, logger, requestContext }) => {\r\n        logger.error(`Workflow ${workflowId} run ${runId} failed: ${error?.message}`);\r\n        // Access request context for additional debugging\r\n        const userId = requestContext.get('userId');\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/langfuse@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/observability/langfuse/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat(observability): add zero-config environment variable support for all exporters ([#11686](https://github.com/mastra-ai/mastra/pull/11686))\r\n\r\n  All observability exporters now support zero-config setup via environment variables. Set the appropriate environment variables and instantiate exporters with no configuration:\r\n  - **Langfuse**: `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_BASE_URL`\r\n  - **Braintrust**: `BRAINTRUST_API_KEY`, `BRAINTRUST_ENDPOINT`\r\n  - **PostHog**: `POSTHOG_API_KEY`, `POSTHOG_HOST`\r\n  - **Arize/Phoenix**: `ARIZE_SPACE_ID`, `ARIZE_API_KEY`, `ARIZE_PROJECT_NAME`, `PHOENIX_ENDPOINT`, `PHOENIX_API_KEY`, `PHOENIX_PROJECT_NAME`\r\n  - **OTEL Providers**:\r\n    - Dash0: `DASH0_API_KEY`, `DASH0_ENDPOINT`, `DASH0_DATASET`\r\n    - SigNoz: `SIGNOZ_API_KEY`, `SIGNOZ_REGION`, `SIGNOZ_ENDPOINT`\r\n    - New Relic: `NEW_RELIC_LICENSE_KEY`, `NEW_RELIC_ENDPOINT`\r\n    - Traceloop: `TRACELOOP_API_KEY`, `TRACELOOP_DESTINATION_ID`, `TRACELOOP_ENDPOINT`\r\n    - Laminar: `LMNR_PROJECT_API_KEY`, `LAMINAR_ENDPOINT`, `LAMINAR_TEAM_ID`\r\n\r\n  Example usage:\r\n\r\n  ```typescript\r\n  // Zero-config - reads from environment variables\r\n  new LangfuseExporter();\r\n  new BraintrustExporter();\r\n  new PosthogExporter();\r\n  new ArizeExporter();\r\n  new OtelExporter({ provider: { signoz: {} } });\r\n  ```\r\n\r\n  Explicit configuration still works and takes precedence over environment variables.\r\n\r\n---\r\n\r\n## [@mastra/mcp-docs-server@1.0.0-beta.21](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/mcp-docs-server/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat(mcp-docs-server): add embedded docs MCP tools ([#11532](https://github.com/mastra-ai/mastra/pull/11532))\r\n\r\n  Adds 5 new MCP tools to read embedded documentation from installed @mastra/\\* packages:\r\n  - listInstalledMastraPackages: Discover packages with embedded docs\r\n  - readMastraSourceMap: Read export mappings from SOURCE_MAP.json\r\n  - findMastraExport: Get type definitions and implementation for specific exports\r\n  - readMastraEmbeddedDocs: Read topic documentation\r\n  - searchMastraEmbeddedDocs: Search across all embedded docs\r\n\r\n  These tools enable AI coding agents to understand Mastra packages by reading documentation directly from node_modules.\r\n\r\n---\r\n\r\n## [@mastra/otel-exporter@1.0.0-beta.12](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/observability/otel-exporter/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat(observability): add zero-config environment variable support for all exporters ([#11686](https://github.com/mastra-ai/mastra/pull/11686))\r\n\r\n  All observability exporters now support zero-config setup via environment variables. Set the appropriate environment variables and instantiate exporters with no configuration:\r\n  - **Langfuse**: `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_BASE_URL`\r\n  - **Braintrust**: `BRAINTRUST_API_KEY`, `BRAINTRUST_ENDPOINT`\r\n  - **PostHog**: `POSTHOG_API_KEY`, `POSTHOG_HOST`\r\n  - **Arize/Phoenix**: `ARIZE_SPACE_ID`, `ARIZE_API_KEY`, `ARIZE_PROJECT_NAME`, `PHOENIX_ENDPOINT`, `PHOENIX_API_KEY`, `PHOENIX_PROJECT_NAME`\r\n  - **OTEL Providers**:\r\n    - Dash0: `DASH0_API_KEY`, `DASH0_ENDPOINT`, `DASH0_DATASET`\r\n    - SigNoz: `SIGNOZ_API_KEY`, `SIGNOZ_REGION`, `SIGNOZ_ENDPOINT`\r\n    - New Relic: `NEW_RELIC_LICENSE_KEY`, `NEW_RELIC_ENDPOINT`\r\n    - Traceloop: `TRACELOOP_API_KEY`, `TRACELOOP_DESTINATION_ID`, `TRACELOOP_ENDPOINT`\r\n    - Laminar: `LMNR_PROJECT_API_KEY`, `LAMINAR_ENDPOINT`, `LAMINAR_TEAM_ID`\r\n\r\n  Example usage:\r\n\r\n  ```typescript\r\n  // Zero-config - reads from environment variables\r\n  new LangfuseExporter();\r\n  new BraintrustExporter();\r\n  new PosthogExporter();\r\n  new ArizeExporter();\r\n  new OtelExporter({ provider: { signoz: {} } });\r\n  ```\r\n\r\n  Explicit configuration still works and takes precedence over environment variables.\r\n\r\n---\r\n\r\n## [@mastra/playground-ui@7.0.0-beta.21](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/playground-ui/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))\r\n\r\n- Make initialState optional in studio ([#11744](https://github.com/mastra-ai/mastra/pull/11744))\r\n\r\n---\r\n\r\n## [@mastra/posthog@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/observability/posthog/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat(observability): add zero-config environment variable support for all exporters ([#11686](https://github.com/mastra-ai/mastra/pull/11686))\r\n\r\n  All observability exporters now support zero-config setup via environment variables. Set the appropriate environment variables and instantiate exporters with no configuration:\r\n  - **Langfuse**: `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_BASE_URL`\r\n  - **Braintrust**: `BRAINTRUST_API_KEY`, `BRAINTRUST_ENDPOINT`\r\n  - **PostHog**: `POSTHOG_API_KEY`, `POSTHOG_HOST`\r\n  - **Arize/Phoenix**: `ARIZE_SPACE_ID`, `ARIZE_API_KEY`, `ARIZE_PROJECT_NAME`, `PHOENIX_ENDPOINT`, `PHOENIX_API_KEY`, `PHOENIX_PROJECT_NAME`\r\n  - **OTEL Providers**:\r\n    - Dash0: `DASH0_API_KEY`, `DASH0_ENDPOINT`, `DASH0_DATASET`\r\n    - SigNoz: `SIGNOZ_API_KEY`, `SIGNOZ_REGION`, `SIGNOZ_ENDPOINT`\r\n    - New Relic: `NEW_RELIC_LICENSE_KEY`, `NEW_RELIC_ENDPOINT`\r\n    - Traceloop: `TRACELOOP_API_KEY`, `TRACELOOP_DESTINATION_ID`, `TRACELOOP_ENDPOINT`\r\n    - Laminar: `LMNR_PROJECT_API_KEY`, `LAMINAR_ENDPOINT`, `LAMINAR_TEAM_ID`\r\n\r\n  Example usage:\r\n\r\n  ```typescript\r\n  // Zero-config - reads from environment variables\r\n  new LangfuseExporter();\r\n  new BraintrustExporter();\r\n  new PosthogExporter();\r\n  new ArizeExporter();\r\n  new OtelExporter({ provider: { signoz: {} } });\r\n  ```\r\n\r\n  Explicit configuration still works and takes precedence over environment variables.\r\n\r\n---\r\n\r\n## [@mastra/rag@2.0.0-beta.6](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/rag/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Remove unnecessary `ai` package peer dependency to enable compatibility with AI SDK v6. The rag package doesn't directly use the ai package, so this peer dependency was unnecessarily constraining version compatibility. ([#11724](https://github.com/mastra-ai/mastra/pull/11724))\r\n\r\n---\r\n\r\n## [@mastra/schema-compat@1.0.0-beta.6](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/schema-compat/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fix oneOf schema conversion generating invalid JavaScript ([#11626](https://github.com/mastra-ai/mastra/pull/11626))\r\n\r\n  The upstream json-schema-to-zod library generates TypeScript syntax (`reduce<z.ZodError[]>`) when converting oneOf schemas. This TypeScript generic annotation fails when evaluated at runtime with Function(), causing schema resolution to fail.\r\n\r\n  The fix removes TypeScript generic syntax from the generated output, producing valid JavaScript that can be evaluated at runtime. This resolves issues where MCP tools with oneOf in their output schemas would fail validation.\r\n\r\n---\r\n\r\n## [@mastra/server@1.0.0-beta.21](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/server/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))\r\n\r\n- Fix query parameter parsing for complex nested optional types ([#11711](https://github.com/mastra-ai/mastra/pull/11711))\r\n\r\n  Fixes an issue where complex query parameters (like `startedAt` and `endedAt` date range filters) would fail with \"Expected object, received string\" errors when using the `listTraces` API.\r\n\r\n  The fix addresses two issues:\r\n  - Properly unwraps all layers of nested optional/nullable types (e.g., from `.partial()` on already-optional fields)\r\n  - Ensures compatibility with both zod v3 and v4\r\n\r\n---\r\n\r\n## [create-mastra@1.0.0-beta.14](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/create-mastra/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))\r\n\r\n- Make initialState optional in studio ([#11744](https://github.com/mastra-ai/mastra/pull/11744))\r\n\r\n---\r\n\r\n## [mastra@1.0.0-beta.14](https://github.com/mastra-ai/mastra/blob/8edb59796838fbece6868afc558af4c3581c0e9b/packages/cli/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Replace deprecated client.getTraces with a client.listTraces ([#11711](https://github.com/mastra-ai/mastra/pull/11711))\r\n\r\n- Make initialState optional in studio ([#11744](https://github.com/mastra-ai/mastra/pull/11744))\r\n\r\n---\r\n\r\n\r\n---\r\n\r\n**Full Changelog**: [`8edb597`](https://github.com/mastra-ai/mastra/commit/8edb59796838fbece6868afc558af4c3581c0e9b)\r\n","publishedAt":"2026-01-10T17:10:20.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.0.0-beta.21","media":[]},{"id":"rel_iLdH0FTuvW46d2cD4qpix","version":"@mastra/core@1.0.0-beta.20","title":"January 7, 2026","summary":"# Changelog\r\n\r\n## [@mastra/ai-sdk@1.0.0-beta.13](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/client-sdks/ai-sdk/...","content":"# Changelog\r\n\r\n## [@mastra/ai-sdk@1.0.0-beta.13](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/client-sdks/ai-sdk/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Fixed agent network not returning text response when routing agent handles requests without delegation. ([#11497](https://github.com/mastra-ai/mastra/pull/11497))\r\n\r\n  **What changed:**\r\n  - Agent networks now correctly stream text responses when the routing agent decides to handle a request itself instead of delegating to sub-agents, workflows, or tools\r\n  - Added fallback in transformers to ensure text is always returned even if core events are missing\r\n\r\n  **Why this matters:**\r\n  Previously, when using `toAISdkV5Stream` or `networkRoute()` outside of the Mastra Studio UI, no text content was returned when the routing agent handled requests directly. This fix ensures consistent behavior across all API routes.\r\n\r\n  Fixes #11219\r\n\r\n- Refactor the MessageList class from ~4000 LOC monolith to ~850 LOC with focused, single-responsibility modules. This improves maintainability, testability, and makes the codebase easier to understand. ([#11658](https://github.com/mastra-ai/mastra/pull/11658))\r\n  - Extract message format adapters (AIV4Adapter, AIV5Adapter) for SDK conversions\r\n  - Extract TypeDetector for centralized message format identification\r\n  - Extract MessageStateManager for tracking message sources and persistence\r\n  - Extract MessageMerger for streaming message merge logic\r\n  - Extract StepContentExtractor for step content extraction\r\n  - Extract CacheKeyGenerator for message deduplication\r\n  - Consolidate provider compatibility utilities (Gemini, Anthropic, OpenAI)\r\n\r\n  ```\r\n  message-list/\r\n  ├── message-list.ts        # Main class (~850 LOC, down from ~4000)\r\n  ├── adapters/              # SDK format conversions\r\n  │   ├── AIV4Adapter.ts     # MastraDBMessage <-> AI SDK V4\r\n  │   └── AIV5Adapter.ts     # MastraDBMessage <-> AI SDK V5\r\n  ├── cache/\r\n  │   └── CacheKeyGenerator.ts  # Deduplication keys\r\n  ├── conversion/\r\n  │   ├── input-converter.ts    # Any format -> MastraDBMessage\r\n  │   ├── output-converter.ts   # MastraDBMessage -> SDK formats\r\n  │   ├── step-content.ts       # Step content extraction\r\n  │   └── to-prompt.ts          # LLM prompt formatting\r\n  ├── detection/\r\n  │   └── TypeDetector.ts       # Format identification\r\n  ├── merge/\r\n  │   └── MessageMerger.ts      # Streaming merge logic\r\n  ├── state/\r\n  │   └── MessageStateManager.ts # Source & persistence tracking\r\n  └── utils/\r\n      └── provider-compat.ts    # Provider-specific fixes\r\n  ```\r\n\r\n- Fix autoresume not working fine in useChat ([#11486](https://github.com/mastra-ai/mastra/pull/11486))\r\n\r\n---\r\n\r\n## [@mastra/arize@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/arize/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/astra@1.0.0-beta.3](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/astra/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/auth@1.0.0-beta.2](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/auth/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/braintrust@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/braintrust/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Formats messages in MODEL_GENERATION spans properly so the Thread view renders correctly. ([#11613](https://github.com/mastra-ai/mastra/pull/11613))\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Improves AI SDK message conversion for Braintrust Thread view: ([#11673](https://github.com/mastra-ai/mastra/pull/11673))\r\n  - Adds support for non-text content types (images, files, reasoning) with informative placeholders\r\n  - Handles both AI SDK v4 `result` and v5 `output` fields for tool results\r\n  - Gracefully handles empty content arrays and unknown content types\r\n  - Adds comprehensive TypeScript type definitions for message conversion\r\n\r\n---\r\n\r\n## [@mastra/chroma@1.0.0-beta.4](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/chroma/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/clickhouse@1.0.0-beta.9](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/clickhouse/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/client-js@1.0.0-beta.20](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/client-sdks/client-js/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:**\r\n  - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)\r\n  - Added optional `fields` parameter to request only specific fields for better performance\r\n  - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion\r\n  - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)\r\n  - Removed `/execution-result` API endpoints from server (breaking change)\r\n  - Removed `runExecutionResult()` method from client SDK (breaking change)\r\n  - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  // Had to call two different methods for different data\r\n  const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot\r\n  const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  // Single method returns everything\r\n  const run = await workflow.getWorkflowRunById(runId);\r\n  // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }\r\n\r\n  // Request only specific fields for better performance (avoids expensive step fetching)\r\n  const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });\r\n\r\n  // Skip nested workflow steps for faster response\r\n  const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });\r\n  ```\r\n\r\n  **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))\r\n\r\n  ```diff\r\n  + const run = await workflow.createRun({ runId: '123' });\r\n  - const stream = await run.streamVNext({ inputData: { ... } });\r\n  + const stream = await run.stream({ inputData: { ... } });\r\n  ```\r\n\r\n- Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))\r\n\r\n- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))\r\n\r\n  ```typescript\r\n  // Clone a thread\r\n  const { thread, clonedMessages } = await memory.cloneThread({\r\n    sourceThreadId: 'thread-123',\r\n    title: 'My Clone',\r\n    options: {\r\n      messageLimit: 10, // optional: only copy last N messages\r\n    },\r\n  });\r\n\r\n  // Check if a thread is a clone\r\n  if (memory.isClone(thread)) {\r\n    const source = await memory.getSourceThread(thread.id);\r\n  }\r\n\r\n  // List all clones of a thread\r\n  const clones = await memory.listClones('thread-123');\r\n  ```\r\n\r\n  Includes:\r\n  - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash\r\n  - API endpoint: `POST /api/memory/threads/:threadId/clone`\r\n  - Embeddings created for cloned messages (semantic recall)\r\n  - Clone button in playground UI Memory tab\r\n\r\n- Make agentId optional for memory read operations (getThread, listThreads, listMessages) ([#11540](https://github.com/mastra-ai/mastra/pull/11540))\r\n\r\n  When workflows use multiple agents sharing the same threadId/resourceId, users can now retrieve threads and messages without specifying an agentId. The server falls back to using storage directly when agentId is not provided.\r\n\r\n---\r\n\r\n## [@mastra/cloudflare@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/cloudflare/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/cloudflare-d1@1.0.0-beta.9](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/cloudflare-d1/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/codemod@0.1.0-beta.5](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/codemod/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- **Breaking Change:** `memory.readOnly` has been moved to `memory.options.readOnly` ([#11523](https://github.com/mastra-ai/mastra/pull/11523))\r\n\r\n  The `readOnly` option now lives inside `memory.options` alongside other memory configuration like `lastMessages` and `semanticRecall`.\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  agent.stream('Hello', {\r\n    memory: {\r\n      thread: threadId,\r\n      resource: resourceId,\r\n      readOnly: true,\r\n    },\r\n  });\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  agent.stream('Hello', {\r\n    memory: {\r\n      thread: threadId,\r\n      resource: resourceId,\r\n      options: {\r\n        readOnly: true,\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n  **Migration:** Run the codemod to update your code automatically:\r\n\r\n  ```shell\r\n  npx @mastra/codemod@beta v1/memory-readonly-to-options .\r\n  ```\r\n\r\n  This also fixes issue #11519 where `readOnly: true` was being ignored and messages were saved to memory anyway.\r\n\r\n---\r\n\r\n## [@mastra/convex@0.1.0-beta.8](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/convex/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/core@1.0.0-beta.20](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/core/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Deprecate `default: { enabled: true }` observability configuration ([#11674](https://github.com/mastra-ai/mastra/pull/11674))\r\n\r\n  The shorthand `default: { enabled: true }` configuration is now deprecated and will be removed in a future version. Users should migrate to explicit configuration with `DefaultExporter`, `CloudExporter`, and `SensitiveDataFilter`.\r\n\r\n  **Before (deprecated):**\r\n\r\n  ```typescript\r\n  import { Observability } from '@mastra/observability';\r\n\r\n  const mastra = new Mastra({\r\n    observability: new Observability({\r\n      default: { enabled: true },\r\n    }),\r\n  });\r\n  ```\r\n\r\n  **After (recommended):**\r\n\r\n  ```typescript\r\n  import { Observability, DefaultExporter, CloudExporter, SensitiveDataFilter } from '@mastra/observability';\r\n\r\n  const mastra = new Mastra({\r\n    observability: new Observability({\r\n      configs: {\r\n        default: {\r\n          serviceName: 'mastra',\r\n          exporters: [new DefaultExporter(), new CloudExporter()],\r\n          spanOutputProcessors: [new SensitiveDataFilter()],\r\n        },\r\n      },\r\n    }),\r\n  });\r\n  ```\r\n\r\n  The explicit configuration makes it clear exactly what exporters and processors are being used, improving code readability and maintainability.\r\n\r\n  A deprecation warning will be logged when using the old configuration pattern.\r\n\r\n- Fix processor tracing to create individual spans per processor ([#11683](https://github.com/mastra-ai/mastra/pull/11683))\r\n  - Processor spans now correctly show processor IDs (e.g., `input processor: validator`) instead of combined workflow IDs\r\n  - Each processor in a chain gets its own trace span, improving observability into processor execution\r\n  - Spans are only created for phases a processor actually implements, eliminating empty spans\r\n  - Internal agent calls within processors now properly nest under their processor span\r\n  - Added `INPUT_STEP_PROCESSOR` and `OUTPUT_STEP_PROCESSOR` entity types for finer-grained tracing\r\n  - Changed `processorType` span attribute to `processorExecutor` with values `'workflow'` or `'legacy'`\r\n\r\n- Add completion validation to agent networks using custom scorers ([#11562](https://github.com/mastra-ai/mastra/pull/11562))\r\n\r\n  You can now validate whether an agent network has completed its task by passing MastraScorers to `agent.network()`. When validation fails, the network automatically retries with feedback injected into the conversation.\r\n\r\n  **Example: Creating a scorer to verify test coverage**\r\n\r\n  ```ts\r\n  import { createScorer } from '@mastra/core/evals';\r\n  import { z } from 'zod';\r\n\r\n  // Create a scorer that checks if tests were written\r\n  const testsScorer = createScorer({\r\n    id: 'tests-written',\r\n    description: 'Validates that unit tests were included in the response',\r\n    type: 'agent',\r\n  }).generateScore({\r\n    description: 'Return 1 if tests are present, 0 if missing',\r\n    outputSchema: z.number(),\r\n    createPrompt: ({ run }) => `\r\n      Does this response include unit tests?\r\n      Response: ${run.output}\r\n      Return 1 if tests are present, 0 if not.\r\n    `,\r\n  });\r\n\r\n  // Use the scorer with agent.network()\r\n  const stream = await agent.network('Implement a fibonacci function with tests', {\r\n    completion: {\r\n      scorers: [testsScorer],\r\n      strategy: 'all', // all scorers must pass (score >= 0.5)\r\n    },\r\n    maxSteps: 3,\r\n  });\r\n  ```\r\n\r\n  **What this enables:**\r\n  - **Programmatic completion checks**: Define objective criteria for task completion instead of relying on the default LLM-based check\r\n  - **Automatic retry with feedback**: When a scorer returns `score: 0`, its reason is injected into the conversation so the network can address the gap on the next iteration\r\n  - **Composable validation**: Combine multiple scorers with `strategy: 'all'` (all must pass) or `strategy: 'any'` (at least one must pass)\r\n\r\n  This replaces guesswork with reliable, repeatable validation that ensures agent networks produce outputs meeting your specific requirements.\r\n\r\n- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:**\r\n  - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)\r\n  - Added optional `fields` parameter to request only specific fields for better performance\r\n  - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion\r\n  - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)\r\n  - Removed `/execution-result` API endpoints from server (breaking change)\r\n  - Removed `runExecutionResult()` method from client SDK (breaking change)\r\n  - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  // Had to call two different methods for different data\r\n  const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot\r\n  const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  // Single method returns everything\r\n  const run = await workflow.getWorkflowRunById(runId);\r\n  // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }\r\n\r\n  // Request only specific fields for better performance (avoids expensive step fetching)\r\n  const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });\r\n\r\n  // Skip nested workflow steps for faster response\r\n  const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });\r\n  ```\r\n\r\n  **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Add support for `retries` and `scorers` parameters across all `createStep` overloads.\r\n  ([#11495](https://github.com/mastra-ai/mastra/pull/11495))\r\n\r\n  The `createStep` function now includes support for the `retries` and `scorers` fields across all step creation patterns, enabling step-level retry configuration and AI evaluation support for regular steps, agent-based steps, and tool-based steps.\r\n\r\n  ```typescript\r\n  import { init } from '@mastra/inngest';\r\n  import { z } from 'zod';\r\n\r\n  const { createStep } = init(inngest);\r\n\r\n  // 1. Regular step with retries\r\n  const regularStep = createStep({\r\n    id: 'api-call',\r\n    inputSchema: z.object({ url: z.string() }),\r\n    outputSchema: z.object({ data: z.any() }),\r\n    retries: 3, // ← Will retry up to 3 times on failure\r\n    execute: async ({ inputData }) => {\r\n      const response = await fetch(inputData.url);\r\n      return { data: await response.json() };\r\n    },\r\n  });\r\n\r\n  // 2. Agent step with retries and scorers\r\n  const agentStep = createStep(myAgent, {\r\n    retries: 3,\r\n    scorers: [{ id: 'accuracy-scorer', scorer: myAccuracyScorer }],\r\n  });\r\n\r\n  // 3. Tool step with retries and scorers\r\n  const toolStep = createStep(myTool, {\r\n    retries: 2,\r\n    scorers: [{ id: 'quality-scorer', scorer: myQualityScorer }],\r\n  });\r\n  ```\r\n\r\n  This change ensures API consistency across all `createStep` overloads. All step types now support retry and evaluation configurations.\r\n\r\n  This is a non-breaking change - steps without these parameters continue to work exactly as before.\r\n\r\n  Fixes #9351\r\n\r\n- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))\r\n\r\n  ```diff\r\n  + const run = await workflow.createRun({ runId: '123' });\r\n  - const stream = await run.streamVNext({ inputData: { ... } });\r\n  + const stream = await run.stream({ inputData: { ... } });\r\n  ```\r\n\r\n- Fix workflow tool not executing when requireApproval is true and tool call is approved ([#11538](https://github.com/mastra-ai/mastra/pull/11538))\r\n\r\n- **Breaking Change:** `memory.readOnly` has been moved to `memory.options.readOnly` ([#11523](https://github.com/mastra-ai/mastra/pull/11523))\r\n\r\n  The `readOnly` option now lives inside `memory.options` alongside other memory configuration like `lastMessages` and `semanticRecall`.\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  agent.stream('Hello', {\r\n    memory: {\r\n      thread: threadId,\r\n      resource: resourceId,\r\n      readOnly: true,\r\n    },\r\n  });\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  agent.stream('Hello', {\r\n    memory: {\r\n      thread: threadId,\r\n      resource: resourceId,\r\n      options: {\r\n        readOnly: true,\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n  **Migration:** Run the codemod to update your code automatically:\r\n\r\n  ```shell\r\n  npx @mastra/codemod@beta v1/memory-readonly-to-options .\r\n  ```\r\n\r\n  This also fixes issue #11519 where `readOnly: true` was being ignored and messages were saved to memory anyway.\r\n\r\n- Fix agent runs with multiple steps only showing last text chunk in observability tools ([#11672](https://github.com/mastra-ai/mastra/pull/11672))\r\n\r\n  When an agent model executes multiple steps and generates multiple text chunks, the onFinish payload was only receiving the text from the last step instead of all accumulated text. This caused observability tools like Braintrust to only display the final text chunk. The fix now correctly concatenates all text chunks from all steps.\r\n\r\n- Fix tool input validation destroying non-plain objects ([#11541](https://github.com/mastra-ai/mastra/pull/11541))\r\n\r\n  The `convertUndefinedToNull` function in tool input validation was treating all objects as plain objects and recursively processing them. For objects like `Date`, `Map`, `URL`, and class instances, this resulted in empty objects `{}` because they have no enumerable own properties.\r\n\r\n  This fix changes the approach to only recurse into plain objects (objects with `Object.prototype` or `null` prototype). All other objects (Date, Map, Set, URL, RegExp, Error, custom class instances, etc.) are now preserved as-is.\r\n\r\n  Fixes #11502\r\n\r\n- Fixed client-side tool invocations not being stored in memory. Previously, tool invocations with state 'call' were filtered out before persistence, which incorrectly removed client-side tools. Now only streaming intermediate states ('partial-call') are filtered. ([#11630](https://github.com/mastra-ai/mastra/pull/11630))\r\n\r\n  Fixed a crash when updating working memory with an empty or null update; existing data is now preserved.\r\n\r\n- Fixed memory readOnly option not being respected when agents share a RequestContext. Previously, when output processors were resolved, the readOnly check happened too early - before the agent could set its own MastraMemory context. This caused child agents to inherit their parent's readOnly setting when sharing a RequestContext. ([#11653](https://github.com/mastra-ai/mastra/pull/11653))\r\n\r\n  The readOnly check is now only done at execution time in each processor's processOutputResult method, allowing proper isolation.\r\n\r\n- Fix network validation not seeing previous iteration results in multi-step tasks ([#11691](https://github.com/mastra-ai/mastra/pull/11691))\r\n\r\n  The validation LLM was unable to determine task completion for multi-step tasks because it couldn't see what primitives had already executed. Now includes a compact list of completed primitives in the validation prompt.\r\n\r\n- Fix provider-executed tools (like `openai.tools.webSearch()`) not working correctly with AI SDK v6 models. The agent's `generate()` method was ending prematurely with `finishReason: 'tool-calls'` instead of completing with a text response after tool execution. ([#11622](https://github.com/mastra-ai/mastra/pull/11622))\r\n\r\n  The issue was that V6 provider tools have `type: 'provider'` while V5 uses `type: 'provider-defined'`. The tool preparation code now detects the model version and uses the correct type.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n- fix(core): support LanguageModelV3 in MastraModelGateway.resolveLanguageModel ([#11489](https://github.com/mastra-ai/mastra/pull/11489))\r\n\r\n- Fixed agent network not returning text response when routing agent handles requests without delegation. ([#11497](https://github.com/mastra-ai/mastra/pull/11497))\r\n\r\n  **What changed:**\r\n  - Agent networks now correctly stream text responses when the routing agent decides to handle a request itself instead of delegating to sub-agents, workflows, or tools\r\n  - Added fallback in transformers to ensure text is always returned even if core events are missing\r\n\r\n  **Why this matters:**\r\n  Previously, when using `toAISdkV5Stream` or `networkRoute()` outside of the Mastra Studio UI, no text content was returned when the routing agent handled requests directly. This fix ensures consistent behavior across all API routes.\r\n\r\n  Fixes #11219\r\n\r\n- Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))\r\n\r\n- Added missing stream types to @mastra/core/stream for better TypeScript support ([#11513](https://github.com/mastra-ai/mastra/pull/11513))\r\n\r\n  **New types available:**\r\n  - Chunk types: `ToolCallChunk`, `ToolResultChunk`, `SourceChunk`, `FileChunk`, `ReasoningChunk`\r\n  - Payload types: `ToolCallPayload`, `ToolResultPayload`, `TextDeltaPayload`, `ReasoningDeltaPayload`, `FilePayload`, `SourcePayload`\r\n  - JSON utilities: `JSONValue`, `JSONObject`, `JSONArray` and readonly variants\r\n\r\n  These types are now properly exported, enabling full TypeScript IntelliSense when working with streaming data.\r\n\r\n- Refactor the MessageList class from ~4000 LOC monolith to ~850 LOC with focused, single-responsibility modules. This improves maintainability, testability, and makes the codebase easier to understand. ([#11658](https://github.com/mastra-ai/mastra/pull/11658))\r\n  - Extract message format adapters (AIV4Adapter, AIV5Adapter) for SDK conversions\r\n  - Extract TypeDetector for centralized message format identification\r\n  - Extract MessageStateManager for tracking message sources and persistence\r\n  - Extract MessageMerger for streaming message merge logic\r\n  - Extract StepContentExtractor for step content extraction\r\n  - Extract CacheKeyGenerator for message deduplication\r\n  - Consolidate provider compatibility utilities (Gemini, Anthropic, OpenAI)\r\n\r\n  ```\r\n  message-list/\r\n  ├── message-list.ts        # Main class (~850 LOC, down from ~4000)\r\n  ├── adapters/              # SDK format conversions\r\n  │   ├── AIV4Adapter.ts     # MastraDBMessage <-> AI SDK V4\r\n  │   └── AIV5Adapter.ts     # MastraDBMessage <-> AI SDK V5\r\n  ├── cache/\r\n  │   └── CacheKeyGenerator.ts  # Deduplication keys\r\n  ├── conversion/\r\n  │   ├── input-converter.ts    # Any format -> MastraDBMessage\r\n  │   ├── output-converter.ts   # MastraDBMessage -> SDK formats\r\n  │   ├── step-content.ts       # Step content extraction\r\n  │   └── to-prompt.ts          # LLM prompt formatting\r\n  ├── detection/\r\n  │   └── TypeDetector.ts       # Format identification\r\n  ├── merge/\r\n  │   └── MessageMerger.ts      # Streaming merge logic\r\n  ├── state/\r\n  │   └── MessageStateManager.ts # Source & persistence tracking\r\n  └── utils/\r\n      └── provider-compat.ts    # Provider-specific fixes\r\n  ```\r\n\r\n- Resolve suspendPayload when tripwire is set off in agentic loop to prevent unresolved promises hanging. ([#11621](https://github.com/mastra-ai/mastra/pull/11621))\r\n\r\n- Fix OpenAI reasoning model + memory failing on second generate with \"missing item\" error ([#11492](https://github.com/mastra-ai/mastra/pull/11492))\r\n\r\n  When using OpenAI reasoning models with memory enabled, the second `agent.generate()` call would fail with: \"Item 'rs\\_...' of type 'reasoning' was provided without its required following item.\"\r\n\r\n  The issue was that `text-start` events contain `providerMetadata` with the text's `itemId` (e.g., `msg_xxx`), but this metadata was not being captured. When memory replayed the conversation, the reasoning part had its `rs_` ID but the text part was missing its `msg_` ID, causing OpenAI to reject the request.\r\n\r\n  The fix adds handlers for `text-start` (to capture text providerMetadata) and `text-end` (to clear it and prevent leaking into subsequent parts).\r\n\r\n  Fixes #11481\r\n\r\n- Fix reasoning content being lost when text-start chunk arrives before reasoning-end ([#11494](https://github.com/mastra-ai/mastra/pull/11494))\r\n\r\n  Some model providers (e.g., ZAI/glm-4.6) return streaming chunks where `text-start` arrives before `reasoning-end`. Previously, this would clear the accumulated reasoning deltas, resulting in empty reasoning content in the final message. Now `text-start` is properly excluded from triggering the reasoning state reset, allowing `reasoning-end` to correctly save the reasoning content.\r\n\r\n- Add `resumeGenerate` method for resuming agent via generate ([#11503](https://github.com/mastra-ai/mastra/pull/11503))\r\n  Add `runId` and `suspendPayload` to fullOutput of agent stream\r\n  Default `suspendedToolRunId` to empty string to prevent `null` issue\r\n\r\n- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))\r\n\r\n  ```typescript\r\n  // Clone a thread\r\n  const { thread, clonedMessages } = await memory.cloneThread({\r\n    sourceThreadId: 'thread-123',\r\n    title: 'My Clone',\r\n    options: {\r\n      messageLimit: 10, // optional: only copy last N messages\r\n    },\r\n  });\r\n\r\n  // Check if a thread is a clone\r\n  if (memory.isClone(thread)) {\r\n    const source = await memory.getSourceThread(thread.id);\r\n  }\r\n\r\n  // List all clones of a thread\r\n  const clones = await memory.listClones('thread-123');\r\n  ```\r\n\r\n  Includes:\r\n  - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash\r\n  - API endpoint: `POST /api/memory/threads/:threadId/clone`\r\n  - Embeddings created for cloned messages (semantic recall)\r\n  - Clone button in playground UI Memory tab\r\n\r\n- Fix `runEvals()` to automatically save scores to storage, making them visible in Studio observability. ([#11516](https://github.com/mastra-ai/mastra/pull/11516))\r\n\r\n  Previously, `runEvals()` would calculate scores but not persist them to storage, requiring users to manually implement score saving via the `onItemComplete` callback. Scores now automatically save when the target (Agent/Workflow) has an associated Mastra instance with storage configured.\r\n\r\n  **What changed:**\r\n  - Scores are now automatically saved to storage after each evaluation run\r\n  - Fixed compatibility with both Agent (`getMastraInstance()`) and Workflow (`.mastra` getter)\r\n  - Saved scores include complete context: `groundTruth` (in `additionalContext`), `requestContext`, `traceId`, and `spanId`\r\n  - Scores are marked with `source: 'TEST'` to distinguish them from live scoring\r\n\r\n  **Migration:**\r\n  No action required. The `onItemComplete` workaround for saving scores can be removed if desired, but will continue to work for custom logic.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  const result = await runEvals({\r\n    target: mastra.getWorkflow(\"myWorkflow\"),\r\n    data: [{ input: {...}, groundTruth: {...} }],\r\n    scorers: [myScorer],\r\n  });\r\n  // Scores are now automatically saved and visible in Studio!\r\n  ```\r\n\r\n- Fix autoresume not working fine in useChat ([#11486](https://github.com/mastra-ai/mastra/pull/11486))\r\n\r\n---\r\n\r\n## [@mastra/couchbase@1.0.0-beta.4](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/couchbase/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/deployer@1.0.0-beta.20](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/deployer/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Fixed module resolution failing on Windows with `ERR_INVALID_URL_SCHEME` errors. Windows absolute paths (e.g., `C:\\path\\to\\file`) are now correctly skipped during node_modules resolution instead of being treated as package names. ([#11639](https://github.com/mastra-ai/mastra/pull/11639))\r\n\r\n- Add Bun runtime detection for bundler platform selection ([#11548](https://github.com/mastra-ai/mastra/pull/11548))\r\n\r\n  When running under Bun, the bundler now uses `neutral` esbuild platform instead of `node` to preserve Bun-specific globals (like `Bun.s3`). This fixes compatibility issues where Bun APIs were being incorrectly transformed during the build process.\r\n\r\n- Improved file persistence in dev mode. Files created by `mastra dev` are now saved in the public directory, so you can commit them to version control or ignore them via `.gitignore`. ([#11234](https://github.com/mastra-ai/mastra/pull/11234))\r\n\r\n- Fixed Windows crash where the Mastra dev server failed to start with `ERR_UNSUPPORTED_ESM_URL_SCHEME` error. The deployer now correctly handles Windows file paths. ([#11340](https://github.com/mastra-ai/mastra/pull/11340))\r\n\r\n---\r\n\r\n## [@mastra/deployer-cloudflare@1.0.0-beta.2](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/deployers/cloudflare/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/deployer-netlify@1.0.0-beta.3](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/deployers/netlify/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/deployer-vercel@1.0.0-beta.2](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/deployers/vercel/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/duckdb@1.0.0-beta.3](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/duckdb/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/dynamodb@1.0.0-beta.9](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/dynamodb/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/elasticsearch@1.0.0-beta.4](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/elasticsearch/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/evals@1.0.0-beta.4](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/evals/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Users no longer need to install the `ai` package as a peer dependency; this package now includes the necessary types internally. ([#11625](https://github.com/mastra-ai/mastra/pull/11625))\r\n\r\n---\r\n\r\n## [@mastra/express@0.1.0-beta.15](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/server-adapters/express/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:**\r\n  - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)\r\n  - Added optional `fields` parameter to request only specific fields for better performance\r\n  - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion\r\n  - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)\r\n  - Removed `/execution-result` API endpoints from server (breaking change)\r\n  - Removed `runExecutionResult()` method from client SDK (breaking change)\r\n  - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  // Had to call two different methods for different data\r\n  const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot\r\n  const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  // Single method returns everything\r\n  const run = await workflow.getWorkflowRunById(runId);\r\n  // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }\r\n\r\n  // Request only specific fields for better performance (avoids expensive step fetching)\r\n  const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });\r\n\r\n  // Skip nested workflow steps for faster response\r\n  const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });\r\n  ```\r\n\r\n  **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.\r\n\r\n  **Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.\r\n\r\n  **User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.\r\n\r\n---\r\n\r\n## [@mastra/fastembed@1.0.0-beta.3](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/fastembed/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/fastify@0.1.0-beta.15](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/server-adapters/fastify/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat: Add Fastify and Koa server adapters ([#11568](https://github.com/mastra-ai/mastra/pull/11568))\r\n\r\n  Introduces two new server adapters for Mastra:\r\n  - **@mastra/fastify**: Enables running Mastra applications on Fastify\r\n  - **@mastra/koa**: Enables running Mastra applications on Koa\r\n\r\n  Both adapters provide full MastraServerBase implementation including route registration, streaming responses, multipart uploads, auth middleware, and MCP transport support.\r\n\r\n  ## Usage\r\n\r\n  ### Fastify\r\n\r\n  ```typescript\r\n  import Fastify from 'fastify';\r\n  import { MastraServer } from '@mastra/fastify';\r\n  import { mastra } from './mastra';\r\n\r\n  const app = Fastify();\r\n  const server = new MastraServer({ app, mastra });\r\n\r\n  await server.init();\r\n\r\n  app.listen({ port: 4111 });\r\n  ```\r\n\r\n  ### Koa\r\n\r\n  ```typescript\r\n  import Koa from 'koa';\r\n  import bodyParser from 'koa-bodyparser';\r\n  import { MastraServer } from '@mastra/koa';\r\n  import { mastra } from './mastra';\r\n\r\n  const app = new Koa();\r\n  app.use(bodyParser());\r\n\r\n  const server = new MastraServer({ app, mastra });\r\n\r\n  await server.init();\r\n\r\n  app.listen(4111);\r\n  ```\r\n\r\n### Patch Changes\r\n\r\n- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.\r\n\r\n  **Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.\r\n\r\n  **User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.\r\n\r\n---\r\n\r\n## [@mastra/hono@0.1.0-beta.15](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/server-adapters/hono/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:**\r\n  - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)\r\n  - Added optional `fields` parameter to request only specific fields for better performance\r\n  - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion\r\n  - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)\r\n  - Removed `/execution-result` API endpoints from server (breaking change)\r\n  - Removed `runExecutionResult()` method from client SDK (breaking change)\r\n  - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  // Had to call two different methods for different data\r\n  const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot\r\n  const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  // Single method returns everything\r\n  const run = await workflow.getWorkflowRunById(runId);\r\n  // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }\r\n\r\n  // Request only specific fields for better performance (avoids expensive step fetching)\r\n  const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });\r\n\r\n  // Skip nested workflow steps for faster response\r\n  const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });\r\n  ```\r\n\r\n  **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.\r\n\r\n  **Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.\r\n\r\n  **User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.\r\n\r\n---\r\n\r\n## [@mastra/inngest@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/workflows/inngest/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add support for `retries` and `scorers` parameters across all `createStep` overloads.\r\n  ([#11495](https://github.com/mastra-ai/mastra/pull/11495))\r\n\r\n  The `createStep` function now includes support for the `retries` and `scorers` fields across all step creation patterns, enabling step-level retry configuration and AI evaluation support for regular steps, agent-based steps, and tool-based steps.\r\n\r\n  ```typescript\r\n  import { init } from '@mastra/inngest';\r\n  import { z } from 'zod';\r\n\r\n  const { createStep } = init(inngest);\r\n\r\n  // 1. Regular step with retries\r\n  const regularStep = createStep({\r\n    id: 'api-call',\r\n    inputSchema: z.object({ url: z.string() }),\r\n    outputSchema: z.object({ data: z.any() }),\r\n    retries: 3, // ← Will retry up to 3 times on failure\r\n    execute: async ({ inputData }) => {\r\n      const response = await fetch(inputData.url);\r\n      return { data: await response.json() };\r\n    },\r\n  });\r\n\r\n  // 2. Agent step with retries and scorers\r\n  const agentStep = createStep(myAgent, {\r\n    retries: 3,\r\n    scorers: [{ id: 'accuracy-scorer', scorer: myAccuracyScorer }],\r\n  });\r\n\r\n  // 3. Tool step with retries and scorers\r\n  const toolStep = createStep(myTool, {\r\n    retries: 2,\r\n    scorers: [{ id: 'quality-scorer', scorer: myQualityScorer }],\r\n  });\r\n  ```\r\n\r\n  This change ensures API consistency across all `createStep` overloads. All step types now support retry and evaluation configurations.\r\n\r\n  This is a non-breaking change - steps without these parameters continue to work exactly as before.\r\n\r\n  Fixes #9351\r\n\r\n- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))\r\n\r\n  ```diff\r\n  + const run = await workflow.createRun({ runId: '123' });\r\n  - const stream = await run.streamVNext({ inputData: { ... } });\r\n  + const stream = await run.stream({ inputData: { ... } });\r\n  ```\r\n\r\n- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:**\r\n  - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)\r\n  - Added optional `fields` parameter to request only specific fields for better performance\r\n  - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion\r\n  - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)\r\n  - Removed `/execution-result` API endpoints from server (breaking change)\r\n  - Removed `runExecutionResult()` method from client SDK (breaking change)\r\n  - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  // Had to call two different methods for different data\r\n  const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot\r\n  const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  // Single method returns everything\r\n  const run = await workflow.getWorkflowRunById(runId);\r\n  // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }\r\n\r\n  // Request only specific fields for better performance (avoids expensive step fetching)\r\n  const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });\r\n\r\n  // Skip nested workflow steps for faster response\r\n  const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });\r\n  ```\r\n\r\n  **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.\r\n\r\n- Add cron scheduling support to Inngest workflows. Workflows can now be automatically triggered on a schedule by adding a `cron` property along with optional `inputData` and `initialState`: ([#11518](https://github.com/mastra-ai/mastra/pull/11518))\r\n\r\n  ```typescript\r\n  const workflow = createWorkflow({\r\n    id: 'scheduled-workflow',\r\n    inputSchema: z.object({ value: z.string() }),\r\n    outputSchema: z.object({ result: z.string() }),\r\n    steps: [step1],\r\n    cron: '0 0 * * *', // Run daily at midnight\r\n    inputData: { value: 'scheduled-run' }, // Optional inputData for the scheduled workflow run\r\n    initialState: { count: 0 }, // Optional initialState for the scheduled workflow run\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/koa@0.1.0-beta.15](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/server-adapters/koa/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- feat: Add Fastify and Koa server adapters ([#11568](https://github.com/mastra-ai/mastra/pull/11568))\r\n\r\n  Introduces two new server adapters for Mastra:\r\n  - **@mastra/fastify**: Enables running Mastra applications on Fastify\r\n  - **@mastra/koa**: Enables running Mastra applications on Koa\r\n\r\n  Both adapters provide full MastraServerBase implementation including route registration, streaming responses, multipart uploads, auth middleware, and MCP transport support.\r\n\r\n  ## Usage\r\n\r\n  ### Fastify\r\n\r\n  ```typescript\r\n  import Fastify from 'fastify';\r\n  import { MastraServer } from '@mastra/fastify';\r\n  import { mastra } from './mastra';\r\n\r\n  const app = Fastify();\r\n  const server = new MastraServer({ app, mastra });\r\n\r\n  await server.init();\r\n\r\n  app.listen({ port: 4111 });\r\n  ```\r\n\r\n  ### Koa\r\n\r\n  ```typescript\r\n  import Koa from 'koa';\r\n  import bodyParser from 'koa-bodyparser';\r\n  import { MastraServer } from '@mastra/koa';\r\n  import { mastra } from './mastra';\r\n\r\n  const app = new Koa();\r\n  app.use(bodyParser());\r\n\r\n  const server = new MastraServer({ app, mastra });\r\n\r\n  await server.init();\r\n\r\n  app.listen(4111);\r\n  ```\r\n\r\n### Patch Changes\r\n\r\n- Fixed inconsistent query parameter handling across server adapters. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:** Query parameters are now processed consistently across all server adapters (Express, Hono, Fastify, Koa). Added internal helper `normalizeQueryParams` and `ParsedRequestParams` type to `@mastra/server` for adapter implementations.\r\n\r\n  **Why:** Different HTTP frameworks handle query parameters differently - some return single strings while others return arrays for repeated params like `?tag=a&tag=b`. This caused type inconsistencies that could lead to validation failures in certain adapters.\r\n\r\n  **User impact:** None for typical usage - HTTP endpoints and client SDK behavior are unchanged. If you extend server adapter classes and override `getParams` or `parseQueryParams`, update your implementation to use `Record<string, string | string[]>` for query parameters.\r\n\r\n---\r\n\r\n## [@mastra/lance@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/lance/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/langfuse@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/langfuse/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/langsmith@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/langsmith/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/libsql@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/libsql/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))\r\n\r\n  ```typescript\r\n  // Clone a thread\r\n  const { thread, clonedMessages } = await memory.cloneThread({\r\n    sourceThreadId: 'thread-123',\r\n    title: 'My Clone',\r\n    options: {\r\n      messageLimit: 10, // optional: only copy last N messages\r\n    },\r\n  });\r\n\r\n  // Check if a thread is a clone\r\n  if (memory.isClone(thread)) {\r\n    const source = await memory.getSourceThread(thread.id);\r\n  }\r\n\r\n  // List all clones of a thread\r\n  const clones = await memory.listClones('thread-123');\r\n  ```\r\n\r\n  Includes:\r\n  - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash\r\n  - API endpoint: `POST /api/memory/threads/:threadId/clone`\r\n  - Embeddings created for cloned messages (semantic recall)\r\n  - Clone button in playground UI Memory tab\r\n\r\n---\r\n\r\n## [@mastra/loggers@1.0.0-beta.4](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/loggers/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/mcp@1.0.0-beta.8](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/mcp/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/memory@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/memory/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Fixed client-side tool invocations not being stored in memory. Previously, tool invocations with state 'call' were filtered out before persistence, which incorrectly removed client-side tools. Now only streaming intermediate states ('partial-call') are filtered. ([#11630](https://github.com/mastra-ai/mastra/pull/11630))\r\n\r\n  Fixed a crash when updating working memory with an empty or null update; existing data is now preserved.\r\n\r\n- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))\r\n\r\n  ```typescript\r\n  // Clone a thread\r\n  const { thread, clonedMessages } = await memory.cloneThread({\r\n    sourceThreadId: 'thread-123',\r\n    title: 'My Clone',\r\n    options: {\r\n      messageLimit: 10, // optional: only copy last N messages\r\n    },\r\n  });\r\n\r\n  // Check if a thread is a clone\r\n  if (memory.isClone(thread)) {\r\n    const source = await memory.getSourceThread(thread.id);\r\n  }\r\n\r\n  // List all clones of a thread\r\n  const clones = await memory.listClones('thread-123');\r\n  ```\r\n\r\n  Includes:\r\n  - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash\r\n  - API endpoint: `POST /api/memory/threads/:threadId/clone`\r\n  - Embeddings created for cloned messages (semantic recall)\r\n  - Clone button in playground UI Memory tab\r\n\r\n- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:**\r\n  - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)\r\n  - Added optional `fields` parameter to request only specific fields for better performance\r\n  - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion\r\n  - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)\r\n  - Removed `/execution-result` API endpoints from server (breaking change)\r\n  - Removed `runExecutionResult()` method from client SDK (breaking change)\r\n  - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  // Had to call two different methods for different data\r\n  const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot\r\n  const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  // Single method returns everything\r\n  const run = await workflow.getWorkflowRunById(runId);\r\n  // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }\r\n\r\n  // Request only specific fields for better performance (avoids expensive step fetching)\r\n  const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });\r\n\r\n  // Skip nested workflow steps for faster response\r\n  const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });\r\n  ```\r\n\r\n  **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.\r\n\r\n---\r\n\r\n## [@mastra/mongodb@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/mongodb/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/mssql@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/mssql/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/observability@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/mastra/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Deprecate `default: { enabled: true }` observability configuration ([#11674](https://github.com/mastra-ai/mastra/pull/11674))\r\n\r\n  The shorthand `default: { enabled: true }` configuration is now deprecated and will be removed in a future version. Users should migrate to explicit configuration with `DefaultExporter`, `CloudExporter`, and `SensitiveDataFilter`.\r\n\r\n  **Before (deprecated):**\r\n\r\n  ```typescript\r\n  import { Observability } from '@mastra/observability';\r\n\r\n  const mastra = new Mastra({\r\n    observability: new Observability({\r\n      default: { enabled: true },\r\n    }),\r\n  });\r\n  ```\r\n\r\n  **After (recommended):**\r\n\r\n  ```typescript\r\n  import { Observability, DefaultExporter, CloudExporter, SensitiveDataFilter } from '@mastra/observability';\r\n\r\n  const mastra = new Mastra({\r\n    observability: new Observability({\r\n      configs: {\r\n        default: {\r\n          serviceName: 'mastra',\r\n          exporters: [new DefaultExporter(), new CloudExporter()],\r\n          spanOutputProcessors: [new SensitiveDataFilter()],\r\n        },\r\n      },\r\n    }),\r\n  });\r\n  ```\r\n\r\n  The explicit configuration makes it clear exactly what exporters and processors are being used, improving code readability and maintainability.\r\n\r\n  A deprecation warning will be logged when using the old configuration pattern.\r\n\r\n- Fix processor tracing to create individual spans per processor ([#11683](https://github.com/mastra-ai/mastra/pull/11683))\r\n  - Processor spans now correctly show processor IDs (e.g., `input processor: validator`) instead of combined workflow IDs\r\n  - Each processor in a chain gets its own trace span, improving observability into processor execution\r\n  - Spans are only created for phases a processor actually implements, eliminating empty spans\r\n  - Internal agent calls within processors now properly nest under their processor span\r\n  - Added `INPUT_STEP_PROCESSOR` and `OUTPUT_STEP_PROCESSOR` entity types for finer-grained tracing\r\n  - Changed `processorType` span attribute to `processorExecutor` with values `'workflow'` or `'legacy'`\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Fix trace-level sampling to sample entire traces instead of individual spans ([#11676](https://github.com/mastra-ai/mastra/pull/11676))\r\n\r\n  Previously, sampling decisions were made independently for each span, causing fragmented traces where some spans were sampled and others were not. This defeated the purpose of ratio or custom sampling strategies.\r\n\r\n  Now:\r\n  - Sampling decisions are made once at the root span level\r\n  - Child spans inherit the sampling decision from their parent\r\n  - Custom samplers are only called once per trace (for root spans)\r\n  - Either all spans in a trace are sampled, or none are\r\n\r\n  Fixes #11504\r\n\r\n---\r\n\r\n## [@mastra/opensearch@1.0.0-beta.3](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/opensearch/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/otel-bridge@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/otel-bridge/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/otel-exporter@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/otel-exporter/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/pg@1.0.0-beta.12](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/pg/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n- Added `startExclusive` and `endExclusive` options to `dateRange` filter for message queries. ([#11479](https://github.com/mastra-ai/mastra/pull/11479))\r\n\r\n  **What changed:** The `filter.dateRange` parameter in `listMessages()` and `Memory.recall()` now supports `startExclusive` and `endExclusive` boolean options. When set to `true`, messages with timestamps exactly matching the boundary are excluded from results.\r\n\r\n  **Why this matters:** Enables cursor-based pagination for chat applications. When new messages arrive during a session, offset-based pagination can skip or duplicate messages. Using `endExclusive: true` with the oldest message's timestamp as a cursor ensures consistent pagination without gaps or duplicates.\r\n\r\n  **Example:**\r\n\r\n  ```typescript\r\n  // Get first page\r\n  const page1 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n  });\r\n\r\n  // Get next page using cursor-based pagination\r\n  const oldestMessage = page1.messages[page1.messages.length - 1];\r\n  const page2 = await memory.recall({\r\n    threadId: 'thread-123',\r\n    perPage: 10,\r\n    orderBy: { field: 'createdAt', direction: 'DESC' },\r\n    filter: {\r\n      dateRange: {\r\n        end: oldestMessage.createdAt,\r\n        endExclusive: true, // Excludes the cursor message\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n- Fix thread timestamps being returned in incorrect timezone from listThreadsByResourceId ([#11498](https://github.com/mastra-ai/mastra/pull/11498))\r\n\r\n  The method was not using the timezone-aware columns (createdAtZ/updatedAtZ), causing timestamps to be interpreted in local timezone instead of UTC. Now correctly uses TIMESTAMPTZ columns with fallback for legacy data.\r\n\r\n- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))\r\n\r\n  ```typescript\r\n  // Clone a thread\r\n  const { thread, clonedMessages } = await memory.cloneThread({\r\n    sourceThreadId: 'thread-123',\r\n    title: 'My Clone',\r\n    options: {\r\n      messageLimit: 10, // optional: only copy last N messages\r\n    },\r\n  });\r\n\r\n  // Check if a thread is a clone\r\n  if (memory.isClone(thread)) {\r\n    const source = await memory.getSourceThread(thread.id);\r\n  }\r\n\r\n  // List all clones of a thread\r\n  const clones = await memory.listClones('thread-123');\r\n  ```\r\n\r\n  Includes:\r\n  - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash\r\n  - API endpoint: `POST /api/memory/threads/:threadId/clone`\r\n  - Embeddings created for cloned messages (semantic recall)\r\n  - Clone button in playground UI Memory tab\r\n\r\n---\r\n\r\n## [@mastra/pinecone@1.0.0-beta.4](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/pinecone/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/playground-ui@7.0.0-beta.20](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/playground-ui/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add missing loading state handlers to TanStack Query hooks. Components now properly show skeleton/loading UI instead of returning null or rendering incomplete states while data is being fetched. ([#11681](https://github.com/mastra-ai/mastra/pull/11681))\r\n\r\n- Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))\r\n\r\n  ```diff\r\n  + const run = await workflow.createRun({ runId: '123' });\r\n  - const stream = await run.streamVNext({ inputData: { ... } });\r\n  + const stream = await run.stream({ inputData: { ... } });\r\n  ```\r\n\r\n- Dedupe Avatar component by removing UI avatar and using DS Avatar with size variants ([#11637](https://github.com/mastra-ai/mastra/pull/11637))\r\n\r\n- Consolidate date picker components by removing duplicate DatePicker and Calendar components. DateField now uses the DayPicker wrapper from date-time-picker folder directly. ([#11649](https://github.com/mastra-ai/mastra/pull/11649))\r\n\r\n- Consolidate tabs components: remove redundant implementations and add onClose prop support ([#11650](https://github.com/mastra-ai/mastra/pull/11650))\r\n\r\n- Use the same Button component every where. Remove duplicates. ([#11635](https://github.com/mastra-ai/mastra/pull/11635))\r\n\r\n- Add initial state input to workflow form in studio ([#11560](https://github.com/mastra-ai/mastra/pull/11560))\r\n\r\n- Remove unused files and dependencies identified by Knip ([#11677](https://github.com/mastra-ai/mastra/pull/11677))\r\n\r\n- Fix react/react-DOM version mismatch. ([#11620](https://github.com/mastra-ai/mastra/pull/11620))\r\n\r\n- Adds thread cloning to create independent copies of conversations that can diverge. ([#11517](https://github.com/mastra-ai/mastra/pull/11517))\r\n\r\n  ```typescript\r\n  // Clone a thread\r\n  const { thread, clonedMessages } = await memory.cloneThread({\r\n    sourceThreadId: 'thread-123',\r\n    title: 'My Clone',\r\n    options: {\r\n      messageLimit: 10, // optional: only copy last N messages\r\n    },\r\n  });\r\n\r\n  // Check if a thread is a clone\r\n  if (memory.isClone(thread)) {\r\n    const source = await memory.getSourceThread(thread.id);\r\n  }\r\n\r\n  // List all clones of a thread\r\n  const clones = await memory.listClones('thread-123');\r\n  ```\r\n\r\n  Includes:\r\n  - Storage implementations for InMemory, PostgreSQL, LibSQL, Upstash\r\n  - API endpoint: `POST /api/memory/threads/:threadId/clone`\r\n  - Embeddings created for cloned messages (semantic recall)\r\n  - Clone button in playground UI Memory tab\r\n\r\n- Display network completion validation results and scorer feedback in the Playground when viewing agent network runs, letting users see pass/fail status and actionable feedback from completion scorers ([#11562](https://github.com/mastra-ai/mastra/pull/11562))\r\n\r\n- Unified `getWorkflowRunById` and `getWorkflowRunExecutionResult` into a single API that returns `WorkflowState` with both metadata and execution state. ([#11429](https://github.com/mastra-ai/mastra/pull/11429))\r\n\r\n  **What changed:**\r\n  - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)\r\n  - Added optional `fields` parameter to request only specific fields for better performance\r\n  - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion\r\n  - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)\r\n  - Removed `/execution-result` API endpoints from server (breaking change)\r\n  - Removed `runExecutionResult()` method from client SDK (breaking change)\r\n  - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)\r\n\r\n  **Before:**\r\n\r\n  ```typescript\r\n  // Had to call two different methods for different data\r\n  const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot\r\n  const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state\r\n  ```\r\n\r\n  **After:**\r\n\r\n  ```typescript\r\n  // Single method returns everything\r\n  const run = await workflow.getWorkflowRunById(runId);\r\n  // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }\r\n\r\n  // Request only specific fields for better performance (avoids expensive step fetching)\r\n  const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });\r\n\r\n  // Skip nested workflow steps for faster response\r\n  const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });\r\n  ```\r\n\r\n  **Why:** The previous API required calling two separate methods to get complete workflow run information. This unification simplifies the API surface and gives users control over performance - fetching all steps (especially nested workflows) can be expensive, so the `fields` and `withNestedWorkflows` options let users request only what they need.\r\n\r\n---\r\n\r\n## [@mastra/posthog@1.0.0-beta.10](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/observability/posthog/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/qdrant@1.0.0-beta.3](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/qdrant/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/rag@2.0.0-beta.5](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/packages/rag/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Add dynamic vectorStore resolver support for multi-tenant applications ([#11542](https://github.com/mastra-ai/mastra/pull/11542))\r\n\r\n  The vectorStore option in createVectorQueryTool and createGraphRAGTool now accepts a resolver function in addition to static instances. This enables multi-tenant setups where each tenant has isolated data in separate PostgreSQL schemas.\r\n\r\n  Also improves providerOptions type safety by using MastraEmbeddingOptions types instead of a generic Record type.\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n---\r\n\r\n## [@mastra/react-hooks@0.1.0-beta.20](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/client-sdks/react/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fix TypeScript errors during build declaration generation ([#11682](https://github.com/mastra-ai/mastra/pull/11682))\r\n\r\n  Updated test file `toUIMessage.test.ts` to match current `@mastra/core` types:\r\n  - Changed `error` property from string to `Error` object (per `StepFailure` type)\r\n  - Added missing `resumeSchema` property to `tool-call-approval` payloads (per `ToolCallApprovalPayload` type)\r\n  - Added `zod` as peer/dev dependency for test type support\r\n\r\n- Fixed agent network not returning text response when routing agent handles requests without delegation. ([#11497](https://github.com/mastra-ai/mastra/pull/11497))\r\n\r\n  **What changed:**\r\n  - Agent networks now correctly stream text responses when the routing agent decides to handle a request itself instead of delegating to sub-agents, workflows, or tools\r\n  - Added fallback in transformers to ensure text is always returned even if core events are missing\r\n\r\n  **Why this matters:**\r\n  Previously, when using `toAISdkV5Stream` or `networkRoute()` outside of the Mastra Studio UI, no text content was returned when the routing agent handled requests directly. This fix ensures consistent behavior across all API routes.\r\n\r\n  Fixes #11219\r\n\r\n- Display network completion validation results and scorer feedback in the Playground when viewing agent network runs, letting users see pass/fail status and actionable feedback from completion scorers ([#11562](https://github.com/mastra-ai/mastra/pull/11562))\r\n\r\n---\r\n\r\n## [@mastra/s3vectors@1.0.0-beta.3](https://github.com/mastra-ai/mastra/blob/b3e7a74b36001336085d9b02be9bfafca8762f3f/stores/s3vectors/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Add embedded documentation support for Mastra packages ([#11472](https://github.com/mastra-ai/mastra/pull/11472))\r\n\r\n  Mastra packages now include embedded documentation in the published npm package under `dist/docs/`. This enables coding agents and AI assistants to understand and use the framework by reading documentation directly from `node_modules`.\r\n\r\n  Each package includes:\r\n  - **SKILL.md** - Entry point explaining the package's purpose and capabilities\r\n  - **SOURCE_MAP.json** - Machine-readable index mapping exports to types and implementation files\r\n  - **Topic folders** - Conceptual documentation organized by feature area\r\n\r\n  Documentation is driven by the `packages` frontmatter field in MDX files, which maps docs to their corresponding packages. CI validation ensures all docs include this field.\r\n\r\n\r\n---\r\n\r\n**Note**: Release notes were truncated due to GitHub's 125,000 character limit. See the full changelog details at the link below.\r\n\r\n\r\n---\r\n\r\n**Full Changelog**: [`b3e7a74`](https://github.com/mastra-ai/mastra/commit/b3e7a74b36001336085d9b02be9bfafca8762f3f)\r\n","publishedAt":"2026-01-10T17:09:29.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.0.0-beta.20","media":[]},{"id":"rel_CtuIPMSk661ditRQAdqur","version":"@mastra/core@1.0.0-beta.19","title":"December 29, 2025","summary":"# Changelog\r\n\r\n## [@mastra/ai-sdk@1.0.0-beta.12](https://github.com/mastra-ai/mastra/blob/483764477e6a596e7809552d59ef380bf04152e7/client-sdks/ai-sdk/...","content":"# Changelog\r\n\r\n## [@mastra/ai-sdk@1.0.0-beta.12](https://github.com/mastra-ai/mastra/blob/483764477e6a596e7809552d59ef380bf04152e7/client-sdks/ai-sdk/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fix data chunk property filtering to only include type, data, and id properties ([#11477](https://github.com/mastra-ai/mastra/pull/11477))\r\n\r\n  Previously, when `isDataChunkType` checks were performed, the entire chunk object was returned, potentially letting extra properties like `from`, `runId`, `metadata`, etc go through. This could cause issues with `useChat` and other UI components.\r\n\r\n  Now, all locations that handle `DataChunkType` properly destructure and return only the allowed properties:\r\n  - `type` (required): The chunk type identifier starting with \"data-\"\r\n  - `data` (required): The actual data payload\r\n  - `id` (optional): An optional identifier for the chunk\r\n\r\n---\r\n\r\n## [@mastra/core@1.0.0-beta.19](https://github.com/mastra-ai/mastra/blob/483764477e6a596e7809552d59ef380bf04152e7/packages/core/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Add embedderOptions support to Memory for AI SDK 5+ provider-specific embedding options ([#11462](https://github.com/mastra-ai/mastra/pull/11462))\r\n\r\n  With AI SDK 5+, embedding models no longer accept options in their constructor. Options like `outputDimensionality` for Google embedding models must now be passed when calling `embed()` or `embedMany()`. This change adds `embedderOptions` to Memory configuration to enable passing these provider-specific options.\r\n\r\n  You can now configure embedder options when creating Memory:\r\n\r\n  ```typescript\r\n  import { Memory } from '@mastra/core';\r\n  import { google } from '@ai-sdk/google';\r\n\r\n  // Before: No way to specify providerOptions\r\n  const memory = new Memory({\r\n    embedder: google.textEmbeddingModel('text-embedding-004'),\r\n  });\r\n\r\n  // After: Pass embedderOptions with providerOptions\r\n  const memory = new Memory({\r\n    embedder: google.textEmbeddingModel('text-embedding-004'),\r\n    embedderOptions: {\r\n      providerOptions: {\r\n        google: {\r\n          outputDimensionality: 768,\r\n          taskType: 'RETRIEVAL_DOCUMENT',\r\n        },\r\n      },\r\n    },\r\n  });\r\n  ```\r\n\r\n  This is especially important for:\r\n  - Google `text-embedding-004`: Control output dimensions (default 768)\r\n  - Google `gemini-embedding-001`: Reduce from default 3072 dimensions to avoid pgvector's 2000 dimension limit for HNSW indexes\r\n\r\n  Fixes #8248\r\n\r\n### Patch Changes\r\n\r\n- Fix Anthropic API error when tool calls have empty input objects ([#11474](https://github.com/mastra-ai/mastra/pull/11474))\r\n\r\n  Fixes issue #11376 where Anthropic models would fail with error \"messages.17.content.2.tool_use.input: Field required\" when a tool call in a previous step had an empty object `{}` as input.\r\n\r\n  The fix adds proper reconstruction of tool call arguments when converting messages to AIV5 model format. Tool-result parts now correctly include the `input` field from the matching tool call, which is required by Anthropic's API validation.\r\n\r\n  Changes:\r\n  - Added `findToolCallArgs()` helper method to search through messages and retrieve original tool call arguments\r\n  - Enhanced `aiV5UIMessagesToAIV5ModelMessages()` to populate the `input` field on tool-result parts\r\n  - Added comprehensive test coverage for empty object inputs, parameterized inputs, and multi-turn conversations\r\n\r\n- Fixed an issue where deprecated Groq models were shown during template creation. The model selection now filters out models marked as deprecated, displaying only active and supported models. ([#11445](https://github.com/mastra-ai/mastra/pull/11445))\r\n\r\n- Fix AI SDK v6 (specificationVersion: \"v3\") model support in sub-agent calls. Previously, when a parent agent invoked a sub-agent with a v3 model through the `agents` property, the version check only matched \"v2\", causing v3 models to incorrectly fall back to legacy streaming methods and throw \"V2 models are not supported for streamLegacy\" error. ([#11452](https://github.com/mastra-ai/mastra/pull/11452))\r\n\r\n  The fix updates version checks in `listAgentTools` and `llm-mapping-step.ts` to use the centralized `supportedLanguageModelSpecifications` array which includes both v2 and v3.\r\n\r\n  Also adds missing v3 test coverage to tool-handling.test.ts to prevent regression.\r\n\r\n- Fixed \"Transforms cannot be represented in JSON Schema\" error when using Zod v4 with structuredOutput ([#11466](https://github.com/mastra-ai/mastra/pull/11466))\r\n\r\n  When using schemas with `.optional()`, `.nullable()`, `.default()`, or `.nullish().default(\"\")` patterns with `structuredOutput` and Zod v4, users would encounter an error because OpenAI schema compatibility layer adds transforms that Zod v4's native `toJSONSchema()` cannot handle.\r\n\r\n  The fix uses Mastra's transform-safe `zodToJsonSchema` function which gracefully handles transforms by using the `unrepresentable: 'any'` option.\r\n\r\n  Also exported `isZodType` utility from `@mastra/schema-compat` and updated it to detect both Zod v3 (`_def`) and Zod v4 (`_zod`) schemas.\r\n\r\n- Improved test description in ModelsDevGateway to clearly reflect the behavior being tested ([#11460](https://github.com/mastra-ai/mastra/pull/11460))\r\n\r\n---\r\n\r\n## [@mastra/deployer@1.0.0-beta.19](https://github.com/mastra-ai/mastra/blob/483764477e6a596e7809552d59ef380bf04152e7/packages/deployer/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fix npm resolving wrong @mastra/server version ([#11467](https://github.com/mastra-ai/mastra/pull/11467))\r\n\r\n  Changed `@mastra/server` dependency from `workspace:^` to `workspace:*` to prevent npm from resolving to incompatible stable versions (e.g., 1.0.3) instead of the required beta versions.\r\n\r\n- Remove extra console log statements in node-modules-extension-resolver ([#11470](https://github.com/mastra-ai/mastra/pull/11470))\r\n\r\n---\r\n\r\n## [@mastra/pg@1.0.0-beta.11](https://github.com/mastra-ai/mastra/blob/483764477e6a596e7809552d59ef380bf04152e7/stores/pg/CHANGELOG.md)\r\n\r\n### Minor Changes\r\n\r\n- Remove pg-promise dependency and use pg.Pool directly ([#11450](https://github.com/mastra-ai/mastra/pull/11450))\r\n\r\n  **BREAKING CHANGE**: This release replaces pg-promise with vanilla node-postgres (`pg`).\r\n\r\n  ### Breaking Changes\r\n  - **Removed `store.pgp`**: The pg-promise library instance is no longer exposed\r\n  - **Config change**: `{ client: pgPromiseDb }` is no longer supported. Use `{ pool: pgPool }` instead\r\n  - **Cloud SQL config**: `max` and `idleTimeoutMillis` must now be passed via `pgPoolOptions`\r\n\r\n  ### New Features\r\n  - **`store.pool`**: Exposes the underlying `pg.Pool` for direct database access or ORM integration (e.g., Drizzle)\r\n  - **`store.db`**: Provides a `DbClient` interface with methods like `one()`, `any()`, `tx()`, etc.\r\n  - **`store.db.connect()`**: Acquire a client for session-level operations\r\n\r\n  ### Migration\r\n\r\n  ```typescript\r\n  // Before (pg-promise)\r\n  import pgPromise from 'pg-promise';\r\n  const pgp = pgPromise();\r\n  const client = pgp(connectionString);\r\n  const store = new PostgresStore({ id: 'my-store', client });\r\n\r\n  // After (pg.Pool)\r\n  import { Pool } from 'pg';\r\n  const pool = new Pool({ connectionString });\r\n  const store = new PostgresStore({ id: 'my-store', pool });\r\n\r\n  // Use store.pool with any library that accepts a pg.Pool\r\n  ```\r\n\r\n### Patch Changes\r\n\r\n- Added `exportSchemas()` function to generate Mastra database schema as SQL DDL without a database connection. ([#11448](https://github.com/mastra-ai/mastra/pull/11448))\r\n\r\n  **What's New**\r\n\r\n  You can now export your Mastra database schema as SQL DDL statements without connecting to a database. This is useful for:\r\n  - Generating migration scripts\r\n  - Reviewing the schema before deployment\r\n  - Creating database schemas in environments where the application doesn't have CREATE privileges\r\n\r\n  **Example**\r\n\r\n  ```typescript\r\n  import { exportSchemas } from '@mastra/pg';\r\n\r\n  // Export schema for default 'public' schema\r\n  const ddl = exportSchemas();\r\n  console.log(ddl);\r\n\r\n  // Export schema for a custom schema\r\n  const customDdl = exportSchemas('my_schema');\r\n  // Creates: CREATE SCHEMA IF NOT EXISTS \"my_schema\"; and all tables within it\r\n  ```\r\n\r\n---\r\n\r\n## [@mastra/schema-compat@1.0.0-beta.5](https://github.com/mastra-ai/mastra/blob/483764477e6a596e7809552d59ef380bf04152e7/packages/schema-compat/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fixed \"Transforms cannot be represented in JSON Schema\" error when using Zod v4 with structuredOutput ([#11466](https://github.com/mastra-ai/mastra/pull/11466))\r\n\r\n  When using schemas with `.optional()`, `.nullable()`, `.default()`, or `.nullish().default(\"\")` patterns with `structuredOutput` and Zod v4, users would encounter an error because OpenAI schema compatibility layer adds transforms that Zod v4's native `toJSONSchema()` cannot handle.\r\n\r\n  The fix uses Mastra's transform-safe `zodToJsonSchema` function which gracefully handles transforms by using the `unrepresentable: 'any'` option.\r\n\r\n  Also exported `isZodType` utility from `@mastra/schema-compat` and updated it to detect both Zod v3 (`_def`) and Zod v4 (`_zod`) schemas.\r\n\r\n- fix(schema-compat): handle undefined values in optional fields for OpenAI compat layers ([#11469](https://github.com/mastra-ai/mastra/pull/11469))\r\n\r\n  When a Zod schema has nested objects with `.partial()`, the optional fields would fail validation with \"expected string, received undefined\" errors. This occurred because the OpenAI schema compat layer converted `.optional()` to `.nullable()`, which only accepts `null` values, not `undefined`.\r\n\r\n  Changed `.nullable()` to `.nullish()` so that optional fields now accept both `null` (when explicitly provided by the LLM) and `undefined` (when fields are omitted entirely).\r\n\r\n  Fixes #11457\r\n\r\n---\r\n\r\n\r\n---\r\n\r\n**Full Changelog**: [`4837644`](https://github.com/mastra-ai/mastra/commit/483764477e6a596e7809552d59ef380bf04152e7)\r\n","publishedAt":"2026-01-10T17:06:27.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.0.0-beta.19","media":[]},{"id":"rel_TkDQYwmxgT2a7BhL8yevH","version":"@mastra/core@1.0.0-beta.18","title":"December 26, 2025","summary":"# Changelog\r\n\r\n## [@mastra/core@1.0.0-beta.18](https://github.com/mastra-ai/mastra/blob/3d9c9fb3cda8825b2d61a17e78d15f29470d2a28/packages/core/CHANGEL...","content":"# Changelog\r\n\r\n## [@mastra/core@1.0.0-beta.18](https://github.com/mastra-ai/mastra/blob/3d9c9fb3cda8825b2d61a17e78d15f29470d2a28/packages/core/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fixed semantic recall fetching all thread messages instead of only matched ones. ([#11435](https://github.com/mastra-ai/mastra/pull/11435))\r\n\r\n  When using `semanticRecall` with `scope: 'thread'`, the processor was incorrectly fetching all messages from the thread instead of just the semantically matched messages with their context. This caused memory to return far more messages than expected when `topK` and `messageRange` were set to small values.\r\n\r\n  Fixes #11428\r\n\r\n---\r\n\r\n## [@mastra/observability@1.0.0-beta.9](https://github.com/mastra-ai/mastra/blob/3d9c9fb3cda8825b2d61a17e78d15f29470d2a28/observability/mastra/CHANGELOG.md)\r\n\r\n### Patch Changes\r\n\r\n- Fix SensitiveDataFilter destroying Date objects ([#11437](https://github.com/mastra-ai/mastra/pull/11437))\r\n\r\n  The `deepFilter` method now correctly preserves `Date` objects instead of converting them to empty objects `{}`. This fixes issues with downstream exporters like `BraintrustExporter` that rely on `Date` methods like `getTime()`.\r\n\r\n  Previously, `Object.keys(new Date())` returned `[]`, causing Date objects to be incorrectly converted to `{}`. The fix adds an explicit check for `Date` instances before generic object processing.\r\n\r\n---\r\n\r\n\r\n---\r\n\r\n**Full Changelog**: [`3d9c9fb`](https://github.com/mastra-ai/mastra/commit/3d9c9fb3cda8825b2d61a17e78d15f29470d2a28)\r\n","publishedAt":"2026-01-10T17:06:20.000Z","url":"https://github.com/mastra-ai/mastra/releases/tag/%40mastra/core%401.0.0-beta.18","media":[]}],"pagination":{"page":1,"pageSize":20,"totalPages":4,"totalItems":77},"summaries":{"rolling":{"windowDays":90,"summary":"Mastra shipped a steady stream of capabilities across agent orchestration, observability, and storage over the last ninety days. The platform consolidated observational memory (compressing conversations 5–40x with reflection-based condensing), expanded workspace tooling with AST-aware edits and background process management, and introduced structured evaluation primitives—versioned datasets with SCD-2 item history and experiments that run agents against them with configurable scorers. Authentication and RBAC landed end-to-end via pluggable auth and Okta integration, while observability storage got first-class schemas and in-memory implementations across all signals (scores, logs, feedback, metrics, discovery). On the infrastructure side, supervisor patterns enabled multi-agent coordination, dynamic model routing with fallback arrays added runtime flexibility, and workspace filesystem mounts unified access across S3, GCS, and local storage through a single path tree.","releaseCount":38,"generatedAt":"2026-04-07T17:28:13.641Z"},"monthly":[{"year":2026,"month":3,"summary":"Observational memory got smarter with `ModelByInputTokens`, routing observer and reflector calls to different models based on input size so short queries hit fast, cheap endpoints while complex ones reach more capable ones. MongoDB support landed for versioned datasets with time-travel queries and experiment tracking, automatically integrated for existing `MongoDBStore` users. A new Okta auth package shipped with SSO and role-based access control, letting you map Okta groups to Mastra permissions independently of your core auth provider.","releaseCount":1,"generatedAt":"2026-04-07T17:19:06.799Z"}]}}