Fetching from the wire…
Public story · 2026-09-09 · high
The update adds a portable query contract across three databases and drops the old rules API without a deprecation window.
Why now: Mastra published the 1.65.0 release on GitHub as of September 9, 2026.
Mastra's core package moved to 1.65.0 with a trace-query contract that works the same way whether the traces sit in ClickHouse, DuckDB, or Postgres. Bounded time ranges, recursive predicates on traces, spans and scores, thread grouping, and cursor pagination all get validated and rejected before any storage adapter runs, per the release notes.
That matters for anyone running agents that log to more than one backend. Before this, a team switching from Postgres to ClickHouse for trace storage had to rewrite its query layer. Now the validation and query shape stay fixed while the adapter underneath changes.
The release also adds tenant-scoped trace deletion, capped at 1,000 trace IDs per request, that cascades to spans, scores, feedback, metrics and logs in one call. That's a real gap closed. Deleting a trace used to mean chasing its child records across five tables by hand or writing your own cascade.
The breaking part sits in a different package. @mastra/factory loses its global rules object entirely, and defineBoard() now requires a kind and a role on every phase. Anyone who built board configs against the old shape needs to add those fields before upgrading, and there's no compatibility layer mentioned in the release to bridge the gap.
The two changes ship in the same version number but serve different audiences. Teams evaluating storage backends get a cleaner story. Teams already using Factory boards get a chore. If you're on @mastra/factory, check your board definitions before bumping the version, not after.
Each link below shares sources, entities, or timing with this story.
@mastra/core 1.59.0 shipped yesterday with two breaking changes: Factory automatic agent runs now default to off via autoRunEnabled, with rule-proposed runs parked as "proposed" decisions until approved, and CostGuardProcessor becomes TokenCostControl with warnAtPercent, per-r...
Released today, @mastra/[redacted] adds declarative step entry types with toStorableGraph() and rehydrateWorkflow(), so UI- or LLM-authored workflow graphs survive restarts with schema-typed chaining. Stored workflows are manageable over HTTP, persist through a new workflowDef...
Released July 30, AgentController gains chat-channel adapters mapping each thread to one durable controller session, with native streaming, tool-approval cards resolved through the session's approval gate, typing indicators, and controller-owned webhook routes. Also MongoDB br...
Released September 4. @mastra/evals/vitest exposes runEvals as Vitest tests with expectEvals/expectEval and a per-test score reporter, so agent quality checks run in the same pipeline as unit tests. It also adds reusable sandbox template APIs so a workspace-backed coding agent...
@mastra/[redacted], released August 26, adds an optional SandboxComputer capability to workspaces covering screenshots, mouse and keyboard control, display info and wait tools, with providers in @mastra/daytona and a new @mastra/e2b-desktop package bundling E2B command, proces...
The 1.58.0 core release adds @mastra/quickjs, executing model-authored programs with no native addon and no --no-node-snapshot flag, which makes write-a-program-that-calls-tools deployable on serverless hosts that can't host a sandbox. Also lands file-based agent schedules and...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.