@mastra/mcp-docs-server 1.0.0-beta.15 → 1.0.0-beta.17
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/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +18 -18
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +40 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +179 -179
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +49 -49
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Flance.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +30 -30
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +49 -49
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +38 -38
- package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +10 -0
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +63 -63
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +41 -41
- package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +27 -0
- package/.docs/raw/reference/client-js/workflows.mdx +15 -0
- package/.docs/raw/reference/storage/composite.mdx +223 -0
- package/.docs/raw/reference/tools/mcp-server.mdx +9 -0
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +51 -3
- package/.docs/raw/reference/workflows/run.mdx +8 -2
- package/CHANGELOG.md +15 -0
- package/package.json +4 -4
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# @mastra/pg
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fix missing timezone columns during PostgreSQL spans table migration ([#11419](https://github.com/mastra-ai/mastra/pull/11419))
|
|
8
|
+
|
|
9
|
+
Fixes issue #11410 where users upgrading to observability beta.7 encountered errors about missing `startedAtZ`, `endedAtZ`, `createdAtZ`, and `updatedAtZ` columns. The migration now properly adds timezone-aware columns for all timestamp fields when upgrading existing databases, ensuring compatibility with the new observability implementation that requires these columns for batch operations.
|
|
10
|
+
|
|
11
|
+
- Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
|
|
12
|
+
|
|
13
|
+
`MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { MastraStorage } from '@mastra/core/storage';
|
|
17
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
|
|
18
|
+
import { MemoryLibSQL } from '@mastra/libsql';
|
|
19
|
+
|
|
20
|
+
// Compose domains from different stores
|
|
21
|
+
const storage = new MastraStorage({
|
|
22
|
+
id: 'composite',
|
|
23
|
+
domains: {
|
|
24
|
+
memory: new MemoryLibSQL({ url: 'file:./local.db' }),
|
|
25
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
26
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Breaking changes:**
|
|
32
|
+
- `storage.supports` property no longer exists
|
|
33
|
+
- `StorageSupports` type is no longer exported from `@mastra/core/storage`
|
|
34
|
+
|
|
35
|
+
All stores now support the same features. For domain availability, use `getStore()`:
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
const store = await storage.getStore('memory');
|
|
39
|
+
if (store) {
|
|
40
|
+
// domain is available
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
|
|
45
|
+
- @mastra/core@1.0.0-beta.16
|
|
46
|
+
|
|
3
47
|
## 1.0.0-beta.9
|
|
4
48
|
|
|
5
49
|
### Minor Changes
|
|
@@ -455,48 +499,4 @@
|
|
|
455
499
|
|
|
456
500
|
### Major Changes
|
|
457
501
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
- Every Mastra primitive (agent, MCPServer, workflow, tool, processor, scorer, and vector) now has a get, list, and add method associated with it. Each primitive also now requires an id to be set. ([#9675](https://github.com/mastra-ai/mastra/pull/9675))
|
|
461
|
-
|
|
462
|
-
Primitives that are added to other primitives are also automatically added to the Mastra instance
|
|
463
|
-
|
|
464
|
-
- Update handlers to use `listWorkflowRuns` instead of `getWorkflowRuns`. Fix type names from `StoragelistThreadsByResourceIdInput/Output` to `StorageListThreadsByResourceIdInput/Output`. ([#9507](https://github.com/mastra-ai/mastra/pull/9507))
|
|
465
|
-
|
|
466
|
-
- **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
|
|
467
|
-
|
|
468
|
-
Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
|
|
469
|
-
|
|
470
|
-
**Storage changes:**
|
|
471
|
-
- `StoragePagination.perPage` type changed from `number` to `number | false`
|
|
472
|
-
- All storage implementations support `perPage: false`:
|
|
473
|
-
- Memory: `listMessages()`
|
|
474
|
-
- Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
|
|
475
|
-
- HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
|
|
476
|
-
|
|
477
|
-
**Memory changes:**
|
|
478
|
-
- `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
|
|
479
|
-
- Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
|
|
480
|
-
|
|
481
|
-
**Stricter validation:**
|
|
482
|
-
- `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
|
|
483
|
-
|
|
484
|
-
**Migration:**
|
|
485
|
-
|
|
486
|
-
```typescript
|
|
487
|
-
// Storage/Memory: Replace getMessagesPaginated with listMessages
|
|
488
|
-
- storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
|
|
489
|
-
+ storage.listMessages({ threadId, page: 0, perPage: 20 })
|
|
490
|
-
+ storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
|
|
491
|
-
|
|
492
|
-
// Memory: Replace selectBy with flat parameters
|
|
493
|
-
- memory.query({ threadId, selectBy: { last: 20, include: [...] } })
|
|
494
|
-
+ memory.query({ threadId, perPage: 20, include: [...] })
|
|
495
|
-
|
|
496
|
-
// Client SDK
|
|
497
|
-
- thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
|
|
498
|
-
+ thread.listMessages({ page: 0, perPage: 20 })
|
|
499
|
-
```
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
... 3061 more lines hidden. See full changelog in package directory.
|
|
502
|
+
... 3105 more lines hidden. See full changelog in package directory.
|
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# @mastra/playground-ui
|
|
2
2
|
|
|
3
|
+
## 7.0.0-beta.17
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318), [`af56599`](https://github.com/mastra-ai/mastra/commit/af56599d73244ae3bf0d7bcade656410f8ded37b)]:
|
|
8
|
+
- @mastra/core@1.0.0-beta.17
|
|
9
|
+
- @mastra/schema-compat@1.0.0-beta.4
|
|
10
|
+
- @mastra/client-js@1.0.0-beta.17
|
|
11
|
+
- @mastra/react@0.1.0-beta.17
|
|
12
|
+
|
|
13
|
+
## 7.0.0-beta.16
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
|
|
18
|
+
|
|
19
|
+
The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
|
|
20
|
+
|
|
21
|
+
**Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
|
|
22
|
+
|
|
23
|
+
**Solution**:
|
|
24
|
+
- Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
|
|
25
|
+
- Kept handler transformation for defense in depth
|
|
26
|
+
- Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
|
|
27
|
+
|
|
28
|
+
This maintains backward compatibility with legacy clients while fixing the validation error.
|
|
29
|
+
|
|
30
|
+
Fixes #11412
|
|
31
|
+
|
|
32
|
+
- Add container queries, adjust the agent chat and use container queries to better display information on the agent sidebar ([#11408](https://github.com/mastra-ai/mastra/pull/11408))
|
|
33
|
+
|
|
34
|
+
- Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`6cbb549`](https://github.com/mastra-ai/mastra/commit/6cbb549475201a2fbf158f0fd7323f6495f46d08), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
|
|
35
|
+
- @mastra/core@1.0.0-beta.16
|
|
36
|
+
- @mastra/client-js@1.0.0-beta.16
|
|
37
|
+
- @mastra/react@0.1.0-beta.16
|
|
38
|
+
- @mastra/ai-sdk@1.0.0-beta.11
|
|
39
|
+
|
|
3
40
|
## 7.0.0-beta.15
|
|
4
41
|
|
|
5
42
|
### Minor Changes
|
|
@@ -462,41 +499,4 @@
|
|
|
462
499
|
|
|
463
500
|
## Storage Layer
|
|
464
501
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
|
|
468
|
-
|
|
469
|
-
**Migration:**
|
|
470
|
-
|
|
471
|
-
```typescript
|
|
472
|
-
// Before
|
|
473
|
-
const messages = await storage.getMessages({ threadId: 'thread-1' });
|
|
474
|
-
|
|
475
|
-
// After
|
|
476
|
-
const result = await storage.listMessages({
|
|
477
|
-
threadId: 'thread-1',
|
|
478
|
-
page: 0,
|
|
479
|
-
perPage: 50,
|
|
480
|
-
});
|
|
481
|
-
const messages = result.messages; // Access messages array
|
|
482
|
-
console.log(result.total); // Total count
|
|
483
|
-
console.log(result.hasMore); // Whether more pages exist
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
### Message ordering default
|
|
487
|
-
|
|
488
|
-
`listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
|
|
489
|
-
|
|
490
|
-
**To use DESC ordering (newest first):**
|
|
491
|
-
|
|
492
|
-
```typescript
|
|
493
|
-
const result = await storage.listMessages({
|
|
494
|
-
threadId: 'thread-1',
|
|
495
|
-
orderBy: { field: 'createdAt', direction: 'DESC' },
|
|
496
|
-
});
|
|
497
|
-
```
|
|
498
|
-
|
|
499
|
-
## Client SDK
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
... 4391 more lines hidden. See full changelog in package directory.
|
|
502
|
+
... 4428 more lines hidden. See full changelog in package directory.
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @mastra/react-hooks
|
|
2
2
|
|
|
3
|
+
## 0.1.0-beta.17
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies:
|
|
8
|
+
- @mastra/client-js@1.0.0-beta.17
|
|
9
|
+
|
|
10
|
+
## 0.1.0-beta.16
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`6cbb549`](https://github.com/mastra-ai/mastra/commit/6cbb549475201a2fbf158f0fd7323f6495f46d08)]:
|
|
15
|
+
- @mastra/client-js@1.0.0-beta.16
|
|
16
|
+
|
|
3
17
|
## 0.1.0-beta.15
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -484,19 +498,5 @@
|
|
|
484
498
|
|
|
485
499
|
### Patch Changes
|
|
486
500
|
|
|
487
|
-
- Mutable shared workflow run state ([#8545](https://github.com/mastra-ai/mastra/pull/8545))
|
|
488
|
-
|
|
489
|
-
- add tripwire reason in playground ([#8568](https://github.com/mastra-ai/mastra/pull/8568))
|
|
490
|
-
|
|
491
|
-
- type fixes and missing changeset ([#8545](https://github.com/mastra-ai/mastra/pull/8545))
|
|
492
|
-
|
|
493
|
-
- Convert WorkflowWatchResult to WorkflowResult in workflow graph ([#8541](https://github.com/mastra-ai/mastra/pull/8541))
|
|
494
|
-
|
|
495
|
-
- Updated dependencies [[`4783b30`](https://github.com/mastra-ai/mastra/commit/4783b3063efea887825514b783ba27f67912c26d), [`2aee9e7`](https://github.com/mastra-ai/mastra/commit/2aee9e7d188b8b256a4ddc203ccefb366b4867fa)]:
|
|
496
|
-
- @mastra/client-js@0.15.1-alpha.1
|
|
497
|
-
|
|
498
|
-
## 0.0.4-alpha.0
|
|
499
|
-
|
|
500
|
-
### Patch Changes
|
|
501
501
|
|
|
502
|
-
...
|
|
502
|
+
... 86 more lines hidden. See full changelog in package directory.
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @mastra/schema-compat
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Fix OpenAI structured output compatibility for fields with `.default()` values ([#11434](https://github.com/mastra-ai/mastra/pull/11434))
|
|
8
|
+
|
|
9
|
+
When using Zod schemas with `.default()` fields (e.g., `z.number().default(1)`), OpenAI's structured output API was failing with errors like `Missing '<field>' in required`. This happened because `zod-to-json-schema` doesn't include fields with defaults in the `required` array, but OpenAI requires all properties to be required.
|
|
10
|
+
|
|
11
|
+
This fix converts `.default()` fields to `.nullable()` with a transform that returns the default value when `null` is received, ensuring compatibility with OpenAI's strict mode while preserving the original default value semantics.
|
|
12
|
+
|
|
3
13
|
## 1.0.0-beta.3
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -1,5 +1,67 @@
|
|
|
1
1
|
# @mastra/server
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.17
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`b5dc973`](https://github.com/mastra-ai/mastra/commit/b5dc9733a5158850298dfb103acb3babdba8a318)]:
|
|
8
|
+
- @mastra/core@1.0.0-beta.17
|
|
9
|
+
|
|
10
|
+
## 1.0.0-beta.16
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Fix workflow observability view broken by invalid entityType parameter ([#11427](https://github.com/mastra-ai/mastra/pull/11427))
|
|
15
|
+
|
|
16
|
+
The UI workflow observability view was failing with a Zod validation error when trying to filter traces by workflow. The UI was sending `entityType=workflow`, but the backend's `EntityType` enum only accepts `workflow_run`.
|
|
17
|
+
|
|
18
|
+
**Root Cause**: The legacy value transformation was happening in the handler (after validation), but Zod validation occurred earlier in the request pipeline, rejecting the request before it could be transformed.
|
|
19
|
+
|
|
20
|
+
**Solution**:
|
|
21
|
+
- Added `z.preprocess()` to the query schema to transform `workflow` → `workflow_run` before validation
|
|
22
|
+
- Kept handler transformation for defense in depth
|
|
23
|
+
- Updated UI to use `EntityType.WORKFLOW_RUN` enum value for type safety
|
|
24
|
+
|
|
25
|
+
This maintains backward compatibility with legacy clients while fixing the validation error.
|
|
26
|
+
|
|
27
|
+
Fixes #11412
|
|
28
|
+
|
|
29
|
+
- Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
|
|
30
|
+
|
|
31
|
+
`MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import { MastraStorage } from '@mastra/core/storage';
|
|
35
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
|
|
36
|
+
import { MemoryLibSQL } from '@mastra/libsql';
|
|
37
|
+
|
|
38
|
+
// Compose domains from different stores
|
|
39
|
+
const storage = new MastraStorage({
|
|
40
|
+
id: 'composite',
|
|
41
|
+
domains: {
|
|
42
|
+
memory: new MemoryLibSQL({ url: 'file:./local.db' }),
|
|
43
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
44
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Breaking changes:**
|
|
50
|
+
- `storage.supports` property no longer exists
|
|
51
|
+
- `StorageSupports` type is no longer exported from `@mastra/core/storage`
|
|
52
|
+
|
|
53
|
+
All stores now support the same features. For domain availability, use `getStore()`:
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
const store = await storage.getStore('memory');
|
|
57
|
+
if (store) {
|
|
58
|
+
// domain is available
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
|
|
63
|
+
- @mastra/core@1.0.0-beta.16
|
|
64
|
+
|
|
3
65
|
## 1.0.0-beta.15
|
|
4
66
|
|
|
5
67
|
### Minor Changes
|
|
@@ -437,66 +499,4 @@
|
|
|
437
499
|
- Added `express.json()` middleware compatibility for MCP routes
|
|
438
500
|
- Moved authentication helpers from deployer to `@mastra/server/auth`
|
|
439
501
|
|
|
440
|
-
|
|
441
|
-
- Added shared MCP route and transport test suites in `@internal/server-adapter-test-utils`
|
|
442
|
-
- Added comprehensive MCP endpoint tests for both Hono and Express adapters
|
|
443
|
-
- Added GitHub Actions workflow for server adapter CI testing
|
|
444
|
-
|
|
445
|
-
- Allow direct access to server app handle directly from Mastra instance. ([#10598](https://github.com/mastra-ai/mastra/pull/10598))
|
|
446
|
-
|
|
447
|
-
```ts
|
|
448
|
-
// Before: HTTP request to localhost
|
|
449
|
-
const response = await fetch(`http://localhost:5000/api/tools`);
|
|
450
|
-
|
|
451
|
-
// After: Direct call via app.fetch()
|
|
452
|
-
const app = mastra.getServerApp<Hono>();
|
|
453
|
-
const response = await app.fetch(new Request('http://internal/api/tools'));
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
- Added `mastra.getServerApp<T>()` to access the underlying Hono/Express app
|
|
457
|
-
- Added `mastra.getMastraServer()` and `mastra.setMastraServer()` for adapter access
|
|
458
|
-
- Added `MastraServerBase` class in `@mastra/core/server` for adapter implementations
|
|
459
|
-
- Server adapters now auto-register with Mastra in their constructor
|
|
460
|
-
|
|
461
|
-
- fix(a2a): fix streaming and memory support for A2A protocol ([#10653](https://github.com/mastra-ai/mastra/pull/10653))
|
|
462
|
-
|
|
463
|
-
**Client (`@mastra/client-js`):**
|
|
464
|
-
- Fixed `sendStreamingMessage` to properly return a streaming response instead of attempting to parse it as JSON
|
|
465
|
-
|
|
466
|
-
**Server (`@mastra/server`):**
|
|
467
|
-
- Fixed A2A message handler to pass `contextId` as `threadId` for memory persistence across conversations
|
|
468
|
-
- Added support for user-provided `resourceId` via `params.metadata.resourceId` or `message.metadata.resourceId`, falling back to `agentId`
|
|
469
|
-
|
|
470
|
-
- Add stream data redaction to prevent sensitive information leaks in agent stream API responses. ([#10705](https://github.com/mastra-ai/mastra/pull/10705))
|
|
471
|
-
|
|
472
|
-
The `stream` API endpoint now automatically redacts `request` data from stream chunks (`step-start`, `step-finish`, `finish`) which could contain system prompts, tool definitions, and API keys. Redaction is enabled by default and can be disabled for debugging/internal services via `streamOptions.redact`.
|
|
473
|
-
|
|
474
|
-
- 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)]:
|
|
475
|
-
- @mastra/core@1.0.0-beta.6
|
|
476
|
-
|
|
477
|
-
## 1.0.0-beta.5
|
|
478
|
-
|
|
479
|
-
### Patch Changes
|
|
480
|
-
|
|
481
|
-
- Extract routing from @deployer/server into server adapter packages. ([#10263](https://github.com/mastra-ai/mastra/pull/10263))
|
|
482
|
-
New packages:
|
|
483
|
-
- @mastra/express
|
|
484
|
-
- @mastra/hono
|
|
485
|
-
|
|
486
|
-
These packages support mastra server routes on express and hono respectively.
|
|
487
|
-
Better abstractions will be built on top of these packages in the near future, enabling users to easily attach mastra routes to any existing server framework.
|
|
488
|
-
|
|
489
|
-
- Add timeTravel APIs and add timeTravel feature to studio ([#10361](https://github.com/mastra-ai/mastra/pull/10361))
|
|
490
|
-
|
|
491
|
-
- Fixed server handler bugs: filter parsing now handles colons in values (timestamps, URLs), dateRange validation now converts JSON strings to Date objects, deleteMessages schema accepts object forms, and added missing responseSchema for legacy stream route ([#10362](https://github.com/mastra-ai/mastra/pull/10362))
|
|
492
|
-
|
|
493
|
-
- 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)]:
|
|
494
|
-
- @mastra/core@1.0.0-beta.5
|
|
495
|
-
|
|
496
|
-
## 1.0.0-beta.4
|
|
497
|
-
|
|
498
|
-
### Patch Changes
|
|
499
|
-
|
|
500
|
-
- Network handler now accesses thread and resource parameters from the nested memory object instead of directly from request body. ([#10294](https://github.com/mastra-ai/mastra/pull/10294))
|
|
501
|
-
|
|
502
|
-
... 4534 more lines hidden. See full changelog in package directory.
|
|
502
|
+
... 4596 more lines hidden. See full changelog in package directory.
|
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# @mastra/upstash
|
|
2
2
|
|
|
3
|
+
## 1.0.0-beta.9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Add storage composition to MastraStorage ([#11401](https://github.com/mastra-ai/mastra/pull/11401))
|
|
8
|
+
|
|
9
|
+
`MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a different database for observability.
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { MastraStorage } from '@mastra/core/storage';
|
|
13
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from '@mastra/pg';
|
|
14
|
+
import { MemoryLibSQL } from '@mastra/libsql';
|
|
15
|
+
|
|
16
|
+
// Compose domains from different stores
|
|
17
|
+
const storage = new MastraStorage({
|
|
18
|
+
id: 'composite',
|
|
19
|
+
domains: {
|
|
20
|
+
memory: new MemoryLibSQL({ url: 'file:./local.db' }),
|
|
21
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
22
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Breaking changes:**
|
|
28
|
+
- `storage.supports` property no longer exists
|
|
29
|
+
- `StorageSupports` type is no longer exported from `@mastra/core/storage`
|
|
30
|
+
|
|
31
|
+
All stores now support the same features. For domain availability, use `getStore()`:
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
const store = await storage.getStore('memory');
|
|
35
|
+
if (store) {
|
|
36
|
+
// domain is available
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- Updated dependencies [[`3d93a15`](https://github.com/mastra-ai/mastra/commit/3d93a15796b158c617461c8b98bede476ebb43e2), [`efe406a`](https://github.com/mastra-ai/mastra/commit/efe406a1353c24993280ebc2ed61dd9f65b84b26), [`119e5c6`](https://github.com/mastra-ai/mastra/commit/119e5c65008f3e5cfca954eefc2eb85e3bf40da4), [`74e504a`](https://github.com/mastra-ai/mastra/commit/74e504a3b584eafd2f198001c6a113bbec589fd3), [`e33fdbd`](https://github.com/mastra-ai/mastra/commit/e33fdbd07b33920d81e823122331b0c0bee0bb59), [`929f69c`](https://github.com/mastra-ai/mastra/commit/929f69c3436fa20dd0f0e2f7ebe8270bd82a1529), [`8a73529`](https://github.com/mastra-ai/mastra/commit/8a73529ca01187f604b1f3019d0a725ac63ae55f)]:
|
|
41
|
+
- @mastra/core@1.0.0-beta.16
|
|
42
|
+
|
|
3
43
|
## 1.0.0-beta.8
|
|
4
44
|
|
|
5
45
|
### Minor Changes
|
|
@@ -458,45 +498,5 @@
|
|
|
458
498
|
|
|
459
499
|
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
460
500
|
|
|
461
|
-
- Add new list methods to storage API: `listMessages`, `listMessagesById`, `listThreadsByResourceId`, and `listWorkflowRuns`. Most methods are currently wrappers around existing methods. Full implementations will be added when migrating away from legacy methods. ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
|
|
462
|
-
|
|
463
|
-
- Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
|
|
464
|
-
|
|
465
|
-
- Implement listMessages API for replacing previous methods ([#9531](https://github.com/mastra-ai/mastra/pull/9531))
|
|
466
|
-
|
|
467
|
-
- Remove `getThreadsByResourceId` and `getThreadsByResourceIdPaginated` methods from storage interfaces in favor of `listThreadsByResourceId`. The new method uses `offset`/`limit` pagination and a nested `orderBy` object structure (`{ field, direction }`). ([#9536](https://github.com/mastra-ai/mastra/pull/9536))
|
|
468
|
-
|
|
469
|
-
- Remove `getMessagesById` method from storage interfaces in favor of `listMessagesById`. The new method only returns V2-format messages and removes the format parameter, simplifying the API surface. Users should migrate from `getMessagesById({ messageIds, format })` to `listMessagesById({ messageIds })`. ([#9534](https://github.com/mastra-ai/mastra/pull/9534))
|
|
470
|
-
|
|
471
|
-
- **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
|
|
472
|
-
|
|
473
|
-
All storage and memory pagination APIs have been updated to use `page` (0-indexed) and `perPage` instead of `offset` and `limit`, aligning with standard REST API patterns.
|
|
474
|
-
|
|
475
|
-
**Affected APIs:**
|
|
476
|
-
- `Memory.listThreadsByResourceId()`
|
|
477
|
-
- `Memory.listMessages()`
|
|
478
|
-
- `Storage.listWorkflowRuns()`
|
|
479
|
-
|
|
480
|
-
**Migration:**
|
|
481
|
-
|
|
482
|
-
```typescript
|
|
483
|
-
// Before
|
|
484
|
-
await memory.listThreadsByResourceId({
|
|
485
|
-
resourceId: 'user-123',
|
|
486
|
-
offset: 20,
|
|
487
|
-
limit: 10,
|
|
488
|
-
});
|
|
489
|
-
|
|
490
|
-
// After
|
|
491
|
-
await memory.listThreadsByResourceId({
|
|
492
|
-
resourceId: 'user-123',
|
|
493
|
-
page: 2, // page = Math.floor(offset / limit)
|
|
494
|
-
perPage: 10,
|
|
495
|
-
});
|
|
496
|
-
|
|
497
|
-
// Before
|
|
498
|
-
await memory.listMessages({
|
|
499
|
-
threadId: 'thread-456',
|
|
500
|
-
offset: 20,
|
|
501
501
|
|
|
502
|
-
...
|
|
502
|
+
... 2583 more lines hidden. See full changelog in package directory.
|
|
@@ -7,6 +7,33 @@ description: "Learn how to migrate storage-related changes when upgrading to v1.
|
|
|
7
7
|
|
|
8
8
|
Storage APIs have been standardized with consistent pagination and naming patterns across all methods.
|
|
9
9
|
|
|
10
|
+
## Added
|
|
11
|
+
|
|
12
|
+
### Storage composition in MastraStorage
|
|
13
|
+
|
|
14
|
+
`MastraStorage` can now compose storage domains from different adapters. Use it when you need different databases for different purposes - for example, PostgreSQL for memory and workflows, but a specialized database for observability.
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import { MastraStorage } from "@mastra/core/storage";
|
|
18
|
+
import { MemoryPG, WorkflowsPG, ScoresPG } from "@mastra/pg";
|
|
19
|
+
import { MemoryLibSQL } from "@mastra/libsql";
|
|
20
|
+
import { Mastra } from "@mastra/core";
|
|
21
|
+
|
|
22
|
+
// Compose domains from different stores
|
|
23
|
+
const mastra = new Mastra({
|
|
24
|
+
storage: new MastraStorage({
|
|
25
|
+
id: "composite",
|
|
26
|
+
domains: {
|
|
27
|
+
memory: new MemoryLibSQL({ url: "file:./local.db" }),
|
|
28
|
+
workflows: new WorkflowsPG({ connectionString: process.env.DATABASE_URL }),
|
|
29
|
+
scores: new ScoresPG({ connectionString: process.env.DATABASE_URL }),
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
See the [Storage Composition reference](/reference/v1/storage/composite) for more details.
|
|
36
|
+
|
|
10
37
|
## Changed
|
|
11
38
|
|
|
12
39
|
### Required `id` property for storage instances
|
|
@@ -145,6 +145,21 @@ await run.resume({
|
|
|
145
145
|
});
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
+
### cancel()
|
|
149
|
+
|
|
150
|
+
Cancel a running workflow:
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
const run = await workflow.createRun({ runId: existingRunId });
|
|
154
|
+
|
|
155
|
+
const result = await run.cancel();
|
|
156
|
+
// Returns: { message: 'Workflow run canceled' }
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
This method stops any running steps and prevents subsequent steps from executing. Steps that check the `abortSignal` parameter can respond to cancellation by cleaning up resources (timeouts, network requests, etc.).
|
|
160
|
+
|
|
161
|
+
See the [Run.cancel()](/reference/v1/workflows/run-methods/cancel) reference for detailed information about how cancellation works and how to write steps that respond to cancellation.
|
|
162
|
+
|
|
148
163
|
### stream()
|
|
149
164
|
|
|
150
165
|
Stream workflow execution for real-time updates:
|