@mastra/dynamodb 1.3.0-alpha.0 → 1.3.0-alpha.2

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,5 +1,33 @@
1
1
  # @mastra/dynamodb
2
2
 
3
+ ## 1.3.0-alpha.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed generated thread titles being clobbered during a turn ([#21041](https://github.com/mastra-ai/mastra/pull/21041))
8
+
9
+ `updateThread` required both `title` and `metadata`, so callers that only needed to
10
+ change metadata (message persistence, working memory, observational memory, channel
11
+ subscriptions) had to read the thread and pass its title back. When title generation
12
+ finished between that read and the write, the freshly generated title was overwritten
13
+ with the stale one.
14
+
15
+ `title` and `metadata` are now independently optional: omitting one leaves that column
16
+ untouched. Callers that only change metadata no longer send a title, and message
17
+ persistence no longer rewrites a thread row it just read.
18
+
19
+ - Updated dependencies [[`1c75e32`](https://github.com/mastra-ai/mastra/commit/1c75e32f7fc0b9fb6f548b4407feaec8a1440212), [`c47165c`](https://github.com/mastra-ai/mastra/commit/c47165c983c87594c6952f1fd2fa51a90205034c), [`e08e789`](https://github.com/mastra-ai/mastra/commit/e08e789c1bf4cd2fe46363f7a4728536ceccc9bd), [`35cc901`](https://github.com/mastra-ai/mastra/commit/35cc90102cf834a84827acaf9eee0b6d6d1e2a3b), [`a8b4cf0`](https://github.com/mastra-ai/mastra/commit/a8b4cf02823cffebc4751a53337dfacf097c1ae1), [`f33264f`](https://github.com/mastra-ai/mastra/commit/f33264f517ae603279afd5c4251e2b40f6dd3618), [`689f2c4`](https://github.com/mastra-ai/mastra/commit/689f2c4b6c0835fe455702b01d21daa8abcd9331), [`eeae63e`](https://github.com/mastra-ai/mastra/commit/eeae63e7fbe8e1f237adc69bca6e2ac13c5ca907), [`4c186a0`](https://github.com/mastra-ai/mastra/commit/4c186a017275f45e6ed4c09de0f89550e2d09e8c), [`b0fa077`](https://github.com/mastra-ai/mastra/commit/b0fa077bcbc9b08551846fe372a0d3d15b71ed72)]:
20
+ - @mastra/core@1.58.0-alpha.8
21
+
22
+ ## 1.3.0-alpha.1
23
+
24
+ ### Patch Changes
25
+
26
+ - Fixed resource-scoped message includes across storage adapters so included context cannot cross resource boundaries. ([#20984](https://github.com/mastra-ai/mastra/pull/20984))
27
+
28
+ - Updated dependencies [[`6445eba`](https://github.com/mastra-ai/mastra/commit/6445eba6020abac681aba1cc9289f446cb400cbe), [`df31eb0`](https://github.com/mastra-ai/mastra/commit/df31eb0c7087d782a0d9346e467f9a4af4b0eef6), [`fcd0667`](https://github.com/mastra-ai/mastra/commit/fcd0667a4e378be35c9a1b1eb19cce78fbfd7282), [`bab06b1`](https://github.com/mastra-ai/mastra/commit/bab06b18923873a584bdfc71a6b4ec7fb4727fb7)]:
29
+ - @mastra/core@1.58.0-alpha.5
30
+
3
31
  ## 1.3.0-alpha.0
4
32
 
5
33
  ### Minor Changes
@@ -3,7 +3,7 @@ name: mastra-dynamodb
3
3
  description: Documentation for @mastra/dynamodb. Use when working with @mastra/dynamodb APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/dynamodb"
6
- version: "1.3.0-alpha.0"
6
+ version: "1.3.0-alpha.2"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.3.0-alpha.0",
2
+ "version": "1.3.0-alpha.2",
3
3
  "package": "@mastra/dynamodb",
4
4
  "exports": {},
5
5
  "modules": {}
package/dist/index.cjs CHANGED
@@ -1746,7 +1746,10 @@ var MemoryStorageDynamoDB = class extends _mastra_core_storage.MemoryStorage {
1746
1746
  hasMore: false
1747
1747
  };
1748
1748
  if (perPage === 0 && include && include.length > 0) {
1749
- const includeMessages = await this._getIncludedMessages({ include });
1749
+ const includeMessages = await this._getIncludedMessages({
1750
+ include,
1751
+ resourceId
1752
+ });
1750
1753
  const list = new _mastra_core_agent.MessageList().add(includeMessages, "memory");
1751
1754
  return {
1752
1755
  messages: this._sortMessages(list.get.all.db(), field, direction),
@@ -1835,7 +1838,10 @@ var MemoryStorageDynamoDB = class extends _mastra_core_storage.MemoryStorage {
1835
1838
  const messageIds = new Set(paginatedMessages.map((m) => m.id));
1836
1839
  let includeMessages = [];
1837
1840
  if (include && include.length > 0) {
1838
- includeMessages = await this._getIncludedMessages({ include });
1841
+ includeMessages = await this._getIncludedMessages({
1842
+ include,
1843
+ resourceId
1844
+ });
1839
1845
  for (const includeMsg of includeMessages) if (!messageIds.has(includeMsg.id)) {
1840
1846
  paginatedMessages.push(includeMsg);
1841
1847
  messageIds.add(includeMsg.id);
@@ -2010,7 +2016,14 @@ var MemoryStorageDynamoDB = class extends _mastra_core_storage.MemoryStorage {
2010
2016
  return direction === "ASC" ? aValue - bValue : bValue - aValue;
2011
2017
  });
2012
2018
  }
2013
- async _getIncludedMessages({ include }) {
2019
+ /**
2020
+ * Fetches the messages named by `include` together with their surrounding context.
2021
+ *
2022
+ * @param include - Message ids to pin, each with an optional before/after window.
2023
+ * @param resourceId - When set, restricts both the pinned messages and their context
2024
+ * to that resource so an id from another resource returns nothing.
2025
+ */
2026
+ async _getIncludedMessages({ include, resourceId }) {
2014
2027
  if (!include?.length) return [];
2015
2028
  const targetResults = await Promise.all(include.map((inc) => this.service.entities.message.get({
2016
2029
  entity: "message",
@@ -2023,7 +2036,7 @@ var MemoryStorageDynamoDB = class extends _mastra_core_storage.MemoryStorage {
2023
2036
  data: null
2024
2037
  }))));
2025
2038
  const targetMap = /* @__PURE__ */ new Map();
2026
- for (const { id, data } of targetResults) if (data) {
2039
+ for (const { id, data } of targetResults) if (data && (!resourceId || data.resourceId === resourceId)) {
2027
2040
  const createdAt = typeof data.createdAt === "string" ? data.createdAt : new Date(data.createdAt).toISOString();
2028
2041
  targetMap.set(id, {
2029
2042
  threadId: data.threadId,
@@ -2031,7 +2044,7 @@ var MemoryStorageDynamoDB = class extends _mastra_core_storage.MemoryStorage {
2031
2044
  });
2032
2045
  }
2033
2046
  if (targetMap.size === 0) return [];
2034
- const parseQueryMessages = (data) => data.map((item) => this.parseMessageData(item)).filter((msg) => "content" in msg && typeof msg.content === "object");
2047
+ const parseQueryMessages = (data) => data.map((item) => this.parseMessageData(item)).filter((msg) => "content" in msg && typeof msg.content === "object").filter((msg) => !resourceId || msg.resourceId === resourceId);
2035
2048
  const includeMessages = [];
2036
2049
  for (const includeItem of include) {
2037
2050
  const { id, withPreviousMessages = 0, withNextMessages = 0 } = includeItem;