# Agent upgrades

URL: /products/agent/upgrades · Id: `capability:agent-upgrades`

> Agent upgrades move a Customer’s minted Agent to a new Version after its Tenant’s own cases pass on that Version.

Agent upgrades move a [Customer](/business/nouns/customer)’s minted [Agent](/business/nouns/agent) to a new [Version](/business/nouns/version) after its [Tenant](/business/nouns/tenant)’s own cases pass on that Version.

## Contract
Status `planned`. A minted agent runs the Version its Customer bought. An upgrade replays every case recorded in that Customer's Tenant on a target Version, and moves the agent only when each case passes.

| Proposed | Holds |
| --- | --- |
| `Agent.upgrade` | The agent and the target Version; refuses while any of the Tenant's cases fails there |
| `Agent.upgraded` | The [Event](/business/nouns/event), with the cases replayed and their verdicts |

A failing case leaves the agent on its Version and shows the Customer which case failed. A Customer may hold its agent on a Version until it moves by choice.

## Verbs
None.

## Interfaces
None.

## Example
Leaseline ships a Version that writes shorter renewal notices. Riverside Property's 40 recorded cases replay on it, and one fails: a notice for a building with a rent freeze drops the freeze line. The agent stays put, and Leaseline adds the case before the fix.