@agent-native/core 0.146.3 → 0.146.5

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 (283) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +13 -10
  3. package/corpus/templates/analytics/.agents/skills/self-modifying-code/SKILL.md +7 -3
  4. package/corpus/templates/analytics/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  5. package/corpus/templates/analytics/actions/compose-dashboard.ts +53 -6
  6. package/corpus/templates/analytics/actions/dashboard-mutation-api.ts +8 -2
  7. package/corpus/templates/analytics/actions/migrate-first-party-analytics-to-bigquery.ts +3 -1
  8. package/corpus/templates/analytics/actions/mutate-dashboard.ts +48 -9
  9. package/corpus/templates/analytics/actions/update-dashboard.ts +80 -6
  10. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +1 -1
  11. package/corpus/templates/analytics/app/components/layout/Layout.tsx +1 -1
  12. package/corpus/templates/analytics/app/pages/Settings.tsx +5 -1
  13. package/corpus/templates/analytics/app/routes/agent.tsx +7 -5
  14. package/corpus/templates/analytics/changelog/2026-08-07-dashboard-creation-and-edits-now-save-faster-with-reliable-s.md +6 -0
  15. package/corpus/templates/analytics/seeds/dashboards/agent-native-templates-first-party.json +19 -19
  16. package/corpus/templates/analytics/server/jobs/analytics-bigquery-backfill.ts +21 -2
  17. package/corpus/templates/analytics/server/lib/bigquery.ts +59 -24
  18. package/corpus/templates/analytics/server/lib/canonical-first-party-dashboard-repair.ts +44 -8
  19. package/corpus/templates/analytics/server/lib/dashboard-catalog.ts +3 -5
  20. package/corpus/templates/analytics/server/lib/first-party-analytics-backend.ts +33 -69
  21. package/corpus/templates/analytics/server/lib/first-party-metric-catalog.ts +90 -24
  22. package/corpus/templates/analytics/server/lib/real-data-actions.ts +1 -1
  23. package/corpus/templates/analytics/server/plugins/agent-chat.ts +17 -2
  24. package/corpus/templates/analytics/shared/dashboard-report-timeouts.ts +2 -0
  25. package/corpus/templates/assets/.agents/skills/self-modifying-code/SKILL.md +7 -3
  26. package/corpus/templates/assets/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  27. package/corpus/templates/assets/app/components/layout/Layout.tsx +1 -1
  28. package/corpus/templates/assets/app/routes/agent.tsx +7 -5
  29. package/corpus/templates/assets/app/routes/settings.tsx +7 -2
  30. package/corpus/templates/assets/netlify.toml +1 -1
  31. package/corpus/templates/assets/package.json +1 -0
  32. package/corpus/templates/assets/scripts/migrate-production.ts +24 -0
  33. package/corpus/templates/assets/server/plugins/creative-context.ts +1 -1
  34. package/corpus/templates/assets/server/plugins/db.ts +1 -1
  35. package/corpus/templates/assets/tsconfig.json +1 -0
  36. package/corpus/templates/brain/.agents/skills/self-modifying-code/SKILL.md +7 -3
  37. package/corpus/templates/brain/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  38. package/corpus/templates/brain/app/components/layout/Layout.tsx +1 -1
  39. package/corpus/templates/brain/app/lib/brain.ts +4 -2
  40. package/corpus/templates/brain/app/root.tsx +1 -1
  41. package/corpus/templates/brain/app/routes/agent.tsx +10 -2
  42. package/corpus/templates/brain/netlify.toml +1 -1
  43. package/corpus/templates/brain/package.json +2 -0
  44. package/corpus/templates/brain/scripts/migrate-production.ts +24 -0
  45. package/corpus/templates/brain/server/plugins/db.ts +1 -1
  46. package/corpus/templates/brain/tsconfig.json +1 -0
  47. package/corpus/templates/calendar/.agents/skills/self-modifying-code/SKILL.md +7 -3
  48. package/corpus/templates/calendar/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  49. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +1 -1
  50. package/corpus/templates/calendar/app/root.tsx +1 -1
  51. package/corpus/templates/calendar/app/routes/_app.agent.tsx +8 -16
  52. package/corpus/templates/calendar/netlify.toml +1 -1
  53. package/corpus/templates/calendar/package.json +1 -0
  54. package/corpus/templates/calendar/scripts/migrate-production.ts +24 -0
  55. package/corpus/templates/calendar/server/plugins/db.ts +1 -1
  56. package/corpus/templates/calendar/tsconfig.json +1 -0
  57. package/corpus/templates/chat/.agents/skills/self-modifying-code/SKILL.md +7 -3
  58. package/corpus/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  59. package/corpus/templates/chat/app/hooks/use-navigation-state.ts +5 -2
  60. package/corpus/templates/chat/app/routes/agent.tsx +7 -31
  61. package/corpus/templates/chat/netlify.toml +1 -1
  62. package/corpus/templates/chat/package.json +1 -0
  63. package/corpus/templates/chat/scripts/migrate-production.ts +31 -0
  64. package/corpus/templates/chat/tsconfig.json +1 -0
  65. package/corpus/templates/clips/.agents/skills/self-modifying-code/SKILL.md +7 -3
  66. package/corpus/templates/clips/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  67. package/corpus/templates/clips/app/components/library/library-layout.tsx +1 -1
  68. package/corpus/templates/clips/app/root.tsx +1 -1
  69. package/corpus/templates/clips/app/routes/_app.agent.tsx +9 -7
  70. package/corpus/templates/clips/netlify.toml +1 -1
  71. package/corpus/templates/clips/package.json +1 -0
  72. package/corpus/templates/clips/scripts/migrate-production.ts +24 -0
  73. package/corpus/templates/clips/server/plugins/db.ts +1 -1
  74. package/corpus/templates/clips/tsconfig.json +1 -0
  75. package/corpus/templates/content/.agents/skills/self-modifying-code/SKILL.md +7 -3
  76. package/corpus/templates/content/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  77. package/corpus/templates/content/app/components/layout/Layout.tsx +1 -1
  78. package/corpus/templates/content/app/root.tsx +1 -1
  79. package/corpus/templates/content/app/routes/_app.agent.tsx +9 -8
  80. package/corpus/templates/content/app/routes/_app.settings.tsx +7 -2
  81. package/corpus/templates/content/netlify.toml +1 -1
  82. package/corpus/templates/content/package.json +2 -0
  83. package/corpus/templates/content/scripts/migrate-production.ts +28 -0
  84. package/corpus/templates/content/server/plugins/creative-context.ts +1 -1
  85. package/corpus/templates/content/server/plugins/db.ts +2 -2
  86. package/corpus/templates/crm/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  87. package/corpus/templates/crm/app/components/crm/RecordActions.tsx +4 -1
  88. package/corpus/templates/crm/app/components/layout/CrmLayout.tsx +1 -1
  89. package/corpus/templates/crm/app/routes/agent.tsx +10 -2
  90. package/corpus/templates/crm/netlify.toml +1 -1
  91. package/corpus/templates/crm/package.json +2 -0
  92. package/corpus/templates/crm/scripts/migrate-production.ts +24 -0
  93. package/corpus/templates/crm/server/plugins/db.ts +1 -1
  94. package/corpus/templates/crm/tsconfig.json +1 -0
  95. package/corpus/templates/design/.agents/skills/self-modifying-code/SKILL.md +7 -3
  96. package/corpus/templates/design/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  97. package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
  98. package/corpus/templates/design/app/root.tsx +1 -1
  99. package/corpus/templates/design/app/routes/agent.tsx +9 -7
  100. package/corpus/templates/design/app/routes/settings.tsx +7 -2
  101. package/corpus/templates/design/netlify.toml +1 -1
  102. package/corpus/templates/design/package.json +1 -0
  103. package/corpus/templates/design/scripts/migrate-production.ts +24 -0
  104. package/corpus/templates/design/server/plugins/creative-context.ts +1 -1
  105. package/corpus/templates/design/server/plugins/db.ts +1 -1
  106. package/corpus/templates/design/tsconfig.json +1 -0
  107. package/corpus/templates/dispatch/.agents/skills/self-modifying-code/SKILL.md +7 -3
  108. package/corpus/templates/dispatch/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  109. package/corpus/templates/dispatch/app/root.tsx +5 -2
  110. package/corpus/templates/dispatch/app/routes/agent.tsx +7 -7
  111. package/corpus/templates/dispatch/netlify.toml +1 -1
  112. package/corpus/templates/dispatch/package.json +1 -0
  113. package/corpus/templates/dispatch/scripts/migrate-production.ts +23 -0
  114. package/corpus/templates/dispatch/tsconfig.json +1 -0
  115. package/corpus/templates/factory/.agents/skills/self-modifying-code/SKILL.md +7 -3
  116. package/corpus/templates/factory/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  117. package/corpus/templates/factory/app/components/layout/Layout.tsx +1 -1
  118. package/corpus/templates/factory/app/hooks/use-navigation-state.ts +5 -2
  119. package/corpus/templates/factory/app/root.tsx +1 -1
  120. package/corpus/templates/factory/app/routes/agent.tsx +9 -14
  121. package/corpus/templates/factory/netlify.toml +1 -1
  122. package/corpus/templates/factory/package.json +1 -0
  123. package/corpus/templates/factory/scripts/migrate-production.ts +31 -0
  124. package/corpus/templates/factory/server/plugins/factory-scheduler-job.ts +2 -0
  125. package/corpus/templates/factory/tsconfig.json +1 -0
  126. package/corpus/templates/forms/.agents/skills/self-modifying-code/SKILL.md +7 -3
  127. package/corpus/templates/forms/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  128. package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -1
  129. package/corpus/templates/forms/app/root.tsx +1 -1
  130. package/corpus/templates/forms/app/routes/_app.agent.tsx +9 -7
  131. package/corpus/templates/forms/netlify.toml +1 -1
  132. package/corpus/templates/forms/package.json +2 -0
  133. package/corpus/templates/forms/scripts/migrate-production.ts +24 -0
  134. package/corpus/templates/forms/server/plugins/db.ts +1 -1
  135. package/corpus/templates/forms/tsconfig.json +1 -0
  136. package/corpus/templates/macros/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  137. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +5 -3
  138. package/corpus/templates/macros/app/root.tsx +1 -1
  139. package/corpus/templates/macros/app/routes/agent.tsx +9 -6
  140. package/corpus/templates/macros/netlify.toml +1 -1
  141. package/corpus/templates/macros/package.json +1 -0
  142. package/corpus/templates/macros/scripts/migrate-production.ts +24 -0
  143. package/corpus/templates/macros/server/plugins/db.ts +1 -1
  144. package/corpus/templates/macros/tsconfig.json +1 -0
  145. package/corpus/templates/mail/.agents/skills/self-modifying-code/SKILL.md +7 -3
  146. package/corpus/templates/mail/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  147. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +8 -2
  148. package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +1 -1
  149. package/corpus/templates/mail/app/routes/agent.tsx +9 -6
  150. package/corpus/templates/mail/netlify.toml +1 -1
  151. package/corpus/templates/mail/package.json +1 -0
  152. package/corpus/templates/mail/scripts/migrate-production.ts +24 -0
  153. package/corpus/templates/mail/server/plugins/db.ts +1 -1
  154. package/corpus/templates/mail/tsconfig.json +1 -0
  155. package/corpus/templates/plan/.agents/skills/self-modifying-code/SKILL.md +7 -3
  156. package/corpus/templates/plan/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  157. package/corpus/templates/plan/app/components/layout/Layout.tsx +1 -1
  158. package/corpus/templates/plan/app/root.tsx +1 -1
  159. package/corpus/templates/plan/app/routes/agent.tsx +9 -6
  160. package/corpus/templates/plan/netlify.toml +1 -1
  161. package/corpus/templates/plan/package.json +1 -0
  162. package/corpus/templates/plan/scripts/migrate-production.ts +24 -0
  163. package/corpus/templates/plan/server/plugins/00-mcp.ts +3 -2
  164. package/corpus/templates/plan/server/plugins/db.ts +1 -1
  165. package/corpus/templates/plan/tsconfig.json +1 -0
  166. package/corpus/templates/slides/.agents/skills/self-modifying-code/SKILL.md +7 -3
  167. package/corpus/templates/slides/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  168. package/corpus/templates/slides/app/components/editor/ImageGenPanel.tsx +8 -12
  169. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +39 -2
  170. package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
  171. package/corpus/templates/slides/app/i18n/en-US.ts +1 -0
  172. package/corpus/templates/slides/app/lib/create-deck-generation.ts +22 -5
  173. package/corpus/templates/slides/app/pages/Index.tsx +20 -5
  174. package/corpus/templates/slides/app/root.tsx +1 -1
  175. package/corpus/templates/slides/app/routes/agent.tsx +6 -9
  176. package/corpus/templates/slides/app/routes/settings.tsx +7 -2
  177. package/corpus/templates/slides/netlify.toml +1 -1
  178. package/corpus/templates/slides/package.json +1 -0
  179. package/corpus/templates/slides/scripts/migrate-production.ts +24 -0
  180. package/corpus/templates/slides/server/plugins/creative-context.ts +1 -1
  181. package/corpus/templates/slides/server/plugins/db.ts +1 -1
  182. package/corpus/templates/slides/tsconfig.json +1 -0
  183. package/corpus/templates/tasks/.agents/skills/self-modifying-code/SKILL.md +7 -3
  184. package/corpus/templates/tasks/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  185. package/corpus/templates/tasks/app/components/layout/Layout.tsx +1 -1
  186. package/corpus/templates/tasks/app/routes/agent.tsx +10 -2
  187. package/corpus/templates/tasks/netlify.toml +1 -1
  188. package/corpus/templates/tasks/package.json +1 -0
  189. package/corpus/templates/tasks/scripts/migrate-production.ts +24 -0
  190. package/corpus/templates/tasks/server/plugins/db.ts +1 -1
  191. package/corpus/templates/tasks/tsconfig.json +1 -0
  192. package/dist/action.d.ts +2 -0
  193. package/dist/agent/production-agent.d.ts +1 -0
  194. package/dist/agent/production-agent.js +2 -0
  195. package/dist/agent/thread-data-builder.d.ts +4 -0
  196. package/dist/agent/thread-data-builder.js +44 -0
  197. package/dist/automations/service.d.ts +1 -0
  198. package/dist/automations/service.js +21 -2
  199. package/dist/cli/create.js +20 -2
  200. package/dist/client/agent-page/AgentJobsTab.js +3 -1
  201. package/dist/client/agent-page/AutomationDetailsDialog.js +9 -2
  202. package/dist/client/index.d.ts +1 -1
  203. package/dist/client/navigation/index.d.ts +1 -1
  204. package/dist/client/navigation/index.js +1 -1
  205. package/dist/client/org/OrgSwitcher.js +1 -1
  206. package/dist/client/settings/SettingsPanel.d.ts +8 -0
  207. package/dist/client/settings/SettingsPanel.js +16 -1
  208. package/dist/client/settings/index.d.ts +1 -1
  209. package/dist/collab/struct-routes.d.ts +1 -1
  210. package/dist/db/migrations.js +7 -13
  211. package/dist/file-upload/actions/upload-image.d.ts +1 -1
  212. package/dist/jobs/actions/list-automation-runs.d.ts +1 -0
  213. package/dist/jobs/actions/list-automation-runs.js +9 -2
  214. package/dist/jobs/actions/list-recurring-jobs.js +3 -1
  215. package/dist/jobs/actions/manage-recurring-job.js +1 -1
  216. package/dist/jobs/actions/run-automation-now.js +1 -0
  217. package/dist/jobs/background-automation-runner.js +2 -0
  218. package/dist/jobs/frontmatter.d.ts +2 -0
  219. package/dist/jobs/frontmatter.js +4 -0
  220. package/dist/jobs/run-history.d.ts +4 -0
  221. package/dist/jobs/run-history.js +28 -8
  222. package/dist/jobs/run-now.d.ts +4 -1
  223. package/dist/jobs/run-now.js +4 -3
  224. package/dist/jobs/scheduler.js +18 -0
  225. package/dist/jobs/tools.d.ts +3 -2
  226. package/dist/jobs/tools.js +26 -12
  227. package/dist/localization/default-messages.d.ts +1 -0
  228. package/dist/localization/default-messages.js +1 -0
  229. package/dist/navigation/index.d.ts +1 -0
  230. package/dist/navigation/index.js +34 -0
  231. package/dist/notifications/routes.d.ts +1 -1
  232. package/dist/observability/routes.d.ts +1 -1
  233. package/dist/resources/handlers.d.ts +1 -1
  234. package/dist/server/action-routes.d.ts +2 -0
  235. package/dist/server/action-routes.js +1 -0
  236. package/dist/server/agent-chat-plugin.js +3 -2
  237. package/dist/server/builder-browser.js +24 -8
  238. package/dist/templates/chat/.agents/skills/self-modifying-code/SKILL.md +7 -3
  239. package/dist/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  240. package/dist/templates/chat/app/hooks/use-navigation-state.ts +5 -2
  241. package/dist/templates/chat/app/routes/agent.tsx +7 -31
  242. package/dist/templates/chat/netlify.toml +1 -1
  243. package/dist/templates/chat/package.json +1 -0
  244. package/dist/templates/chat/scripts/migrate-production.ts +31 -0
  245. package/dist/templates/chat/tsconfig.json +1 -0
  246. package/dist/templates/default/.agents/skills/self-modifying-code/SKILL.md +7 -3
  247. package/dist/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  248. package/dist/templates/default/app/routes/_index.tsx +1 -1
  249. package/dist/templates/default/app/routes/agent.tsx +7 -25
  250. package/dist/templates/default/package.json +1 -0
  251. package/dist/templates/default/scripts/migrate-production.ts +31 -0
  252. package/dist/templates/default/tsconfig.json +1 -0
  253. package/dist/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  254. package/dist/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +7 -3
  255. package/dist/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  256. package/dist/templates/workspace-root/AGENTS.md +2 -1
  257. package/dist/triggers/actions/list-automations.js +1 -1
  258. package/dist/triggers/actions/manage-automation.js +5 -1
  259. package/dist/triggers/actions.d.ts +1 -1
  260. package/dist/triggers/actions.js +21 -15
  261. package/dist/triggers/dispatcher.js +17 -2
  262. package/dist/triggers/routes.d.ts +1 -0
  263. package/dist/triggers/routes.js +1 -0
  264. package/package.json +3 -3
  265. package/src/templates/chat/.agents/skills/self-modifying-code/SKILL.md +7 -3
  266. package/src/templates/chat/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  267. package/src/templates/chat/app/hooks/use-navigation-state.ts +5 -2
  268. package/src/templates/chat/app/routes/agent.tsx +7 -31
  269. package/src/templates/chat/netlify.toml +1 -1
  270. package/src/templates/chat/package.json +1 -0
  271. package/src/templates/chat/scripts/migrate-production.ts +31 -0
  272. package/src/templates/chat/tsconfig.json +1 -0
  273. package/src/templates/default/.agents/skills/self-modifying-code/SKILL.md +7 -3
  274. package/src/templates/default/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  275. package/src/templates/default/app/routes/_index.tsx +1 -1
  276. package/src/templates/default/app/routes/agent.tsx +7 -25
  277. package/src/templates/default/package.json +1 -0
  278. package/src/templates/default/scripts/migrate-production.ts +31 -0
  279. package/src/templates/default/tsconfig.json +1 -0
  280. package/src/templates/headless/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  281. package/src/templates/workspace-core/.agents/skills/self-modifying-code/SKILL.md +7 -3
  282. package/src/templates/workspace-core/.agents/skills/upgrade-agent-native/SKILL.md +5 -2
  283. package/src/templates/workspace-root/AGENTS.md +2 -1
@@ -0,0 +1,24 @@
1
+ import { closeDbExec, withMigrationRuntime } from "@agent-native/core/db";
2
+ import { runFrameworkReleaseMigrations } from "@agent-native/core/server";
3
+
4
+ import { runFormsMigrations } from "../server/plugins/db.js";
5
+
6
+ /**
7
+ * Release-time schema entrypoint for Forms.
8
+ *
9
+ * This script is the production owner of schema changes. It runs against the
10
+ * direct migration endpoint selected by core, while request functions skip
11
+ * all migration and ensure-table work automatically.
12
+ */
13
+ async function main(): Promise<void> {
14
+ await withMigrationRuntime(async () => {
15
+ await runFrameworkReleaseMigrations(null);
16
+ await runFormsMigrations(null);
17
+ });
18
+ }
19
+
20
+ try {
21
+ await main();
22
+ } finally {
23
+ await closeDbExec();
24
+ }
@@ -28,7 +28,7 @@ const schemaTables = Object.values(schema).filter(isDrizzleTable);
28
28
  // packages/core/src/db/migrations.ts for the full rationale). Version numbers
29
29
  // alone are not a safe identity across parallel branches that each extend
30
30
  // this list independently against the shared `forms_migrations` table.
31
- const runFormsMigrations = runMigrations(
31
+ export const runFormsMigrations = runMigrations(
32
32
  [
33
33
  {
34
34
  version: 1,
@@ -13,6 +13,7 @@
13
13
  "app/**/*",
14
14
  "server/**/*",
15
15
  "shared/**/*",
16
+ "scripts/**/*",
16
17
  "react-router.config.ts",
17
18
  ".react-router/types/**/*",
18
19
  ".generated/**/*"
@@ -15,8 +15,9 @@ metadata:
15
15
 
16
16
  When an older Agent Native app/branch needs to run on current packages, use
17
17
  `agent-native upgrade`. Never "fix" upgrade breakage with
18
- `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patches, or
19
- edits under `node_modules/@agent-native/*` — especially not against
18
+ `pnpm patch`, `pnpm patch-commit`, `pnpm.patchedDependencies`,
19
+ `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patch artifacts,
20
+ or edits under `node_modules/@agent-native/*` — especially not against
20
21
  `@agent-native/core` or `@agent-native/dispatch`.
21
22
 
22
23
  ## Why
@@ -109,6 +110,8 @@ install → refresh scaffold skills → verify, then fix **app** code only.
109
110
 
110
111
  - Don't add `pnpm.overrides`, `overrides`, `resolutions`, or
111
112
  `patchedDependencies` for any `@agent-native/*` package
113
+ - Don't run `pnpm patch` or `pnpm patch-commit`, or commit files under
114
+ `patches/`, for any dependency
112
115
  - Don't edit `node_modules/@agent-native/core` or
113
116
  `node_modules/@agent-native/dispatch`
114
117
  - Don't invent local "dispatch behavior" shims to paper over version skew
@@ -62,7 +62,9 @@ export function AppLayout({ children }: { children: React.ReactNode }) {
62
62
 
63
63
  const isAnalytics = location.pathname === "/analytics";
64
64
  const isSettings = location.pathname.startsWith("/settings");
65
- const isAgent = location.pathname.startsWith("/agent");
65
+ const isAgent =
66
+ location.pathname.startsWith("/settings/agent") ||
67
+ location.pathname.startsWith("/agent");
66
68
 
67
69
  // Auto-close sidebar on route change (mobile)
68
70
  useEffect(() => {
@@ -120,7 +122,7 @@ export function AppLayout({ children }: { children: React.ReactNode }) {
120
122
  } else if (cmd.view === "settings") {
121
123
  navigate("/settings");
122
124
  } else if (cmd.view === "agent") {
123
- navigate("/agent");
125
+ navigate("/settings/agent");
124
126
  } else if (cmd.view === "entry") {
125
127
  navigate("/");
126
128
  }
@@ -144,7 +146,7 @@ export function AppLayout({ children }: { children: React.ReactNode }) {
144
146
  t("agent.suggestionMacros"),
145
147
  t("agent.suggestionRun"),
146
148
  ]}
147
- agentPageHref="/agent"
149
+ agentPageHref="/settings/agent"
148
150
  >
149
151
  <div className="agent-layout-shell flex flex-1 overflow-hidden">
150
152
  {/* Desktop sidebar */}
@@ -166,7 +166,7 @@ function MacrosCommandMenu({
166
166
  {t("root.search")}
167
167
  </CommandMenu.Item>
168
168
  <CommandMenu.Item
169
- onSelect={() => navigate("/agent")}
169
+ onSelect={() => navigate("/settings/agent")}
170
170
  keywords={["agent", "context", "connections", "jobs", "access"]}
171
171
  >
172
172
  <IconHierarchy2 size={16} />
@@ -1,6 +1,5 @@
1
- import { AgentTabsPage } from "@agent-native/core/client/agent-chat";
2
- import { useT } from "@agent-native/core/client/i18n";
3
- import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
1
+ import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
2
+ import { Navigate, useLocation } from "react-router";
4
3
 
5
4
  import messages from "@/i18n/en-US";
6
5
 
@@ -9,8 +8,12 @@ export function meta() {
9
8
  }
10
9
 
11
10
  export default function AgentRoute() {
12
- const t = useT();
13
- useSetPageTitle(t("settings.agentTitle"));
11
+ const location = useLocation();
14
12
 
15
- return <AgentTabsPage appName="Macros" />;
13
+ return (
14
+ <Navigate
15
+ to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
16
+ replace
17
+ />
18
+ );
16
19
  }
@@ -1,6 +1,6 @@
1
1
  [build]
2
2
  ignore = "node ./scripts/netlify-ignore-build.mjs macros"
3
- command = "export DATABASE_URL=${NETLIFY_DATABASE_URL:-$DATABASE_URL} && pnpm install && DATABASE_URL=${NETLIFY_DATABASE_URL_UNPOOLED:-$DATABASE_URL} NITRO_PRESET=netlify pnpm --filter macros build"
3
+ command = "export DATABASE_URL=${NETLIFY_DATABASE_URL:-$DATABASE_URL} && pnpm install && DATABASE_URL=${NETLIFY_DATABASE_URL_UNPOOLED:-$DATABASE_URL} NITRO_PRESET=netlify pnpm --filter macros build && if [ \"${CONTEXT:-}\" = \"production\" ]; then DATABASE_URL=${NETLIFY_DATABASE_URL_UNPOOLED:-$DATABASE_URL} pnpm --filter macros migrate:production; fi"
4
4
  publish = "templates/macros/dist"
5
5
  functions = "templates/macros/.netlify/functions-internal"
6
6
 
@@ -10,6 +10,7 @@
10
10
  "test": "vitest --run --passWithNoTests",
11
11
  "format.fix": "oxfmt --write .",
12
12
  "typecheck": "agent-native typecheck",
13
+ "migrate:production": "tsx scripts/migrate-production.ts",
13
14
  "action": "agent-native action",
14
15
  "script": "agent-native script",
15
16
  "db:push": "drizzle-kit push",
@@ -0,0 +1,24 @@
1
+ import { closeDbExec, withMigrationRuntime } from "@agent-native/core/db";
2
+ import { runFrameworkReleaseMigrations } from "@agent-native/core/server";
3
+
4
+ import { runMacrosMigrations } from "../server/plugins/db.js";
5
+
6
+ /**
7
+ * Release-time schema entrypoint for Macros.
8
+ *
9
+ * This script is the production owner of schema changes. It runs against the
10
+ * direct migration endpoint selected by core, while request functions skip
11
+ * all migration and ensure-table work automatically.
12
+ */
13
+ async function main(): Promise<void> {
14
+ await withMigrationRuntime(async () => {
15
+ await runFrameworkReleaseMigrations(null);
16
+ await runMacrosMigrations(null);
17
+ });
18
+ }
19
+
20
+ try {
21
+ await main();
22
+ } finally {
23
+ await closeDbExec();
24
+ }
@@ -37,7 +37,7 @@ const schemaTables = Object.values(schema).filter(isDrizzleTable);
37
37
  // packages/core/src/db/migrations.ts for the full rationale). Version numbers
38
38
  // alone are not a safe identity across parallel branches that each extend
39
39
  // this list independently.
40
- const runMacrosMigrations = runMigrations(
40
+ export const runMacrosMigrations = runMigrations(
41
41
  [
42
42
  {
43
43
  version: 1,
@@ -13,6 +13,7 @@
13
13
  "app/**/*",
14
14
  "server/**/*",
15
15
  "shared/**/*",
16
+ "scripts/**/*",
16
17
  "actions/**/*",
17
18
  "react-router.config.ts",
18
19
  ".react-router/types/**/*",
@@ -36,8 +36,10 @@ Tier 4 includes **all** of the following — not only editing package source:
36
36
  - Files under `node_modules/@agent-native/*` (core, dispatch, scheduling, …)
37
37
  - `pnpm.overrides`, `overrides`, `resolutions`, or `patchedDependencies` that
38
38
  target any `@agent-native/*` package
39
- - Local package patches or invented "dispatch/core behavior" shims meant to
40
- paper over a version skew or failed upgrade
39
+ - `pnpm patch`, `pnpm patch-commit`, or local package patch artifacts for any
40
+ dependency
41
+ - Invented "dispatch/core behavior" shims meant to paper over a version skew
42
+ or failed upgrade
41
43
 
42
44
  This does not prohibit intentional app-owned UI customization. When public
43
45
  props and composition are insufficient, the `customizing-agent-native` skill
@@ -100,8 +102,10 @@ inline strings in components.
100
102
  - Don't confuse readable package source with app-owned code: use
101
103
  `customizing-agent-native` and `agent-native eject` for supported ownership
102
104
  transfer
105
+ - Don't use `pnpm patch` / `pnpm patch-commit`, commit `patches/` artifacts, or
106
+ add `pnpm.patchedDependencies` to "make the app run" after a version bump
103
107
  - Don't add `pnpm.overrides` / `patchedDependencies` / `resolutions` for
104
- `@agent-native/*` to "make the app run" after a version bump
108
+ `@agent-native/*` to paper over a broken upgrade
105
109
  - Don't invent local dispatch/core behavior overrides when upgrade fails —
106
110
  run `npx @agent-native/core@latest upgrade`, then fix app-level errors only
107
111
  - Don't modify `.agents/skills/` or `AGENTS.md` unless explicitly requested
@@ -15,8 +15,9 @@ metadata:
15
15
 
16
16
  When an older Agent Native app/branch needs to run on current packages, use
17
17
  `agent-native upgrade`. Never "fix" upgrade breakage with
18
- `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patches, or
19
- edits under `node_modules/@agent-native/*` — especially not against
18
+ `pnpm patch`, `pnpm patch-commit`, `pnpm.patchedDependencies`,
19
+ `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patch artifacts,
20
+ or edits under `node_modules/@agent-native/*` — especially not against
20
21
  `@agent-native/core` or `@agent-native/dispatch`.
21
22
 
22
23
  ## Why
@@ -109,6 +110,8 @@ install → refresh scaffold skills → verify, then fix **app** code only.
109
110
 
110
111
  - Don't add `pnpm.overrides`, `overrides`, `resolutions`, or
111
112
  `patchedDependencies` for any `@agent-native/*` package
113
+ - Don't run `pnpm patch` or `pnpm patch-commit`, or commit files under
114
+ `patches/`, for any dependency
112
115
  - Don't edit `node_modules/@agent-native/core` or
113
116
  `node_modules/@agent-native/dispatch`
114
117
  - Don't invent local "dispatch behavior" shims to paper over version skew
@@ -149,6 +149,7 @@ function AccountAvatar({
149
149
  function isStandardLayoutPath(pathname: string): boolean {
150
150
  return (
151
151
  pathname === "/settings" ||
152
+ pathname.startsWith("/settings/") ||
152
153
  pathname === "/agent" ||
153
154
  pathname === "/team" ||
154
155
  pathname === "/draft-queue" ||
@@ -201,7 +202,7 @@ export function AppLayout({ children }: AppLayoutProps) {
201
202
  <AgentSidebar
202
203
  position="right"
203
204
  defaultOpen={false}
204
- agentPageHref="/agent"
205
+ agentPageHref="/settings/agent"
205
206
  emptyStateText={t("agent.emptyState")}
206
207
  suggestions={[
207
208
  t("agent.suggestionSummarize"),
@@ -2042,7 +2043,12 @@ function StandardLayout({ children }: AppLayoutProps) {
2042
2043
 
2043
2044
  const fallbackTitle = (() => {
2044
2045
  if (location.pathname === "/settings") return t("settings.title");
2045
- if (location.pathname === "/agent") return t("settings.agentTitle");
2046
+ if (
2047
+ location.pathname === "/agent" ||
2048
+ location.pathname.startsWith("/settings/agent")
2049
+ ) {
2050
+ return t("settings.agentTitle");
2051
+ }
2046
2052
  if (location.pathname === "/team") return t("mail.pages.team");
2047
2053
  if (location.pathname.startsWith("/draft-queue"))
2048
2054
  return t("mail.views.draftQueue");
@@ -79,7 +79,7 @@ const navCommands = [
79
79
  {
80
80
  labelKey: "settings.openAgentSettings",
81
81
  icon: IconHierarchy2,
82
- route: "/agent",
82
+ route: "/settings/agent",
83
83
  },
84
84
  ];
85
85
 
@@ -1,6 +1,5 @@
1
- import { AgentTabsPage } from "@agent-native/core/client/agent-chat";
2
- import { useT } from "@agent-native/core/client/i18n";
3
- import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
1
+ import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
2
+ import { Navigate, useLocation } from "react-router";
4
3
 
5
4
  import messages from "@/i18n/en-US";
6
5
 
@@ -9,8 +8,12 @@ export function meta() {
9
8
  }
10
9
 
11
10
  export default function AgentRoute() {
12
- const t = useT();
13
- useSetPageTitle(t("settings.agentTitle"));
11
+ const location = useLocation();
14
12
 
15
- return <AgentTabsPage appName="Mail" />;
13
+ return (
14
+ <Navigate
15
+ to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
16
+ replace
17
+ />
18
+ );
16
19
  }
@@ -1,6 +1,6 @@
1
1
  [build]
2
2
  ignore = "node ./scripts/netlify-ignore-build.mjs mail"
3
- command = "export DATABASE_URL=${NETLIFY_DATABASE_URL:-$DATABASE_URL} && pnpm install && DATABASE_URL=${NETLIFY_DATABASE_URL_UNPOOLED:-$DATABASE_URL} NITRO_PRESET=netlify pnpm --filter mail build"
3
+ command = "export DATABASE_URL=${NETLIFY_DATABASE_URL:-$DATABASE_URL} && pnpm install && DATABASE_URL=${NETLIFY_DATABASE_URL_UNPOOLED:-$DATABASE_URL} NITRO_PRESET=netlify pnpm --filter mail build && if [ \"${CONTEXT:-}\" = \"production\" ]; then DATABASE_URL=${NETLIFY_DATABASE_URL_UNPOOLED:-$DATABASE_URL} pnpm --filter mail migrate:production; fi"
4
4
  publish = "templates/mail/dist"
5
5
  functions = "templates/mail/.netlify/functions-internal"
6
6
 
@@ -10,6 +10,7 @@
10
10
  "test": "vitest --run",
11
11
  "format.fix": "oxfmt --write .",
12
12
  "typecheck": "agent-native typecheck",
13
+ "migrate:production": "tsx scripts/migrate-production.ts",
13
14
  "action": "agent-native action",
14
15
  "script": "agent-native script",
15
16
  "db:push": "drizzle-kit push",
@@ -0,0 +1,24 @@
1
+ import { closeDbExec, withMigrationRuntime } from "@agent-native/core/db";
2
+ import { runFrameworkReleaseMigrations } from "@agent-native/core/server";
3
+
4
+ import { runMailMigrations } from "../server/plugins/db.js";
5
+
6
+ /**
7
+ * Release-time schema entrypoint for Mail.
8
+ *
9
+ * This script is the production owner of schema changes. It runs against the
10
+ * direct migration endpoint selected by core, while request functions skip
11
+ * all migration and ensure-table work automatically.
12
+ */
13
+ async function main(): Promise<void> {
14
+ await withMigrationRuntime(async () => {
15
+ await runFrameworkReleaseMigrations(null);
16
+ await runMailMigrations(null);
17
+ });
18
+ }
19
+
20
+ try {
21
+ await main();
22
+ } finally {
23
+ await closeDbExec();
24
+ }
@@ -29,7 +29,7 @@ const schemaTables = Object.values(schema).filter(isDrizzleTable);
29
29
  // packages/core/src/db/migrations.ts for the full rationale). Version numbers
30
30
  // alone are not a safe identity across parallel branches that each extend
31
31
  // this list independently.
32
- const runMailMigrations = runMigrations(
32
+ export const runMailMigrations = runMigrations(
33
33
  [
34
34
  {
35
35
  version: 1,
@@ -13,6 +13,7 @@
13
13
  "app/**/*",
14
14
  "server/**/*",
15
15
  "shared/**/*",
16
+ "scripts/**/*",
16
17
  "vite.config.ts",
17
18
  "react-router.config.ts",
18
19
  ".react-router/types/**/*",
@@ -36,8 +36,10 @@ Tier 4 includes **all** of the following — not only editing package source:
36
36
  - Files under `node_modules/@agent-native/*` (core, dispatch, scheduling, …)
37
37
  - `pnpm.overrides`, `overrides`, `resolutions`, or `patchedDependencies` that
38
38
  target any `@agent-native/*` package
39
- - Local package patches or invented "dispatch/core behavior" shims meant to
40
- paper over a version skew or failed upgrade
39
+ - `pnpm patch`, `pnpm patch-commit`, or local package patch artifacts for any
40
+ dependency
41
+ - Invented "dispatch/core behavior" shims meant to paper over a version skew
42
+ or failed upgrade
41
43
 
42
44
  This does not prohibit intentional app-owned UI customization. When public
43
45
  props and composition are insufficient, the `customizing-agent-native` skill
@@ -100,8 +102,10 @@ inline strings in components.
100
102
  - Don't confuse readable package source with app-owned code: use
101
103
  `customizing-agent-native` and `agent-native eject` for supported ownership
102
104
  transfer
105
+ - Don't use `pnpm patch` / `pnpm patch-commit`, commit `patches/` artifacts, or
106
+ add `pnpm.patchedDependencies` to "make the app run" after a version bump
103
107
  - Don't add `pnpm.overrides` / `patchedDependencies` / `resolutions` for
104
- `@agent-native/*` to "make the app run" after a version bump
108
+ `@agent-native/*` to paper over a broken upgrade
105
109
  - Don't invent local dispatch/core behavior overrides when upgrade fails —
106
110
  run `npx @agent-native/core@latest upgrade`, then fix app-level errors only
107
111
  - Don't modify `.agents/skills/` or `AGENTS.md` unless explicitly requested
@@ -15,8 +15,9 @@ metadata:
15
15
 
16
16
  When an older Agent Native app/branch needs to run on current packages, use
17
17
  `agent-native upgrade`. Never "fix" upgrade breakage with
18
- `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patches, or
19
- edits under `node_modules/@agent-native/*` — especially not against
18
+ `pnpm patch`, `pnpm patch-commit`, `pnpm.patchedDependencies`,
19
+ `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patch artifacts,
20
+ or edits under `node_modules/@agent-native/*` — especially not against
20
21
  `@agent-native/core` or `@agent-native/dispatch`.
21
22
 
22
23
  ## Why
@@ -109,6 +110,8 @@ install → refresh scaffold skills → verify, then fix **app** code only.
109
110
 
110
111
  - Don't add `pnpm.overrides`, `overrides`, `resolutions`, or
111
112
  `patchedDependencies` for any `@agent-native/*` package
113
+ - Don't run `pnpm patch` or `pnpm patch-commit`, or commit files under
114
+ `patches/`, for any dependency
112
115
  - Don't edit `node_modules/@agent-native/core` or
113
116
  `node_modules/@agent-native/dispatch`
114
117
  - Don't invent local "dispatch behavior" shims to paper over version skew
@@ -211,7 +211,7 @@ export function Layout({ children }: LayoutProps) {
211
211
  chatViewTransitionHandoff={chatHomeHandoffPending}
212
212
  storageKey="plans"
213
213
  openOnChatRunning={chatHomeHandoffActive}
214
- agentPageHref="/agent"
214
+ agentPageHref="/settings/agent"
215
215
  emptyStateText={t("agent.emptyState")}
216
216
  suggestions={[
217
217
  t("agent.suggestionShipped"),
@@ -177,7 +177,7 @@ function AppContent() {
177
177
  {t("root.openRecaps")}
178
178
  </CommandMenu.Item>
179
179
  <CommandMenu.Item
180
- onSelect={() => go("/agent")}
180
+ onSelect={() => go("/settings/agent")}
181
181
  keywords={["agent", "context", "connections", "jobs", "access"]}
182
182
  >
183
183
  <IconHierarchy2 size={16} />
@@ -1,6 +1,5 @@
1
- import { AgentTabsPage } from "@agent-native/core/client/agent-chat";
2
- import { useT } from "@agent-native/core/client/i18n";
3
- import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
1
+ import { buildLegacyAgentSettingsRoute } from "@agent-native/core/client/navigation";
2
+ import { Navigate, useLocation } from "react-router";
4
3
 
5
4
  import messages from "@/i18n/en-US";
6
5
 
@@ -9,8 +8,12 @@ export function meta() {
9
8
  }
10
9
 
11
10
  export default function AgentRoute() {
12
- const t = useT();
13
- useSetPageTitle(t("settings.agentTitle"));
11
+ const location = useLocation();
14
12
 
15
- return <AgentTabsPage appName="Plan" />;
13
+ return (
14
+ <Navigate
15
+ to={buildLegacyAgentSettingsRoute(location.hash, location.search)}
16
+ replace
17
+ />
18
+ );
16
19
  }
@@ -1,6 +1,6 @@
1
1
  [build]
2
2
  ignore = "node ./scripts/netlify-ignore-build.mjs plan"
3
- command = "export DATABASE_URL=${NETLIFY_DATABASE_URL:-$DATABASE_URL} && pnpm install && NITRO_PRESET=netlify pnpm --filter plan build"
3
+ command = "export DATABASE_URL=${NETLIFY_DATABASE_URL:-$DATABASE_URL} && pnpm install && NITRO_PRESET=netlify pnpm --filter plan build && if [ \"${CONTEXT:-}\" = \"production\" ]; then pnpm --filter plan migrate:production; fi"
4
4
  publish = "templates/plan/dist"
5
5
  functions = "templates/plan/.netlify/functions-internal"
6
6
 
@@ -9,6 +9,7 @@
9
9
  "build": "agent-native build",
10
10
  "start": "agent-native start",
11
11
  "typecheck": "agent-native typecheck",
12
+ "migrate:production": "tsx scripts/migrate-production.ts",
12
13
  "action": "agent-native action",
13
14
  "script": "agent-native script",
14
15
  "test": "vitest --run"
@@ -0,0 +1,24 @@
1
+ import { closeDbExec, withMigrationRuntime } from "@agent-native/core/db";
2
+ import { runFrameworkReleaseMigrations } from "@agent-native/core/server";
3
+
4
+ import { runPlanMigrations } from "../server/plugins/db.js";
5
+
6
+ /**
7
+ * Release-time schema entrypoint for Plan.
8
+ *
9
+ * This script is the production owner of schema changes. It runs against the
10
+ * direct migration endpoint selected by core, while request functions skip
11
+ * all migration and ensure-table work automatically.
12
+ */
13
+ async function main(): Promise<void> {
14
+ await withMigrationRuntime(async () => {
15
+ await runFrameworkReleaseMigrations(null);
16
+ await runPlanMigrations(null);
17
+ });
18
+ }
19
+
20
+ try {
21
+ await main();
22
+ } finally {
23
+ await closeDbExec();
24
+ }
@@ -37,8 +37,9 @@ export default function planMcpPlugin(nitroApp: any) {
37
37
  {
38
38
  ...loadActionsFromStaticRegistry(actionsRegistry),
39
39
  ...(frameworkTools.isEnabled("automation")
40
- ? createAutomationToolEntries(() =>
41
- requireMcpOwner("manage automations"),
40
+ ? createAutomationToolEntries(
41
+ () => requireMcpOwner("manage automations"),
42
+ "plan",
42
43
  )
43
44
  : {}),
44
45
  },
@@ -30,7 +30,7 @@ const schemaTables = Object.values(schema).filter(isDrizzleTable);
30
30
  // packages/core/src/db/migrations.ts for the full rationale). Version numbers
31
31
  // alone are not a safe identity across parallel branches that each extend
32
32
  // this list independently.
33
- const runPlanMigrations = runMigrations(
33
+ export const runPlanMigrations = runMigrations(
34
34
  [
35
35
  {
36
36
  version: 1,
@@ -15,6 +15,7 @@
15
15
  "app/**/*",
16
16
  "server/**/*",
17
17
  "shared/**/*",
18
+ "scripts/**/*",
18
19
  "vite.config.ts",
19
20
  "react-router.config.ts",
20
21
  ".react-router/types/**/*",
@@ -36,8 +36,10 @@ Tier 4 includes **all** of the following — not only editing package source:
36
36
  - Files under `node_modules/@agent-native/*` (core, dispatch, scheduling, …)
37
37
  - `pnpm.overrides`, `overrides`, `resolutions`, or `patchedDependencies` that
38
38
  target any `@agent-native/*` package
39
- - Local package patches or invented "dispatch/core behavior" shims meant to
40
- paper over a version skew or failed upgrade
39
+ - `pnpm patch`, `pnpm patch-commit`, or local package patch artifacts for any
40
+ dependency
41
+ - Invented "dispatch/core behavior" shims meant to paper over a version skew
42
+ or failed upgrade
41
43
 
42
44
  This does not prohibit intentional app-owned UI customization. When public
43
45
  props and composition are insufficient, the `customizing-agent-native` skill
@@ -100,8 +102,10 @@ inline strings in components.
100
102
  - Don't confuse readable package source with app-owned code: use
101
103
  `customizing-agent-native` and `agent-native eject` for supported ownership
102
104
  transfer
105
+ - Don't use `pnpm patch` / `pnpm patch-commit`, commit `patches/` artifacts, or
106
+ add `pnpm.patchedDependencies` to "make the app run" after a version bump
103
107
  - Don't add `pnpm.overrides` / `patchedDependencies` / `resolutions` for
104
- `@agent-native/*` to "make the app run" after a version bump
108
+ `@agent-native/*` to paper over a broken upgrade
105
109
  - Don't invent local dispatch/core behavior overrides when upgrade fails —
106
110
  run `npx @agent-native/core@latest upgrade`, then fix app-level errors only
107
111
  - Don't modify `.agents/skills/` or `AGENTS.md` unless explicitly requested
@@ -15,8 +15,9 @@ metadata:
15
15
 
16
16
  When an older Agent Native app/branch needs to run on current packages, use
17
17
  `agent-native upgrade`. Never "fix" upgrade breakage with
18
- `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patches, or
19
- edits under `node_modules/@agent-native/*` — especially not against
18
+ `pnpm patch`, `pnpm patch-commit`, `pnpm.patchedDependencies`,
19
+ `pnpm.overrides`, `patchedDependencies`, `resolutions`, local patch artifacts,
20
+ or edits under `node_modules/@agent-native/*` — especially not against
20
21
  `@agent-native/core` or `@agent-native/dispatch`.
21
22
 
22
23
  ## Why
@@ -109,6 +110,8 @@ install → refresh scaffold skills → verify, then fix **app** code only.
109
110
 
110
111
  - Don't add `pnpm.overrides`, `overrides`, `resolutions`, or
111
112
  `patchedDependencies` for any `@agent-native/*` package
113
+ - Don't run `pnpm patch` or `pnpm patch-commit`, or commit files under
114
+ `patches/`, for any dependency
112
115
  - Don't edit `node_modules/@agent-native/core` or
113
116
  `node_modules/@agent-native/dispatch`
114
117
  - Don't invent local "dispatch behavior" shims to paper over version skew