September 24, 2026
Mastra introduces ModelSelectionProcessor for dynamic per-request model routing, cross-process thread input cancellation, trusted multi-tenant observability scopes, and durable streaming improvements alongside playground-ui breaking changes.
Why this signal matters
The September 24, 2026 Mastra release introduces ModelSelectionProcessor in @mastra/core, allowing agents to route incoming requests to specific models dynamically using built-in or custom classifiers with options like minProbability and scope: 'first-step'. Cross-process cancellation is now possible via cancelQueuedMessages({ signalIds }) across all agents sharing a runtime and thread, supported across core, server routes, and client-js. For observability, queries now support trusted multi-tenant scoping ({ organizationId, resourceId? }) bound to cursors, tag and duration predicates, and groundwork helpers for aggregateTraces(). Durable streaming in @mastra/inngest adds closeOnSuspend to close stream boundaries upon tool suspension, preventing hanging iteration loops and optimizing Inngest steps. Breaking changes in @mastra/playground-ui include the removal of ErrorState, Button outline variants, TraceKeysAndValues, and refactored auth components.
Actionable summary
Mastra release (core@1.70.0, inngest@1.10.0) adds ModelSelectionProcessor for classifier-based model routing, cross-agent thread input cancellation via cancelQueuedMessages, closeOnSuspend for durable streaming, multi-tenant trace query isolation, and breaking component removals in @mastra/playground-ui.
- Agent usefulness
- 82/100
- Confidence
- 96%
- Canonical data
- JSON + Markdown
What builders should check
- Update @mastra/playground-ui code to replace ErrorState with EmptyState tone="error", replace outline buttons with default/primary, and remove TraceKeysAndValues references.
- Adopt ModelSelectionProcessor in @mastra/core if per-request dynamic model routing or cost-optimization fallback is needed.
- Add closeOnSuspend: true to DurableAgent.stream() or resume() invocations if downstream UI loops need to terminate cleanly upon tool-call suspension.