2025-07-29 - Mastra Release
Agents
- Add error messages to clearly state that both resourceId and threadId are required when using Memory in the agent. #6295
- Expose the mastra instance in dynamic agent arguments and includes related test updates. #6342
- Add Input message processors to the agent primitive, enabling middleware for message filtering, transformation, validation, and early termination before messages reach the language model, with built-in processors, tracing, tests, and documentation. #6254 [IMPORTANT]
- The GenerateReturn type to properly infer return types using conditional types, ensuring correct type resolution for GenerateTextResult and GenerateObjectResult. #6185
Mastra Server
- Fix server's registerApiRoute function by providing clearer error messages for invalid route configurations, improving developer experience. #6091
- Support for providing a custom ID generator when creating a Mastra instance, defaulting to UUID if none is supplied. #6074 [TIER3]
- Fix bug by adding the PATCH method to the default CORS configuration and updates the documentation accordingly. #6335
CI / Tests
- Add regression test to ensure that runtime context data is preserved and accessible in nested workflows after suspend and resume operations. #6197
- Move
createMockModel
utility to the test scope and removes its export from the MCP package, eliminating unnecessary test dependencies from production and introducing a breaking change for users importing it. #6180 - The peer dependencies of packages to align with recent breaking changes in mastra core, ensuring compatibility for dependent packages like libsql and pg. #6386
CLI / Playground
- New Text-to-Speech (TTS) feature to the playground. #6258 [TIER2]
- Fix workflow form overflow issue in the playground and disables the form while a workflow is streaming. #6349
- speech-to-text functionality using the Voice configuration in Playground. #6304[TIER2]
Client SDK - JS
- Fix issue by ensuring the Content-Type header is not manually set when the request body is FormData, allowing FormData to handle it automatically and preventing related upload issues. #6188
- Add an API reference for the mastra-client in the JavaScript client SDK docs. #6308
- Support for message metadata in both the client-js SDK and agent for UIMessages. #6324
- Error handling in client-js so that errors from failed tool calls during streaming are properly caught and logged instead of being unhandled. #6170
- Client-js to support both MastraMessageV1 and V2 formats by extending types, updating the OpenAPI schema, and adding tests for v2 message handling. #6378
- Fix client-js library to prevent duplicate message updates by ensuring only the final, complete message is stored before a tool call, rather than incremental partial messages. #6374
Deployer
- Fix issue where source map configuration was not preserved in the removeDeployer Babel plugin, ensuring correct breakpoint mapping during debugging by propagating the sourcemap option through all build pipelines and adding related tests. #6109
Evals
- Updates all evaluation examples in the /examples/evals directory, improving explanations of scores and info, and raises questions about documentation duplication and metric configuration placement. #6194
- Improve Scorer functionality by updating input types, introducing a new scoreHookInput type, improving playground score display, and increasing LLM scorer accuracy when output schemas mismatch. #6239
- Fix client-js types for saveScore to omit id, createdAt, and updatedAt, matching the backend implementation and fixing a type mismatch bug. #6291
- A horizontal overflow issue in the Scorer prompts by adding text wrapping to the prompt value. #6368
Memory
- Fix regression in the @mastra/memory package where storage was incorrectly inherited from Mastra when using in-memory storage. #6274
- Add flexible deleteMessages method to the memory system and client SDK, enabling single and bulk message deletion via various input formats, adds a corresponding server endpoint, implements efficient bulk deletion in all storage adapters, and updates tests and documentation accordingly. #6275 [TIER2]
- Improve thread creation so that threads are only saved after successful message generation, preventing orphaned threads from being left in memory on failure. #6154
Observability
- Add warning when telemetry is enabled but not loaded, addressing issue #5705. #6301
- Fix an issue where infinite trace pagination was breaking trace refinement, ensuring proper trace grouping. #6311
- Add thread IDs to telemetry spans for agent invocations to improve downstream grouping of spans in multi-turn conversations. #6273
Storage
- Fix Cloudflare D1 store's executeRestQuery method to correctly handle and flatten nested REST API responses, improving error resilience and maintaining compatibility for both single and multiple result queries. #6236
- Fix bug by ensuring that a LibSQL transaction is open before attempting a rollback in
LibSQLVector.doUpsert
, preventing unnecessary errors. #6158 - Fix bug where creating a MongoDBStore via ConnectorHandler resulted in empty stores due to an early return in the configuration logic. #6264
- Fix bug in MongoDB vector queries that caused a 500 error when the filter._id.$in array was empty during semanticRecall operations in the playground. #6307
- Fix the handling of scorers in MongoDB to store them as objects instead of strings, simplifying query creation and includes related bug fixes and test updates. #6305
- Fix an issue where the jsonb field in MongoDB batchInsert was incorrectly saved as a string, ensuring it is now parsed properly so getTrace queries return correct results. #6262
- Add Hybrid search support to the Upstash vector store, enabling combined semantic (dense) and keyword-based (sparse) vector search while maintaining backward compatibility with dense-only indexes. #6190
- Update getThreadsByResourceId and getThreadsByResourceIdPaginated functions to sort results by updatedAt, addressing a bug and introducing a breaking change. #6345
Tools
- The vector query tool can now be used without a Mastra instance by utilizing the vectorStore property from runtimeContext when a Mastra instance is not provided. #6026
- Promise-based tools and clarifies how to add tools from an MCP server within the same repository as the MCPServer. #5809
Workflows
- Fix handling of workflow statuses and improves the detection of changes within workflows. #6160
- Fix bug so that when resuming suspended nested workflows with conditional branching, only the correct branches that evaluate to true are executed, preventing incorrect steps from running after resume. #6241
- Fix path filter configuration in the workflows to ensure correct triggering of workflow runs. #6257
- Fix bug in workflow loops by ensuring resume data is cleared after each iteration, preventing incorrect reuse and crashes in human-in-the-loop patterns. #6323
- Fix path filter configuration for secret-related workflows. #6375
- Fix bug to ensure that inputData is correctly restored from the snapshot after a resume, rather than incorrectly using the resume payload. #5098