@mastra/mysql 0.8.0 → 0.8.1-alpha.0

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,18 @@
1
1
  # @mastra/mysql
2
2
 
3
+ ## 0.8.1-alpha.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed concurrent resume() calls on the same suspended workflow run executing downstream steps more than once. A resume now atomically claims the run before executing anything, so only one caller continues a given suspension. Losing callers throw WORKFLOW_RESUME_ALREADY_CLAIMED without running any steps. Fixes #20443 ([#21725](https://github.com/mastra-ai/mastra/pull/21725))
8
+
9
+ - Workflow state updates now support an optional expectedStatus guard, so a status change is only applied when the stored run is in an expected state. This is what makes concurrent workflow resumes safe. ([#21725](https://github.com/mastra-ai/mastra/pull/21725))
10
+
11
+ - Resume conflicts now return 409 Conflict. When a suspended workflow run has already been resumed by another caller, the resume endpoints respond with 409 instead of a generic error. ([#21725](https://github.com/mastra-ai/mastra/pull/21725))
12
+
13
+ - Updated dependencies [[`88d14ca`](https://github.com/mastra-ai/mastra/commit/88d14cac008582a618fecc3d5c7fd3bdf4f6ddc3), [`84a5b69`](https://github.com/mastra-ai/mastra/commit/84a5b699f84d6bae0a34efe5a970d891090b9f41), [`84a5b69`](https://github.com/mastra-ai/mastra/commit/84a5b699f84d6bae0a34efe5a970d891090b9f41), [`84a5b69`](https://github.com/mastra-ai/mastra/commit/84a5b699f84d6bae0a34efe5a970d891090b9f41), [`038b7b4`](https://github.com/mastra-ai/mastra/commit/038b7b405cb4ac25ab3f3031334111b1f87ac112), [`4132d61`](https://github.com/mastra-ai/mastra/commit/4132d61f8367077120ee9e6420d3224dffd93c93)]:
14
+ - @mastra/core@1.60.1-alpha.0
15
+
3
16
  ## 0.8.0
4
17
 
5
18
  ### Minor Changes
package/dist/index.cjs CHANGED
@@ -10529,9 +10529,15 @@ var WorkflowsMySQL = class WorkflowsMySQL extends _mastra_core_storage.Workflows
10529
10529
  await connection.rollback();
10530
10530
  return;
10531
10531
  }
10532
+ const existing = parseSnapshot(rows[0].snapshot);
10533
+ const { expectedStatus, ...state } = opts;
10534
+ if (!(0, _mastra_core_storage.matchesExpectedWorkflowStatus)(existing.status, expectedStatus)) {
10535
+ await connection.rollback();
10536
+ return;
10537
+ }
10532
10538
  const updatedSnapshot = {
10533
- ...parseSnapshot(rows[0].snapshot),
10534
- ...opts
10539
+ ...existing,
10540
+ ...state
10535
10541
  };
10536
10542
  await connection.execute(`UPDATE ${formatTableName(_mastra_core_storage.TABLE_WORKFLOW_SNAPSHOT)} SET ${quoteIdentifier("snapshot", "column name")} = ?, ${quoteIdentifier("updatedAt", "column name")} = ? WHERE ${quoteIdentifier("workflow_name", "column name")} = ? AND ${quoteIdentifier("run_id", "column name")} = ?`, [
10537
10543
  JSON.stringify(updatedSnapshot),