---
title: "Publishing changes"
description: "Review AI changes as pull requests, merge what you approve, and revoke what you don't."
url: https://evonx.ai/docs/evolve/publishing-changes
locale: en
updated: 2026-09-04
---

# Publishing changes

Review AI changes as pull requests, merge what you approve, and revoke what you don't.

Everything an Evolution Thread builds reaches your repositories one way: as a pull
request you approve. This page covers the review step — what to check, how to
merge, and how to back out.

## From thread to pull request

When execution finishes, the thread opens a pull request per affected repository
(a change spanning the web app and the API produces one PR in each). The thread
shows a summary of what changed and why; the PR carries the actual code.

## Review and merge

1. **Verify behavior in a preview.** Run the change in the
   [Preview Hub](/docs/preview-and-debug/preview-hub) and click through the flows
   the thread touched. This is the highest-value check, and it needs no code
   reading.

2. **Skim the summary** — does the list of changes match what you asked, nothing
   more? Unrequested extras are worth questioning before they land.

3. **Read the code if you want to.** The PR is a normal pull request; developers
   on your team can review it in full, on Evonx or
   [on GitHub](/docs/integrations/github) for imported projects.

4. **Merge** — the change lands in the repository and becomes part of the next
   [publish](/docs/launch/publish-to-evonx). Or **reject with feedback**: reply in
   the thread with what's wrong, and it revises the same PR.

## Backing out

- **Before merging**, a pull request can simply be revoked — the thread's work is
  discarded without ever touching your default branch.
- **After merging**, your published app is still protected by
  [versions and rollback](/docs/launch/publish-to-evonx): a bad merge that reached
  production is one rollback away from gone, and you can ask a new thread to
  revert the change in code.

> **Note**
> Merged ≠ live. Merging updates the repository; users see the change when you next
> publish. That gap is deliberate — batch several merges into one release when it
> suits you.

## Related

- [Automated testing & action nodes](/docs/evolve/automated-testing) — why PRs
  arrive already passing checks.
- [Evolve your app with AI](/docs/get-started/evolve-your-app) — the full loop this
  step concludes.
