# Updates

Publishing an app isn't a one-time event. As you improve and add functionality to your app, you can ship new versions with release notes so people know what changed.

## Publish a New Version

To publish updates to your app, repeat the same steps as the initial publish. The view and button update to ** Publish Update**. For details on listing fields, see [Publish Apps](/share/publish-apps).

Each update creates a new **version** of your app, on top of the ones before it. Your listing always shows the latest, while the earlier versions stay on record so people can see how the app has evolved.

## Write What's New

An update has one field the first publish doesn't: **What's new?**. This is your changelog, a short note about what changed in this version. It's what installers see when they update, so keep it readable:

```
- Added a dark theme
- Fixed a crash when importing large files
- Faster startup
```

> [!TIP]
> Not sure what to write? The **What's new?** field has a ** Generate** button that drafts a changelog from your changes that you can edit before you publish.

## How Installed Apps Update

People who installed your app don't have to go looking for updates. Glaze tracks the version each person has, and when you publish a newer one it surfaces in two places:

- ** Installed Apps tab**: Apps with a new version collect in an **Updates Available** group in the sidebar, and a dot on the tab flags that updates are waiting.
- **App's Store detail page**: The install button changes from **Open** to **Update**.

From either spot, choosing **Update** brings the app up to the latest version in place, with no reinstall. When it finishes, Glaze confirms the update and offers **View Changelog** so users can read the "What's new?" changelog.

This is how an update reaches everyone who has your app, whether it's in the Public Store, a team store, or shared as an unlisted link.

## Update Your Code with `/upgrade`

There's a second, different kind of update: keeping the **code** of an app you're building current with the latest Glaze APIs. In **Agent Chat**, type `/upgrade` and the agent migrates your app to the latest Glaze APIs. Running `/upgrade` is **free** and doesn't use any credits.

> [!NOTE]
> These are two separate ideas. **Update** in the Store ships your published changes to other people. **`/upgrade`** in **Agent Chat** brings your own app's code up to date with Glaze itself. You don't run `/upgrade` to publish an app update.

## Recover a Stuck Review

Publishing runs a review in the background, and an app can have only one review in progress at a time. If that review seems stuck, or you started a publish you'd rather not finish, you can cancel it:

1. **Open the in-progress publish**: Return to the app's publish view while the review is still running.
2. **Cancel the review**: Click **Cancel Review**. A **Cancel Review Process** dialog confirms; click **Cancel Review** again to stop the run and free the app so you can publish again.
3. **Pick up from your draft**: Your listing details are saved as a draft, so the publish view reopens with everything filled in. Adjust what you need and click ** Publish Update** (or **Submit for Review** on a first publish) whenever you're ready.

> [!TIP]
> Cancelling never throws away your listing. As the dialog notes, your submission details are saved as a draft so you can resubmit later.

## View Version History

On an app's detail page in the Store, the **What's New** section shows the release notes for the latest version, and a **Version History** link opens the full list. The detail page also shows a **Published** date while an app has only one version, or an **Updated** date once there's been more than one, so you can tell at a glance how actively an app is maintained.
