# Releases

---

## Overview

Find, track, and deploy any release by what it contains, not by version numbers.

A release represents a complete snapshot of what was built and shipped in a single CI run. Unlike traditional version numbers or GitHub releases, a Fly release connects everything: the code changes (PRs and commits), the artifacts produced (packages and images), who triggered it, and where it's currently running.

This means you can find any release by *what it contains* -- "the release where I fixed the login bug" -- rather than memorizing version numbers or run IDs. Every release gets an AI-generated summary that describes what changed in plain language.

Releases are automatically created every time a configured workflow pushes an artifact to Fly Registry.

---

## How It Works

### What's in a Release

| Component | Description |
|-----------|-------------|
| **Release Title** | A short, descriptive name with an icon signaling the type of change (e.g., "CVE-2026-1234 Base Image Fix"). Auto-generated by Fly. Editable. |
| **Release Description** | A one-line summary shown as a hover preview. Auto-generated. Editable. |
| **Release Summary** | A full structured breakdown: overview, changes, and notes about breaking changes or migration steps. |
| **Run Number** | The workflow run number (e.g., `#141`). |
| **Triggered By** | The GitHub user who ran the workflow. |
| **Artifacts** | All packages and images produced, with types and versions. |
| **Commits** | All commits included, with links to GitHub. |
| **Pull Requests** | PRs merged in this release, with links to GitHub. |
| **Workflow** | The GitHub Actions workflow that produced this release, with a link to the run. |
| **Generation Time** | When the release was created. |
| **Environment Badges** | Environments this release is currently running in. |

### How Releases Are Generated

A release is automatically created when:
1. A GitHub Actions workflow runs
2. The workflow has the Fly action configured
3. The workflow successfully uploads at least one artifact to Fly Registry

### Semantic Search

Releases are searchable using natural language. Fly searches through titles, descriptions, summaries, commits, PRs, and metadata. Edited titles and descriptions are included in search results.

---

## From Your Coding Agent

Your coding agent can find, explore, and deploy releases using natural language. Fly uses semantic search to match your intent -- you don't need to remember version numbers or run IDs.

### Find Releases

*"Find the release where I fixed the login bug"*

*"Show me Jon's last deployment"*

*"Releases from last week with API changes"*

Add "Fly release" to your query to help focus the search.

### Deploy Releases

*"Deploy the login fix to staging"*

*"Deploy payment-service v2.3.1 to production"*

Fly uses semantic release data to find what you mean and handles the deployment. [Learn more →](../runtime-environments/)

---

## In Fly Web

Fly Web provides a rich release explorer with filtering, sorting, semantic search, and inline editing. Browse releases per repository, filter by workflow or author, and drill into any release for full details.

### Release List

Navigate to **Git Repositories** → select a repository → **Releases** tab.

Each release shows:

| Field | Description |
|-------|-------------|
| **Release Title** | Name with icon and run number |
| **Release Description** | Hover preview of what changed |
| **Triggered By** | GitHub user avatar and username |
| **Generation Time** | Relative time (e.g., "2 hours ago") |
| **Environment Badges** | Which environments are running this release |
| **Status** | Indicator if the release was incomplete |

### Workflow Selector

If a repository has multiple configured workflows, a selector at the top lets you focus on one workflow or view all together. The URL updates for bookmarking.

### Filtering and Search

| Filter | Description |
|--------|-------------|
| **Workflow** | Releases from a specific workflow or all |
| **Release Author** | Filter by who triggered the release |
| **Running on Environment** | Releases deployed to a specific environment |
| **Date Range** | Last 24 hours, 7 days, or 14 days |

**Chat Search** -- Type a natural language question directly in the release list (e.g., *"Which releases contain changes to the auth module?"*) and Fly surfaces the relevant releases.

### Editing

Click on a release's **Title** or **Description** to edit. Changes are saved immediately and reflected in semantic search.

---

## From Fly Chat and Slack

Use natural language from **Fly Chat** (in Fly Web) or `/fly` in Slack:

- *"Show me the latest release from payment-service"*
- *"Find the release where I fixed the login bug"*
- *"What's running in production?"*

---

## Next Steps

- [Runtime Environments →](../runtime-environments/) - Deploy releases and track what's running
- [Workflows →](../workflows/) - CI/CD configuration that generates releases
- [Automate Releases →](../../developer-workflow/ci-cd/) - The automation story
