@mastra/code-sdk 0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722 → 0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150

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.
Files changed (285) hide show
  1. package/CHANGELOG.md +650 -13
  2. package/README.md +20 -0
  3. package/dist/acp/agent.js +155 -167
  4. package/dist/acp/agent.js.map +1 -1
  5. package/dist/acp/event-mapper.js +193 -168
  6. package/dist/acp/event-mapper.js.map +1 -1
  7. package/dist/acp/index.js +60 -49
  8. package/dist/acp/index.js.map +1 -1
  9. package/dist/acp/server.js +31 -30
  10. package/dist/acp/server.js.map +1 -1
  11. package/dist/acp.js +1 -4
  12. package/dist/agents/credential-resolver.js +40 -29
  13. package/dist/agents/credential-resolver.js.map +1 -1
  14. package/dist/agents/custom-provider-source.d.ts +35 -0
  15. package/dist/agents/custom-provider-source.d.ts.map +1 -0
  16. package/dist/agents/custom-provider-source.js +25 -0
  17. package/dist/agents/custom-provider-source.js.map +1 -0
  18. package/dist/agents/instructions.js +27 -36
  19. package/dist/agents/instructions.js.map +1 -1
  20. package/dist/agents/mastracode-gateway.d.ts.map +1 -1
  21. package/dist/agents/mastracode-gateway.js +355 -422
  22. package/dist/agents/mastracode-gateway.js.map +1 -1
  23. package/dist/agents/memory.d.ts.map +1 -1
  24. package/dist/agents/memory.js +87 -78
  25. package/dist/agents/memory.js.map +1 -1
  26. package/dist/agents/model.d.ts +2 -0
  27. package/dist/agents/model.d.ts.map +1 -1
  28. package/dist/agents/model.js +114 -109
  29. package/dist/agents/model.js.map +1 -1
  30. package/dist/agents/modes/build.js +12 -13
  31. package/dist/agents/modes/build.js.map +1 -1
  32. package/dist/agents/modes/explore.js +14 -13
  33. package/dist/agents/modes/explore.js.map +1 -1
  34. package/dist/agents/modes/plan.js +14 -15
  35. package/dist/agents/modes/plan.js.map +1 -1
  36. package/dist/agents/prompts/agent-instructions.d.ts +41 -2
  37. package/dist/agents/prompts/agent-instructions.d.ts.map +1 -1
  38. package/dist/agents/prompts/agent-instructions.js +191 -72
  39. package/dist/agents/prompts/agent-instructions.js.map +1 -1
  40. package/dist/agents/prompts/build.js +19 -16
  41. package/dist/agents/prompts/build.js.map +1 -1
  42. package/dist/agents/prompts/fast.js +8 -4
  43. package/dist/agents/prompts/fast.js.map +1 -1
  44. package/dist/agents/prompts/index.d.ts.map +1 -1
  45. package/dist/agents/prompts/index.js +54 -47
  46. package/dist/agents/prompts/index.js.map +1 -1
  47. package/dist/agents/prompts/model.js +6 -5
  48. package/dist/agents/prompts/model.js.map +1 -1
  49. package/dist/agents/prompts/plan.js +20 -16
  50. package/dist/agents/prompts/plan.js.map +1 -1
  51. package/dist/agents/prompts/tool-guidance.js +77 -109
  52. package/dist/agents/prompts/tool-guidance.js.map +1 -1
  53. package/dist/agents/sandbox-filesystem.d.ts +10 -0
  54. package/dist/agents/sandbox-filesystem.d.ts.map +1 -1
  55. package/dist/agents/sandbox-filesystem.js +319 -259
  56. package/dist/agents/sandbox-filesystem.js.map +1 -1
  57. package/dist/agents/sandbox-reattach.js +9 -11
  58. package/dist/agents/sandbox-reattach.js.map +1 -1
  59. package/dist/agents/thread-caveman-state.js +92 -81
  60. package/dist/agents/thread-caveman-state.js.map +1 -1
  61. package/dist/agents/tool-availability.js +62 -80
  62. package/dist/agents/tool-availability.js.map +1 -1
  63. package/dist/agents/tools.js +99 -139
  64. package/dist/agents/tools.js.map +1 -1
  65. package/dist/agents/workspace.d.ts.map +1 -1
  66. package/dist/agents/workspace.js +232 -225
  67. package/dist/agents/workspace.js.map +1 -1
  68. package/dist/analytics.js +139 -128
  69. package/dist/analytics.js.map +1 -1
  70. package/dist/auth/authorization-input.js +39 -25
  71. package/dist/auth/authorization-input.js.map +1 -1
  72. package/dist/auth/device-code.js +112 -80
  73. package/dist/auth/device-code.js.map +1 -1
  74. package/dist/auth/index.js +2 -9
  75. package/dist/auth/pkce.js +27 -16
  76. package/dist/auth/pkce.js.map +1 -1
  77. package/dist/auth/providers/anthropic.d.ts.map +1 -1
  78. package/dist/auth/providers/anthropic.js +107 -88
  79. package/dist/auth/providers/anthropic.js.map +1 -1
  80. package/dist/auth/providers/github-copilot.js +304 -293
  81. package/dist/auth/providers/github-copilot.js.map +1 -1
  82. package/dist/auth/providers/openai-codex.js +442 -460
  83. package/dist/auth/providers/openai-codex.js.map +1 -1
  84. package/dist/auth/providers/xai.js +179 -145
  85. package/dist/auth/providers/xai.js.map +1 -1
  86. package/dist/auth/storage.js +182 -175
  87. package/dist/auth/storage.js.map +1 -1
  88. package/dist/auth/types.js +1 -1
  89. package/dist/clipboard/index.js +206 -172
  90. package/dist/clipboard/index.js.map +1 -1
  91. package/dist/constants.js +12 -17
  92. package/dist/constants.js.map +1 -1
  93. package/dist/error-classification.js +19 -11
  94. package/dist/error-classification.js.map +1 -1
  95. package/dist/evals/context-builder.js +145 -104
  96. package/dist/evals/context-builder.js.map +1 -1
  97. package/dist/evals/index.js +4 -7
  98. package/dist/evals/scorers/classify-command.js +62 -41
  99. package/dist/evals/scorers/classify-command.js.map +1 -1
  100. package/dist/evals/scorers/efficiency.js +239 -181
  101. package/dist/evals/scorers/efficiency.js.map +1 -1
  102. package/dist/evals/scorers/extract-tools.js +51 -47
  103. package/dist/evals/scorers/extract-tools.js.map +1 -1
  104. package/dist/evals/scorers/index.js +1 -5
  105. package/dist/evals/scorers/outcome.js +321 -212
  106. package/dist/evals/scorers/outcome.js.map +1 -1
  107. package/dist/goal-manager.d.ts +2 -7
  108. package/dist/goal-manager.d.ts.map +1 -1
  109. package/dist/goal-manager.js +267 -271
  110. package/dist/goal-manager.js.map +1 -1
  111. package/dist/goal-signal.js +14 -13
  112. package/dist/goal-signal.js.map +1 -1
  113. package/dist/headless/cli.js +153 -154
  114. package/dist/headless/cli.js.map +1 -1
  115. package/dist/headless/flags.js +180 -178
  116. package/dist/headless/flags.js.map +1 -1
  117. package/dist/headless/format.js +72 -71
  118. package/dist/headless/format.js.map +1 -1
  119. package/dist/headless/index.js +5 -31
  120. package/dist/headless/policy.js +35 -31
  121. package/dist/headless/policy.js.map +1 -1
  122. package/dist/headless/run-mc.js +332 -334
  123. package/dist/headless/run-mc.js.map +1 -1
  124. package/dist/headless/types.js +16 -7
  125. package/dist/headless/types.js.map +1 -1
  126. package/dist/hooks/config.js +56 -61
  127. package/dist/hooks/config.js.map +1 -1
  128. package/dist/hooks/executor.js +118 -116
  129. package/dist/hooks/executor.js.map +1 -1
  130. package/dist/hooks/index.js +4 -15
  131. package/dist/hooks/manager.js +221 -280
  132. package/dist/hooks/manager.js.map +1 -1
  133. package/dist/hooks/types.js +5 -4
  134. package/dist/hooks/types.js.map +1 -1
  135. package/dist/index.d.ts +14 -0
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +693 -697
  138. package/dist/index.js.map +1 -1
  139. package/dist/ipc/ipc-reporter.js +19 -22
  140. package/dist/ipc/ipc-reporter.js.map +1 -1
  141. package/dist/lsp/client.js +248 -306
  142. package/dist/lsp/client.js.map +1 -1
  143. package/dist/lsp/index.js +1 -6
  144. package/dist/lsp/language.js +39 -43
  145. package/dist/lsp/language.js.map +1 -1
  146. package/dist/lsp/manager.js +78 -93
  147. package/dist/lsp/manager.js.map +1 -1
  148. package/dist/lsp/server.js +151 -120
  149. package/dist/lsp/server.js.map +1 -1
  150. package/dist/lsp/workspace.js +50 -47
  151. package/dist/lsp/workspace.js.map +1 -1
  152. package/dist/mcp/config.d.ts +21 -1
  153. package/dist/mcp/config.d.ts.map +1 -1
  154. package/dist/mcp/config.js +211 -176
  155. package/dist/mcp/config.js.map +1 -1
  156. package/dist/mcp/index.js +2 -9
  157. package/dist/mcp/manager.d.ts +22 -0
  158. package/dist/mcp/manager.d.ts.map +1 -1
  159. package/dist/mcp/manager.js +483 -363
  160. package/dist/mcp/manager.js.map +1 -1
  161. package/dist/mcp/types.d.ts +24 -2
  162. package/dist/mcp/types.d.ts.map +1 -1
  163. package/dist/mcp/types.js +1 -1
  164. package/dist/onboarding/custom-packs.js +14 -17
  165. package/dist/onboarding/custom-packs.js.map +1 -1
  166. package/dist/onboarding/custom-providers.js +22 -20
  167. package/dist/onboarding/custom-providers.js.map +1 -1
  168. package/dist/onboarding/index.d.ts +1 -1
  169. package/dist/onboarding/index.d.ts.map +1 -1
  170. package/dist/onboarding/index.js +3 -21
  171. package/dist/onboarding/om-settings.d.ts +5 -0
  172. package/dist/onboarding/om-settings.d.ts.map +1 -1
  173. package/dist/onboarding/om-settings.js +41 -20
  174. package/dist/onboarding/om-settings.js.map +1 -1
  175. package/dist/onboarding/packs.d.ts +4 -6
  176. package/dist/onboarding/packs.d.ts.map +1 -1
  177. package/dist/onboarding/packs.js +154 -105
  178. package/dist/onboarding/packs.js.map +1 -1
  179. package/dist/onboarding/settings.js +575 -517
  180. package/dist/onboarding/settings.js.map +1 -1
  181. package/dist/permissions.js +112 -99
  182. package/dist/permissions.js.map +1 -1
  183. package/dist/plugin.js +21 -23
  184. package/dist/plugin.js.map +1 -1
  185. package/dist/plugins/dependencies.js +64 -87
  186. package/dist/plugins/dependencies.js.map +1 -1
  187. package/dist/plugins/install.js +159 -169
  188. package/dist/plugins/install.js.map +1 -1
  189. package/dist/plugins/loader.js +170 -185
  190. package/dist/plugins/loader.js.map +1 -1
  191. package/dist/plugins/manager.d.ts +4 -0
  192. package/dist/plugins/manager.d.ts.map +1 -1
  193. package/dist/plugins/manager.js +374 -368
  194. package/dist/plugins/manager.js.map +1 -1
  195. package/dist/plugins/manifest.js +38 -63
  196. package/dist/plugins/manifest.js.map +1 -1
  197. package/dist/plugins/package-link.js +48 -64
  198. package/dist/plugins/package-link.js.map +1 -1
  199. package/dist/plugins/paths.js +18 -19
  200. package/dist/plugins/paths.js.map +1 -1
  201. package/dist/plugins/registry.js +97 -81
  202. package/dist/plugins/registry.js.map +1 -1
  203. package/dist/plugins/scaffold.js +62 -98
  204. package/dist/plugins/scaffold.js.map +1 -1
  205. package/dist/plugins/types.js +1 -1
  206. package/dist/processors/plan-rejection-abort.js +45 -44
  207. package/dist/processors/plan-rejection-abort.js.map +1 -1
  208. package/dist/providers/amazon-bedrock-gateway.js +134 -125
  209. package/dist/providers/amazon-bedrock-gateway.js.map +1 -1
  210. package/dist/providers/amazon-bedrock.js +68 -47
  211. package/dist/providers/amazon-bedrock.js.map +1 -1
  212. package/dist/providers/claude-max.js +153 -133
  213. package/dist/providers/claude-max.js.map +1 -1
  214. package/dist/providers/github-copilot.js +232 -230
  215. package/dist/providers/github-copilot.js.map +1 -1
  216. package/dist/providers/openai-codex.js +271 -260
  217. package/dist/providers/openai-codex.js.map +1 -1
  218. package/dist/providers/xai.js +57 -50
  219. package/dist/providers/xai.js.map +1 -1
  220. package/dist/schema.d.ts +21 -3
  221. package/dist/schema.d.ts.map +1 -1
  222. package/dist/schema.js +93 -88
  223. package/dist/schema.js.map +1 -1
  224. package/dist/theme-palette.js +18 -14
  225. package/dist/theme-palette.js.map +1 -1
  226. package/dist/tool-names.js +46 -37
  227. package/dist/tool-names.js.map +1 -1
  228. package/dist/tools/index.js +2 -8
  229. package/dist/tools/request-sandbox-access.js +71 -80
  230. package/dist/tools/request-sandbox-access.js.map +1 -1
  231. package/dist/tools/utils.js +26 -16
  232. package/dist/tools/utils.js.map +1 -1
  233. package/dist/tools/web-search.js +51 -55
  234. package/dist/tools/web-search.js.map +1 -1
  235. package/dist/utils/binaries.js +65 -61
  236. package/dist/utils/binaries.js.map +1 -1
  237. package/dist/utils/debug-log.js +51 -47
  238. package/dist/utils/debug-log.js.map +1 -1
  239. package/dist/utils/errors.js +157 -192
  240. package/dist/utils/errors.js.map +1 -1
  241. package/dist/utils/gateway-sync.js +49 -37
  242. package/dist/utils/gateway-sync.js.map +1 -1
  243. package/dist/utils/path-security.js +7 -6
  244. package/dist/utils/path-security.js.map +1 -1
  245. package/dist/utils/plan-diff.js +58 -39
  246. package/dist/utils/plan-diff.js.map +1 -1
  247. package/dist/utils/plans.js +92 -74
  248. package/dist/utils/plans.js.map +1 -1
  249. package/dist/utils/project.js +318 -256
  250. package/dist/utils/project.js.map +1 -1
  251. package/dist/utils/signals-pubsub.js +117 -99
  252. package/dist/utils/signals-pubsub.js.map +1 -1
  253. package/dist/utils/slash-command-loader.js +118 -154
  254. package/dist/utils/slash-command-loader.js.map +1 -1
  255. package/dist/utils/slash-command-processor.js +92 -83
  256. package/dist/utils/slash-command-processor.js.map +1 -1
  257. package/dist/utils/stdin-pipe.js +87 -63
  258. package/dist/utils/stdin-pipe.js.map +1 -1
  259. package/dist/utils/storage-factory.js +104 -84
  260. package/dist/utils/storage-factory.js.map +1 -1
  261. package/dist/utils/storage-maintenance.js +249 -211
  262. package/dist/utils/storage-maintenance.js.map +1 -1
  263. package/dist/utils/thread-lock.js +96 -92
  264. package/dist/utils/thread-lock.js.map +1 -1
  265. package/dist/utils/token-estimator.js +12 -12
  266. package/dist/utils/token-estimator.js.map +1 -1
  267. package/dist/utils/update-check.d.ts +1 -1
  268. package/dist/utils/update-check.js +341 -259
  269. package/dist/utils/update-check.js.map +1 -1
  270. package/dist/voice/stt-registry.js +131 -113
  271. package/dist/voice/stt-registry.js.map +1 -1
  272. package/package.json +26 -24
  273. package/dist/acp.js.map +0 -1
  274. package/dist/auth/index.js.map +0 -1
  275. package/dist/auth/types.js.map +0 -1
  276. package/dist/evals/index.js.map +0 -1
  277. package/dist/evals/scorers/index.js.map +0 -1
  278. package/dist/headless/index.js.map +0 -1
  279. package/dist/hooks/index.js.map +0 -1
  280. package/dist/lsp/index.js.map +0 -1
  281. package/dist/mcp/index.js.map +0 -1
  282. package/dist/mcp/types.js.map +0 -1
  283. package/dist/onboarding/index.js.map +0 -1
  284. package/dist/plugins/types.js.map +0 -1
  285. package/dist/tools/index.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,9 +1,345 @@
1
1
  # @mastra/code-sdk
2
2
 
3
- ## 0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
3
+ ## 0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`c5e56ff`](https://github.com/mastra-ai/mastra/commit/c5e56ff3bcabdf062708f2d48744fec304df6792), [`7f4e26d`](https://github.com/mastra-ai/mastra/commit/7f4e26dd57bd9b23c278ea21235ab823a3810a6c), [`c5e56ff`](https://github.com/mastra-ai/mastra/commit/c5e56ff3bcabdf062708f2d48744fec304df6792), [`322daa6`](https://github.com/mastra-ai/mastra/commit/322daa6d90552909204044790d850958f6745fed), [`2c34a58`](https://github.com/mastra-ai/mastra/commit/2c34a58aff529d7f42f883b2c7f3e7d6745fc224), [`cadaa13`](https://github.com/mastra-ai/mastra/commit/cadaa1372e1077c8e85eb64c5499ba8803caa323), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c), [`06000d7`](https://github.com/mastra-ai/mastra/commit/06000d73712911572e913b8a83339270296d0a22), [`cf24430`](https://github.com/mastra-ai/mastra/commit/cf24430226a6ecb104bc1d54d6e401defd7cb53f), [`4e35a56`](https://github.com/mastra-ai/mastra/commit/4e35a56cdf8d74a5ff6d5eda01f2c1deaf6cc7be), [`4e35a56`](https://github.com/mastra-ai/mastra/commit/4e35a56cdf8d74a5ff6d5eda01f2c1deaf6cc7be), [`3de0188`](https://github.com/mastra-ai/mastra/commit/3de0188bfaf9a9c09c95fe322b53838cf52c70b6), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c)]:
8
+ - @mastra/core@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
9
+ - @mastra/pg@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
10
+ - @mastra/libsql@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
11
+ - @mastra/observability@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
12
+ - @mastra/agent-browser@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
13
+ - @mastra/stagehand@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
14
+ - @mastra/tavily@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
15
+ - @mastra/mcp@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
16
+ - @mastra/memory@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
17
+ - @mastra/github-signals@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
18
+ - @mastra/duckdb@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260730204150
19
+
20
+ ## 1.1.2-alpha.2
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [[`322daa6`](https://github.com/mastra-ai/mastra/commit/322daa6d90552909204044790d850958f6745fed), [`2c34a58`](https://github.com/mastra-ai/mastra/commit/2c34a58aff529d7f42f883b2c7f3e7d6745fc224), [`cadaa13`](https://github.com/mastra-ai/mastra/commit/cadaa1372e1077c8e85eb64c5499ba8803caa323), [`06000d7`](https://github.com/mastra-ai/mastra/commit/06000d73712911572e913b8a83339270296d0a22), [`3de0188`](https://github.com/mastra-ai/mastra/commit/3de0188bfaf9a9c09c95fe322b53838cf52c70b6)]:
25
+ - @mastra/core@1.56.0-alpha.2
26
+ - @mastra/observability@1.16.4-alpha.0
27
+ - @mastra/mcp@1.15.0
28
+
29
+ ## 1.1.2-alpha.1
30
+
31
+ ### Patch Changes
32
+
33
+ - Updated dependencies [[`c5e56ff`](https://github.com/mastra-ai/mastra/commit/c5e56ff3bcabdf062708f2d48744fec304df6792), [`c5e56ff`](https://github.com/mastra-ai/mastra/commit/c5e56ff3bcabdf062708f2d48744fec304df6792), [`4e35a56`](https://github.com/mastra-ai/mastra/commit/4e35a56cdf8d74a5ff6d5eda01f2c1deaf6cc7be), [`4e35a56`](https://github.com/mastra-ai/mastra/commit/4e35a56cdf8d74a5ff6d5eda01f2c1deaf6cc7be)]:
34
+ - @mastra/core@1.56.0-alpha.1
35
+ - @mastra/pg@1.19.0-alpha.0
36
+ - @mastra/libsql@1.19.0-alpha.0
37
+
38
+ ## 1.1.2-alpha.0
39
+
40
+ ### Patch Changes
41
+
42
+ - Updated dependencies [[`7f4e26d`](https://github.com/mastra-ai/mastra/commit/7f4e26dd57bd9b23c278ea21235ab823a3810a6c), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c), [`b582f7f`](https://github.com/mastra-ai/mastra/commit/b582f7fa2f9c1f87d19efc63d344fbe5dda2608c)]:
43
+ - @mastra/core@1.56.0-alpha.0
44
+
45
+ ## 1.1.1
46
+
47
+ ### Patch Changes
48
+
49
+ - Extended Mastra Code's transient retry policy to cover provider server errors with up to 10 retries and exponential backoff starting at 500ms. ([#20393](https://github.com/mastra-ai/mastra/pull/20393))
50
+
51
+ - Improved Mastra Code connection recovery with up to 10 retries, exponential backoff starting at 500ms, and visible retry progress in the TUI. ([#19724](https://github.com/mastra-ai/mastra/pull/19724))
52
+
53
+ - Fixed the OpenAI pack to use its supported default model ID. ([#20423](https://github.com/mastra-ai/mastra/pull/20423))
54
+
55
+ - Review sessions now load project AGENTS.md/CLAUDE.md from the pull request's trusted base branch instead of skipping them entirely. The working-tree copies on an untrusted checkout remain excluded from the system prompt and reminder injection; content is served from the base ref via git, and sessions without a known base ref still skip project instruction files. ([#20372](https://github.com/mastra-ai/mastra/pull/20372))
56
+
57
+ - Fixed sandbox file tools (view, write, edit, list) failing with "Path not found" in Factory sessions when called with absolute paths inside the session working directory. File tools now also work on macOS-hosted local sandboxes, not just Linux VMs. ([#20325](https://github.com/mastra-ai/mastra/pull/20325))
58
+
59
+ - Sandbox filesystem operations now behave like local ones: missing files, existing destinations, and directory misuse raise typed errors instead of generic ones, reading a directory as a file fails instead of returning empty content, moving or copying a file into a new directory works, overwrite protection can no longer be raced by concurrent writers, and each filesystem reports a unique id and status. ([#20325](https://github.com/mastra-ai/mastra/pull/20325))
60
+
61
+ - Review sessions no longer ingest AGENTS.md or CLAUDE.md from the checked-out pull request branch. A PR branch is third-party content, so its instruction files are treated as content under review instead of trusted configuration — closing a prompt-injection path into the reviewer agent. The reviewer also runs the PR's install/build/test commands with GitHub tokens stripped from the environment. ([#20372](https://github.com/mastra-ai/mastra/pull/20372))
62
+
63
+ - Added an option to the instruction-file reminder processor that lets hosts disable injection entirely for a request, so instruction files from untrusted checkouts are never surfaced as reminders. ([#20372](https://github.com/mastra-ai/mastra/pull/20372))
64
+
65
+ - Updated dependencies [[`1288cba`](https://github.com/mastra-ai/mastra/commit/1288cba09b8ab906dba38270c7e2a75400344a98), [`3f472b4`](https://github.com/mastra-ai/mastra/commit/3f472b468892a1ff14ccb43cc0343b86f7d8fd7d), [`ba369f2`](https://github.com/mastra-ai/mastra/commit/ba369f2a0aaf998da0d6aa033d26f64f96bef8ac), [`35b929b`](https://github.com/mastra-ai/mastra/commit/35b929b7abc3d20d85c7985880960ac2d04a6c86), [`55c9e24`](https://github.com/mastra-ai/mastra/commit/55c9e248c27c1d72b5bb7e94ea6b8a3999eee49f), [`dcfed93`](https://github.com/mastra-ai/mastra/commit/dcfed93e1e256c6abfa792cbb7ca836f5d0e8638), [`2876e15`](https://github.com/mastra-ai/mastra/commit/2876e15b4d2f616a3bc1ed3af57d546c268384ce), [`9b3626a`](https://github.com/mastra-ai/mastra/commit/9b3626aeb1d16fcd34b0a8e94c114ddb80a3b240), [`4696963`](https://github.com/mastra-ai/mastra/commit/469696312ac4c618bc8475b0c5ed7949b8a3455e), [`723aa54`](https://github.com/mastra-ai/mastra/commit/723aa5437106bdb708ae03c0ef6b77aa11291e73), [`07f5b4b`](https://github.com/mastra-ai/mastra/commit/07f5b4ba9d608d88865030732e580298296adf99), [`723aa54`](https://github.com/mastra-ai/mastra/commit/723aa5437106bdb708ae03c0ef6b77aa11291e73), [`723aa54`](https://github.com/mastra-ai/mastra/commit/723aa5437106bdb708ae03c0ef6b77aa11291e73), [`598080f`](https://github.com/mastra-ai/mastra/commit/598080f224edb3f0f5b801035b067fac50a56a03)]:
66
+ - @mastra/pg@1.18.1
67
+ - @mastra/core@1.55.0
68
+
69
+ ## 1.1.1-alpha.3
70
+
71
+ ### Patch Changes
72
+
73
+ - Review sessions now load project AGENTS.md/CLAUDE.md from the pull request's trusted base branch instead of skipping them entirely. The working-tree copies on an untrusted checkout remain excluded from the system prompt and reminder injection; content is served from the base ref via git, and sessions without a known base ref still skip project instruction files. ([#20372](https://github.com/mastra-ai/mastra/pull/20372))
74
+
75
+ - Review sessions no longer ingest AGENTS.md or CLAUDE.md from the checked-out pull request branch. A PR branch is third-party content, so its instruction files are treated as content under review instead of trusted configuration — closing a prompt-injection path into the reviewer agent. The reviewer also runs the PR's install/build/test commands with GitHub tokens stripped from the environment. ([#20372](https://github.com/mastra-ai/mastra/pull/20372))
76
+
77
+ - Added an option to the instruction-file reminder processor that lets hosts disable injection entirely for a request, so instruction files from untrusted checkouts are never surfaced as reminders. ([#20372](https://github.com/mastra-ai/mastra/pull/20372))
78
+
79
+ - Updated dependencies [[`1288cba`](https://github.com/mastra-ai/mastra/commit/1288cba09b8ab906dba38270c7e2a75400344a98), [`723aa54`](https://github.com/mastra-ai/mastra/commit/723aa5437106bdb708ae03c0ef6b77aa11291e73), [`723aa54`](https://github.com/mastra-ai/mastra/commit/723aa5437106bdb708ae03c0ef6b77aa11291e73), [`723aa54`](https://github.com/mastra-ai/mastra/commit/723aa5437106bdb708ae03c0ef6b77aa11291e73)]:
80
+ - @mastra/pg@1.18.1-alpha.0
81
+ - @mastra/core@1.55.0-alpha.3
82
+
83
+ ## 1.1.1-alpha.2
84
+
85
+ ### Patch Changes
86
+
87
+ - Extended Mastra Code's transient retry policy to cover provider server errors with up to 10 retries and exponential backoff starting at 500ms. ([#20393](https://github.com/mastra-ai/mastra/pull/20393))
88
+
89
+ - Updated dependencies [[`55c9e24`](https://github.com/mastra-ai/mastra/commit/55c9e248c27c1d72b5bb7e94ea6b8a3999eee49f), [`07f5b4b`](https://github.com/mastra-ai/mastra/commit/07f5b4ba9d608d88865030732e580298296adf99)]:
90
+ - @mastra/core@1.55.0-alpha.2
91
+
92
+ ## 1.1.1-alpha.1
93
+
94
+ ### Patch Changes
95
+
96
+ - Fixed sandbox file tools (view, write, edit, list) failing with "Path not found" in Factory sessions when called with absolute paths inside the session working directory. File tools now also work on macOS-hosted local sandboxes, not just Linux VMs. ([#20325](https://github.com/mastra-ai/mastra/pull/20325))
97
+
98
+ - Sandbox filesystem operations now behave like local ones: missing files, existing destinations, and directory misuse raise typed errors instead of generic ones, reading a directory as a file fails instead of returning empty content, moving or copying a file into a new directory works, overwrite protection can no longer be raced by concurrent writers, and each filesystem reports a unique id and status. ([#20325](https://github.com/mastra-ai/mastra/pull/20325))
99
+
100
+ - Updated dependencies [[`ba369f2`](https://github.com/mastra-ai/mastra/commit/ba369f2a0aaf998da0d6aa033d26f64f96bef8ac), [`dcfed93`](https://github.com/mastra-ai/mastra/commit/dcfed93e1e256c6abfa792cbb7ca836f5d0e8638), [`2876e15`](https://github.com/mastra-ai/mastra/commit/2876e15b4d2f616a3bc1ed3af57d546c268384ce), [`598080f`](https://github.com/mastra-ai/mastra/commit/598080f224edb3f0f5b801035b067fac50a56a03)]:
101
+ - @mastra/core@1.55.0-alpha.1
102
+
103
+ ## 1.1.1-alpha.0
104
+
105
+ ### Patch Changes
106
+
107
+ - Improved Mastra Code connection recovery with up to 10 retries, exponential backoff starting at 500ms, and visible retry progress in the TUI. ([#19724](https://github.com/mastra-ai/mastra/pull/19724))
108
+
109
+ - Updated dependencies [[`3f472b4`](https://github.com/mastra-ai/mastra/commit/3f472b468892a1ff14ccb43cc0343b86f7d8fd7d), [`35b929b`](https://github.com/mastra-ai/mastra/commit/35b929b7abc3d20d85c7985880960ac2d04a6c86), [`9b3626a`](https://github.com/mastra-ai/mastra/commit/9b3626aeb1d16fcd34b0a8e94c114ddb80a3b240)]:
110
+ - @mastra/core@1.55.0-alpha.0
111
+
112
+ ## 1.1.0
113
+
114
+ ### Minor Changes
115
+
116
+ - Added `resolveProviderOMDefault` to `@mastra/code-sdk/onboarding/packs`, which returns the small, cheap observational memory model for a provider, or the model you pass in when that provider has none. ([#20298](https://github.com/mastra-ai/mastra/pull/20298))
117
+
118
+ The built-in OM packs are now a single table, so the list offered during onboarding and the per-provider default can no longer drift apart.
119
+
120
+ ```ts
121
+ import { resolveProviderOMDefault } from '@mastra/code-sdk/onboarding/packs';
122
+
123
+ resolveProviderOMDefault('anthropic').modelId; // 'anthropic/claude-haiku-4-5'
124
+ resolveProviderOMDefault('openai-codex').modelId; // 'openai/gpt-5.4-mini'
125
+ resolveProviderOMDefault('xai', 'xai/grok-4.5').modelId; // 'xai/grok-4.5'
126
+ ```
127
+
128
+ - Added provider-aware observational memory defaults, so a controller started without a stored OM choice observes and reflects with the cheap model of a provider you can actually reach instead of the built-in Gemini default. ([#20291](https://github.com/mastra-ai/mastra/pull/20291))
129
+
130
+ The helpers behind it are exported if you build your own surface on the SDK:
131
+
132
+ ```ts
133
+ import { hasExplicitOMConfiguration } from '@mastra/code-sdk/onboarding/om-settings';
134
+ import { selectPreferredOMPack } from '@mastra/code-sdk/onboarding/packs';
135
+
136
+ // Best OM pack across everything the user can reach, preferring a given provider
137
+ selectPreferredOMPack({ anthropic: 'oauth', google: 'apikey' }, 'anthropic')?.modelId;
138
+
139
+ // True once the user picked an OM model or pack themselves — never seed over it
140
+ hasExplicitOMConfiguration(settings);
141
+ ```
142
+
143
+ ### Patch Changes
144
+
145
+ - Updated dependencies [[`ce93a3c`](https://github.com/mastra-ai/mastra/commit/ce93a3c114ea1cbfbd576f3db41d7c26c9844f5b), [`5718a22`](https://github.com/mastra-ai/mastra/commit/5718a229281dcfd36bcd1f42a242e3717e510a33), [`a211d09`](https://github.com/mastra-ai/mastra/commit/a211d09185dc65a746534914cf38b67f21ee9bac), [`0dca9d0`](https://github.com/mastra-ai/mastra/commit/0dca9d0b1356024a53b72ea6f040db528b126caa), [`6218217`](https://github.com/mastra-ai/mastra/commit/62182171b6cfca0b099f1c6a77a2e65e7639ab86), [`5807d3a`](https://github.com/mastra-ai/mastra/commit/5807d3ae1d259b8b7d6df7e5bf2b485c694af9c8), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`05db566`](https://github.com/mastra-ai/mastra/commit/05db566fcbdcbf33d0bffca0c72ec30129e2e3ca), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`273bb71`](https://github.com/mastra-ai/mastra/commit/273bb71e82e74b656f3906288239429899398c0c), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`05db566`](https://github.com/mastra-ai/mastra/commit/05db566fcbdcbf33d0bffca0c72ec30129e2e3ca), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`5718a22`](https://github.com/mastra-ai/mastra/commit/5718a229281dcfd36bcd1f42a242e3717e510a33), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`d1b7e3a`](https://github.com/mastra-ai/mastra/commit/d1b7e3a978a309a5653eeaa490d2d6c7c53bd093), [`29c584a`](https://github.com/mastra-ai/mastra/commit/29c584a13a88831e5ed1fdeb0ff8e82eae180433), [`c093146`](https://github.com/mastra-ai/mastra/commit/c0931466404d3c521308ea119cb165bb7e695155), [`e075db9`](https://github.com/mastra-ai/mastra/commit/e075db9715c836bae5dfc37c50248492af397c3b), [`8124754`](https://github.com/mastra-ai/mastra/commit/8124754ae89fbc69f8136d1df4a91904d0f84c4e), [`d12b2e4`](https://github.com/mastra-ai/mastra/commit/d12b2e4023fd9e3d3e93a9169f5088bcee2a849c), [`d1b7e3a`](https://github.com/mastra-ai/mastra/commit/d1b7e3a978a309a5653eeaa490d2d6c7c53bd093)]:
146
+ - @mastra/core@1.54.0
147
+ - @mastra/libsql@1.18.0
148
+ - @mastra/memory@1.24.0
149
+ - @mastra/pg@1.18.0
150
+ - @mastra/duckdb@1.5.2
151
+ - @mastra/observability@1.16.3
152
+ - @mastra/mcp@1.15.0
153
+
154
+ ## 1.1.0-alpha.4
155
+
156
+ ### Patch Changes
157
+
158
+ - Updated dependencies [[`6218217`](https://github.com/mastra-ai/mastra/commit/62182171b6cfca0b099f1c6a77a2e65e7639ab86), [`d12b2e4`](https://github.com/mastra-ai/mastra/commit/d12b2e4023fd9e3d3e93a9169f5088bcee2a849c)]:
159
+ - @mastra/core@1.54.0-alpha.4
160
+
161
+ ## 1.1.0-alpha.3
162
+
163
+ ### Patch Changes
164
+
165
+ - Updated dependencies [[`29c584a`](https://github.com/mastra-ai/mastra/commit/29c584a13a88831e5ed1fdeb0ff8e82eae180433)]:
166
+ - @mastra/core@1.54.0-alpha.3
167
+
168
+ ## 1.1.0-alpha.2
169
+
170
+ ### Minor Changes
171
+
172
+ - Added `resolveProviderOMDefault` to `@mastra/code-sdk/onboarding/packs`, which returns the small, cheap observational memory model for a provider, or the model you pass in when that provider has none. ([#20298](https://github.com/mastra-ai/mastra/pull/20298))
173
+
174
+ The built-in OM packs are now a single table, so the list offered during onboarding and the per-provider default can no longer drift apart.
175
+
176
+ ```ts
177
+ import { resolveProviderOMDefault } from '@mastra/code-sdk/onboarding/packs';
178
+
179
+ resolveProviderOMDefault('anthropic').modelId; // 'anthropic/claude-haiku-4-5'
180
+ resolveProviderOMDefault('openai-codex').modelId; // 'openai/gpt-5.4-mini'
181
+ resolveProviderOMDefault('xai', 'xai/grok-4.5').modelId; // 'xai/grok-4.5'
182
+ ```
183
+
184
+ - Added provider-aware observational memory defaults, so a controller started without a stored OM choice observes and reflects with the cheap model of a provider you can actually reach instead of the built-in Gemini default. ([#20291](https://github.com/mastra-ai/mastra/pull/20291))
185
+
186
+ The helpers behind it are exported if you build your own surface on the SDK:
187
+
188
+ ```ts
189
+ import { hasExplicitOMConfiguration } from '@mastra/code-sdk/onboarding/om-settings';
190
+ import { selectPreferredOMPack } from '@mastra/code-sdk/onboarding/packs';
191
+
192
+ // Best OM pack across everything the user can reach, preferring a given provider
193
+ selectPreferredOMPack({ anthropic: 'oauth', google: 'apikey' }, 'anthropic')?.modelId;
194
+
195
+ // True once the user picked an OM model or pack themselves — never seed over it
196
+ hasExplicitOMConfiguration(settings);
197
+ ```
198
+
199
+ ### Patch Changes
200
+
201
+ - Updated dependencies [[`a211d09`](https://github.com/mastra-ai/mastra/commit/a211d09185dc65a746534914cf38b67f21ee9bac), [`05db566`](https://github.com/mastra-ai/mastra/commit/05db566fcbdcbf33d0bffca0c72ec30129e2e3ca), [`05db566`](https://github.com/mastra-ai/mastra/commit/05db566fcbdcbf33d0bffca0c72ec30129e2e3ca), [`e075db9`](https://github.com/mastra-ai/mastra/commit/e075db9715c836bae5dfc37c50248492af397c3b), [`8124754`](https://github.com/mastra-ai/mastra/commit/8124754ae89fbc69f8136d1df4a91904d0f84c4e)]:
202
+ - @mastra/core@1.54.0-alpha.2
203
+ - @mastra/pg@1.18.0-alpha.2
204
+ - @mastra/libsql@1.18.0-alpha.1
205
+
206
+ ## 1.0.3-alpha.1
207
+
208
+ ### Patch Changes
209
+
210
+ - Updated dependencies [[`ce93a3c`](https://github.com/mastra-ai/mastra/commit/ce93a3c114ea1cbfbd576f3db41d7c26c9844f5b), [`5718a22`](https://github.com/mastra-ai/mastra/commit/5718a229281dcfd36bcd1f42a242e3717e510a33), [`5807d3a`](https://github.com/mastra-ai/mastra/commit/5807d3ae1d259b8b7d6df7e5bf2b485c694af9c8), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`273bb71`](https://github.com/mastra-ai/mastra/commit/273bb71e82e74b656f3906288239429899398c0c), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`5718a22`](https://github.com/mastra-ai/mastra/commit/5718a229281dcfd36bcd1f42a242e3717e510a33), [`57661af`](https://github.com/mastra-ai/mastra/commit/57661afeca52ff9af4e72675ede2134fa503d5a5), [`d1b7e3a`](https://github.com/mastra-ai/mastra/commit/d1b7e3a978a309a5653eeaa490d2d6c7c53bd093), [`c093146`](https://github.com/mastra-ai/mastra/commit/c0931466404d3c521308ea119cb165bb7e695155), [`d1b7e3a`](https://github.com/mastra-ai/mastra/commit/d1b7e3a978a309a5653eeaa490d2d6c7c53bd093)]:
211
+ - @mastra/core@1.54.0-alpha.1
212
+ - @mastra/pg@1.18.0-alpha.1
213
+ - @mastra/duckdb@1.5.2-alpha.0
214
+ - @mastra/observability@1.16.3-alpha.0
215
+ - @mastra/mcp@1.15.0
216
+
217
+ ## 1.0.3-alpha.0
218
+
219
+ ### Patch Changes
220
+
221
+ - Updated dependencies [[`0dca9d0`](https://github.com/mastra-ai/mastra/commit/0dca9d0b1356024a53b72ea6f040db528b126caa)]:
222
+ - @mastra/core@1.54.0-alpha.0
223
+ - @mastra/libsql@1.18.0-alpha.0
224
+ - @mastra/memory@1.24.0-alpha.0
225
+ - @mastra/pg@1.18.0-alpha.0
226
+
227
+ ## 1.0.2
228
+
229
+ ### Patch Changes
230
+
231
+ - Fixed stored provider API keys so authenticated models appear as configured and continue working during steering and follow-up messages. ([#20143](https://github.com/mastra-ai/mastra/pull/20143))
232
+
233
+ - Added a 15s `AbortSignal` timeout to the Anthropic OAuth token-exchange and refresh fetches so an unresponsive upstream cannot pin the caller indefinitely. ([#20129](https://github.com/mastra-ai/mastra/pull/20129))
234
+
235
+ - Updated dependencies [[`c8d8a01`](https://github.com/mastra-ai/mastra/commit/c8d8a010ee2efe2b7bf4d07707382c34c87b14e4), [`df6a9ce`](https://github.com/mastra-ai/mastra/commit/df6a9ce87214f7aadb2edfe62f67605fe998a0a4), [`73839cb`](https://github.com/mastra-ai/mastra/commit/73839cb58322679c170627d1015669ede5f619aa), [`371cf60`](https://github.com/mastra-ai/mastra/commit/371cf6075cef88ac6919a08d59a82e485397364a), [`8e4dc79`](https://github.com/mastra-ai/mastra/commit/8e4dc793dcf035ea506f9ce79f56d2d501a4be14), [`0f92ed4`](https://github.com/mastra-ai/mastra/commit/0f92ed4173a480f617c6a0af6d51af100b42bdfc), [`2db93cc`](https://github.com/mastra-ai/mastra/commit/2db93ccd0b872e4de7853a93383efe0647901df8), [`094ab61`](https://github.com/mastra-ai/mastra/commit/094ab6129a1a3ecf6eeb86decac17d5faea4e02a), [`fe80944`](https://github.com/mastra-ai/mastra/commit/fe80944f3ef6681fea6eae8200fce387b7bb3c2f), [`9fdb1b5`](https://github.com/mastra-ai/mastra/commit/9fdb1b50c39742e1a01b319a864754c90e7aa947), [`263d2ca`](https://github.com/mastra-ai/mastra/commit/263d2cac80ba3b03b9c0f008db6f1f1b9eb0278c), [`8e4dc79`](https://github.com/mastra-ai/mastra/commit/8e4dc793dcf035ea506f9ce79f56d2d501a4be14), [`75f843d`](https://github.com/mastra-ai/mastra/commit/75f843d09f758223e6eeb321321bdcc5c7e779d0), [`e51e166`](https://github.com/mastra-ai/mastra/commit/e51e166c52e220abc9b64554ce37359dca8544b1)]:
236
+ - @mastra/core@1.53.0
237
+ - @mastra/pg@1.17.1
238
+ - @mastra/libsql@1.17.1
239
+
240
+ ## 1.0.2-alpha.4
241
+
242
+ ### Patch Changes
243
+
244
+ - Fixed stored provider API keys so authenticated models appear as configured and continue working during steering and follow-up messages. ([#20143](https://github.com/mastra-ai/mastra/pull/20143))
245
+
246
+ - Updated dependencies [[`73839cb`](https://github.com/mastra-ai/mastra/commit/73839cb58322679c170627d1015669ede5f619aa), [`8e4dc79`](https://github.com/mastra-ai/mastra/commit/8e4dc793dcf035ea506f9ce79f56d2d501a4be14), [`2db93cc`](https://github.com/mastra-ai/mastra/commit/2db93ccd0b872e4de7853a93383efe0647901df8), [`094ab61`](https://github.com/mastra-ai/mastra/commit/094ab6129a1a3ecf6eeb86decac17d5faea4e02a), [`fe80944`](https://github.com/mastra-ai/mastra/commit/fe80944f3ef6681fea6eae8200fce387b7bb3c2f), [`9fdb1b5`](https://github.com/mastra-ai/mastra/commit/9fdb1b50c39742e1a01b319a864754c90e7aa947), [`8e4dc79`](https://github.com/mastra-ai/mastra/commit/8e4dc793dcf035ea506f9ce79f56d2d501a4be14), [`e51e166`](https://github.com/mastra-ai/mastra/commit/e51e166c52e220abc9b64554ce37359dca8544b1)]:
247
+ - @mastra/core@1.53.0-alpha.4
248
+ - @mastra/pg@1.17.1-alpha.0
249
+ - @mastra/libsql@1.17.1-alpha.1
250
+
251
+ ## 1.0.2-alpha.3
252
+
253
+ ### Patch Changes
254
+
255
+ - Updated dependencies:
256
+ - @mastra/core@1.53.0-alpha.3
257
+
258
+ ## 1.0.2-alpha.2
259
+
260
+ ### Patch Changes
261
+
262
+ - Updated dependencies [[`75f843d`](https://github.com/mastra-ai/mastra/commit/75f843d09f758223e6eeb321321bdcc5c7e779d0)]:
263
+ - @mastra/core@1.53.0-alpha.2
264
+
265
+ ## 1.0.2-alpha.1
266
+
267
+ ### Patch Changes
268
+
269
+ - Updated dependencies [[`c8d8a01`](https://github.com/mastra-ai/mastra/commit/c8d8a010ee2efe2b7bf4d07707382c34c87b14e4), [`371cf60`](https://github.com/mastra-ai/mastra/commit/371cf6075cef88ac6919a08d59a82e485397364a), [`263d2ca`](https://github.com/mastra-ai/mastra/commit/263d2cac80ba3b03b9c0f008db6f1f1b9eb0278c)]:
270
+ - @mastra/core@1.53.0-alpha.1
271
+
272
+ ## 1.0.2-alpha.0
273
+
274
+ ### Patch Changes
275
+
276
+ - Added a 15s `AbortSignal` timeout to the Anthropic OAuth token-exchange and refresh fetches so an unresponsive upstream cannot pin the caller indefinitely. ([#20129](https://github.com/mastra-ai/mastra/pull/20129))
277
+
278
+ - Updated dependencies [[`df6a9ce`](https://github.com/mastra-ai/mastra/commit/df6a9ce87214f7aadb2edfe62f67605fe998a0a4), [`0f92ed4`](https://github.com/mastra-ai/mastra/commit/0f92ed4173a480f617c6a0af6d51af100b42bdfc)]:
279
+ - @mastra/core@1.52.2-alpha.0
280
+ - @mastra/libsql@1.17.1-alpha.0
281
+
282
+ ## 1.0.1
283
+
284
+ ### Patch Changes
285
+
286
+ - Updated dependencies [[`55adddf`](https://github.com/mastra-ai/mastra/commit/55adddfda2a170b00c112bf37d677e8ce5b65d5a)]:
287
+ - @mastra/core@1.52.1
288
+
289
+ ## 1.0.1-alpha.0
290
+
291
+ ### Patch Changes
292
+
293
+ - Updated dependencies [[`55adddf`](https://github.com/mastra-ai/mastra/commit/55adddfda2a170b00c112bf37d677e8ce5b65d5a)]:
294
+ - @mastra/core@1.52.1-alpha.0
295
+
296
+ ## 1.0.0
297
+
298
+ ### Major Changes
299
+
300
+ - Replaced GitHub-specific Mastra Code session state with Factory project and linked-repository identities. This lets SDK consumers represent sessions independently of a source-control provider and select a repository explicitly when sandbox execution is required. ([#19849](https://github.com/mastra-ai/mastra/pull/19849))
301
+
302
+ Updated Mastra Code onboarding to be Factory-first: create a Factory by name, then link repositories from your connected source-control installations in a separate step. A Factory is valid with zero linked repositories, and the Board, Metrics, and Audit pages stay available for any server-backed Factory. Factory pages keep project-scoped data separate from repository-scoped intake and provide a repository selector when a Factory has multiple linked repositories. Creating a Factory from a local folder remains available as a secondary option.
303
+
304
+ **Before**
305
+
306
+ ```ts
307
+ const state = { githubProjectId: 'project-1', sandboxId, sandboxWorkdir };
308
+ ```
309
+
310
+ **After**
311
+
312
+ ```ts
313
+ const state = {
314
+ factoryProjectId: 'factory-project-1',
315
+ projectRepositoryId: 'project-repository-1',
316
+ sandboxId,
317
+ sandboxWorkdir,
318
+ };
319
+ ```
4
320
 
5
321
  ### Minor Changes
6
322
 
323
+ - Moved model packs in Mastra Code web to database-backed storage and refreshed the built-in packs. ([#19849](https://github.com/mastra-ai/mastra/pull/19849))
324
+
325
+ **Model packs are now stored in the Factory database**
326
+
327
+ When running with a Factory backend, custom model packs are saved in a new model-packs storage domain scoped to your organization instead of the local settings.json file. Local (non-tenant) mode keeps the file-backed behavior.
328
+
329
+ **Pick from available models**
330
+
331
+ The settings Model tab now loads the list of available models from a new /web/config/models endpoint, so the Factory default model picker and model pack editor only offer models you actually have credentials for. Model pickers are searchable comboboxes instead of plain dropdowns, and pack activation now resolves the correct scoped session so packs can be activated from settings.
332
+
333
+ **Default packs updated to the latest model releases**
334
+
335
+ - Anthropic: build and plan anthropic/claude-fable-5, fast anthropic/claude-haiku-4-5
336
+ - OpenAI: build and plan openai/gpt-5.6
337
+ - Observational memory default model is now google/gemini-3.5-flash
338
+
339
+ - Added a Factory default model for server-backed Factories in Mastra Code web. Set it in Settings under the Model tab and every factory run (like issue triage) starts on that model. The Model tab now also hosts model packs, replacing the separate Packs tab — packs stay session-scoped while the default model is stored on the Factory project itself. ([#19849](https://github.com/mastra-ai/mastra/pull/19849))
340
+
341
+ - Added an input processor extension for embedding surfaces while preserving Mastra Code's required processors. ([#19702](https://github.com/mastra-ai/mastra/pull/19702))
342
+
7
343
  - Added support for injecting pre-built storage and vector store instances into Mastra Code. `MastraCodeConfig.storage` now accepts a `MastraCompositeStore` instance in addition to a storage config, and the new `MastraCodeConfig.vector` slot accepts a `MastraVector` instance. When an instance is provided it is used as-is — no connection test or LibSQL fallback — so hosted deployments can share a single Postgres connection pool between Mastra storage and application tables. ([#19623](https://github.com/mastra-ai/mastra/pull/19623))
8
344
 
9
345
  **Before**
@@ -40,6 +376,42 @@
40
376
  const result = await run.result;
41
377
  ```
42
378
 
379
+ - Add browser-based OAuth authentication for HTTP MCP servers to Mastra Code. ([#19467](https://github.com/mastra-ai/mastra/pull/19467))
380
+
381
+ When an HTTP MCP server rejects a connection with an authorization error, the
382
+ `/mcp` selector now shows a "needs auth" badge and an **Authenticate** action.
383
+ Choosing it opens the provider's consent page in the browser and completes the
384
+ OAuth 2.1 authorization-code flow (PKCE + Dynamic Client Registration) over a
385
+ loopback callback server, persists the tokens, and reconnects — no manual
386
+ configuration required for a bare `{ "url": ... }` server entry. A **Cancel
387
+ authentication** action aborts an in-flight flow and returns the server to the
388
+ needs-auth state.
389
+
390
+ The server manager gains `authenticateServer(name)` and
391
+ `cancelServerAuthentication(name)`, `McpServerStatus` gains an optional
392
+ `needsAuth` flag, and the OAuth `redirectUrl` in MCP server config is now
393
+ optional (it defaults to a stable loopback URL). The config also accepts
394
+ `callbackPort` as a shorthand that synthesizes
395
+ `http://localhost:<callbackPort>/callback`, the Claude Code / Codex
396
+ convention, so configs written for those clients (like Slack's official MCP
397
+ plugin config) work verbatim. `callbackPort` and `redirectUrl` are mutually
398
+ exclusive.
399
+
400
+ ```ts
401
+ const server = manager.getServerStatuses().find(s => s.name === 'supabase');
402
+ if (server?.needsAuth) {
403
+ // Opens the consent page in the browser, completes the OAuth flow, and
404
+ // resolves with the reconnected server status.
405
+ const status = await manager.authenticateServer('supabase', {
406
+ onAuthorizationUrl: url => openInBrowser(url),
407
+ });
408
+ console.log(status.connected);
409
+
410
+ // Abort an abandoned browser flow and return the server to needs-auth:
411
+ // await manager.cancelServerAuthentication('supabase')
412
+ }
413
+ ```
414
+
43
415
  - Added step-based OAuth APIs for browser-driven provider sign-in and tenant-aware credential resolution. Hosted applications can now inject a credential store so each request resolves the caller's credentials without copying stored secrets into process environment variables. ([#19638](https://github.com/mastra-ai/mastra/pull/19638))
44
416
 
45
417
  ```ts
@@ -77,28 +449,293 @@
77
449
  - dependencies updates: ([#19611](https://github.com/mastra-ai/mastra/pull/19611))
78
450
  - Updated dependency [`ai@^6.0.225` ↗︎](https://www.npmjs.com/package/ai/v/6.0.225) (from `^6.0.224`, in `dependencies`)
79
451
 
452
+ - dependencies updates: ([#19813](https://github.com/mastra-ai/mastra/pull/19813))
453
+ - Updated dependency [`@ai-sdk/amazon-bedrock@^3.0.107` ↗︎](https://www.npmjs.com/package/@ai-sdk/amazon-bedrock/v/3.0.107) (from `^3.0.105`, in `dependencies`)
454
+ - Updated dependency [`@ai-sdk/anthropic@^3.0.98` ↗︎](https://www.npmjs.com/package/@ai-sdk/anthropic/v/3.0.98) (from `^3.0.96`, in `dependencies`)
455
+ - Updated dependency [`@ai-sdk/openai@^3.0.86` ↗︎](https://www.npmjs.com/package/@ai-sdk/openai/v/3.0.86) (from `^3.0.84`, in `dependencies`)
456
+ - Updated dependency [`@ai-sdk/openai-compatible@^2.0.62` ↗︎](https://www.npmjs.com/package/@ai-sdk/openai-compatible/v/2.0.62) (from `^2.0.59`, in `dependencies`)
457
+ - Updated dependency [`ai@^6.0.230` ↗︎](https://www.npmjs.com/package/ai/v/6.0.230) (from `^6.0.225`, in `dependencies`)
458
+
80
459
  - Added on-disk verification to the update utilities: `runUpdate` now returns the package manager's stderr, and the new `performUpdate` locates the running install, delegates the update to the tool that owns it (for example vite-plus), verifies the on-disk version when available, and reports when a readable installed version remains unchanged. ([#18792](https://github.com/mastra-ai/mastra/pull/18792))
81
460
 
82
461
  - Fixed Moonshot AI API key resolution so keys saved via /api-keys (MOONSHOT_API_KEY) work when selecting moonshot models ([#19655](https://github.com/mastra-ai/mastra/pull/19655))
83
462
 
463
+ - Fixed provider request history repair so incompatible tool-call IDs are sanitized and retried instead of being blindly resent after a provider rejects the request ([#19969](https://github.com/mastra-ai/mastra/pull/19969))
464
+
465
+ - Fixed goal duration so it persists across pauses and process restarts. ([#19837](https://github.com/mastra-ai/mastra/pull/19837))
466
+
467
+ - Fixed session thread cloning failing with "Source thread not found" when the cached dynamic memory instance was bound to a previous storage instance. The memory cache is now scoped to the storage it was created with. ([#19969](https://github.com/mastra-ai/mastra/pull/19969))
468
+
84
469
  - Fixed Mastra Code retries for EPIPE and closed provider connections. (#19691) ([#19692](https://github.com/mastra-ai/mastra/pull/19692))
85
470
 
86
471
  - Fixed ACP clients dropping standalone signal messages such as system reminders and notification summaries, while preserving assistant text deltas across interleaved signals without inserting separators. ([#18783](https://github.com/mastra-ai/mastra/pull/18783))
87
472
 
473
+ - Added a session notification when a GitHub plugin is automatically updated to its latest version ([#19943](https://github.com/mastra-ai/mastra/pull/19943))
474
+
475
+ ```ts
476
+ const unsubscribe = pluginManager.onGithubPluginsUpdated(pluginNames => {
477
+ console.log(`Updated plugins: ${pluginNames.join(', ')}`);
478
+ });
479
+
480
+ // Call during shutdown.
481
+ unsubscribe();
482
+ ```
483
+
484
+ - Moved custom model providers and custom model packs off settings.json in the factory web app: both now live in the app database (org-scoped rows in deployed mode, a sentinel local scope in no-auth mode). Custom providers saved in the web settings page are picked up by model resolution and the model catalog through a new pluggable custom-providers source in the SDK, so the gateway no longer reads the host machine's settings.json for them, and models from your custom providers appear in the web model pickers. ([#19964](https://github.com/mastra-ai/mastra/pull/19964))
485
+
486
+ Hosts that store custom providers elsewhere (like the factory's database) register a source at boot; when none is registered, the SDK keeps reading settings.json as before:
487
+
488
+ ```ts
489
+ import { setCustomProvidersSource } from '@mastra/code-sdk/agents/custom-provider-source';
490
+
491
+ setCustomProvidersSource(tenant => (tenant ? snapshotForOrg(tenant.orgId) : []));
492
+ ```
493
+
494
+ - Fixed cloned session threads reading from a previous storage instance. The dynamic memory cache now invalidates when the storage or vector instance changes, so thread cloning always uses the current database. ([#19966](https://github.com/mastra-ai/mastra/pull/19966))
495
+
496
+ - Added a memory-settings storage domain: observational memory settings (observer and reflector models, thresholds, attachment observation) changed in the web app are now stored in the app database — one row per user — instead of settings.json, and the settings page reads them back from the database. Factory-mounted agent controllers no longer seed observational memory settings from the host machine's settings.json (new `disableSettingsOmSeed` SDK option), so server sessions start from built-in defaults plus whatever is stored in the database. The OM settings model pickers in the web UI are now searchable comboboxes. ([#19964](https://github.com/mastra-ai/mastra/pull/19964))
497
+
498
+ Server embedders that persist memory settings in their own database can opt out of the settings.json seed:
499
+
500
+ ```ts
501
+ import { createMastraCode } from '@mastra/code-sdk';
502
+
503
+ const mastraCode = await createMastraCode({
504
+ cwd: process.cwd(),
505
+ // Don't seed observer/reflector models or thresholds from the host
506
+ // machine's settings.json — sessions start from built-in defaults.
507
+ disableSettingsOmSeed: true,
508
+ });
509
+ ```
510
+
88
511
  - Fixed Amazon Bedrock prompt caching for long Mastra Code conversations. ([#19690](https://github.com/mastra-ai/mastra/pull/19690))
89
512
 
90
- - Updated dependencies [[`ec857fc`](https://github.com/mastra-ai/mastra/commit/ec857fc79c264b53b38e16478c789b7177f2ad59), [`1426af2`](https://github.com/mastra-ai/mastra/commit/1426af24975879c000d13ac75673f630fcc970c1), [`a40adeb`](https://github.com/mastra-ai/mastra/commit/a40adeb222b961a56a58af56a106106525721b74), [`8a0d145`](https://github.com/mastra-ai/mastra/commit/8a0d145aadbdf7278665aceaaec364b35dd9bd94), [`bd2f1d2`](https://github.com/mastra-ai/mastra/commit/bd2f1d274d05e60e2366f005ea0d94d5cea0d5ff), [`e1f2fae`](https://github.com/mastra-ai/mastra/commit/e1f2faebaf048c3d4c2e2c01d293767c195d5794), [`63aa799`](https://github.com/mastra-ai/mastra/commit/63aa799c6b44eacc7806cda6846b7c5bbee06b37), [`b7e79c3`](https://github.com/mastra-ai/mastra/commit/b7e79c3c02ac5cd415db34ba0975ceafc1464333), [`d2ff897`](https://github.com/mastra-ai/mastra/commit/d2ff8979d3069c6101108cdb7815792b0cc1c1b3), [`21a0eb8`](https://github.com/mastra-ai/mastra/commit/21a0eb86746ba0b703acea360d4f84c6a5a493f2), [`8b20926`](https://github.com/mastra-ai/mastra/commit/8b20926cd59e2ba3d66458e062fa0e6e2ada3e68), [`975295d`](https://github.com/mastra-ai/mastra/commit/975295d418552f0d46a59edfef4c3ee555f9930a), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`4cfdd64`](https://github.com/mastra-ai/mastra/commit/4cfdd645794feaea0c4ea711e70ecdfbef0c5b8e), [`b75d749`](https://github.com/mastra-ai/mastra/commit/b75d749621ff5d17e86bcb4ee809d301fb4f7cf3), [`821648b`](https://github.com/mastra-ai/mastra/commit/821648bf2871ef840100c7bacbecf676010bd12a), [`de86fd7`](https://github.com/mastra-ai/mastra/commit/de86fd7119f0438381d1a642e3d258143c0b9c29), [`2745031`](https://github.com/mastra-ai/mastra/commit/2745031d1d4a4978f037092da371428c32e2842a), [`74faf8b`](https://github.com/mastra-ai/mastra/commit/74faf8bd9c1018f2492653c06b1e25fc8300e9e6), [`1fadac4`](https://github.com/mastra-ai/mastra/commit/1fadac44537caeefe81f9f775ae2f2f3d94e9069), [`cf24430`](https://github.com/mastra-ai/mastra/commit/cf24430226a6ecb104bc1d54d6e401defd7cb53f), [`89da3cd`](https://github.com/mastra-ai/mastra/commit/89da3cd80c7c9936791ff0c31e244bcc41b0dd12), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`76b7181`](https://github.com/mastra-ai/mastra/commit/76b71810366e6d90b9d3973149d1c7ba3659ffb9), [`970c032`](https://github.com/mastra-ai/mastra/commit/970c032502751ee5dd4d0b603331d9838cb538fc), [`792ec9a`](https://github.com/mastra-ai/mastra/commit/792ec9a0869bab8274cf5e0ed2840738737a1607), [`712b864`](https://github.com/mastra-ai/mastra/commit/712b864aa1ed12b14c54390ec17b69de163c37f7), [`85e4fb5`](https://github.com/mastra-ai/mastra/commit/85e4fb50087a81c74df3a762f53b56373db0b912), [`0c0e8d7`](https://github.com/mastra-ai/mastra/commit/0c0e8d7becd4d1445c656b78d5d845f606c1ff9d), [`19881f5`](https://github.com/mastra-ai/mastra/commit/19881f5d6a09437cf5b947d2e8be3bd8745df767), [`8f7a5de`](https://github.com/mastra-ai/mastra/commit/8f7a5dedc246cdc938bb65516703cf9b27b03756), [`11f6cd9`](https://github.com/mastra-ai/mastra/commit/11f6cd96fe42582403416608beb212cc1a2cc79e), [`ef03c0c`](https://github.com/mastra-ai/mastra/commit/ef03c0cfc62367a458e4cc56462e2148b35681c5), [`4fb4d88`](https://github.com/mastra-ai/mastra/commit/4fb4d881bc107acee13890ad4d78661016c510ed), [`9f7c67a`](https://github.com/mastra-ai/mastra/commit/9f7c67abeeb52c41c51a9b5edee60b62afe7cd8d), [`0c52047`](https://github.com/mastra-ai/mastra/commit/0c520470a4547666156b2f18eb794eb8bd2676c8), [`3b65e68`](https://github.com/mastra-ai/mastra/commit/3b65e68d7f1c771c7a70eea42d83fefdd28cad88), [`4eba27a`](https://github.com/mastra-ai/mastra/commit/4eba27adcf60f991df0e62f94b3e75b4e67f3b4b), [`c701be3`](https://github.com/mastra-ai/mastra/commit/c701be32d7d9aa94a66da8c6cc38dcac6856f464), [`db650ce`](https://github.com/mastra-ai/mastra/commit/db650ce490348914e85b93651d83acdf8f2a4c31), [`ec17152`](https://github.com/mastra-ai/mastra/commit/ec17152e7514b5fad37d6ed50f90a937b4bb87a2), [`6354eeb`](https://github.com/mastra-ai/mastra/commit/6354eeb32efa9f5f68f51dda394e90e2ee76f1fb), [`a8799bb`](https://github.com/mastra-ai/mastra/commit/a8799bb8e44f4a60d01e4e2acd3448ff80bf14f8), [`13d2d44`](https://github.com/mastra-ai/mastra/commit/13d2d4476d78ce1aaede10dc83fb64108c9b9d82), [`e3868e2`](https://github.com/mastra-ai/mastra/commit/e3868e22babfffd0133771669ca724501c2dd58e), [`21a0eb8`](https://github.com/mastra-ai/mastra/commit/21a0eb86746ba0b703acea360d4f84c6a5a493f2), [`c0bec73`](https://github.com/mastra-ai/mastra/commit/c0bec732c93d1a22ae5e51ed66cf8cacca8bd6a6)]:
91
- - @mastra/core@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
92
- - @mastra/tavily@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
93
- - @mastra/libsql@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
94
- - @mastra/mcp@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
95
- - @mastra/pg@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
96
- - @mastra/observability@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
97
- - @mastra/memory@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
98
- - @mastra/stagehand@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
99
- - @mastra/agent-browser@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
100
- - @mastra/github-signals@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
101
- - @mastra/duckdb@0.0.0-fix-thread-subscription-multi-instance-redis-streams-20260720232722
513
+ - Fixed a crash (`TypeError: Cannot read properties of undefined (reading 'includes')`) when a Mastra store instance is injected into the SDK from a project whose dependency graph contains duplicate copies of @mastra/core. Injected stores are now detected structurally instead of with `instanceof`, so stores built against a different core copy are recognized correctly instead of being mistaken for a storage config. ([#20030](https://github.com/mastra-ai/mastra/pull/20030))
514
+
515
+ - Updated dependencies [[`ec857fc`](https://github.com/mastra-ai/mastra/commit/ec857fc79c264b53b38e16478c789b7177f2ad59), [`d7385ad`](https://github.com/mastra-ai/mastra/commit/d7385ad9e88f9e4f33d15c0ec0bfebedde0cbc2e), [`41a5392`](https://github.com/mastra-ai/mastra/commit/41a5392d9f6c5e18d6b227f0fc0ddf49c50774e9), [`3d6e539`](https://github.com/mastra-ai/mastra/commit/3d6e539272eb2ea0407034605ee1906b3be06b39), [`1426af2`](https://github.com/mastra-ai/mastra/commit/1426af24975879c000d13ac75673f630fcc970c1), [`a40adeb`](https://github.com/mastra-ai/mastra/commit/a40adeb222b961a56a58af56a106106525721b74), [`8a0d145`](https://github.com/mastra-ai/mastra/commit/8a0d145aadbdf7278665aceaaec364b35dd9bd94), [`bd2f1d2`](https://github.com/mastra-ai/mastra/commit/bd2f1d274d05e60e2366f005ea0d94d5cea0d5ff), [`e1f2fae`](https://github.com/mastra-ai/mastra/commit/e1f2faebaf048c3d4c2e2c01d293767c195d5794), [`63aa799`](https://github.com/mastra-ai/mastra/commit/63aa799c6b44eacc7806cda6846b7c5bbee06b37), [`b7e79c3`](https://github.com/mastra-ai/mastra/commit/b7e79c3c02ac5cd415db34ba0975ceafc1464333), [`675fbff`](https://github.com/mastra-ai/mastra/commit/675fbff84d3274391b33e852f76083c38a5514e5), [`c9e3521`](https://github.com/mastra-ai/mastra/commit/c9e3521628422db84e00a5ff1dea7426c8cce537), [`d2ff897`](https://github.com/mastra-ai/mastra/commit/d2ff8979d3069c6101108cdb7815792b0cc1c1b3), [`da009e1`](https://github.com/mastra-ai/mastra/commit/da009e1aacd89ed94b8d1b2af09c9d4fe7c4db49), [`3b77e77`](https://github.com/mastra-ai/mastra/commit/3b77e7704936522e4769d29de1b5ea6901f302bd), [`c7d30cd`](https://github.com/mastra-ai/mastra/commit/c7d30cd86009c407df91105591f03cd6e3d2854d), [`21a0eb8`](https://github.com/mastra-ai/mastra/commit/21a0eb86746ba0b703acea360d4f84c6a5a493f2), [`8b20926`](https://github.com/mastra-ai/mastra/commit/8b20926cd59e2ba3d66458e062fa0e6e2ada3e68), [`975295d`](https://github.com/mastra-ai/mastra/commit/975295d418552f0d46a59edfef4c3ee555f9930a), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`6b1bf3b`](https://github.com/mastra-ai/mastra/commit/6b1bf3b9494bd51aa8f654c68c9355d6046fa2a1), [`35c2181`](https://github.com/mastra-ai/mastra/commit/35c2181e6a50e47c90ba36260db7c9723d54696f), [`0a2c22c`](https://github.com/mastra-ai/mastra/commit/0a2c22c902604439ec490319e14c17f331e0c84c), [`4cfdd64`](https://github.com/mastra-ai/mastra/commit/4cfdd645794feaea0c4ea711e70ecdfbef0c5b8e), [`b75d749`](https://github.com/mastra-ai/mastra/commit/b75d749621ff5d17e86bcb4ee809d301fb4f7cf3), [`821648b`](https://github.com/mastra-ai/mastra/commit/821648bf2871ef840100c7bacbecf676010bd12a), [`de86fd7`](https://github.com/mastra-ai/mastra/commit/de86fd7119f0438381d1a642e3d258143c0b9c29), [`2745031`](https://github.com/mastra-ai/mastra/commit/2745031d1d4a4978f037092da371428c32e2842a), [`b4b7ea8`](https://github.com/mastra-ai/mastra/commit/b4b7ea8733f033fc441ea47ed03f6afb17ec2248), [`3a8024c`](https://github.com/mastra-ai/mastra/commit/3a8024ce615f8aa89479c0d71fe61d10bb0040be), [`35865a5`](https://github.com/mastra-ai/mastra/commit/35865a53e194aa9634d6a70a97010e7a6b9d58b1), [`8314e6d`](https://github.com/mastra-ai/mastra/commit/8314e6df597a8379b1f934ddf1120f51f8530ab3), [`74faf8b`](https://github.com/mastra-ai/mastra/commit/74faf8bd9c1018f2492653c06b1e25fc8300e9e6), [`ef03fbc`](https://github.com/mastra-ai/mastra/commit/ef03fbcc556bcbc04c9b3d06fab88771ecaa043c), [`675fbff`](https://github.com/mastra-ai/mastra/commit/675fbff84d3274391b33e852f76083c38a5514e5), [`70687f7`](https://github.com/mastra-ai/mastra/commit/70687f7e495a322a02070b4a67cb0c77a5ca91ec), [`1fadac4`](https://github.com/mastra-ai/mastra/commit/1fadac44537caeefe81f9f775ae2f2f3d94e9069), [`89da3cd`](https://github.com/mastra-ai/mastra/commit/89da3cd80c7c9936791ff0c31e244bcc41b0dd12), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`76b7181`](https://github.com/mastra-ai/mastra/commit/76b71810366e6d90b9d3973149d1c7ba3659ffb9), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9), [`970c032`](https://github.com/mastra-ai/mastra/commit/970c032502751ee5dd4d0b603331d9838cb538fc), [`6deac4a`](https://github.com/mastra-ai/mastra/commit/6deac4a520750d807a2154333bf1b91a2df958a5), [`792ec9a`](https://github.com/mastra-ai/mastra/commit/792ec9a0869bab8274cf5e0ed2840738737a1607), [`712b864`](https://github.com/mastra-ai/mastra/commit/712b864aa1ed12b14c54390ec17b69de163c37f7), [`85e4fb5`](https://github.com/mastra-ai/mastra/commit/85e4fb50087a81c74df3a762f53b56373db0b912), [`0c0e8d7`](https://github.com/mastra-ai/mastra/commit/0c0e8d7becd4d1445c656b78d5d845f606c1ff9d), [`a7bbe77`](https://github.com/mastra-ai/mastra/commit/a7bbe773577f60bc4761b534ef7ec6b476332dad), [`19881f5`](https://github.com/mastra-ai/mastra/commit/19881f5d6a09437cf5b947d2e8be3bd8745df767), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9), [`8f7a5de`](https://github.com/mastra-ai/mastra/commit/8f7a5dedc246cdc938bb65516703cf9b27b03756), [`a7bbe77`](https://github.com/mastra-ai/mastra/commit/a7bbe773577f60bc4761b534ef7ec6b476332dad), [`90ed0d0`](https://github.com/mastra-ai/mastra/commit/90ed0d0ca8fce0e1fc751fba16b30a5c00bb3fd1), [`11f6cd9`](https://github.com/mastra-ai/mastra/commit/11f6cd96fe42582403416608beb212cc1a2cc79e), [`ef03c0c`](https://github.com/mastra-ai/mastra/commit/ef03c0cfc62367a458e4cc56462e2148b35681c5), [`4fb4d88`](https://github.com/mastra-ai/mastra/commit/4fb4d881bc107acee13890ad4d78661016c510ed), [`4e68363`](https://github.com/mastra-ai/mastra/commit/4e683634f94ebd062d26a3bb6093a8dfc7263d37), [`c328769`](https://github.com/mastra-ai/mastra/commit/c3287698ff8ef98dba86d415faa566fa3e5f4d56), [`9f7c67a`](https://github.com/mastra-ai/mastra/commit/9f7c67abeeb52c41c51a9b5edee60b62afe7cd8d), [`0c52047`](https://github.com/mastra-ai/mastra/commit/0c520470a4547666156b2f18eb794eb8bd2676c8), [`3b65e68`](https://github.com/mastra-ai/mastra/commit/3b65e68d7f1c771c7a70eea42d83fefdd28cad88), [`4eba27a`](https://github.com/mastra-ai/mastra/commit/4eba27adcf60f991df0e62f94b3e75b4e67f3b4b), [`c701be3`](https://github.com/mastra-ai/mastra/commit/c701be32d7d9aa94a66da8c6cc38dcac6856f464), [`db650ce`](https://github.com/mastra-ai/mastra/commit/db650ce490348914e85b93651d83acdf8f2a4c31), [`ec17152`](https://github.com/mastra-ai/mastra/commit/ec17152e7514b5fad37d6ed50f90a937b4bb87a2), [`232fcbc`](https://github.com/mastra-ai/mastra/commit/232fcbc14fce625dd672ba043329c0b732c62be2), [`6354eeb`](https://github.com/mastra-ai/mastra/commit/6354eeb32efa9f5f68f51dda394e90e2ee76f1fb), [`a8799bb`](https://github.com/mastra-ai/mastra/commit/a8799bb8e44f4a60d01e4e2acd3448ff80bf14f8), [`3d6e539`](https://github.com/mastra-ai/mastra/commit/3d6e539272eb2ea0407034605ee1906b3be06b39), [`13d2d44`](https://github.com/mastra-ai/mastra/commit/13d2d4476d78ce1aaede10dc83fb64108c9b9d82), [`e3868e2`](https://github.com/mastra-ai/mastra/commit/e3868e22babfffd0133771669ca724501c2dd58e), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9), [`9251370`](https://github.com/mastra-ai/mastra/commit/9251370ad413af464aa22d7566338bec5613e8de), [`21a0eb8`](https://github.com/mastra-ai/mastra/commit/21a0eb86746ba0b703acea360d4f84c6a5a493f2), [`3491666`](https://github.com/mastra-ai/mastra/commit/34916663c4fdd43b48c21f4ab2d5fb6dcccc94f9), [`c0bec73`](https://github.com/mastra-ai/mastra/commit/c0bec732c93d1a22ae5e51ed66cf8cacca8bd6a6)]:
516
+ - @mastra/core@1.52.0
517
+ - @mastra/pg@1.17.0
518
+ - @mastra/tavily@1.1.1
519
+ - @mastra/libsql@1.17.0
520
+ - @mastra/mcp@1.15.0
521
+ - @mastra/observability@1.16.2
522
+ - @mastra/memory@1.23.1
523
+ - @mastra/stagehand@0.3.1
524
+
525
+ ## 1.0.0-alpha.18
526
+
527
+ ### Patch Changes
528
+
529
+ - Updated dependencies [[`8314e6d`](https://github.com/mastra-ai/mastra/commit/8314e6df597a8379b1f934ddf1120f51f8530ab3)]:
530
+ - @mastra/mcp@1.15.0-alpha.1
531
+
532
+ ## 1.0.0-alpha.17
533
+
534
+ ### Patch Changes
535
+
536
+ - Fixed a crash (`TypeError: Cannot read properties of undefined (reading 'includes')`) when a Mastra store instance is injected into the SDK from a project whose dependency graph contains duplicate copies of @mastra/core. Injected stores are now detected structurally instead of with `instanceof`, so stores built against a different core copy are recognized correctly instead of being mistaken for a storage config. ([#20030](https://github.com/mastra-ai/mastra/pull/20030))
537
+
538
+ ## 1.0.0-alpha.16
539
+
540
+ ### Patch Changes
541
+
542
+ - Moved custom model providers and custom model packs off settings.json in the factory web app: both now live in the app database (org-scoped rows in deployed mode, a sentinel local scope in no-auth mode). Custom providers saved in the web settings page are picked up by model resolution and the model catalog through a new pluggable custom-providers source in the SDK, so the gateway no longer reads the host machine's settings.json for them, and models from your custom providers appear in the web model pickers. ([#19964](https://github.com/mastra-ai/mastra/pull/19964))
543
+
544
+ Hosts that store custom providers elsewhere (like the factory's database) register a source at boot; when none is registered, the SDK keeps reading settings.json as before:
545
+
546
+ ```ts
547
+ import { setCustomProvidersSource } from '@mastra/code-sdk/agents/custom-provider-source';
548
+
549
+ setCustomProvidersSource(tenant => (tenant ? snapshotForOrg(tenant.orgId) : []));
550
+ ```
551
+
552
+ - Added a memory-settings storage domain: observational memory settings (observer and reflector models, thresholds, attachment observation) changed in the web app are now stored in the app database — one row per user — instead of settings.json, and the settings page reads them back from the database. Factory-mounted agent controllers no longer seed observational memory settings from the host machine's settings.json (new `disableSettingsOmSeed` SDK option), so server sessions start from built-in defaults plus whatever is stored in the database. The OM settings model pickers in the web UI are now searchable comboboxes. ([#19964](https://github.com/mastra-ai/mastra/pull/19964))
553
+
554
+ Server embedders that persist memory settings in their own database can opt out of the settings.json seed:
555
+
556
+ ```ts
557
+ import { createMastraCode } from '@mastra/code-sdk';
558
+
559
+ const mastraCode = await createMastraCode({
560
+ cwd: process.cwd(),
561
+ // Don't seed observer/reflector models or thresholds from the host
562
+ // machine's settings.json — sessions start from built-in defaults.
563
+ disableSettingsOmSeed: true,
564
+ });
565
+ ```
566
+
567
+ - Updated dependencies [[`90ed0d0`](https://github.com/mastra-ai/mastra/commit/90ed0d0ca8fce0e1fc751fba16b30a5c00bb3fd1)]:
568
+ - @mastra/libsql@1.17.0-alpha.4
569
+ - @mastra/pg@1.17.0-alpha.4
570
+ - @mastra/core@1.52.0-alpha.13
571
+
572
+ ## 1.0.0-alpha.15
573
+
574
+ ### Patch Changes
575
+
576
+ - Fixed provider request history repair so incompatible tool-call IDs are sanitized and retried instead of being blindly resent after a provider rejects the request ([#19969](https://github.com/mastra-ai/mastra/pull/19969))
577
+
578
+ - Fixed session thread cloning failing with "Source thread not found" when the cached dynamic memory instance was bound to a previous storage instance. The memory cache is now scoped to the storage it was created with. ([#19969](https://github.com/mastra-ai/mastra/pull/19969))
579
+
580
+ - Fixed cloned session threads reading from a previous storage instance. The dynamic memory cache now invalidates when the storage or vector instance changes, so thread cloning always uses the current database. ([#19966](https://github.com/mastra-ai/mastra/pull/19966))
581
+
582
+ ## 1.0.0-alpha.14
583
+
584
+ ### Patch Changes
585
+
586
+ - Added a session notification when a GitHub plugin is automatically updated to its latest version ([#19943](https://github.com/mastra-ai/mastra/pull/19943))
587
+
588
+ ```ts
589
+ const unsubscribe = pluginManager.onGithubPluginsUpdated(pluginNames => {
590
+ console.log(`Updated plugins: ${pluginNames.join(', ')}`);
591
+ });
592
+
593
+ // Call during shutdown.
594
+ unsubscribe();
595
+ ```
596
+
597
+ - Updated dependencies [[`d7385ad`](https://github.com/mastra-ai/mastra/commit/d7385ad9e88f9e4f33d15c0ec0bfebedde0cbc2e), [`3d6e539`](https://github.com/mastra-ai/mastra/commit/3d6e539272eb2ea0407034605ee1906b3be06b39), [`35865a5`](https://github.com/mastra-ai/mastra/commit/35865a53e194aa9634d6a70a97010e7a6b9d58b1), [`70687f7`](https://github.com/mastra-ai/mastra/commit/70687f7e495a322a02070b4a67cb0c77a5ca91ec), [`3d6e539`](https://github.com/mastra-ai/mastra/commit/3d6e539272eb2ea0407034605ee1906b3be06b39)]:
598
+ - @mastra/core@1.52.0-alpha.12
599
+
600
+ ## 1.0.0-alpha.13
601
+
602
+ ### Patch Changes
603
+
604
+ - Updated dependencies [[`c9e3521`](https://github.com/mastra-ai/mastra/commit/c9e3521628422db84e00a5ff1dea7426c8cce537)]:
605
+ - @mastra/pg@1.17.0-alpha.3
606
+
607
+ ## 1.0.0-alpha.12
608
+
609
+ ### Minor Changes
610
+
611
+ - Added an input processor extension for embedding surfaces while preserving Mastra Code's required processors. ([#19702](https://github.com/mastra-ai/mastra/pull/19702))
612
+
613
+ ### Patch Changes
614
+
615
+ - Improved local database safety by using rollback journals and closing storage during shutdown. ([#19901](https://github.com/mastra-ai/mastra/pull/19901))
616
+
617
+ - Updated dependencies [[`c7d30cd`](https://github.com/mastra-ai/mastra/commit/c7d30cd86009c407df91105591f03cd6e3d2854d), [`ef03fbc`](https://github.com/mastra-ai/mastra/commit/ef03fbcc556bcbc04c9b3d06fab88771ecaa043c), [`6193d6d`](https://github.com/mastra-ai/mastra/commit/6193d6d4ae62ad68daaaf450992198e9e49493f1), [`a7bbe77`](https://github.com/mastra-ai/mastra/commit/a7bbe773577f60bc4761b534ef7ec6b476332dad), [`a7bbe77`](https://github.com/mastra-ai/mastra/commit/a7bbe773577f60bc4761b534ef7ec6b476332dad), [`4e68363`](https://github.com/mastra-ai/mastra/commit/4e683634f94ebd062d26a3bb6093a8dfc7263d37), [`9251370`](https://github.com/mastra-ai/mastra/commit/9251370ad413af464aa22d7566338bec5613e8de)]:
618
+ - @mastra/core@1.52.0-alpha.11
619
+ - @mastra/libsql@1.17.0-alpha.3
620
+
621
+ ## 1.0.0-alpha.11
622
+
623
+ ### Minor Changes
624
+
625
+ - Add browser-based OAuth authentication for HTTP MCP servers to Mastra Code. ([#19467](https://github.com/mastra-ai/mastra/pull/19467))
626
+
627
+ When an HTTP MCP server rejects a connection with an authorization error, the
628
+ `/mcp` selector now shows a "needs auth" badge and an **Authenticate** action.
629
+ Choosing it opens the provider's consent page in the browser and completes the
630
+ OAuth 2.1 authorization-code flow (PKCE + Dynamic Client Registration) over a
631
+ loopback callback server, persists the tokens, and reconnects — no manual
632
+ configuration required for a bare `{ "url": ... }` server entry. A **Cancel
633
+ authentication** action aborts an in-flight flow and returns the server to the
634
+ needs-auth state.
635
+
636
+ The server manager gains `authenticateServer(name)` and
637
+ `cancelServerAuthentication(name)`, `McpServerStatus` gains an optional
638
+ `needsAuth` flag, and the OAuth `redirectUrl` in MCP server config is now
639
+ optional (it defaults to a stable loopback URL). The config also accepts
640
+ `callbackPort` as a shorthand that synthesizes
641
+ `http://localhost:<callbackPort>/callback`, the Claude Code / Codex
642
+ convention, so configs written for those clients (like Slack's official MCP
643
+ plugin config) work verbatim. `callbackPort` and `redirectUrl` are mutually
644
+ exclusive.
645
+
646
+ ```ts
647
+ const server = manager.getServerStatuses().find(s => s.name === 'supabase');
648
+ if (server?.needsAuth) {
649
+ // Opens the consent page in the browser, completes the OAuth flow, and
650
+ // resolves with the reconnected server status.
651
+ const status = await manager.authenticateServer('supabase', {
652
+ onAuthorizationUrl: url => openInBrowser(url),
653
+ });
654
+ console.log(status.connected);
655
+
656
+ // Abort an abandoned browser flow and return the server to needs-auth:
657
+ // await manager.cancelServerAuthentication('supabase')
658
+ }
659
+ ```
660
+
661
+ ## 1.0.0-alpha.10
662
+
663
+ ### Major Changes
664
+
665
+ - Replaced GitHub-specific Mastra Code session state with Factory project and linked-repository identities. This lets SDK consumers represent sessions independently of a source-control provider and select a repository explicitly when sandbox execution is required. ([#19849](https://github.com/mastra-ai/mastra/pull/19849))
666
+
667
+ Updated Mastra Code onboarding to be Factory-first: create a Factory by name, then link repositories from your connected source-control installations in a separate step. A Factory is valid with zero linked repositories, and the Board, Metrics, and Audit pages stay available for any server-backed Factory. Factory pages keep project-scoped data separate from repository-scoped intake and provide a repository selector when a Factory has multiple linked repositories. Creating a Factory from a local folder remains available as a secondary option.
668
+
669
+ **Before**
670
+
671
+ ```ts
672
+ const state = { githubProjectId: 'project-1', sandboxId, sandboxWorkdir };
673
+ ```
674
+
675
+ **After**
676
+
677
+ ```ts
678
+ const state = {
679
+ factoryProjectId: 'factory-project-1',
680
+ projectRepositoryId: 'project-repository-1',
681
+ sandboxId,
682
+ sandboxWorkdir,
683
+ };
684
+ ```
685
+
686
+ ### Minor Changes
687
+
688
+ - Moved model packs in Mastra Code web to database-backed storage and refreshed the built-in packs. ([#19849](https://github.com/mastra-ai/mastra/pull/19849))
689
+
690
+ **Model packs are now stored in the Factory database**
691
+
692
+ When running with a Factory backend, custom model packs are saved in a new model-packs storage domain scoped to your organization instead of the local settings.json file. Local (non-tenant) mode keeps the file-backed behavior.
693
+
694
+ **Pick from available models**
695
+
696
+ The settings Model tab now loads the list of available models from a new /web/config/models endpoint, so the Factory default model picker and model pack editor only offer models you actually have credentials for. Model pickers are searchable comboboxes instead of plain dropdowns, and pack activation now resolves the correct scoped session so packs can be activated from settings.
697
+
698
+ **Default packs updated to the latest model releases**
699
+
700
+ - Anthropic: build and plan anthropic/claude-fable-5, fast anthropic/claude-haiku-4-5
701
+ - OpenAI: build and plan openai/gpt-5.6
702
+ - Observational memory default model is now google/gemini-3.5-flash
703
+
704
+ - Added a Factory default model for server-backed Factories in Mastra Code web. Set it in Settings under the Model tab and every factory run (like issue triage) starts on that model. The Model tab now also hosts model packs, replacing the separate Packs tab — packs stay session-scoped while the default model is stored on the Factory project itself. ([#19849](https://github.com/mastra-ai/mastra/pull/19849))
705
+
706
+ ### Patch Changes
707
+
708
+ - dependencies updates: ([#19813](https://github.com/mastra-ai/mastra/pull/19813))
709
+ - Updated dependency [`@ai-sdk/amazon-bedrock@^3.0.107` ↗︎](https://www.npmjs.com/package/@ai-sdk/amazon-bedrock/v/3.0.107) (from `^3.0.105`, in `dependencies`)
710
+ - Updated dependency [`@ai-sdk/anthropic@^3.0.98` ↗︎](https://www.npmjs.com/package/@ai-sdk/anthropic/v/3.0.98) (from `^3.0.96`, in `dependencies`)
711
+ - Updated dependency [`@ai-sdk/openai@^3.0.86` ↗︎](https://www.npmjs.com/package/@ai-sdk/openai/v/3.0.86) (from `^3.0.84`, in `dependencies`)
712
+ - Updated dependency [`@ai-sdk/openai-compatible@^2.0.62` ↗︎](https://www.npmjs.com/package/@ai-sdk/openai-compatible/v/2.0.62) (from `^2.0.59`, in `dependencies`)
713
+ - Updated dependency [`ai@^6.0.230` ↗︎](https://www.npmjs.com/package/ai/v/6.0.230) (from `^6.0.225`, in `dependencies`)
714
+
715
+ - Fixed goal duration so it persists across pauses and process restarts. ([#19837](https://github.com/mastra-ai/mastra/pull/19837))
716
+
717
+ - Updated dependencies [[`41a5392`](https://github.com/mastra-ai/mastra/commit/41a5392d9f6c5e18d6b227f0fc0ddf49c50774e9), [`675fbff`](https://github.com/mastra-ai/mastra/commit/675fbff84d3274391b33e852f76083c38a5514e5), [`da009e1`](https://github.com/mastra-ai/mastra/commit/da009e1aacd89ed94b8d1b2af09c9d4fe7c4db49), [`35c2181`](https://github.com/mastra-ai/mastra/commit/35c2181e6a50e47c90ba36260db7c9723d54696f), [`b4b7ea8`](https://github.com/mastra-ai/mastra/commit/b4b7ea8733f033fc441ea47ed03f6afb17ec2248), [`675fbff`](https://github.com/mastra-ai/mastra/commit/675fbff84d3274391b33e852f76083c38a5514e5), [`6deac4a`](https://github.com/mastra-ai/mastra/commit/6deac4a520750d807a2154333bf1b91a2df958a5), [`c328769`](https://github.com/mastra-ai/mastra/commit/c3287698ff8ef98dba86d415faa566fa3e5f4d56), [`232fcbc`](https://github.com/mastra-ai/mastra/commit/232fcbc14fce625dd672ba043329c0b732c62be2), [`3491666`](https://github.com/mastra-ai/mastra/commit/34916663c4fdd43b48c21f4ab2d5fb6dcccc94f9)]:
718
+ - @mastra/core@1.52.0-alpha.10
719
+ - @mastra/libsql@1.17.0-alpha.2
720
+ - @mastra/pg@1.17.0-alpha.2
721
+ - @mastra/observability@1.16.2-alpha.1
722
+ - @mastra/mcp@1.15.0-alpha.0
723
+
724
+ ## 0.2.0-alpha.9
725
+
726
+ ### Patch Changes
727
+
728
+ - Updated dependencies [[`0a2c22c`](https://github.com/mastra-ai/mastra/commit/0a2c22c902604439ec490319e14c17f331e0c84c), [`3a8024c`](https://github.com/mastra-ai/mastra/commit/3a8024ce615f8aa89479c0d71fe61d10bb0040be)]:
729
+ - @mastra/core@1.52.0-alpha.9
730
+
731
+ ## 0.2.0-alpha.8
732
+
733
+ ### Patch Changes
734
+
735
+ - Updated dependencies [[`3b77e77`](https://github.com/mastra-ai/mastra/commit/3b77e7704936522e4769d29de1b5ea6901f302bd), [`6b1bf3b`](https://github.com/mastra-ai/mastra/commit/6b1bf3b9494bd51aa8f654c68c9355d6046fa2a1), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9)]:
736
+ - @mastra/core@1.52.0-alpha.8
737
+ - @mastra/pg@1.17.0-alpha.1
738
+ - @mastra/libsql@1.17.0-alpha.1
102
739
 
103
740
  ## 0.2.0-alpha.7
104
741