@mastra/dsql 1.3.0-alpha.1 → 1.3.0-alpha.3

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,35 @@
1
1
  # @mastra/dsql
2
2
 
3
+ ## 1.3.0-alpha.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed a crash where updating a thread without a title (for example during observational memory buffering) could write a null title and violate the database's not-null constraint when running a newer @mastra/memory against an older storage package. Memory now checks whether the connected storage adapter supports partial thread updates and backfills the existing title for older adapters, so mixed-version deployments keep working. See #21041 for the original title-clobbering fix this makes backward compatible. ([#21257](https://github.com/mastra-ai/mastra/pull/21257))
8
+
9
+ - Storage adapters now declare support for partial thread updates, letting newer @mastra/memory preserve existing thread titles instead of overwriting them, while remaining safe against older versions. ([#21257](https://github.com/mastra-ai/mastra/pull/21257))
10
+
11
+ - Updated dependencies [[`dc4a25d`](https://github.com/mastra-ai/mastra/commit/dc4a25d41af4e2fe97a816070eaec6aa963ab53b), [`dc4a25d`](https://github.com/mastra-ai/mastra/commit/dc4a25d41af4e2fe97a816070eaec6aa963ab53b)]:
12
+ - @mastra/core@1.58.0-alpha.15
13
+
14
+ ## 1.3.0-alpha.2
15
+
16
+ ### Patch Changes
17
+
18
+ - Fixed generated thread titles being clobbered during a turn ([#21041](https://github.com/mastra-ai/mastra/pull/21041))
19
+
20
+ `updateThread` required both `title` and `metadata`, so callers that only needed to
21
+ change metadata (message persistence, working memory, observational memory, channel
22
+ subscriptions) had to read the thread and pass its title back. When title generation
23
+ finished between that read and the write, the freshly generated title was overwritten
24
+ with the stale one.
25
+
26
+ `title` and `metadata` are now independently optional: omitting one leaves that column
27
+ untouched. Callers that only change metadata no longer send a title, and message
28
+ persistence no longer rewrites a thread row it just read.
29
+
30
+ - 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)]:
31
+ - @mastra/core@1.58.0-alpha.8
32
+
3
33
  ## 1.3.0-alpha.1
4
34
 
5
35
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -1821,6 +1821,7 @@ function inPlaceholders(count, startIndex = 1) {
1821
1821
  return Array.from({ length: count }, (_, i) => `$${i + startIndex}`).join(", ");
1822
1822
  }
1823
1823
  var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
1824
+ supportsPartialThreadUpdate = true;
1824
1825
  #db;
1825
1826
  #schema;
1826
1827
  #skipDefaultIndexes;
@@ -2101,7 +2102,7 @@ var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
2101
2102
  text: `Thread ${id} not found`,
2102
2103
  details: {
2103
2104
  threadId: id,
2104
- title
2105
+ title: title ?? null
2105
2106
  }
2106
2107
  });
2107
2108
  const mergedMetadata = {
@@ -2111,14 +2112,14 @@ var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
2111
2112
  const now = (/* @__PURE__ */ new Date()).toISOString();
2112
2113
  const thread = await this.#db.client.one(`UPDATE ${threadTableName}
2113
2114
  SET
2114
- title = $1,
2115
+ title = COALESCE($1, title),
2115
2116
  metadata = $2,
2116
2117
  "updatedAt" = $3::timestamp,
2117
2118
  "updatedAtZ" = $4::timestamptz
2118
2119
  WHERE id = $5
2119
2120
  RETURNING *
2120
2121
  `, [
2121
- title,
2122
+ title ?? null,
2122
2123
  JSON.stringify(mergedMetadata),
2123
2124
  now,
2124
2125
  now,
@@ -2142,7 +2143,7 @@ var MemoryDSQL = class MemoryDSQL extends _mastra_core_storage.MemoryStorage {
2142
2143
  category: _mastra_core_error.ErrorCategory.THIRD_PARTY,
2143
2144
  details: {
2144
2145
  threadId: id,
2145
- title
2146
+ title: title ?? null
2146
2147
  }
2147
2148
  }, error);
2148
2149
  });