> ## Documentation Index
> Fetch the complete documentation index at: https://docs.relnx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Feature types

> What Bug Fix, Security Fix, Breaking Change, Deprecation and other types mean.

Every feature Relnx extracts from a release is classified into one of the
types below. Filters, counts, and Slack/email summaries all use these types.

| Type                  | What it is                                                                                  | Signal     |
| --------------------- | ------------------------------------------------------------------------------------------- | ---------- |
| **Feature**           | New, user-visible functionality.                                                            | High       |
| **Enhancement**       | Improvement to existing behaviour (perf, ergonomics, refactor).                             | Medium     |
| **Bug Fix**           | A defect was repaired.                                                                      | Low–Medium |
| **Security Fix**      | A vulnerability was patched. **Read it.**                                                   | Critical   |
| **Breaking Change**   | API, config, or behaviour that won't be backwards-compatible. **Read it before upgrading.** | Critical   |
| **Deprecation**       | Marked for removal in a future release; still works for now.                                | High       |
| **Maintenance**       | Chore — build scripts, formatting, dev tooling. Hidden by default.                          | Noise      |
| **Dependency Update** | Bumping a transitive dep. Hidden by default.                                                | Noise      |

## Where types come from

* **Conventional commits**: `feat:` → Feature, `fix:` → Bug Fix, etc.
* **Section headers in release notes**: a feature under `### Security` is a
  Security Fix regardless of its commit prefix.
* **Keyword detection** when conventional commits are absent: words like
  *breaking*, *deprecated*, *vulnerability*, *CVE*.
* **AI classification** (for followed tools): the LLM refines the type when
  the heuristics are ambiguous.

## Hidden vs. shown by default

`Maintenance` and `Dependency Update` are excluded from default views to keep
your inbox and dashboard signal-heavy. To include them:

* **Web UI**: tick *"Include maintenance changes"* on any feature list.
* **API**: pass `include_maintenance=true` on `GET /api/v1/features`.

## In email/Slack summaries

The "what changed" line in notifications shows counts of the **high-signal**
types only:

```
3 notable changes · ⚠️ 1 breaking · 🔒 2 security fixes
```

So if a release ships 47 dependency bumps and 1 security fix, your summary
shows "1 security fix" — not "48 notable changes".

## Related

* [Compare two versions](../how-to/compare-versions) — surfaces type
  counts side-by-side
* [Set up email notifications](../how-to/set-up-email-notifications)
