4.6 KiB
name, description, scope, metadata
| name | description | scope | metadata | ||
|---|---|---|---|---|---|
| upgrade-agent-native | Bring an older Agent Native app or workspace current. Use when updating @agent-native/core, fixing a broken upgrade, or when tempted to patch or override core/dispatch packages to make an old branch run. | dev |
|
Upgrade Agent Native
Rule
When an older Agent Native app/branch needs to run on current packages, use
agent-native upgrade. Never "fix" upgrade breakage with
pnpm.overrides, patchedDependencies, resolutions, local patches, or
edits under node_modules/@agent-native/* — especially not against
@agent-native/core or @agent-native/dispatch.
Why
Agents often respond to a failed core bump by inventing framework patches and dispatch behavior overrides. That hides the real app-level break, drifts from upstream, and makes the next upgrade worse. The supported path is bump → install → refresh scaffold skills → verify, then fix app code only.
How
-
Preview migration codemods first
npx @agent-native/core@latest upgrade --codemodsCodemods are preview-by-default: read the diff before applying it. Do not manually edit imports before running this command; the migration manifest is the source of truth for renamed specifiers and symbols.
-
Apply the reviewed codemods, then run the upgrade
npx @agent-native/core@latest upgrade --codemods --yes npx @agent-native/core@latest upgradeOr from an already-installed CLI:
pnpm exec agent-native upgrade/agent-native upgrade.What it does:
- Blocks (unless
--force) when@agent-native/*overrides/patches exist - Rewrites non-local
@agent-native/*dependency pins tolatest - Runs the package manager install
- Runs
skills update scaffold --project - Runs
typecheckwhen the project has that script
- Blocks (unless
-
Pull upstream template changes (optional, separate from the bump)
agent-native upgrademoves package versions. It never touches files that were copied out of a template at scaffold time, so template fixes and improvements do not arrive with a bump.agent-native template status # recorded ref vs latest, drift counts agent-native template diff # what upstream changed, read-only agent-native template sync # 3-way merge it into the appsyncdefaults to the ref matching the installed@agent-native/core, so run it afterupgrade. It merges per file against a pristine baseline stored inrefs/agent-native/template-baseline/<app-path>; files upstream did not touch are left alone, and real collisions get conflict markers. After resolving markers, runagent-native template accept— the baseline deliberately does not advance past an unresolved merge.Apps scaffolded before provenance existed have no baseline. Create one with
agent-native template baselinebefore the first sync. -
If upgrade or typecheck fails
- Read the concrete error
- Fix app source, actions, config, or env — not framework packages
- Re-run
agent-native upgradeorpnpm typecheck - Stop and ask the user if you cannot fix the app-level error
Intentional app-level UI customization is a separate workflow. Read
customizing-agent-nativewhen the product needs to own a selectively copied component; do not use that path to reproduce framework runtime behavior or hide version skew. -
Dry-run / partial runs
agent-native upgrade --dry-run agent-native upgrade --skip-verify agent-native upgrade --skip-install # package.json bumps only agent-native doctor --only migration-manifestmigration-manifesthas no opt-out. Run it in CI before upgrading to find imports that will break, then usenpx @agent-native/core@latest upgrade --codemodsto preview the supported rewrite.
Don't
- Don't add
pnpm.overrides,overrides,resolutions, orpatchedDependenciesfor any@agent-native/*package - Don't edit
node_modules/@agent-native/coreornode_modules/@agent-native/dispatch - Don't invent local "dispatch behavior" shims to paper over version skew
- Don't keep iterating with more framework patches after a failed install
- Don't skip
skills update scaffold --projectafter a core bump (the upgrade command does this for you)
Related Skills
- self-modifying-code — Tier 4: framework packages are off limits
- agent-native-docs — version-matched docs after the bump
- customizing-agent-native — intentional app-owned UI copies, not upgrade patches
- portability — keep app code provider-agnostic across upgrades