Skip to content

feat(storage): support caller-defined dataset IDs#19370

Merged
abhiaiyer91 merged 12 commits into
mainfrom
mastra-4480
Jul 14, 2026
Merged

feat(storage): support caller-defined dataset IDs#19370
abhiaiyer91 merged 12 commits into
mainfrom
mastra-4480

Conversation

@NikAiyer

@NikAiyer NikAiyer commented Jul 13, 2026

Copy link
Copy Markdown
Member

Allows callers to provide a durable dataset ID through the existing dataset creation API. Storage adapters atomically insert the dataset or return the compatible record that already owns the ID, so concurrent retries converge without a separate resolution API.

const dataset = await mastra.datasets.create({
  id: durableDatasetId,
  name: 'Candidate evaluation',
  organizationId,
  projectId,
});

Reusing an ID with different immutable tenancy or candidate identity fields now throws DATASET_ID_CONFLICT. Mutable fields are neither compared nor overwritten, ordinary generated-ID creation is unchanged, and deleting a dataset releases its ID for a fresh generation.

The shared storage contract covers concurrent creation, compatible retries, null/undefined normalization, immutable conflicts, and delete/recreate behavior across the built-in adapters.

Verified with the core dataset suite, core typecheck, adapter builds and lint, and the full LibSQL integration suite. PostgreSQL, MySQL, MongoDB, and Spanner integration tests require a running Docker daemon and were not available locally.

ELI5

You can now choose the “dataset ID” when creating a dataset. If you accidentally create the same dataset again with the same ID, Mastra will just give you back the one it already saved—unless that same ID is being used for a different (immutable) owner/identity, in which case it stops and reports a conflict.

Summary

  • Extended mastra.datasets.create() / DatasetsManager.create to accept an optional caller-provided durable id for idempotent dataset creation.
  • Updated CreateDatasetInput so storage adapters atomically insert-or-return the existing dataset when id is provided (no separate resolution API needed).
  • Added validation for empty id values (DATASET_INVALID_ID) and immutable conflict handling when reusing an ID with different immutable tenancy/identity fields, throwing DATASET_ID_CONFLICT (mutable fields are not compared/overwritten).
  • Preserved existing generated-ID behavior; deleting a dataset releases its ID for reuse (delete/recreate resets versioning/timestamps).
  • Implemented adapter-level compatible retry behavior by detecting “already exists/duplicate” errors and then loading the existing record by id and resolving it via the shared immutable-field logic.
  • Added shared contract tests covering concurrency, compatible retries, null/undefined normalization, immutable conflicts, and delete/recreate across built-in adapters (including core suite and adapter/typecheck/Lint + full LibSQL integration suite).
  • MySQL adapter internals: introduced an insert-only statement path (insertOnly / prepareInsertOnlyStatement) to decouple ID-conflict handling from upsert SQL formatting.
  • Updated release notes and bumped storage package peer dependency floors to @mastra/core >= 1.51.0-0.

Allow dataset callers to supply durable IDs and atomically resolve compatible retries through each built-in storage adapter. Reject incompatible immutable identity reuse and cover concurrency, retry, normalization, and deletion semantics in the shared storage contract tests.

Co-Authored-By: Mastra Code (openai/gpt-5.6-sol) <noreply@mastra.ai>
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mastra-docs-1.x Ready Ready Preview, Comment Jul 14, 2026 9:45pm
mastra-playground-ui Ready Ready Preview, Comment Jul 14, 2026 9:45pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
mastra-studio-preview Ignored Ignored Preview Jul 14, 2026 9:45pm

Request Review

@changeset-bot

changeset-bot Bot commented Jul 13, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 49a57d4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 28 packages
Name Type
@mastra/core Minor
@mastra/pg Minor
@mastra/libsql Minor
@mastra/mysql Minor
@mastra/mongodb Minor
@mastra/spanner Minor
@mastra/code-sdk Patch
mastracode Patch
@mastra/mcp-docs-server Patch
@internal/playground Patch
@mastra/client-js Patch
@mastra/opencode Patch
@mastra/longmemeval Patch
@mastra/express Patch
@mastra/fastify Patch
@mastra/hono Patch
@mastra/koa Patch
@mastra/nestjs Patch
mastra Patch
@mastra/deployer-cloud Minor
@mastra/react Patch
@mastra/playground-ui Patch
@mastra/server Minor
@mastra/deployer Minor
create-mastra Patch
@mastra/next Patch
@mastra/tanstack-start Patch
@mastra/temporal Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3e7053b5-92c4-423d-8bf3-7de7fefb16b5

📥 Commits

Reviewing files that changed from the base of the PR and between 19ef241 and 49a57d4.

📒 Files selected for processing (5)
  • stores/libsql/package.json
  • stores/mongodb/package.json
  • stores/mysql/package.json
  • stores/pg/package.json
  • stores/spanner/package.json

Walkthrough

Dataset creation now accepts caller-defined IDs across core and built-in storage adapters. Compatible retries return existing records, immutable-field conflicts raise DATASET_ID_CONFLICT, IDs are validated, and adapter peer requirements move to @mastra/core >= 1.51.0-0.

Changes

Dataset ID resolution

Layer / File(s) Summary
Core contracts and resolution helpers
packages/core/src/datasets/manager.ts, packages/core/src/storage/types.ts, packages/core/src/storage/domains/datasets/*
Dataset creation accepts optional IDs, validates non-empty caller IDs, resolves compatible existing records, detects immutable-field conflicts, and preserves generated IDs for calls without an explicit ID.
Shared error-code traversal
packages/core/src/storage/utils.ts, packages/core/src/storage/utils.test.ts
A shared helper traverses nested error causes, detects matching codes, prevents cycles, and is covered by tests.
Storage adapter atomic creation
stores/libsql/src/storage/..., stores/mongodb/src/storage/..., stores/mysql/src/storage/..., stores/pg/src/storage/..., stores/spanner/src/storage/...
Built-in adapters persist caller-defined IDs and recover duplicate or already-existing errors by loading and resolving the existing dataset.
Insert-only persistence support
stores/libsql/src/storage/db/index.ts, stores/mysql/src/storage/domains/{operations,utils}/*
LibSQL and MySQL add insert-only write paths, with MySQL extracting and testing insert-only SQL generation.
Integration coverage and release metadata
stores/_test-utils/src/domains/datasets/index.ts, packages/core/src/storage/domains/datasets/__tests__/datasets.test.ts, stores/*/package.json, .changeset/gold-trams-grow.md
Tests cover concurrent creation, compatible retries, conflicts, deletion reuse, and invalid IDs; peer requirements and release notes are updated.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested reviewers: danielslew, wardpeet

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise, descriptive, and accurately summarizes the main change to dataset ID support.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch mastra-4480

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Comment @coderabbitai help to get the list of available commands.

@dane-ai-mastra

dane-ai-mastra Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

PR triage

Linked issue check skipped for core contributor @NikAiyer.


PR complexity score

Factor Value Score impact
Files changed 23 +46
Lines changed 351 +21
Author merged PRs 613 -20
Test files changed Yes -10
Final score 37

Applied label: complexity: high


Changed test gate

Changed tests failed against the base branch as expected.

Label: tests: green ✅

@dane-ai-mastra dane-ai-mastra Bot added the tests: failing ❌ Changed tests passed against base label Jul 13, 2026
@dane-ai-mastra dane-ai-mastra Bot added tests: green ✅ Changed tests failed against base as expected and removed tests: failing ❌ Changed tests passed against base labels Jul 13, 2026
Avoid runtime coupling between storage adapters and newly exported core helper functions while preserving shared dataset identity semantics through protected base methods. Consolidate the package release notes into one changeset.\n\nCo-Authored-By: Mastra Code (openai/gpt-5.6-sol) <noreply@mastra.ai>
Raise built-in storage adapter peer floors so protected dataset identity helpers are guaranteed at runtime.\n\nCo-Authored-By: Mastra Code (openai/gpt-5.6-sol) <noreply@mastra.ai>
@socket-security

socket-security Bot commented Jul 13, 2026

Copy link
Copy Markdown

Dependency limit exceeded — report not shown.

This pull request scan exceeded the 10,000-dependency limit applied to this scan, so the results are incomplete and may be inaccurate. To avoid reporting false positives, Socket has not posted a report.

Upgrade your plan to raise the dependency limit and get complete reports, or view the partial scan in the dashboard.

Socket is always free for open source. If this is a non-commercial open source project, contact us to request a free Team account.

Avoid coupling dataset conflict handling to the formatting of upsert SQL by sharing a dedicated plain INSERT statement builder.\n\nCo-Authored-By: Mastra Code (openai/gpt-5.6-sol) <noreply@mastra.ai>
@vercel vercel Bot temporarily deployed to Preview – mastra-playground-ui July 14, 2026 15:08 Inactive
@vercel vercel Bot temporarily deployed to Preview – mastra-docs-1.x July 14, 2026 15:08 Inactive
@dane-ai-mastra dane-ai-mastra Bot added complexity: high High-complexity PR tests: failing ❌ Changed tests passed against base tests: green ✅ Changed tests failed against base as expected and removed complexity: medium Medium-complexity PR tests: green ✅ Changed tests failed against base as expected tests: failing ❌ Changed tests passed against base labels Jul 14, 2026
@dane-ai-mastra dane-ai-mastra Bot added tests: failing ❌ Changed tests passed against base and removed tests: green ✅ Changed tests failed against base as expected labels Jul 14, 2026
@abhiaiyer91 abhiaiyer91 merged commit a99eae8 into main Jul 14, 2026
83 of 87 checks passed
@abhiaiyer91 abhiaiyer91 deleted the mastra-4480 branch July 14, 2026 21:48
YujohnNattrass pushed a commit that referenced this pull request Jul 14, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and publish to npm
yourself or [setup this action to publish
automatically](https://github.com/changesets/action#with-publishing). If
you're not ready to do a release yet, that's fine, whenever you add more
changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

`main` is currently in **pre mode** so this branch has prereleases
rather than normal releases. If you want to exit prereleases, run
`changeset pre exit` on `main`.

⚠️⚠️⚠️⚠️⚠️⚠️

# Releases
## @mastra/client-js@1.32.0-alpha.13

### Minor Changes

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Type structured Agent Controller notification message content so Web
clients can render notification provenance from live and persisted
transcript messages.
([#19446](#19446))

  ```ts
  if (part.type === 'notification') {
    renderNotification(part.message, part.source);
  }
  ```

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/code-sdk@0.1.0-alpha.13

### Minor Changes

- Added a post-tool observer for custom Mastra Code integrations to
react to completed tool calls without replacing built-in tools.
([#19446](#19446))

  ```ts
  await mountAgentControllerOnMastra({
postToolObserver: ({ toolName, output }) => logToolResult(toolName,
output),
  });
  ```

### Patch Changes

- Added the authoritative session scope to agent controller request
context for scoped session integrations.
([#19446](#19446))

  ```ts
  const controllerContext = requestContext.get('controller');
  console.log(controllerContext?.scope);
  ```

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/pg@1.16.0-alpha.0
  - @mastra/libsql@1.16.0-alpha.1
## @mastra/core@1.51.0-alpha.13

### Minor Changes

- Added atomic caller-defined dataset IDs for idempotent dataset
creation across built-in storage adapters. Supplying `id` to
`mastra.datasets.create()` now creates the dataset once and resolves
compatible retries to the persisted record; incompatible immutable
identity fields throw `DATASET_ID_CONFLICT`.
([#19370](#19370))

- Added the authoritative session scope to agent controller request
context for scoped session integrations.
([#19446](#19446))

  ```ts
  const controllerContext = requestContext.get('controller');
  console.log(controllerContext?.scope);
  ```

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Fixed parallel sub-agent approvals so they can be handled in any
order. listSuspendedRuns() now returns each pending sub-agent call, and
approving one resumes that specific call instead of using another call’s
suspended state.
([#19450](#19450))
## @mastra/server@1.51.0-alpha.13

### Minor Changes

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/libsql@1.16.0-alpha.1

### Minor Changes

- Added atomic caller-defined dataset IDs for idempotent dataset
creation across built-in storage adapters. Supplying `id` to
`mastra.datasets.create()` now creates the dataset once and resolves
compatible retries to the persisted record; incompatible immutable
identity fields throw `DATASET_ID_CONFLICT`.
([#19370](#19370))

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Raised the `@mastra/core` peer dependency floor to `>=1.51.0-0` so the
dataset item identity helpers used by the storage adapters are available
at runtime. ([#19384](#19384))

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/mongodb@1.13.0-alpha.0

### Minor Changes

- Added atomic caller-defined dataset IDs for idempotent dataset
creation across built-in storage adapters. Supplying `id` to
`mastra.datasets.create()` now creates the dataset once and resolves
compatible retries to the persisted record; incompatible immutable
identity fields throw `DATASET_ID_CONFLICT`.
([#19370](#19370))

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Raised the `@mastra/core` peer dependency floor to `>=1.51.0-0` so the
dataset item identity helpers used by the storage adapters are available
at runtime. ([#19384](#19384))

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/mysql@0.4.0-alpha.0

### Minor Changes

- Added atomic caller-defined dataset IDs for idempotent dataset
creation across built-in storage adapters. Supplying `id` to
`mastra.datasets.create()` now creates the dataset once and resolves
compatible retries to the persisted record; incompatible immutable
identity fields throw `DATASET_ID_CONFLICT`.
([#19370](#19370))

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Raised the `@mastra/core` peer dependency floor to `>=1.51.0-0` so the
dataset item identity helpers used by the storage adapters are available
at runtime. ([#19384](#19384))

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/pg@1.16.0-alpha.0

### Minor Changes

- Added atomic caller-defined dataset IDs for idempotent dataset
creation across built-in storage adapters. Supplying `id` to
`mastra.datasets.create()` now creates the dataset once and resolves
compatible retries to the persisted record; incompatible immutable
identity fields throw `DATASET_ID_CONFLICT`.
([#19370](#19370))

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Raised the `@mastra/core` peer dependency floor to `>=1.51.0-0` so the
dataset item identity helpers used by the storage adapters are available
at runtime. ([#19384](#19384))

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/spanner@1.3.0-alpha.2

### Minor Changes

- Added atomic caller-defined dataset IDs for idempotent dataset
creation across built-in storage adapters. Supplying `id` to
`mastra.datasets.create()` now creates the dataset once and resolves
compatible retries to the persisted record; incompatible immutable
identity fields throw `DATASET_ID_CONFLICT`.
([#19370](#19370))

- Added caller-defined dataset item identities for safe retries across
all dataset storage adapters.
([#19384](#19384))

Dataset items can now include an `externalId` when calling `addItem` or
`addItems`:

  ```ts
  await dataset.addItem({
    externalId: 'source-item-123',
    input: { prompt: 'Hello' },
  });
  ```

Retrying with the same identity and payload returns the existing item.
Reusing an identity with different content returns a typed conflict,
including during concurrent writes. Updates and deletes preserve the
identity, Spanner retries transactions without changing the outcome, and
MySQL batch writes now preserve every supported dataset item field.

### Patch Changes

- Raised the `@mastra/core` peer dependency floor to `>=1.51.0-0` so the
dataset item identity helpers used by the storage adapters are available
at runtime. ([#19384](#19384))

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/react@1.2.5-alpha.13

### Patch Changes

- Updated dependencies
[[`fd13f8e`](fd13f8e),
[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/client-js@1.32.0-alpha.13
  - @mastra/core@1.51.0-alpha.13
## @mastra/deployer-cloud@1.51.0-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/deployer@1.51.0-alpha.13
## @mastra/longmemeval@1.1.7-alpha.14

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/libsql@1.16.0-alpha.1
## @mastra/opencode@0.1.7-alpha.14

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/libsql@1.16.0-alpha.1
## mastracode@0.31.0-alpha.14

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/pg@1.16.0-alpha.0
  - @mastra/libsql@1.16.0-alpha.1
  - @mastra/code-sdk@0.1.0-alpha.13
## mastra@1.19.0-alpha.14

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/deployer@1.51.0-alpha.13
## @mastra/deployer@1.51.0-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
## @mastra/mcp-docs-server@1.2.7-alpha.23

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
## @mastra/playground-ui@41.0.0-alpha.13

### Patch Changes

- Updated dependencies
[[`fd13f8e`](fd13f8e),
[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/client-js@1.32.0-alpha.13
  - @mastra/core@1.51.0-alpha.13
  - @mastra/react@1.2.5-alpha.13
## @mastra/express@1.4.7-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
## @mastra/fastify@1.4.7-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
## @mastra/hono@1.5.7-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
## @mastra/koa@1.6.7-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
## @mastra/nestjs@0.2.7-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
## @mastra/next@0.2.6-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
  - @mastra/hono@1.5.7-alpha.13
## @mastra/tanstack-start@0.2.6-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/server@1.51.0-alpha.13
  - @mastra/hono@1.5.7-alpha.13
## @mastra/temporal@0.2.7-alpha.13

### Patch Changes

- Updated dependencies
[[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/core@1.51.0-alpha.13
  - @mastra/deployer@1.51.0-alpha.13
## create-mastra@1.19.0-alpha.14


## @internal/playground@1.19.0-alpha.14

### Patch Changes

- Fixed the scorer detail page layout so the Input column no longer
stretches far wider than the screen. The column now has a sensible
maximum width and truncates long inputs, keeping the table within the
viewport. Also fixed the score details pane collapsing to an unusable
sliver when opened with the Input column visible — the table now cedes
space so the pane keeps its half of the layout.
([#19451](#19451))

- Updated dependencies
[[`fd13f8e`](fd13f8e),
[`a99eae8`](a99eae8),
[`fd13f8e`](fd13f8e),
[`f703f87`](f703f87),
[`0ad646f`](0ad646f)]:
  - @mastra/client-js@1.32.0-alpha.13
  - @mastra/core@1.51.0-alpha.13
  - @mastra/react@1.2.5-alpha.13
  - @mastra/playground-ui@41.0.0-alpha.13

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

complexity: high High-complexity PR tests: failing ❌ Changed tests passed against base

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants