@mastra/inngest 0.0.0-span-scorring-test-20251124132129 → 0.0.0-standard-schema-20260126101119

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,49 +1,111 @@
1
1
  # @mastra/inngest
2
2
 
3
- ## 0.0.0-span-scorring-test-20251124132129
3
+ ## 0.0.0-standard-schema-20260126101119
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72), [`1cf5d2e`](https://github.com/mastra-ai/mastra/commit/1cf5d2ea1b085be23e34fb506c80c80a4e6d9c2b), [`3efbe5a`](https://github.com/mastra-ai/mastra/commit/3efbe5ae20864c4f3143457f4f3ee7dc2fa5ca76), [`bc9fa00`](https://github.com/mastra-ai/mastra/commit/bc9fa00859c5c4a796d53a0a5cae46ab4a3072e4), [`90fc0e5`](https://github.com/mastra-ai/mastra/commit/90fc0e5717cb280c2d4acf4f0410b510bb4c0a72)]:
8
+ - @mastra/core@0.0.0-standard-schema-20260126101119
9
+
10
+ ## 1.0.0
4
11
 
5
12
  ### Major Changes
6
13
 
7
14
  - Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
8
15
 
16
+ - Refactor workflow and tool types to remove Zod-specific constraints ([#11814](https://github.com/mastra-ai/mastra/pull/11814))
17
+
18
+ Removed Zod-specific type constraints across all workflow implementations and tool types, replacing them with generic types. This ensures type consistency across default, evented, and inngest workflows while preparing for Zod v4 migration.
19
+
20
+ **Workflow Changes:**
21
+ - Removed `z.ZodObject<any>` and `z.ZodType<any>` constraints from all workflow generic types
22
+ - Updated method signatures to use `TInput` and `TState` directly instead of `z.infer<TInput>` and `z.infer<TState>`
23
+ - Aligned conditional types across all workflow implementations using `TInput extends unknown` pattern
24
+ - Fixed `TSteps` generic to properly use `TEngineType` instead of `any`
25
+
26
+ **Tool Changes:**
27
+ - Removed Zod schema constraints from `ToolExecutionContext` and related interfaces
28
+ - Simplified type parameters from `TSuspendSchema extends ZodLikeSchema` to `TSuspend` and `TResume`
29
+ - Updated tool execution context types to use generic types
30
+
31
+ **Type Utilities:**
32
+ - Refactored type helpers to work with generic schemas instead of Zod-specific types
33
+ - Updated type extraction utilities for better compatibility
34
+
35
+ This change maintains backward compatibility while improving type consistency and preparing for Zod v4 support across all affected packages.
36
+
9
37
  - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
10
38
 
11
39
  - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
12
40
 
41
+ - **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
42
+
43
+ This change removes the direct dependency on Zod typings in the public API by converting all `OUTPUT extends OutputSchema` generic constraints to plain `OUTPUT` generics throughout the codebase. This is preparation for moving to a standard schema approach.
44
+ - All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
45
+ - Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
46
+ - `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
47
+ - `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
48
+ - Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
49
+ - Added `FullOutput<OUTPUT>` type representing complete output with all fields
50
+ - Added `AgentExecutionOptionsBase<OUTPUT>` type
51
+ - `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
52
+ - `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
53
+ - `agent.generate()` and `agent.stream()` methods have updated signatures
54
+ - `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
55
+ - Network route and streaming APIs updated to use plain OUTPUT generic
56
+
57
+ **Before:**
58
+
59
+ ```typescript
60
+ const output = await agent.generate<z.ZodType>([...], {
61
+ structuredOutput: { schema: mySchema }
62
+ });
63
+
64
+ **After:**
65
+ const output = await agent.generate<z.infer<typeof mySchema>>([...], {
66
+ structuredOutput: { schema: mySchema }
67
+ });
68
+ // Or rely on type inference:
69
+ const output = await agent.generate([...], {
70
+ structuredOutput: { schema: mySchema }
71
+ });
72
+
73
+ ```
74
+
13
75
  - **Breaking Change**: Remove legacy v1 watch events and consolidate on v2 implementation. ([#9252](https://github.com/mastra-ai/mastra/pull/9252))
14
76
 
15
77
  This change simplifies the workflow watching API by removing the legacy v1 event system and promoting v2 as the standard (renamed to just `watch`).
16
78
 
17
- ### What's Changed
79
+ **What's Changed**
18
80
  - Removed legacy v1 watch event handlers and types
19
81
  - Renamed `watch-v2` to `watch` throughout the codebase
20
82
  - Removed `.watch()` method from client-js SDK (`Workflow` and `AgentBuilder` classes)
21
83
  - Removed `/watch` HTTP endpoints from server and deployer
22
84
  - Removed `WorkflowWatchResult` and v1 `WatchEvent` types
23
85
 
24
- - ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
86
+ - ```ts ([#9709](https://github.com/mastra-ai/mastra/pull/9709))
25
87
  import { Mastra } from '@mastra/core';
26
- import { Observability } from '@mastra/observability'; // Explicit import
88
+ import { Observability } from '@mastra/observability'; // Explicit import
27
89
 
28
90
  const mastra = new Mastra({
29
91
  ...other_config,
30
92
  observability: new Observability({
31
- default: { enabled: true }
32
- }) // Instance
93
+ default: { enabled: true },
94
+ }), // Instance
33
95
  });
34
96
  ```
35
97
 
36
98
  Instead of:
37
99
 
38
- ```
100
+ ```ts
39
101
  import { Mastra } from '@mastra/core';
40
- import '@mastra/observability/init'; // Explicit import
102
+ import '@mastra/observability/init'; // Explicit import
41
103
 
42
104
  const mastra = new Mastra({
43
105
  ...other_config,
44
106
  observability: {
45
- default: { enabled: true }
46
- }
107
+ default: { enabled: true },
108
+ },
47
109
  });
48
110
  ```
49
111
 
@@ -69,11 +131,193 @@
69
131
 
70
132
  - Update peer dependencies to match core package version bump (0.22.3) ([#9153](https://github.com/mastra-ai/mastra/pull/9153))
71
133
 
134
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
135
+
136
+ ## What changed
137
+
138
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
139
+
140
+ **Before:**
141
+
142
+ ```typescript
143
+ // Old span structure
144
+ span.agentId; // 'my-agent'
145
+ span.toolId; // undefined
146
+ span.workflowId; // undefined
147
+ ```
148
+
149
+ **After:**
150
+
151
+ ```typescript
152
+ // New span structure
153
+ span.entityType; // EntityType.AGENT
154
+ span.entityId; // 'my-agent'
155
+ span.entityName; // 'My Agent'
156
+ ```
157
+
158
+ ## New `listTraces()` API
159
+
160
+ Query traces with filtering, pagination, and sorting:
161
+
162
+ ```typescript
163
+ const { spans, pagination } = await storage.listTraces({
164
+ filters: {
165
+ entityType: EntityType.AGENT,
166
+ entityId: 'my-agent',
167
+ userId: 'user-123',
168
+ environment: 'production',
169
+ status: TraceStatus.SUCCESS,
170
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
171
+ },
172
+ pagination: { page: 0, perPage: 50 },
173
+ orderBy: { field: 'startedAt', direction: 'DESC' },
174
+ });
175
+ ```
176
+
177
+ **Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
178
+
179
+ ## New retrieval methods
180
+ - `getSpan({ traceId, spanId })` - Get a single span
181
+ - `getRootSpan({ traceId })` - Get the root span of a trace
182
+ - `getTrace({ traceId })` - Get all spans for a trace
183
+
184
+ ## Backward compatibility
185
+
186
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
187
+
188
+ ## Migration
189
+
190
+ **Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
191
+
192
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
193
+
194
+ - Added `createServe` factory function to support multiple web framework adapters for Inngest workflows. ([#11667](https://github.com/mastra-ai/mastra/pull/11667))
195
+
196
+ 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).
197
+
198
+ **Before (Hono only)**
199
+
200
+ ```typescript
201
+ import { serve } from '@mastra/inngest';
202
+
203
+ // Only worked with Hono
204
+ app.all('/api/inngest', c => serve({ mastra, inngest })(c));
205
+ ```
206
+
207
+ **After (any framework)**
208
+
209
+ ```typescript
210
+ import { createServe } from '@mastra/inngest';
211
+ import { serve as expressAdapter } from 'inngest/express';
212
+ import { serve as fastifyAdapter } from 'inngest/fastify';
213
+
214
+ // Express
215
+ app.use('/api/inngest', createServe(expressAdapter)({ mastra, inngest }));
216
+
217
+ // Fastify
218
+ fastify.route({
219
+ method: ['GET', 'POST', 'PUT'],
220
+ url: '/api/inngest',
221
+ handler: createServe(fastifyAdapter)({ mastra, inngest }),
222
+ });
223
+ ```
224
+
225
+ The existing `serve` export remains available for backward compatibility with Hono.
226
+
227
+ Fixes #10053
228
+
72
229
  ### Patch Changes
73
230
 
74
231
  - dependencies updates: ([#10120](https://github.com/mastra-ai/mastra/pull/10120))
75
232
  - Updated dependency [`@inngest/realtime@^0.4.5` ↗︎](https://www.npmjs.com/package/@inngest/realtime/v/0.4.5) (from `^0.4.4`, in `dependencies`)
76
233
 
234
+ - Add support for `retries` and `scorers` parameters across all `createStep` overloads.
235
+ ([#11495](https://github.com/mastra-ai/mastra/pull/11495))
236
+
237
+ 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.
238
+
239
+ ```typescript
240
+ import { init } from '@mastra/inngest';
241
+ import { z } from 'zod';
242
+
243
+ const { createStep } = init(inngest);
244
+
245
+ // 1. Regular step with retries
246
+ const regularStep = createStep({
247
+ id: 'api-call',
248
+ inputSchema: z.object({ url: z.string() }),
249
+ outputSchema: z.object({ data: z.any() }),
250
+ retries: 3, // ← Will retry up to 3 times on failure
251
+ execute: async ({ inputData }) => {
252
+ const response = await fetch(inputData.url);
253
+ return { data: await response.json() };
254
+ },
255
+ });
256
+
257
+ // 2. Agent step with retries and scorers
258
+ const agentStep = createStep(myAgent, {
259
+ retries: 3,
260
+ scorers: [{ id: 'accuracy-scorer', scorer: myAccuracyScorer }],
261
+ });
262
+
263
+ // 3. Tool step with retries and scorers
264
+ const toolStep = createStep(myTool, {
265
+ retries: 2,
266
+ scorers: [{ id: 'quality-scorer', scorer: myQualityScorer }],
267
+ });
268
+ ```
269
+
270
+ This change ensures API consistency across all `createStep` overloads. All step types now support retry and evaluation configurations.
271
+
272
+ This is a non-breaking change - steps without these parameters continue to work exactly as before.
273
+
274
+ Fixes #9351
275
+
276
+ - Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
277
+
278
+ ```diff
279
+ + const run = await workflow.createRun({ runId: '123' });
280
+ - const stream = await run.streamVNext({ inputData: { ... } });
281
+ + const stream = await run.stream({ inputData: { ... } });
282
+ ```
283
+
284
+ - Add additional context to workflow `onFinish` and `onError` callbacks ([#11705](https://github.com/mastra-ai/mastra/pull/11705))
285
+
286
+ The `onFinish` and `onError` lifecycle callbacks now receive additional properties:
287
+ - `runId` - The unique identifier for the workflow run
288
+ - `workflowId` - The workflow's identifier
289
+ - `resourceId` - Optional resource identifier (if provided when creating the run)
290
+ - `getInitData()` - Function that returns the initial input data passed to the workflow
291
+ - `mastra` - The Mastra instance (if workflow is registered with Mastra)
292
+ - `requestContext` - Request-scoped context data
293
+ - `logger` - The workflow's logger instance
294
+ - `state` - The workflow's current state object
295
+
296
+ ```typescript
297
+ const workflow = createWorkflow({
298
+ id: 'order-processing',
299
+ inputSchema: z.object({ orderId: z.string() }),
300
+ outputSchema: z.object({ status: z.string() }),
301
+ options: {
302
+ onFinish: async ({ runId, workflowId, getInitData, logger, state, mastra }) => {
303
+ const inputData = getInitData();
304
+ logger.info(`Workflow ${workflowId} run ${runId} completed`, {
305
+ orderId: inputData.orderId,
306
+ finalState: state,
307
+ });
308
+
309
+ // Access other Mastra components if needed
310
+ const agent = mastra?.getAgent('notification-agent');
311
+ },
312
+ onError: async ({ runId, workflowId, error, logger, requestContext }) => {
313
+ logger.error(`Workflow ${workflowId} run ${runId} failed: ${error?.message}`);
314
+ // Access request context for additional debugging
315
+ const userId = requestContext.get('userId');
316
+ },
317
+ },
318
+ });
319
+ ```
320
+
77
321
  - Deprecate `runCount` parameter in favor of `retryCount` for better naming clarity. The name `runCount` was misleading as it doesn't represent the total number of times a step has run, but rather the number of retry attempts made for a step. ([#9153](https://github.com/mastra-ai/mastra/pull/9153))
78
322
 
79
323
  `runCount` is available in `execute()` functions and methods that interact with the step execution. This also applies to condition functions and loop condition functions that use this parameter. If your code uses `runCount`, change the name to `retryCount`.
@@ -90,8 +334,82 @@
90
334
  });
91
335
  ```
92
336
 
337
+ - - Fix tool suspension throwing error when `outputSchema` is passed to tool during creation ([#10444](https://github.com/mastra-ai/mastra/pull/10444))
338
+ - Pass `suspendSchema` and `resumeSchema` from tool into step created when creating step from tool
339
+
93
340
  - Fix Inngest workflow tests by adding missing imports and updating middleware path. ([#9259](https://github.com/mastra-ai/mastra/pull/9259))
94
341
 
342
+ - Internal code refactoring ([#10830](https://github.com/mastra-ai/mastra/pull/10830))
343
+
344
+ - Add `onFinish` and `onError` lifecycle callbacks to workflow options ([#11200](https://github.com/mastra-ai/mastra/pull/11200))
345
+
346
+ Workflows now support lifecycle callbacks for server-side handling of workflow completion and errors:
347
+ - `onFinish`: Called when workflow completes with any status (success, failed, suspended, tripwire)
348
+ - `onError`: Called only when workflow fails (failed or tripwire status)
349
+
350
+ ```typescript
351
+ const workflow = createWorkflow({
352
+ id: 'my-workflow',
353
+ inputSchema: z.object({ ... }),
354
+ outputSchema: z.object({ ... }),
355
+ options: {
356
+ onFinish: async (result) => {
357
+ // Handle any workflow completion
358
+ await updateJobStatus(result.status);
359
+ },
360
+ onError: async (errorInfo) => {
361
+ // Handle workflow failures
362
+ await logError(errorInfo.error);
363
+ },
364
+ },
365
+ });
366
+ ```
367
+
368
+ Both callbacks support sync and async functions. Callback errors are caught and logged, not propagated to the workflow result.
369
+
370
+ - Include `.input` in workflow results for both engines and remove the option to omit them from Inngest workflows. ([#10688](https://github.com/mastra-ai/mastra/pull/10688))
371
+
372
+ - Add support for typed structured output in agent workflow steps ([#11014](https://github.com/mastra-ai/mastra/pull/11014))
373
+
374
+ When wrapping an agent with `createStep()` and providing a `structuredOutput.schema`, the step's `outputSchema` is now correctly inferred from the provided schema instead of defaulting to `{ text: string }`.
375
+
376
+ This enables type-safe chaining of agent steps with structured output to subsequent steps:
377
+
378
+ ```typescript
379
+ const articleSchema = z.object({
380
+ title: z.string(),
381
+ summary: z.string(),
382
+ tags: z.array(z.string()),
383
+ });
384
+
385
+ // Agent step with structured output - outputSchema is now articleSchema
386
+ const agentStep = createStep(agent, {
387
+ structuredOutput: { schema: articleSchema },
388
+ });
389
+
390
+ // Next step can receive the structured output directly
391
+ const processStep = createStep({
392
+ id: 'process',
393
+ inputSchema: articleSchema, // Matches agent's outputSchema
394
+ outputSchema: z.object({ tagCount: z.number() }),
395
+ execute: async ({ inputData }) => ({
396
+ tagCount: inputData.tags.length, // Fully typed!
397
+ }),
398
+ });
399
+
400
+ workflow.then(agentStep).then(processStep).commit();
401
+ ```
402
+
403
+ When `structuredOutput` is not provided, the agent step continues to use the default `{ text: string }` output schema.
404
+
405
+ - Preserve error details when thrown from workflow steps ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
406
+ - Errors thrown in workflow steps now preserve full error details including `cause` chain and custom properties
407
+ - Added `SerializedError` type with proper cause chain support
408
+ - Added `SerializedStepResult` and `SerializedStepFailure` types for handling errors loaded from storage
409
+ - Enhanced `addErrorToJSON` to recursively serialize error cause chains with max depth protection
410
+ - Added `hydrateSerializedStepErrors` to convert serialized errors back to Error instances
411
+ - Fixed Inngest workflow error handling to extract original error from `NonRetriableError.cause`
412
+
95
413
  - Update tool execution signature ([#9587](https://github.com/mastra-ai/mastra/pull/9587))
96
414
 
97
415
  Consolidated the 3 different execution contexts to one
@@ -138,10 +456,210 @@
138
456
  }
139
457
  ```
140
458
 
459
+ - Refactor internal event system from Emitter to PubSub abstraction for workflow event handling. This change replaces the EventEmitter-based event system with a pluggable PubSub interface, enabling support for distributed workflow execution backends like Inngest. Adds `close()` method to PubSub implementations for proper cleanup. ([#11052](https://github.com/mastra-ai/mastra/pull/11052))
460
+
461
+ - Add `startAsync()` method and fix Inngest duplicate workflow execution bug ([#11093](https://github.com/mastra-ai/mastra/pull/11093))
462
+
463
+ **New Feature: `startAsync()` for fire-and-forget workflow execution**
464
+ - Add `Run.startAsync()` to base workflow class - starts workflow in background and returns `{ runId }` immediately
465
+ - Add `EventedRun.startAsync()` - publishes workflow start event without subscribing for completion
466
+ - Add `InngestRun.startAsync()` - sends Inngest event without polling for result
467
+
468
+ **Prevent duplicate Inngest workflow executions**
469
+ - Fix `getRuns()` to properly handle rate limits (429), empty responses, and JSON parse errors with retry logic and exponential backoff
470
+ - Fix `getRunOutput()` to throw `NonRetriableError` when polling fails, preventing Inngest from retrying the parent function and re-triggering the workflow
471
+ - Add timeout to `getRunOutput()` polling (default 5 minutes) with `NonRetriableError` on timeout
472
+
473
+ This fixes a production issue where polling failures after successful workflow completion caused Inngest to retry the parent function, which fired a new workflow event and resulted in duplicate executions (e.g., duplicate Slack messages).
474
+
475
+ - Preserve error details when thrown from workflow steps ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
476
+
477
+ Workflow errors now retain custom properties like `statusCode`, `responseHeaders`, and `cause` chains. This enables error-specific recovery logic in your applications.
478
+
479
+ **Before:**
480
+
481
+ ```typescript
482
+ const result = await workflow.execute({ input });
483
+ if (result.status === 'failed') {
484
+ // Custom error properties were lost
485
+ console.log(result.error); // "Step execution failed" (just a string)
486
+ }
487
+ ```
488
+
489
+ **After:**
490
+
491
+ ```typescript
492
+ const result = await workflow.execute({ input });
493
+ if (result.status === 'failed') {
494
+ // Custom properties are preserved
495
+ console.log(result.error.message); // "Step execution failed"
496
+ console.log(result.error.statusCode); // 429
497
+ console.log(result.error.cause?.name); // "RateLimitError"
498
+ }
499
+ ```
500
+
501
+ **Type change:** `WorkflowState.error` and `WorkflowRunState.error` types changed from `string | Error` to `SerializedError`.
502
+
503
+ Other changes:
504
+ - Added `UpdateWorkflowStateOptions` type for workflow state updates
505
+
506
+ - Improved TypeScript type inference for workflow steps. ([#11953](https://github.com/mastra-ai/mastra/pull/11953))
507
+
508
+ **What changed:**
509
+ - Step input/output type mismatches are now caught at compile time when chaining steps with `.then()`
510
+ - The `execute` function now properly infers types from `inputSchema`, `outputSchema`, `stateSchema`, and other schema parameters
511
+ - Clearer error messages when step types don't match workflow requirements
512
+
513
+ **Why:**
514
+ Previously, type errors in workflow step chains would only surface at runtime. Now TypeScript validates that each step's input requirements are satisfied by the previous step's output, helping you catch integration issues earlier in development.
515
+
141
516
  - fix resumeStream type to use resumeSchema ([#10202](https://github.com/mastra-ai/mastra/pull/10202))
142
517
 
518
+ - feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
519
+
520
+ Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
521
+ - `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
522
+ - `withNestedWorkflows`: Control whether to fetch nested workflow data
523
+
524
+ This significantly reduces response payload size and improves response times for large workflows.
525
+
526
+ ## Server Endpoint Usage
527
+
528
+ ```http
529
+ # Get only status (minimal payload - fastest)
530
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
531
+
532
+ # Get status and result
533
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
534
+
535
+ # Get all fields but without nested workflow data (faster)
536
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
537
+
538
+ # Get only specific fields without nested workflow data
539
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
540
+
541
+ # Get full data (default behavior)
542
+ GET /api/workflows/:workflowId/runs/:runId/execution-result
543
+ ```
544
+
545
+ ## Client SDK Usage
546
+
547
+ ```typescript
548
+ import { MastraClient } from '@mastra/client-js';
549
+
550
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
551
+ const workflow = client.getWorkflow('myWorkflow');
552
+
553
+ // Get only status (minimal payload - fastest)
554
+ const statusOnly = await workflow.runExecutionResult(runId, {
555
+ fields: ['status'],
556
+ });
557
+ console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
558
+
559
+ // Get status and result
560
+ const statusAndResult = await workflow.runExecutionResult(runId, {
561
+ fields: ['status', 'result'],
562
+ });
563
+
564
+ // Get all fields but without nested workflow data (faster)
565
+ const resultWithoutNested = await workflow.runExecutionResult(runId, {
566
+ withNestedWorkflows: false,
567
+ });
568
+
569
+ // Get specific fields without nested workflow data
570
+ const optimized = await workflow.runExecutionResult(runId, {
571
+ fields: ['status', 'steps'],
572
+ withNestedWorkflows: false,
573
+ });
574
+
575
+ // Get full execution result (default behavior)
576
+ const fullResult = await workflow.runExecutionResult(runId);
577
+ ```
578
+
579
+ ## Core API Changes
580
+
581
+ The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
582
+
583
+ ```typescript
584
+ await workflow.getWorkflowRunExecutionResult(runId, {
585
+ withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
586
+ fields: ['status', 'result'], // optional field filtering
587
+ });
588
+ ```
589
+
590
+ ## Inngest Compatibility
591
+
592
+ The `@mastra/inngest` package has been updated to use the new options object API. This is a non-breaking internal change - no action required from inngest workflow users.
593
+
594
+ ## Performance Impact
595
+
596
+ For workflows with large step outputs:
597
+ - Requesting only `status`: ~99% reduction in payload size
598
+ - Requesting `status,result,error`: ~95% reduction in payload size
599
+ - Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
600
+ - Combining both: Maximum performance optimization
601
+
602
+ - Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
603
+
604
+ ### Summary
605
+
606
+ This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
607
+
608
+ ### Migration Guide
609
+
610
+ All direct method calls on storage instances should be updated to use `getStore()`:
611
+
612
+ ```typescript
613
+ // Before
614
+ const thread = await storage.getThreadById({ threadId });
615
+ await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
616
+ await storage.createSpan(span);
617
+
618
+ // After
619
+ const memory = await storage.getStore('memory');
620
+ const thread = await memory?.getThreadById({ threadId });
621
+
622
+ const workflows = await storage.getStore('workflows');
623
+ await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
624
+
625
+ const observability = await storage.getStore('observability');
626
+ await observability?.createSpan(span);
627
+ ```
628
+
629
+ ### Available Domains
630
+ - **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
631
+ - **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
632
+ - **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
633
+ - **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
634
+ - **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
635
+
636
+ ### Breaking Changes
637
+ - Passthrough methods have been removed from `MastraStorage` base class
638
+ - All storage adapters now require accessing domains via `getStore()`
639
+ - The `stores` property on storage instances is now the canonical way to access domain storage
640
+
641
+ ### Internal Changes
642
+ - Each storage adapter now initializes domain-specific stores in its constructor
643
+ - Domain stores share database connections and handle their own table initialization
644
+
143
645
  - Add tool call approval ([#8649](https://github.com/mastra-ai/mastra/pull/8649))
144
646
 
647
+ - Add debugger-like click-through UI to workflow graph ([#11350](https://github.com/mastra-ai/mastra/pull/11350))
648
+
649
+ - Using `createStep` with a nested Inngest workflow now returns the workflow itself, maintaining the correct `.invoke()` execution flow Inngest workflows need to operate. ([#10689](https://github.com/mastra-ai/mastra/pull/10689))
650
+
651
+ - Refactored default engine to fit durable execution better, and the inngest engine to match. ([#10627](https://github.com/mastra-ai/mastra/pull/10627))
652
+ Also fixes requestContext persistence by relying on inngest step memoization.
653
+
654
+ Unifies some of the stepResults and error formats in both engines.
655
+
656
+ - Add `perStep` option to workflow run methods, allowing a workflow to run just a step instead of all the workflow steps ([#11276](https://github.com/mastra-ai/mastra/pull/11276))
657
+
658
+ - Miscellanous bug fixes and test fixes: ([#10515](https://github.com/mastra-ai/mastra/pull/10515))
659
+ - cloneWorkflow passing options correctly
660
+ - start event in streamLegacy
661
+ - Many test cases with outdated or incorrect expected values
662
+
145
663
  - Added support for .streamVNext and .stream that uses it in the inngest execution engine ([#9434](https://github.com/mastra-ai/mastra/pull/9434))
146
664
 
147
665
  - Add restart method to workflow run that allows restarting an active workflow run ([#9750](https://github.com/mastra-ai/mastra/pull/9750))
@@ -150,6 +668,10 @@
150
668
 
151
669
  - Prevent changing workflow status to suspended when some parallel steps are still running ([#9431](https://github.com/mastra-ai/mastra/pull/9431))
152
670
 
671
+ - Fix custom error properties being lost through Inngest serialization ([#11962](https://github.com/mastra-ai/mastra/pull/11962))
672
+
673
+ Inngest's error serialization only captures standard Error properties (message, name, stack, code, cause). Custom properties like `statusCode`, `responseHeaders`, or `isRetryable` from API/AI SDK errors were being stripped during serialization. Errors are now wrapped with a cause structure that preserves custom properties through the serialization boundary.
674
+
153
675
  - Validate schemas by default in workflow. Previously, if you want schemas in the workflow to be validated, you'd have to add `validateInputs` option, now, this will be done by default but can be disabled. ([#10186](https://github.com/mastra-ai/mastra/pull/10186))
154
676
 
155
677
  For workflows whose schemas and step schemas you don't want validated, do this
@@ -168,6 +690,34 @@
168
690
 
169
691
  - Remove `waitForEvent` from workflows. `waitForEvent` is now removed, please use suspend & resume flow instead. See https://mastra.ai/en/docs/workflows/suspend-and-resume for more details on suspend & resume flow. ([#9214](https://github.com/mastra-ai/mastra/pull/9214))
170
692
 
693
+ - Emit workflow-step-result and workflow-step-finish when step fails in inngest workflow ([#10555](https://github.com/mastra-ai/mastra/pull/10555))
694
+
695
+ - Real-time span export for Inngest workflow engine ([#11973](https://github.com/mastra-ai/mastra/pull/11973))
696
+ - Spans are now exported immediately when created and ended, instead of being batched at workflow completion
697
+ - Added durable span lifecycle hooks (`createStepSpan`, `endStepSpan`, `errorStepSpan`, `createChildSpan`, `endChildSpan`, `errorChildSpan`) that wrap span operations in Inngest's `step.run()` for memoization
698
+ - Added `rebuildSpan()` method to reconstruct span objects from exported data after Inngest replay
699
+ - Fixed nested workflow step spans missing output data
700
+ - Spans correctly maintain parent-child relationships across Inngest's durable execution boundaries using `tracingIds`
701
+
702
+ - Support new Workflow tripwire run status. Tripwires that are thrown from within a workflow will now bubble up and return a graceful state with information about tripwires. ([#10947](https://github.com/mastra-ai/mastra/pull/10947))
703
+
704
+ When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
705
+
706
+ ```typescript
707
+ const run = await workflow.createRun();
708
+ const result = await run.start({ inputData: { message: 'Hello' } });
709
+
710
+ if (result.status === 'tripwire') {
711
+ console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
712
+ console.log('Processor ID:', result.tripwire?.processorId);
713
+ console.log('Retry requested:', result.tripwire?.retry);
714
+ }
715
+ ```
716
+
717
+ Adds new UI state for tripwire in agent chat and workflow UI.
718
+
719
+ This is distinct from `status: 'failed'` which indicates an unexpected error. A tripwire status means a processor intentionally stopped execution (e.g., for content moderation).
720
+
171
721
  - Add timeTravel to workflows. This makes it possible to start a workflow run from a particular step in the workflow ([#9994](https://github.com/mastra-ai/mastra/pull/9994))
172
722
 
173
723
  Example code:
@@ -181,12 +731,751 @@
181
731
  });
182
732
  ```
183
733
 
734
+ - 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))
735
+
736
+ **What changed:**
737
+ - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
738
+ - Added optional `fields` parameter to request only specific fields for better performance
739
+ - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
740
+ - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
741
+ - Removed `/execution-result` API endpoints from server (breaking change)
742
+ - Removed `runExecutionResult()` method from client SDK (breaking change)
743
+ - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
744
+
745
+ **Before:**
746
+
747
+ ```typescript
748
+ // Had to call two different methods for different data
749
+ const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
750
+ const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
751
+ ```
752
+
753
+ **After:**
754
+
755
+ ```typescript
756
+ // Single method returns everything
757
+ const run = await workflow.getWorkflowRunById(runId);
758
+ // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
759
+
760
+ // Request only specific fields for better performance (avoids expensive step fetching)
761
+ const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
762
+
763
+ // Skip nested workflow steps for faster response
764
+ const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
765
+ ```
766
+
767
+ **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.
768
+
184
769
  - Make suspendPayload optional when calling `suspend()` ([#9926](https://github.com/mastra-ai/mastra/pull/9926))
185
770
  Save value returned as `suspendOutput` if user returns data still after calling `suspend()`
186
771
  Automatically call `commit()` on uncommitted workflows when registering in Mastra instance
187
772
  Show actual suspendPayload on Studio in suspend/resume flow
188
- - Updated dependencies [[`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
189
- - @mastra/core@0.0.0-span-scorring-test-20251124132129
773
+
774
+ - Fix observability tracing for Inngest workflows ([#11885](https://github.com/mastra-ai/mastra/pull/11885))
775
+ - Use SpanCollector to capture span hierarchy during execution and create real spans in the memoized finalize step
776
+ - Fix span timing by using step result `startedAt`/`endedAt` (memoized by Inngest) instead of replay-time timestamps
777
+ - Ensures proper parent-child span relationships and accurate durations in traces
778
+ - Multi-replica safe: no shared state needed across server instances
779
+
780
+ - 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))
781
+
782
+ ```typescript
783
+ const workflow = createWorkflow({
784
+ id: 'scheduled-workflow',
785
+ inputSchema: z.object({ value: z.string() }),
786
+ outputSchema: z.object({ result: z.string() }),
787
+ steps: [step1],
788
+ cron: '0 0 * * *', // Run daily at midnight
789
+ inputData: { value: 'scheduled-run' }, // Optional inputData for the scheduled workflow run
790
+ initialState: { count: 0 }, // Optional initialState for the scheduled workflow run
791
+ });
792
+ ```
793
+
794
+ - Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`2319326`](https://github.com/mastra-ai/mastra/commit/2319326f8c64e503a09bbcf14be2dd65405445e0), [`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`08766f1`](https://github.com/mastra-ai/mastra/commit/08766f15e13ac0692fde2a8bd366c2e16e4321df), [`72df8ae`](https://github.com/mastra-ai/mastra/commit/72df8ae595584cdd7747d5c39ffaca45e4507227), [`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c8417b4`](https://github.com/mastra-ai/mastra/commit/c8417b41d9f3486854dc7842d977fbe5e2166264), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`1dbd8c7`](https://github.com/mastra-ai/mastra/commit/1dbd8c729fb6536ec52f00064d76b80253d346e9), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`3076c67`](https://github.com/mastra-ai/mastra/commit/3076c6778b18988ae7d5c4c5c466366974b2d63f), [`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`9198899`](https://github.com/mastra-ai/mastra/commit/91988995c427b185c33714b7f3be955367911324), [`ed3e3dd`](https://github.com/mastra-ai/mastra/commit/ed3e3ddec69d564fe2b125e083437f76331f1283), [`c59e13c`](https://github.com/mastra-ai/mastra/commit/c59e13c7688284bd96b2baee3e314335003548de), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`e54953e`](https://github.com/mastra-ai/mastra/commit/e54953ed8ce1b28c0d62a19950163039af7834b4), [`ae8baf7`](https://github.com/mastra-ai/mastra/commit/ae8baf7d8adcb0ff9dac11880400452bc49b33ff), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85d7ee1`](https://github.com/mastra-ai/mastra/commit/85d7ee18ff4e14d625a8a30ec6656bb49804989b), [`c6c1092`](https://github.com/mastra-ai/mastra/commit/c6c1092f8fbf76109303f69e000e96fd1960c4ce), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`910db9e`](https://github.com/mastra-ai/mastra/commit/910db9e0312888495eb5617b567f247d03303814), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`d629361`](https://github.com/mastra-ai/mastra/commit/d629361a60f6565b5bfb11976fdaf7308af858e2), [`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`6833c69`](https://github.com/mastra-ai/mastra/commit/6833c69607418d257750bbcdd84638993d343539), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`08c31c1`](https://github.com/mastra-ai/mastra/commit/08c31c188ebccd598acaf55e888b6397d01f7eae), [`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`0d41fe2`](https://github.com/mastra-ai/mastra/commit/0d41fe245355dfc66d61a0d9c85d9400aac351ff), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`47b1c16`](https://github.com/mastra-ai/mastra/commit/47b1c16a01c7ffb6765fe1e499b49092f8b7eba3), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`7d56d92`](https://github.com/mastra-ai/mastra/commit/7d56d9213886e8353956d7d40df10045fd12b299), [`81dc110`](https://github.com/mastra-ai/mastra/commit/81dc11008d147cf5bdc8996ead1aa61dbdebb6fc), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`653e65a`](https://github.com/mastra-ai/mastra/commit/653e65ae1f9502c2958a32f47a5a2df11e612a92), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`fd3d338`](https://github.com/mastra-ai/mastra/commit/fd3d338a2c362174ed5b383f1f011ad9fb0302aa), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`7aedb74`](https://github.com/mastra-ai/mastra/commit/7aedb74883adf66af38e270e4068fd42e7a37036), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`c6fd6fe`](https://github.com/mastra-ai/mastra/commit/c6fd6fedd09e9cf8004b03a80925f5e94826ad7e), [`8f02d80`](https://github.com/mastra-ai/mastra/commit/8f02d800777397e4b45d7f1ad041988a8b0c6630), [`fdac646`](https://github.com/mastra-ai/mastra/commit/fdac646033a0930a1a4e00d13aa64c40bb7f1e02), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`d07b568`](https://github.com/mastra-ai/mastra/commit/d07b5687819ea8cb1dffa776d0c1765faf4aa1ae), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`c30400a`](https://github.com/mastra-ai/mastra/commit/c30400a49b994b1b97256fe785eb6c906fc2b232), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`d7aad50`](https://github.com/mastra-ai/mastra/commit/d7aad501ce61646b76b4b511e558ac4eea9884d0), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`69e0a87`](https://github.com/mastra-ai/mastra/commit/69e0a878896a2da9494945d86e056a5f8f05b851), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`352a5d6`](https://github.com/mastra-ai/mastra/commit/352a5d625cfe09849b21e8f52a24c9f0366759d5), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`3a76a80`](https://github.com/mastra-ai/mastra/commit/3a76a80284cb71a0faa975abb3d4b2a9631e60cd), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`026b848`](https://github.com/mastra-ai/mastra/commit/026b8483fbf5b6d977be8f7e6aac8d15c75558ac), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`f9a2509`](https://github.com/mastra-ai/mastra/commit/f9a25093ea72d210a5e52cfcb3bcc8b5e02dc25c), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`01f8878`](https://github.com/mastra-ai/mastra/commit/01f88783de25e4de048c1c8aace43e26373c6ea5), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`4c77209`](https://github.com/mastra-ai/mastra/commit/4c77209e6c11678808b365d545845918c40045c8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d827d08`](https://github.com/mastra-ai/mastra/commit/d827d0808ffe1f3553a84e975806cc989b9735dd), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`7a010c5`](https://github.com/mastra-ai/mastra/commit/7a010c56b846a313a49ae42fccd3d8de2b9f292d), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`8538a0d`](https://github.com/mastra-ai/mastra/commit/8538a0d232619bf55dad7ddc2a8b0ca77c679a87), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`23c10a1`](https://github.com/mastra-ai/mastra/commit/23c10a1efdd9a693c405511ab2dc8a1236603162), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`68ec97d`](https://github.com/mastra-ai/mastra/commit/68ec97d4c07c6393fcf95c2481fc5d73da99f8c8), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`cfabdd4`](https://github.com/mastra-ai/mastra/commit/cfabdd4aae7a726b706942d6836eeca110fb6267), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`dd4f34c`](https://github.com/mastra-ai/mastra/commit/dd4f34c78cbae24063463475b0619575c415f9b8), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`a0a5b4b`](https://github.com/mastra-ai/mastra/commit/a0a5b4bbebe6c701ebbadf744873aa0d5ca01371), [`ce0a73a`](https://github.com/mastra-ai/mastra/commit/ce0a73abeaa75b10ca38f9e40a255a645d50ebfb), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`69ea758`](https://github.com/mastra-ai/mastra/commit/69ea758358edd7117f191c2e69c8bb5fc79e7a1a), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`a02e542`](https://github.com/mastra-ai/mastra/commit/a02e542d23179bad250b044b17ff023caa61739f), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`6b3ba91`](https://github.com/mastra-ai/mastra/commit/6b3ba91494cc10394df96782f349a4f7b1e152cc), [`a372c64`](https://github.com/mastra-ai/mastra/commit/a372c640ad1fd12e8f0613cebdc682fc156b4d95), [`993ad98`](https://github.com/mastra-ai/mastra/commit/993ad98d7ad3bebda9ecef5fec5c94349a0d04bc), [`676ccc7`](https://github.com/mastra-ai/mastra/commit/676ccc7fe92468d2d45d39c31a87825c89fd1ea0), [`3ff2c17`](https://github.com/mastra-ai/mastra/commit/3ff2c17a58e312fad5ea37377262c12d92ca0908), [`a0e437f`](https://github.com/mastra-ai/mastra/commit/a0e437fac561b28ee719e0302d72b2f9b4c138f0), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`c10398d`](https://github.com/mastra-ai/mastra/commit/c10398d5b88f1d4af556f4267ff06f1d11e89179), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`8846867`](https://github.com/mastra-ai/mastra/commit/8846867ffa9a3746767618e314bebac08eb77d87), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`9312dcd`](https://github.com/mastra-ai/mastra/commit/9312dcd1c6f5b321929e7d382e763d95fdc030f5), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`00c2387`](https://github.com/mastra-ai/mastra/commit/00c2387f5f04a365316f851e58666ac43f8c4edf), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`ad6250d`](https://github.com/mastra-ai/mastra/commit/ad6250dbdaad927e29f74a27b83f6c468b50a705), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`42a42cf`](https://github.com/mastra-ai/mastra/commit/42a42cf3132b9786feecbb8c13c583dce5b0e198), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`50fd320`](https://github.com/mastra-ai/mastra/commit/50fd320003d0d93831c230ef531bef41f5ba7b3a), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`3a73998`](https://github.com/mastra-ai/mastra/commit/3a73998fa4ebeb7f3dc9301afe78095fc63e7999), [`ffa553a`](https://github.com/mastra-ai/mastra/commit/ffa553a3edc1bd17d73669fba66d6b6f4ac10897), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`ae08bf0`](https://github.com/mastra-ai/mastra/commit/ae08bf0ebc6a4e4da992b711c4a389c32ba84cf4), [`0bed332`](https://github.com/mastra-ai/mastra/commit/0bed332843f627202c6520eaf671771313cd20f3), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`bec5efd`](https://github.com/mastra-ai/mastra/commit/bec5efde96653ccae6604e68c696d1bc6c1a0bf5), [`5947fcd`](https://github.com/mastra-ai/mastra/commit/5947fcdd425531f29f9422026d466c2ee3113c93), [`4aa55b3`](https://github.com/mastra-ai/mastra/commit/4aa55b383cf06043943359ea316572fd969861a7), [`21735a7`](https://github.com/mastra-ai/mastra/commit/21735a7ef306963554a69a89b44f06c3bcd85141), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`7907fd1`](https://github.com/mastra-ai/mastra/commit/7907fd1c5059813b7b870b81ca71041dc807331b), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`9eedf7d`](https://github.com/mastra-ai/mastra/commit/9eedf7de1d6e0022a2f4e5e9e6fe1ec468f9b43c), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde), [`e16d553`](https://github.com/mastra-ai/mastra/commit/e16d55338403c7553531cc568125c63d53653dff), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`1d877b8`](https://github.com/mastra-ai/mastra/commit/1d877b8d7b536a251c1a7a18db7ddcf4f68d6f8b), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc), [`4d59f58`](https://github.com/mastra-ai/mastra/commit/4d59f58de2d90d6e2810a19d4518e38ddddb9038), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e1bb9c9`](https://github.com/mastra-ai/mastra/commit/e1bb9c94b4eb68b019ae275981be3feb769b5365), [`351a11f`](https://github.com/mastra-ai/mastra/commit/351a11fcaf2ed1008977fa9b9a489fc422e51cd4), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`465ac05`](https://github.com/mastra-ai/mastra/commit/465ac0526a91d175542091c675181f1a96c98c46), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393), [`e7266a2`](https://github.com/mastra-ai/mastra/commit/e7266a278db02035c97a5e9cd9d1669a6b7a535d), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
795
+ - @mastra/core@1.0.0
796
+
797
+ ## 1.0.0-beta.13
798
+
799
+ ### Major Changes
800
+
801
+ - Refactor workflow and tool types to remove Zod-specific constraints ([#11814](https://github.com/mastra-ai/mastra/pull/11814))
802
+
803
+ Removed Zod-specific type constraints across all workflow implementations and tool types, replacing them with generic types. This ensures type consistency across default, evented, and inngest workflows while preparing for Zod v4 migration.
804
+
805
+ **Workflow Changes:**
806
+ - Removed `z.ZodObject<any>` and `z.ZodType<any>` constraints from all workflow generic types
807
+ - Updated method signatures to use `TInput` and `TState` directly instead of `z.infer<TInput>` and `z.infer<TState>`
808
+ - Aligned conditional types across all workflow implementations using `TInput extends unknown` pattern
809
+ - Fixed `TSteps` generic to properly use `TEngineType` instead of `any`
810
+
811
+ **Tool Changes:**
812
+ - Removed Zod schema constraints from `ToolExecutionContext` and related interfaces
813
+ - Simplified type parameters from `TSuspendSchema extends ZodLikeSchema` to `TSuspend` and `TResume`
814
+ - Updated tool execution context types to use generic types
815
+
816
+ **Type Utilities:**
817
+ - Refactored type helpers to work with generic schemas instead of Zod-specific types
818
+ - Updated type extraction utilities for better compatibility
819
+
820
+ This change maintains backward compatibility while improving type consistency and preparing for Zod v4 support across all affected packages.
821
+
822
+ - **Breaking Change**: Convert OUTPUT generic from `OutputSchema` constraint to plain generic ([#11741](https://github.com/mastra-ai/mastra/pull/11741))
823
+
824
+ This change removes the direct dependency on Zod typings in the public API by converting all `OUTPUT extends OutputSchema` generic constraints to plain `OUTPUT` generics throughout the codebase. This is preparation for moving to a standard schema approach.
825
+ - All generic type parameters previously constrained to `OutputSchema` (e.g., `<OUTPUT extends OutputSchema = undefined>`) are now plain generics with defaults (e.g., `<OUTPUT = undefined>`)
826
+ - Affects all public APIs including `Agent`, `MastraModelOutput`, `AgentExecutionOptions`, and stream/generate methods
827
+ - `InferSchemaOutput<OUTPUT>` replaced with `OUTPUT` throughout
828
+ - `PartialSchemaOutput<OUTPUT>` replaced with `Partial<OUTPUT>`
829
+ - Schema fields now use `NonNullable<OutputSchema<OUTPUT>>` instead of `OUTPUT` directly
830
+ - Added `FullOutput<OUTPUT>` type representing complete output with all fields
831
+ - Added `AgentExecutionOptionsBase<OUTPUT>` type
832
+ - `getFullOutput()` method now returns `Promise<FullOutput<OUTPUT>>`
833
+ - `Agent` class now generic: `Agent<TAgentId, TTools, TOutput>`
834
+ - `agent.generate()` and `agent.stream()` methods have updated signatures
835
+ - `MastraModelOutput<OUTPUT>` no longer requires `OutputSchema` constraint
836
+ - Network route and streaming APIs updated to use plain OUTPUT generic
837
+
838
+ **Before:**
839
+
840
+ ```typescript
841
+ const output = await agent.generate<z.ZodType>({
842
+ messages: [...],
843
+ structuredOutput: { schema: mySchema }
844
+ });
845
+
846
+ **After:**
847
+ const output = await agent.generate<z.infer<typeof mySchema>>({
848
+ messages: [...],
849
+ structuredOutput: { schema: mySchema }
850
+ });
851
+ // Or rely on type inference:
852
+ const output = await agent.generate({
853
+ messages: [...],
854
+ structuredOutput: { schema: mySchema }
855
+ });
856
+
857
+ ```
858
+
859
+ ### Patch Changes
860
+
861
+ - Improved TypeScript type inference for workflow steps. ([#11953](https://github.com/mastra-ai/mastra/pull/11953))
862
+
863
+ **What changed:**
864
+ - Step input/output type mismatches are now caught at compile time when chaining steps with `.then()`
865
+ - The `execute` function now properly infers types from `inputSchema`, `outputSchema`, `stateSchema`, and other schema parameters
866
+ - Clearer error messages when step types don't match workflow requirements
867
+
868
+ **Why:**
869
+ Previously, type errors in workflow step chains would only surface at runtime. Now TypeScript validates that each step's input requirements are satisfied by the previous step's output, helping you catch integration issues earlier in development.
870
+
871
+ - Fix custom error properties being lost through Inngest serialization ([#11962](https://github.com/mastra-ai/mastra/pull/11962))
872
+
873
+ Inngest's error serialization only captures standard Error properties (message, name, stack, code, cause). Custom properties like `statusCode`, `responseHeaders`, or `isRetryable` from API/AI SDK errors were being stripped during serialization. Errors are now wrapped with a cause structure that preserves custom properties through the serialization boundary.
874
+
875
+ - Real-time span export for Inngest workflow engine ([#11973](https://github.com/mastra-ai/mastra/pull/11973))
876
+ - Spans are now exported immediately when created and ended, instead of being batched at workflow completion
877
+ - Added durable span lifecycle hooks (`createStepSpan`, `endStepSpan`, `errorStepSpan`, `createChildSpan`, `endChildSpan`, `errorChildSpan`) that wrap span operations in Inngest's `step.run()` for memoization
878
+ - Added `rebuildSpan()` method to reconstruct span objects from exported data after Inngest replay
879
+ - Fixed nested workflow step spans missing output data
880
+ - Spans correctly maintain parent-child relationships across Inngest's durable execution boundaries using `tracingIds`
881
+
882
+ - Fix observability tracing for Inngest workflows ([#11885](https://github.com/mastra-ai/mastra/pull/11885))
883
+ - Use SpanCollector to capture span hierarchy during execution and create real spans in the memoized finalize step
884
+ - Fix span timing by using step result `startedAt`/`endedAt` (memoized by Inngest) instead of replay-time timestamps
885
+ - Ensures proper parent-child span relationships and accurate durations in traces
886
+ - Multi-replica safe: no shared state needed across server instances
887
+
888
+ - Updated dependencies [[`ebae12a`](https://github.com/mastra-ai/mastra/commit/ebae12a2dd0212e75478981053b148a2c246962d), [`c61a0a5`](https://github.com/mastra-ai/mastra/commit/c61a0a5de4904c88fd8b3718bc26d1be1c2ec6e7), [`69136e7`](https://github.com/mastra-ai/mastra/commit/69136e748e32f57297728a4e0f9a75988462f1a7), [`449aed2`](https://github.com/mastra-ai/mastra/commit/449aed2ba9d507b75bf93d427646ea94f734dfd1), [`eb648a2`](https://github.com/mastra-ai/mastra/commit/eb648a2cc1728f7678768dd70cd77619b448dab9), [`0131105`](https://github.com/mastra-ai/mastra/commit/0131105532e83bdcbb73352fc7d0879eebf140dc), [`9d5059e`](https://github.com/mastra-ai/mastra/commit/9d5059eae810829935fb08e81a9bb7ecd5b144a7), [`ef756c6`](https://github.com/mastra-ai/mastra/commit/ef756c65f82d16531c43f49a27290a416611e526), [`b00ccd3`](https://github.com/mastra-ai/mastra/commit/b00ccd325ebd5d9e37e34dd0a105caae67eb568f), [`3bdfa75`](https://github.com/mastra-ai/mastra/commit/3bdfa7507a91db66f176ba8221aa28dd546e464a), [`e770de9`](https://github.com/mastra-ai/mastra/commit/e770de941a287a49b1964d44db5a5763d19890a6), [`52e2716`](https://github.com/mastra-ai/mastra/commit/52e2716b42df6eff443de72360ae83e86ec23993), [`27b4040`](https://github.com/mastra-ai/mastra/commit/27b4040bfa1a95d92546f420a02a626b1419a1d6), [`610a70b`](https://github.com/mastra-ai/mastra/commit/610a70bdad282079f0c630e0d7bb284578f20151), [`8dc7f55`](https://github.com/mastra-ai/mastra/commit/8dc7f55900395771da851dc7d78d53ae84fe34ec), [`8379099`](https://github.com/mastra-ai/mastra/commit/8379099fc467af6bef54dd7f80c9bd75bf8bbddf), [`8c0ec25`](https://github.com/mastra-ai/mastra/commit/8c0ec25646c8a7df253ed1e5ff4863a0d3f1316c), [`ff4d9a6`](https://github.com/mastra-ai/mastra/commit/ff4d9a6704fc87b31a380a76ed22736fdedbba5a), [`69821ef`](https://github.com/mastra-ai/mastra/commit/69821ef806482e2c44e2197ac0b050c3fe3a5285), [`1ed5716`](https://github.com/mastra-ai/mastra/commit/1ed5716830867b3774c4a1b43cc0d82935f32b96), [`4186bdd`](https://github.com/mastra-ai/mastra/commit/4186bdd00731305726fa06adba0b076a1d50b49f), [`7aaf973`](https://github.com/mastra-ai/mastra/commit/7aaf973f83fbbe9521f1f9e7a4fd99b8de464617)]:
889
+ - @mastra/core@1.0.0-beta.22
890
+
891
+ ## 1.0.0-beta.12
892
+
893
+ ### Minor Changes
894
+
895
+ - Added `createServe` factory function to support multiple web framework adapters for Inngest workflows. ([#11667](https://github.com/mastra-ai/mastra/pull/11667))
896
+
897
+ 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).
898
+
899
+ **Before (Hono only)**
900
+
901
+ ```typescript
902
+ import { serve } from '@mastra/inngest';
903
+
904
+ // Only worked with Hono
905
+ app.all('/api/inngest', c => serve({ mastra, inngest })(c));
906
+ ```
907
+
908
+ **After (any framework)**
909
+
910
+ ```typescript
911
+ import { createServe } from '@mastra/inngest';
912
+ import { serve as expressAdapter } from 'inngest/express';
913
+ import { serve as fastifyAdapter } from 'inngest/fastify';
914
+
915
+ // Express
916
+ app.use('/api/inngest', createServe(expressAdapter)({ mastra, inngest }));
917
+
918
+ // Fastify
919
+ fastify.route({
920
+ method: ['GET', 'POST', 'PUT'],
921
+ url: '/api/inngest',
922
+ handler: createServe(fastifyAdapter)({ mastra, inngest }),
923
+ });
924
+ ```
925
+
926
+ The existing `serve` export remains available for backward compatibility with Hono.
927
+
928
+ Fixes #10053
929
+
930
+ ### Patch Changes
931
+
932
+ - Add additional context to workflow `onFinish` and `onError` callbacks ([#11705](https://github.com/mastra-ai/mastra/pull/11705))
933
+
934
+ The `onFinish` and `onError` lifecycle callbacks now receive additional properties:
935
+ - `runId` - The unique identifier for the workflow run
936
+ - `workflowId` - The workflow's identifier
937
+ - `resourceId` - Optional resource identifier (if provided when creating the run)
938
+ - `getInitData()` - Function that returns the initial input data passed to the workflow
939
+ - `mastra` - The Mastra instance (if workflow is registered with Mastra)
940
+ - `requestContext` - Request-scoped context data
941
+ - `logger` - The workflow's logger instance
942
+ - `state` - The workflow's current state object
943
+
944
+ ```typescript
945
+ const workflow = createWorkflow({
946
+ id: 'order-processing',
947
+ inputSchema: z.object({ orderId: z.string() }),
948
+ outputSchema: z.object({ status: z.string() }),
949
+ options: {
950
+ onFinish: async ({ runId, workflowId, getInitData, logger, state, mastra }) => {
951
+ const inputData = getInitData();
952
+ logger.info(`Workflow ${workflowId} run ${runId} completed`, {
953
+ orderId: inputData.orderId,
954
+ finalState: state,
955
+ });
956
+
957
+ // Access other Mastra components if needed
958
+ const agent = mastra?.getAgent('notification-agent');
959
+ },
960
+ onError: async ({ runId, workflowId, error, logger, requestContext }) => {
961
+ logger.error(`Workflow ${workflowId} run ${runId} failed: ${error?.message}`);
962
+ // Access request context for additional debugging
963
+ const userId = requestContext.get('userId');
964
+ },
965
+ },
966
+ });
967
+ ```
968
+
969
+ - Updated dependencies [[`08766f1`](https://github.com/mastra-ai/mastra/commit/08766f15e13ac0692fde2a8bd366c2e16e4321df), [`ae8baf7`](https://github.com/mastra-ai/mastra/commit/ae8baf7d8adcb0ff9dac11880400452bc49b33ff), [`cfabdd4`](https://github.com/mastra-ai/mastra/commit/cfabdd4aae7a726b706942d6836eeca110fb6267), [`a0e437f`](https://github.com/mastra-ai/mastra/commit/a0e437fac561b28ee719e0302d72b2f9b4c138f0), [`bec5efd`](https://github.com/mastra-ai/mastra/commit/bec5efde96653ccae6604e68c696d1bc6c1a0bf5), [`9eedf7d`](https://github.com/mastra-ai/mastra/commit/9eedf7de1d6e0022a2f4e5e9e6fe1ec468f9b43c)]:
970
+ - @mastra/core@1.0.0-beta.21
971
+
972
+ ## 1.0.0-beta.11
973
+
974
+ ### Patch Changes
975
+
976
+ - Add support for `retries` and `scorers` parameters across all `createStep` overloads.
977
+ ([#11495](https://github.com/mastra-ai/mastra/pull/11495))
978
+
979
+ 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.
980
+
981
+ ```typescript
982
+ import { init } from '@mastra/inngest';
983
+ import { z } from 'zod';
984
+
985
+ const { createStep } = init(inngest);
986
+
987
+ // 1. Regular step with retries
988
+ const regularStep = createStep({
989
+ id: 'api-call',
990
+ inputSchema: z.object({ url: z.string() }),
991
+ outputSchema: z.object({ data: z.any() }),
992
+ retries: 3, // ← Will retry up to 3 times on failure
993
+ execute: async ({ inputData }) => {
994
+ const response = await fetch(inputData.url);
995
+ return { data: await response.json() };
996
+ },
997
+ });
998
+
999
+ // 2. Agent step with retries and scorers
1000
+ const agentStep = createStep(myAgent, {
1001
+ retries: 3,
1002
+ scorers: [{ id: 'accuracy-scorer', scorer: myAccuracyScorer }],
1003
+ });
1004
+
1005
+ // 3. Tool step with retries and scorers
1006
+ const toolStep = createStep(myTool, {
1007
+ retries: 2,
1008
+ scorers: [{ id: 'quality-scorer', scorer: myQualityScorer }],
1009
+ });
1010
+ ```
1011
+
1012
+ This change ensures API consistency across all `createStep` overloads. All step types now support retry and evaluation configurations.
1013
+
1014
+ This is a non-breaking change - steps without these parameters continue to work exactly as before.
1015
+
1016
+ Fixes #9351
1017
+
1018
+ - Remove `streamVNext`, `resumeStreamVNext`, and `observeStreamVNext` methods, call `stream`, `resumeStream` and `observeStream` directly ([#11499](https://github.com/mastra-ai/mastra/pull/11499))
1019
+
1020
+ ```diff
1021
+ + const run = await workflow.createRun({ runId: '123' });
1022
+ - const stream = await run.streamVNext({ inputData: { ... } });
1023
+ + const stream = await run.stream({ inputData: { ... } });
1024
+ ```
1025
+
1026
+ - 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))
1027
+
1028
+ **What changed:**
1029
+ - `getWorkflowRunById` now returns a unified `WorkflowState` object containing metadata (runId, workflowName, resourceId, createdAt, updatedAt) along with processed execution state (status, result, error, payload, steps)
1030
+ - Added optional `fields` parameter to request only specific fields for better performance
1031
+ - Added optional `withNestedWorkflows` parameter to control nested workflow step inclusion
1032
+ - Removed `getWorkflowRunExecutionResult` - use `getWorkflowRunById` instead (breaking change)
1033
+ - Removed `/execution-result` API endpoints from server (breaking change)
1034
+ - Removed `runExecutionResult()` method from client SDK (breaking change)
1035
+ - Removed `GetWorkflowRunExecutionResultResponse` type from client SDK (breaking change)
1036
+
1037
+ **Before:**
1038
+
1039
+ ```typescript
1040
+ // Had to call two different methods for different data
1041
+ const run = await workflow.getWorkflowRunById(runId); // Returns raw WorkflowRun with snapshot
1042
+ const result = await workflow.getWorkflowRunExecutionResult(runId); // Returns processed execution state
1043
+ ```
1044
+
1045
+ **After:**
1046
+
1047
+ ```typescript
1048
+ // Single method returns everything
1049
+ const run = await workflow.getWorkflowRunById(runId);
1050
+ // Returns: { runId, workflowName, resourceId, createdAt, updatedAt, status, result, error, payload, steps }
1051
+
1052
+ // Request only specific fields for better performance (avoids expensive step fetching)
1053
+ const status = await workflow.getWorkflowRunById(runId, { fields: ['status'] });
1054
+
1055
+ // Skip nested workflow steps for faster response
1056
+ const run = await workflow.getWorkflowRunById(runId, { withNestedWorkflows: false });
1057
+ ```
1058
+
1059
+ **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.
1060
+
1061
+ - 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))
1062
+
1063
+ ```typescript
1064
+ const workflow = createWorkflow({
1065
+ id: 'scheduled-workflow',
1066
+ inputSchema: z.object({ value: z.string() }),
1067
+ outputSchema: z.object({ result: z.string() }),
1068
+ steps: [step1],
1069
+ cron: '0 0 * * *', // Run daily at midnight
1070
+ inputData: { value: 'scheduled-run' }, // Optional inputData for the scheduled workflow run
1071
+ initialState: { count: 0 }, // Optional initialState for the scheduled workflow run
1072
+ });
1073
+ ```
1074
+
1075
+ - Updated dependencies [[`d2d3e22`](https://github.com/mastra-ai/mastra/commit/d2d3e22a419ee243f8812a84e3453dd44365ecb0), [`bc72b52`](https://github.com/mastra-ai/mastra/commit/bc72b529ee4478fe89ecd85a8be47ce0127b82a0), [`05b8bee`](https://github.com/mastra-ai/mastra/commit/05b8bee9e50e6c2a4a2bf210eca25ee212ca24fa), [`c042bd0`](https://github.com/mastra-ai/mastra/commit/c042bd0b743e0e86199d0cb83344ca7690e34a9c), [`940a2b2`](https://github.com/mastra-ai/mastra/commit/940a2b27480626ed7e74f55806dcd2181c1dd0c2), [`e0941c3`](https://github.com/mastra-ai/mastra/commit/e0941c3d7fc75695d5d258e7008fd5d6e650800c), [`0c0580a`](https://github.com/mastra-ai/mastra/commit/0c0580a42f697cd2a7d5973f25bfe7da9055038a), [`28f5f89`](https://github.com/mastra-ai/mastra/commit/28f5f89705f2409921e3c45178796c0e0d0bbb64), [`e601b27`](https://github.com/mastra-ai/mastra/commit/e601b272c70f3a5ecca610373aa6223012704892), [`3d3366f`](https://github.com/mastra-ai/mastra/commit/3d3366f31683e7137d126a3a57174a222c5801fb), [`5a4953f`](https://github.com/mastra-ai/mastra/commit/5a4953f7d25bb15ca31ed16038092a39cb3f98b3), [`eb9e522`](https://github.com/mastra-ai/mastra/commit/eb9e522ce3070a405e5b949b7bf5609ca51d7fe2), [`20e6f19`](https://github.com/mastra-ai/mastra/commit/20e6f1971d51d3ff6dd7accad8aaaae826d540ed), [`4f0b3c6`](https://github.com/mastra-ai/mastra/commit/4f0b3c66f196c06448487f680ccbb614d281e2f7), [`74c4f22`](https://github.com/mastra-ai/mastra/commit/74c4f22ed4c71e72598eacc346ba95cdbc00294f), [`81b6a8f`](https://github.com/mastra-ai/mastra/commit/81b6a8ff79f49a7549d15d66624ac1a0b8f5f971), [`e4d366a`](https://github.com/mastra-ai/mastra/commit/e4d366aeb500371dd4210d6aa8361a4c21d87034), [`a4f010b`](https://github.com/mastra-ai/mastra/commit/a4f010b22e4355a5fdee70a1fe0f6e4a692cc29e), [`73b0bb3`](https://github.com/mastra-ai/mastra/commit/73b0bb394dba7c9482eb467a97ab283dbc0ef4db), [`5627a8c`](https://github.com/mastra-ai/mastra/commit/5627a8c6dc11fe3711b3fa7a6ffd6eb34100a306), [`3ff45d1`](https://github.com/mastra-ai/mastra/commit/3ff45d10e0c80c5335a957ab563da72feb623520), [`251df45`](https://github.com/mastra-ai/mastra/commit/251df4531407dfa46d805feb40ff3fb49769f455), [`f894d14`](https://github.com/mastra-ai/mastra/commit/f894d148946629af7b1f452d65a9cf864cec3765), [`c2b9547`](https://github.com/mastra-ai/mastra/commit/c2b9547bf435f56339f23625a743b2147ab1c7a6), [`580b592`](https://github.com/mastra-ai/mastra/commit/580b5927afc82fe460dfdf9a38a902511b6b7e7f), [`58e3931`](https://github.com/mastra-ai/mastra/commit/58e3931af9baa5921688566210f00fb0c10479fa), [`08bb631`](https://github.com/mastra-ai/mastra/commit/08bb631ae2b14684b2678e3549d0b399a6f0561e), [`4fba91b`](https://github.com/mastra-ai/mastra/commit/4fba91bec7c95911dc28e369437596b152b04cd0), [`12b0cc4`](https://github.com/mastra-ai/mastra/commit/12b0cc4077d886b1a552637dedb70a7ade93528c)]:
1076
+ - @mastra/core@1.0.0-beta.20
1077
+
1078
+ ## 1.0.0-beta.10
1079
+
1080
+ ### Minor Changes
1081
+
1082
+ - Unified observability schema with entity-based span identification ([#11132](https://github.com/mastra-ai/mastra/pull/11132))
1083
+
1084
+ ## What changed
1085
+
1086
+ Spans now use a unified identification model with `entityId`, `entityType`, and `entityName` instead of separate `agentId`, `toolId`, `workflowId` fields.
1087
+
1088
+ **Before:**
1089
+
1090
+ ```typescript
1091
+ // Old span structure
1092
+ span.agentId; // 'my-agent'
1093
+ span.toolId; // undefined
1094
+ span.workflowId; // undefined
1095
+ ```
1096
+
1097
+ **After:**
1098
+
1099
+ ```typescript
1100
+ // New span structure
1101
+ span.entityType; // EntityType.AGENT
1102
+ span.entityId; // 'my-agent'
1103
+ span.entityName; // 'My Agent'
1104
+ ```
1105
+
1106
+ ## New `listTraces()` API
1107
+
1108
+ Query traces with filtering, pagination, and sorting:
1109
+
1110
+ ```typescript
1111
+ const { spans, pagination } = await storage.listTraces({
1112
+ filters: {
1113
+ entityType: EntityType.AGENT,
1114
+ entityId: 'my-agent',
1115
+ userId: 'user-123',
1116
+ environment: 'production',
1117
+ status: TraceStatus.SUCCESS,
1118
+ startedAt: { start: new Date('2024-01-01'), end: new Date('2024-01-31') },
1119
+ },
1120
+ pagination: { page: 0, perPage: 50 },
1121
+ orderBy: { field: 'startedAt', direction: 'DESC' },
1122
+ });
1123
+ ```
1124
+
1125
+ **Available filters:** date ranges (`startedAt`, `endedAt`), entity (`entityType`, `entityId`, `entityName`), identity (`userId`, `organizationId`), correlation IDs (`runId`, `sessionId`, `threadId`), deployment (`environment`, `source`, `serviceName`), `tags`, `metadata`, and `status`.
1126
+
1127
+ ## New retrieval methods
1128
+ - `getSpan({ traceId, spanId })` - Get a single span
1129
+ - `getRootSpan({ traceId })` - Get the root span of a trace
1130
+ - `getTrace({ traceId })` - Get all spans for a trace
1131
+
1132
+ ## Backward compatibility
1133
+
1134
+ The legacy `getTraces()` method continues to work. When you pass `name: "agent run: my-agent"`, it automatically transforms to `entityId: "my-agent", entityType: AGENT`.
1135
+
1136
+ ## Migration
1137
+
1138
+ **Automatic:** SQL-based stores (PostgreSQL, LibSQL, MSSQL) automatically add new columns to existing `spans` tables on initialization. Existing data is preserved with new columns set to `NULL`.
1139
+
1140
+ **No action required:** Your existing code continues to work. Adopt the new fields and `listTraces()` API at your convenience.
1141
+
1142
+ ### Patch Changes
1143
+
1144
+ - Refactor storage architecture to use domain-specific stores via `getStore()` pattern ([#11361](https://github.com/mastra-ai/mastra/pull/11361))
1145
+
1146
+ ### Summary
1147
+
1148
+ This release introduces a new storage architecture that replaces passthrough methods on `MastraStorage` with domain-specific storage interfaces accessed via `getStore()`. This change reduces code duplication across storage adapters and provides a cleaner, more modular API.
1149
+
1150
+ ### Migration Guide
1151
+
1152
+ All direct method calls on storage instances should be updated to use `getStore()`:
1153
+
1154
+ ```typescript
1155
+ // Before
1156
+ const thread = await storage.getThreadById({ threadId });
1157
+ await storage.persistWorkflowSnapshot({ workflowName, runId, snapshot });
1158
+ await storage.createSpan(span);
1159
+
1160
+ // After
1161
+ const memory = await storage.getStore('memory');
1162
+ const thread = await memory?.getThreadById({ threadId });
1163
+
1164
+ const workflows = await storage.getStore('workflows');
1165
+ await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
1166
+
1167
+ const observability = await storage.getStore('observability');
1168
+ await observability?.createSpan(span);
1169
+ ```
1170
+
1171
+ ### Available Domains
1172
+ - **`memory`**: Thread and message operations (`getThreadById`, `saveThread`, `saveMessages`, etc.)
1173
+ - **`workflows`**: Workflow state persistence (`persistWorkflowSnapshot`, `loadWorkflowSnapshot`, `getWorkflowRunById`, etc.)
1174
+ - **`scores`**: Evaluation scores (`saveScore`, `listScoresByScorerId`, etc.)
1175
+ - **`observability`**: Tracing and spans (`createSpan`, `updateSpan`, `getTrace`, etc.)
1176
+ - **`agents`**: Stored agent configurations (`createAgent`, `getAgentById`, `listAgents`, etc.)
1177
+
1178
+ ### Breaking Changes
1179
+ - Passthrough methods have been removed from `MastraStorage` base class
1180
+ - All storage adapters now require accessing domains via `getStore()`
1181
+ - The `stores` property on storage instances is now the canonical way to access domain storage
1182
+
1183
+ ### Internal Changes
1184
+ - Each storage adapter now initializes domain-specific stores in its constructor
1185
+ - Domain stores share database connections and handle their own table initialization
1186
+
1187
+ - Add debugger-like click-through UI to workflow graph ([#11350](https://github.com/mastra-ai/mastra/pull/11350))
1188
+
1189
+ - Add `perStep` option to workflow run methods, allowing a workflow to run just a step instead of all the workflow steps ([#11276](https://github.com/mastra-ai/mastra/pull/11276))
1190
+
1191
+ - Updated dependencies [[`33a4d2e`](https://github.com/mastra-ai/mastra/commit/33a4d2e4ed8af51f69256232f00c34d6b6b51d48), [`4aaa844`](https://github.com/mastra-ai/mastra/commit/4aaa844a4f19d054490f43638a990cc57bda8d2f), [`4a1a6cb`](https://github.com/mastra-ai/mastra/commit/4a1a6cb3facad54b2bb6780b00ce91d6de1edc08), [`31d13d5`](https://github.com/mastra-ai/mastra/commit/31d13d5fdc2e2380e2e3ee3ec9fb29d2a00f265d), [`4c62166`](https://github.com/mastra-ai/mastra/commit/4c621669f4a29b1f443eca3ba70b814afa286266), [`7bcbf10`](https://github.com/mastra-ai/mastra/commit/7bcbf10133516e03df964b941f9a34e9e4ab4177), [`4353600`](https://github.com/mastra-ai/mastra/commit/43536005a65988a8eede236f69122e7f5a284ba2), [`6986fb0`](https://github.com/mastra-ai/mastra/commit/6986fb064f5db6ecc24aa655e1d26529087b43b3), [`053e979`](https://github.com/mastra-ai/mastra/commit/053e9793b28e970086b0507f7f3b76ea32c1e838), [`e26dc9c`](https://github.com/mastra-ai/mastra/commit/e26dc9c3ccfec54ae3dc3e2b2589f741f9ae60a6), [`55edf73`](https://github.com/mastra-ai/mastra/commit/55edf7302149d6c964fbb7908b43babfc2b52145), [`27c0009`](https://github.com/mastra-ai/mastra/commit/27c0009777a6073d7631b0eb7b481d94e165b5ca), [`dee388d`](https://github.com/mastra-ai/mastra/commit/dee388dde02f2e63c53385ae69252a47ab6825cc), [`3f3fc30`](https://github.com/mastra-ai/mastra/commit/3f3fc3096f24c4a26cffeecfe73085928f72aa63), [`d90ea65`](https://github.com/mastra-ai/mastra/commit/d90ea6536f7aa51c6545a4e9215b55858e98e16d), [`d171e55`](https://github.com/mastra-ai/mastra/commit/d171e559ead9f52ec728d424844c8f7b164c4510), [`10c2735`](https://github.com/mastra-ai/mastra/commit/10c27355edfdad1ee2b826b897df74125eb81fb8), [`1924cf0`](https://github.com/mastra-ai/mastra/commit/1924cf06816e5e4d4d5333065ec0f4bb02a97799), [`b339816`](https://github.com/mastra-ai/mastra/commit/b339816df0984d0243d944ac2655d6ba5f809cde)]:
1192
+ - @mastra/core@1.0.0-beta.15
1193
+
1194
+ ## 1.0.0-beta.9
1195
+
1196
+ ### Patch Changes
1197
+
1198
+ - feat: Add field filtering and nested workflow control to workflow execution result endpoint ([#11246](https://github.com/mastra-ai/mastra/pull/11246))
1199
+
1200
+ Adds two optional query parameters to `/api/workflows/:workflowId/runs/:runId/execution-result` endpoint:
1201
+ - `fields`: Request only specific fields (e.g., `status`, `result`, `error`)
1202
+ - `withNestedWorkflows`: Control whether to fetch nested workflow data
1203
+
1204
+ This significantly reduces response payload size and improves response times for large workflows.
1205
+
1206
+ ## Server Endpoint Usage
1207
+
1208
+ ```http
1209
+ # Get only status (minimal payload - fastest)
1210
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status
1211
+
1212
+ # Get status and result
1213
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,result
1214
+
1215
+ # Get all fields but without nested workflow data (faster)
1216
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?withNestedWorkflows=false
1217
+
1218
+ # Get only specific fields without nested workflow data
1219
+ GET /api/workflows/:workflowId/runs/:runId/execution-result?fields=status,steps&withNestedWorkflows=false
1220
+
1221
+ # Get full data (default behavior)
1222
+ GET /api/workflows/:workflowId/runs/:runId/execution-result
1223
+ ```
1224
+
1225
+ ## Client SDK Usage
1226
+
1227
+ ```typescript
1228
+ import { MastraClient } from '@mastra/client-js';
1229
+
1230
+ const client = new MastraClient({ baseUrl: 'http://localhost:4111' });
1231
+ const workflow = client.getWorkflow('myWorkflow');
1232
+
1233
+ // Get only status (minimal payload - fastest)
1234
+ const statusOnly = await workflow.runExecutionResult(runId, {
1235
+ fields: ['status'],
1236
+ });
1237
+ console.log(statusOnly.status); // 'success' | 'failed' | 'running' | etc.
1238
+
1239
+ // Get status and result
1240
+ const statusAndResult = await workflow.runExecutionResult(runId, {
1241
+ fields: ['status', 'result'],
1242
+ });
1243
+
1244
+ // Get all fields but without nested workflow data (faster)
1245
+ const resultWithoutNested = await workflow.runExecutionResult(runId, {
1246
+ withNestedWorkflows: false,
1247
+ });
1248
+
1249
+ // Get specific fields without nested workflow data
1250
+ const optimized = await workflow.runExecutionResult(runId, {
1251
+ fields: ['status', 'steps'],
1252
+ withNestedWorkflows: false,
1253
+ });
1254
+
1255
+ // Get full execution result (default behavior)
1256
+ const fullResult = await workflow.runExecutionResult(runId);
1257
+ ```
1258
+
1259
+ ## Core API Changes
1260
+
1261
+ The `Workflow.getWorkflowRunExecutionResult` method now accepts an options object:
1262
+
1263
+ ```typescript
1264
+ await workflow.getWorkflowRunExecutionResult(runId, {
1265
+ withNestedWorkflows: false, // default: true, set to false to skip nested workflow data
1266
+ fields: ['status', 'result'], // optional field filtering
1267
+ });
1268
+ ```
1269
+
1270
+ ## Inngest Compatibility
1271
+
1272
+ The `@mastra/inngest` package has been updated to use the new options object API. This is a non-breaking internal change - no action required from inngest workflow users.
1273
+
1274
+ ## Performance Impact
1275
+
1276
+ For workflows with large step outputs:
1277
+ - Requesting only `status`: ~99% reduction in payload size
1278
+ - Requesting `status,result,error`: ~95% reduction in payload size
1279
+ - Using `withNestedWorkflows=false`: Avoids expensive nested workflow data fetching
1280
+ - Combining both: Maximum performance optimization
1281
+
1282
+ - Updated dependencies [[`4f94ed8`](https://github.com/mastra-ai/mastra/commit/4f94ed8177abfde3ec536e3574883e075423350c), [`ac3cc23`](https://github.com/mastra-ai/mastra/commit/ac3cc2397d1966bc0fc2736a223abc449d3c7719), [`a86f4df`](https://github.com/mastra-ai/mastra/commit/a86f4df0407311e0d2ea49b9a541f0938810d6a9), [`029540c`](https://github.com/mastra-ai/mastra/commit/029540ca1e582fc2dd8d288ecd4a9b0f31a954ef), [`66741d1`](https://github.com/mastra-ai/mastra/commit/66741d1a99c4f42cf23a16109939e8348ac6852e), [`01b20fe`](https://github.com/mastra-ai/mastra/commit/01b20fefb7c67c2b7d79417598ef4e60256d1225), [`0dbf199`](https://github.com/mastra-ai/mastra/commit/0dbf199110f22192ce5c95b1c8148d4872b4d119), [`a7ce182`](https://github.com/mastra-ai/mastra/commit/a7ce1822a8785ce45d62dd5c911af465e144f7d7)]:
1283
+ - @mastra/core@1.0.0-beta.14
1284
+
1285
+ ## 1.0.0-beta.8
1286
+
1287
+ ### Patch Changes
1288
+
1289
+ - Add `onFinish` and `onError` lifecycle callbacks to workflow options ([#11200](https://github.com/mastra-ai/mastra/pull/11200))
1290
+
1291
+ Workflows now support lifecycle callbacks for server-side handling of workflow completion and errors:
1292
+ - `onFinish`: Called when workflow completes with any status (success, failed, suspended, tripwire)
1293
+ - `onError`: Called only when workflow fails (failed or tripwire status)
1294
+
1295
+ ```typescript
1296
+ const workflow = createWorkflow({
1297
+ id: 'my-workflow',
1298
+ inputSchema: z.object({ ... }),
1299
+ outputSchema: z.object({ ... }),
1300
+ options: {
1301
+ onFinish: async (result) => {
1302
+ // Handle any workflow completion
1303
+ await updateJobStatus(result.status);
1304
+ },
1305
+ onError: async (errorInfo) => {
1306
+ // Handle workflow failures
1307
+ await logError(errorInfo.error);
1308
+ },
1309
+ },
1310
+ });
1311
+ ```
1312
+
1313
+ Both callbacks support sync and async functions. Callback errors are caught and logged, not propagated to the workflow result.
1314
+
1315
+ - Updated dependencies [[`919a22b`](https://github.com/mastra-ai/mastra/commit/919a22b25876f9ed5891efe5facbe682c30ff497)]:
1316
+ - @mastra/core@1.0.0-beta.13
1317
+
1318
+ ## 1.0.0-beta.7
1319
+
1320
+ ### Patch Changes
1321
+
1322
+ - Preserve error details when thrown from workflow steps ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
1323
+ - Errors thrown in workflow steps now preserve full error details including `cause` chain and custom properties
1324
+ - Added `SerializedError` type with proper cause chain support
1325
+ - Added `SerializedStepResult` and `SerializedStepFailure` types for handling errors loaded from storage
1326
+ - Enhanced `addErrorToJSON` to recursively serialize error cause chains with max depth protection
1327
+ - Added `hydrateSerializedStepErrors` to convert serialized errors back to Error instances
1328
+ - Fixed Inngest workflow error handling to extract original error from `NonRetriableError.cause`
1329
+
1330
+ - Refactor internal event system from Emitter to PubSub abstraction for workflow event handling. This change replaces the EventEmitter-based event system with a pluggable PubSub interface, enabling support for distributed workflow execution backends like Inngest. Adds `close()` method to PubSub implementations for proper cleanup. ([#11052](https://github.com/mastra-ai/mastra/pull/11052))
1331
+
1332
+ - Add `startAsync()` method and fix Inngest duplicate workflow execution bug ([#11093](https://github.com/mastra-ai/mastra/pull/11093))
1333
+
1334
+ **New Feature: `startAsync()` for fire-and-forget workflow execution**
1335
+ - Add `Run.startAsync()` to base workflow class - starts workflow in background and returns `{ runId }` immediately
1336
+ - Add `EventedRun.startAsync()` - publishes workflow start event without subscribing for completion
1337
+ - Add `InngestRun.startAsync()` - sends Inngest event without polling for result
1338
+
1339
+ **Bug Fix: Prevent duplicate Inngest workflow executions**
1340
+ - Fix `getRuns()` to properly handle rate limits (429), empty responses, and JSON parse errors with retry logic and exponential backoff
1341
+ - Fix `getRunOutput()` to throw `NonRetriableError` when polling fails, preventing Inngest from retrying the parent function and re-triggering the workflow
1342
+ - Add timeout to `getRunOutput()` polling (default 5 minutes) with `NonRetriableError` on timeout
1343
+
1344
+ This fixes a production issue where polling failures after successful workflow completion caused Inngest to retry the parent function, which fired a new workflow event and resulted in duplicate executions (e.g., duplicate Slack messages).
1345
+
1346
+ - Preserve error details when thrown from workflow steps ([#10992](https://github.com/mastra-ai/mastra/pull/10992))
1347
+
1348
+ Workflow errors now retain custom properties like `statusCode`, `responseHeaders`, and `cause` chains. This enables error-specific recovery logic in your applications.
1349
+
1350
+ **Before:**
1351
+
1352
+ ```typescript
1353
+ const result = await workflow.execute({ input });
1354
+ if (result.status === 'failed') {
1355
+ // Custom error properties were lost
1356
+ console.log(result.error); // "Step execution failed" (just a string)
1357
+ }
1358
+ ```
1359
+
1360
+ **After:**
1361
+
1362
+ ```typescript
1363
+ const result = await workflow.execute({ input });
1364
+ if (result.status === 'failed') {
1365
+ // Custom properties are preserved
1366
+ console.log(result.error.message); // "Step execution failed"
1367
+ console.log(result.error.statusCode); // 429
1368
+ console.log(result.error.cause?.name); // "RateLimitError"
1369
+ }
1370
+ ```
1371
+
1372
+ **Type change:** `WorkflowState.error` and `WorkflowRunState.error` types changed from `string | Error` to `SerializedError`.
1373
+
1374
+ Other changes:
1375
+ - Added `UpdateWorkflowStateOptions` type for workflow state updates
1376
+
1377
+ - Updated dependencies [[`d5ed981`](https://github.com/mastra-ai/mastra/commit/d5ed981c8701c1b8a27a5f35a9a2f7d9244e695f), [`9650cce`](https://github.com/mastra-ai/mastra/commit/9650cce52a1d917ff9114653398e2a0f5c3ba808), [`932d63d`](https://github.com/mastra-ai/mastra/commit/932d63dd51be9c8bf1e00e3671fe65606c6fb9cd), [`b760b73`](https://github.com/mastra-ai/mastra/commit/b760b731aca7c8a3f041f61d57a7f125ae9cb215), [`695a621`](https://github.com/mastra-ai/mastra/commit/695a621528bdabeb87f83c2277cf2bb084c7f2b4), [`2b459f4`](https://github.com/mastra-ai/mastra/commit/2b459f466fd91688eeb2a44801dc23f7f8a887ab), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`24b76d8`](https://github.com/mastra-ai/mastra/commit/24b76d8e17656269c8ed09a0c038adb9cc2ae95a), [`243a823`](https://github.com/mastra-ai/mastra/commit/243a8239c5906f5c94e4f78b54676793f7510ae3), [`486352b`](https://github.com/mastra-ai/mastra/commit/486352b66c746602b68a95839f830de14c7fb8c0), [`c61fac3`](https://github.com/mastra-ai/mastra/commit/c61fac3add96f0dcce0208c07415279e2537eb62), [`6f14f70`](https://github.com/mastra-ai/mastra/commit/6f14f706ccaaf81b69544b6c1b75ab66a41e5317), [`09e4bae`](https://github.com/mastra-ai/mastra/commit/09e4bae18dd5357d2ae078a4a95a2af32168ab08), [`4524734`](https://github.com/mastra-ai/mastra/commit/45247343e384717a7c8404296275c56201d6470f), [`2a53598`](https://github.com/mastra-ai/mastra/commit/2a53598c6d8cfeb904a7fc74e57e526d751c8fa6), [`c7cd3c7`](https://github.com/mastra-ai/mastra/commit/c7cd3c7a187d7aaf79e2ca139de328bf609a14b4), [`847c212`](https://github.com/mastra-ai/mastra/commit/847c212caba7df0d6f2fc756b494ac3c75c3720d), [`6f941c4`](https://github.com/mastra-ai/mastra/commit/6f941c438ca5f578619788acc7608fc2e23bd176)]:
1378
+ - @mastra/core@1.0.0-beta.12
1379
+
1380
+ ## 1.0.0-beta.6
1381
+
1382
+ ### Patch Changes
1383
+
1384
+ - Support new Workflow tripwire run status. Tripwires that are thrown from within a workflow will now bubble up and return a graceful state with information about tripwires. ([#10947](https://github.com/mastra-ai/mastra/pull/10947))
1385
+
1386
+ When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
1387
+
1388
+ ```typescript showLineNumbers copy
1389
+ const run = await workflow.createRun();
1390
+ const result = await run.start({ inputData: { message: 'Hello' } });
1391
+
1392
+ if (result.status === 'tripwire') {
1393
+ console.log('Workflow terminated by tripwire:', result.tripwire?.reason);
1394
+ console.log('Processor ID:', result.tripwire?.processorId);
1395
+ console.log('Retry requested:', result.tripwire?.retry);
1396
+ }
1397
+ ```
1398
+
1399
+ Adds new UI state for tripwire in agent chat and workflow UI.
1400
+
1401
+ This is distinct from `status: 'failed'` which indicates an unexpected error. A tripwire status means a processor intentionally stopped execution (e.g., for content moderation).
1402
+
1403
+ - Updated dependencies [[`38380b6`](https://github.com/mastra-ai/mastra/commit/38380b60fca905824bdf6b43df307a58efb1aa15), [`798d0c7`](https://github.com/mastra-ai/mastra/commit/798d0c740232653b1d754870e6b43a55c364ffe2), [`ffe84d5`](https://github.com/mastra-ai/mastra/commit/ffe84d54f3b0f85167fe977efd027dba027eb998), [`2c212e7`](https://github.com/mastra-ai/mastra/commit/2c212e704c90e2db83d4109e62c03f0f6ebd2667), [`4ca4306`](https://github.com/mastra-ai/mastra/commit/4ca430614daa5fa04730205a302a43bf4accfe9f), [`3bf6c5f`](https://github.com/mastra-ai/mastra/commit/3bf6c5f104c25226cd84e0c77f9dec15f2cac2db)]:
1404
+ - @mastra/core@1.0.0-beta.11
1405
+
1406
+ ## 1.0.0-beta.5
1407
+
1408
+ ### Patch Changes
1409
+
1410
+ - Internal code refactoring ([#10830](https://github.com/mastra-ai/mastra/pull/10830))
1411
+
1412
+ - Add support for typed structured output in agent workflow steps ([#11014](https://github.com/mastra-ai/mastra/pull/11014))
1413
+
1414
+ When wrapping an agent with `createStep()` and providing a `structuredOutput.schema`, the step's `outputSchema` is now correctly inferred from the provided schema instead of defaulting to `{ text: string }`.
1415
+
1416
+ This enables type-safe chaining of agent steps with structured output to subsequent steps:
1417
+
1418
+ ```typescript
1419
+ const articleSchema = z.object({
1420
+ title: z.string(),
1421
+ summary: z.string(),
1422
+ tags: z.array(z.string()),
1423
+ });
1424
+
1425
+ // Agent step with structured output - outputSchema is now articleSchema
1426
+ const agentStep = createStep(agent, {
1427
+ structuredOutput: { schema: articleSchema },
1428
+ });
1429
+
1430
+ // Next step can receive the structured output directly
1431
+ const processStep = createStep({
1432
+ id: 'process',
1433
+ inputSchema: articleSchema, // Matches agent's outputSchema
1434
+ outputSchema: z.object({ tagCount: z.number() }),
1435
+ execute: async ({ inputData }) => ({
1436
+ tagCount: inputData.tags.length, // Fully typed!
1437
+ }),
1438
+ });
1439
+
1440
+ workflow.then(agentStep).then(processStep).commit();
1441
+ ```
1442
+
1443
+ When `structuredOutput` is not provided, the agent step continues to use the default `{ text: string }` output schema.
1444
+
1445
+ - Updated dependencies [[`edb07e4`](https://github.com/mastra-ai/mastra/commit/edb07e49283e0c28bd094a60e03439bf6ecf0221), [`b7e17d3`](https://github.com/mastra-ai/mastra/commit/b7e17d3f5390bb5a71efc112204413656fcdc18d), [`261473a`](https://github.com/mastra-ai/mastra/commit/261473ac637e633064a22076671e2e02b002214d), [`5d7000f`](https://github.com/mastra-ai/mastra/commit/5d7000f757cd65ea9dc5b05e662fd83dfd44e932), [`4f0331a`](https://github.com/mastra-ai/mastra/commit/4f0331a79bf6eb5ee598a5086e55de4b5a0ada03), [`8a000da`](https://github.com/mastra-ai/mastra/commit/8a000da0c09c679a2312f6b3aa05b2ca78ca7393)]:
1446
+ - @mastra/core@1.0.0-beta.10
1447
+
1448
+ ## 1.0.0-beta.4
1449
+
1450
+ ### Patch Changes
1451
+
1452
+ - Include `.input` in workflow results for both engines and remove the option to omit them from Inngest workflows. ([#10688](https://github.com/mastra-ai/mastra/pull/10688))
1453
+
1454
+ - Using `createStep` with a nested Inngest workflow now returns the workflow itself, maintaining the correct `.invoke()` execution flow Inngest workflows need to operate. ([#10689](https://github.com/mastra-ai/mastra/pull/10689))
1455
+
1456
+ - Refactored default engine to fit durable execution better, and the inngest engine to match. ([#10627](https://github.com/mastra-ai/mastra/pull/10627))
1457
+ Also fixes requestContext persistence by relying on inngest step memoization.
1458
+
1459
+ Unifies some of the stepResults and error formats in both engines.
1460
+
1461
+ - Miscellanous bug fixes and test fixes: ([#10515](https://github.com/mastra-ai/mastra/pull/10515))
1462
+ - cloneWorkflow passing options correctly
1463
+ - start event in streamLegacy
1464
+ - Many test cases with outdated or incorrect expected values
1465
+
1466
+ - Emit workflow-step-result and workflow-step-finish when step fails in inngest workflow ([#10555](https://github.com/mastra-ai/mastra/pull/10555))
1467
+
1468
+ - Updated dependencies [[`ac0d2f4`](https://github.com/mastra-ai/mastra/commit/ac0d2f4ff8831f72c1c66c2be809706d17f65789), [`1a0d3fc`](https://github.com/mastra-ai/mastra/commit/1a0d3fc811482c9c376cdf79ee615c23bae9b2d6), [`85a628b`](https://github.com/mastra-ai/mastra/commit/85a628b1224a8f64cd82ea7f033774bf22df7a7e), [`c237233`](https://github.com/mastra-ai/mastra/commit/c23723399ccedf7f5744b3f40997b79246bfbe64), [`15f9e21`](https://github.com/mastra-ai/mastra/commit/15f9e216177201ea6e3f6d0bfb063fcc0953444f), [`ff94dea`](https://github.com/mastra-ai/mastra/commit/ff94dea935f4e34545c63bcb6c29804732698809), [`5b2ff46`](https://github.com/mastra-ai/mastra/commit/5b2ff4651df70c146523a7fca773f8eb0a2272f8), [`db41688`](https://github.com/mastra-ai/mastra/commit/db4168806d007417e2e60b4f68656dca4e5f40c9), [`5ca599d`](https://github.com/mastra-ai/mastra/commit/5ca599d0bb59a1595f19f58473fcd67cc71cef58), [`bff1145`](https://github.com/mastra-ai/mastra/commit/bff114556b3cbadad9b2768488708f8ad0e91475), [`5c8ca24`](https://github.com/mastra-ai/mastra/commit/5c8ca247094e0cc2cdbd7137822fb47241f86e77), [`e191844`](https://github.com/mastra-ai/mastra/commit/e1918444ca3f80e82feef1dad506cd4ec6e2875f), [`22553f1`](https://github.com/mastra-ai/mastra/commit/22553f11c63ee5e966a9c034a349822249584691), [`7237163`](https://github.com/mastra-ai/mastra/commit/72371635dbf96a87df4b073cc48fc655afbdce3d), [`2500740`](https://github.com/mastra-ai/mastra/commit/2500740ea23da067d6e50ec71c625ab3ce275e64), [`873ecbb`](https://github.com/mastra-ai/mastra/commit/873ecbb517586aa17d2f1e99283755b3ebb2863f), [`4f9bbe5`](https://github.com/mastra-ai/mastra/commit/4f9bbe5968f42c86f4930b8193de3c3c17e5bd36), [`02e51fe`](https://github.com/mastra-ai/mastra/commit/02e51feddb3d4155cfbcc42624fd0d0970d032c0), [`8f3fa3a`](https://github.com/mastra-ai/mastra/commit/8f3fa3a652bb77da092f913ec51ae46e3a7e27dc), [`cd29ad2`](https://github.com/mastra-ai/mastra/commit/cd29ad23a255534e8191f249593849ed29160886), [`bdf4d8c`](https://github.com/mastra-ai/mastra/commit/bdf4d8cdc656d8a2c21d81834bfa3bfa70f56c16), [`854e3da`](https://github.com/mastra-ai/mastra/commit/854e3dad5daac17a91a20986399d3a51f54bf68b), [`ce18d38`](https://github.com/mastra-ai/mastra/commit/ce18d38678c65870350d123955014a8432075fd9), [`cccf9c8`](https://github.com/mastra-ai/mastra/commit/cccf9c8b2d2dfc1a5e63919395b83d78c89682a0), [`61a5705`](https://github.com/mastra-ai/mastra/commit/61a570551278b6743e64243b3ce7d73de915ca8a), [`db70a48`](https://github.com/mastra-ai/mastra/commit/db70a48aeeeeb8e5f92007e8ede52c364ce15287), [`f0fdc14`](https://github.com/mastra-ai/mastra/commit/f0fdc14ee233d619266b3d2bbdeea7d25cfc6d13), [`db18bc9`](https://github.com/mastra-ai/mastra/commit/db18bc9c3825e2c1a0ad9a183cc9935f6691bfa1), [`9b37b56`](https://github.com/mastra-ai/mastra/commit/9b37b565e1f2a76c24f728945cc740c2b09be9da), [`41a23c3`](https://github.com/mastra-ai/mastra/commit/41a23c32f9877d71810f37e24930515df2ff7a0f), [`5d171ad`](https://github.com/mastra-ai/mastra/commit/5d171ad9ef340387276b77c2bb3e83e83332d729), [`f03ae60`](https://github.com/mastra-ai/mastra/commit/f03ae60500fe350c9d828621006cdafe1975fdd8), [`d1e74a0`](https://github.com/mastra-ai/mastra/commit/d1e74a0a293866dece31022047f5dbab65a304d0), [`39e7869`](https://github.com/mastra-ai/mastra/commit/39e7869bc7d0ee391077ce291474d8a84eedccff), [`5761926`](https://github.com/mastra-ai/mastra/commit/57619260c4a2cdd598763abbacd90de594c6bc76), [`c900fdd`](https://github.com/mastra-ai/mastra/commit/c900fdd504c41348efdffb205cfe80d48c38fa33), [`604a79f`](https://github.com/mastra-ai/mastra/commit/604a79fecf276e26a54a3fe01bb94e65315d2e0e), [`887f0b4`](https://github.com/mastra-ai/mastra/commit/887f0b4746cdbd7cb7d6b17ac9f82aeb58037ea5), [`2562143`](https://github.com/mastra-ai/mastra/commit/256214336b4faa78646c9c1776612393790d8784), [`ef11a61`](https://github.com/mastra-ai/mastra/commit/ef11a61920fa0ed08a5b7ceedd192875af119749)]:
1469
+ - @mastra/core@1.0.0-beta.6
1470
+
1471
+ ## 1.0.0-beta.3
1472
+
1473
+ ### Patch Changes
1474
+
1475
+ - - Fix tool suspension throwing error when `outputSchema` is passed to tool during creation ([#10444](https://github.com/mastra-ai/mastra/pull/10444))
1476
+ - Pass `suspendSchema` and `resumeSchema` from tool into step created when creating step from tool
1477
+ - Updated dependencies [[`21a15de`](https://github.com/mastra-ai/mastra/commit/21a15de369fe82aac26bb642ed7be73505475e8b), [`feb7ee4`](https://github.com/mastra-ai/mastra/commit/feb7ee4d09a75edb46c6669a3beaceec78811747), [`b0e2ea5`](https://github.com/mastra-ai/mastra/commit/b0e2ea5b52c40fae438b9e2f7baee6f0f89c5442), [`c456e01`](https://github.com/mastra-ai/mastra/commit/c456e0149e3c176afcefdbd9bb1d2c5917723725), [`ab035c2`](https://github.com/mastra-ai/mastra/commit/ab035c2ef6d8cc7bb25f06f1a38508bd9e6f126b), [`1a46a56`](https://github.com/mastra-ai/mastra/commit/1a46a566f45a3fcbadc1cf36bf86d351f264bfa3), [`3cf540b`](https://github.com/mastra-ai/mastra/commit/3cf540b9fbfea8f4fc8d3a2319a4e6c0b0cbfd52), [`1c6ce51`](https://github.com/mastra-ai/mastra/commit/1c6ce51f875915ab57fd36873623013699a2a65d), [`898a972`](https://github.com/mastra-ai/mastra/commit/898a9727d286c2510d6b702dfd367e6aaf5c6b0f), [`a97003a`](https://github.com/mastra-ai/mastra/commit/a97003aa1cf2f4022a41912324a1e77263b326b8), [`ccc141e`](https://github.com/mastra-ai/mastra/commit/ccc141ed27da0abc3a3fc28e9e5128152e8e37f4), [`fe3b897`](https://github.com/mastra-ai/mastra/commit/fe3b897c2ccbcd2b10e81b099438c7337feddf89), [`00123ba`](https://github.com/mastra-ai/mastra/commit/00123ba96dc9e5cd0b110420ebdba56d8f237b25), [`29c4309`](https://github.com/mastra-ai/mastra/commit/29c4309f818b24304c041bcb4a8f19b5f13f6b62), [`16785ce`](https://github.com/mastra-ai/mastra/commit/16785ced928f6f22638f4488cf8a125d99211799), [`de8239b`](https://github.com/mastra-ai/mastra/commit/de8239bdcb1d8c0cfa06da21f1569912a66bbc8a), [`b5e6cd7`](https://github.com/mastra-ai/mastra/commit/b5e6cd77fc8c8e64e0494c1d06cee3d84e795d1e), [`3759cb0`](https://github.com/mastra-ai/mastra/commit/3759cb064935b5f74c65ac2f52a1145f7352899d), [`651e772`](https://github.com/mastra-ai/mastra/commit/651e772eb1475fb13e126d3fcc01751297a88214), [`b61b93f`](https://github.com/mastra-ai/mastra/commit/b61b93f9e058b11dd2eec169853175d31dbdd567), [`bae33d9`](https://github.com/mastra-ai/mastra/commit/bae33d91a63fbb64d1e80519e1fc1acaed1e9013), [`c0b731f`](https://github.com/mastra-ai/mastra/commit/c0b731fb27d712dc8582e846df5c0332a6a0c5ba), [`43ca8f2`](https://github.com/mastra-ai/mastra/commit/43ca8f2c7334851cc7b4d3d2f037d8784bfbdd5f), [`2ca67cc`](https://github.com/mastra-ai/mastra/commit/2ca67cc3bb1f6a617353fdcab197d9efebe60d6f), [`9e67002`](https://github.com/mastra-ai/mastra/commit/9e67002b52c9be19936c420a489dbee9c5fd6a78), [`35edc49`](https://github.com/mastra-ai/mastra/commit/35edc49ac0556db609189641d6341e76771b81fc)]:
1478
+ - @mastra/core@1.0.0-beta.5
190
1479
 
191
1480
  ## 1.0.0-beta.2
192
1481