# Release notes (plain-language)

This page is the **story** of what shipped—not a commit list. For every line item and hash, see the package changelogs and GitHub releases:

- [`accrue/CHANGELOG.md`](https://github.com/szTheory/accrue/blob/main/accrue/CHANGELOG.md) — machine-precise history for the core library
- [`accrue_admin/CHANGELOG.md`](https://github.com/szTheory/accrue/blob/main/accrue_admin/CHANGELOG.md) — same for the admin UI package
- [GitHub releases](https://github.com/szTheory/accrue/releases) — tags and generated notes (more technical)

`accrue` and `accrue_admin` live in one repo and are usually bumped together so your host app never depends on mismatched versions. `accrue_portal` ships in the same version family; for now, its package-specific history is easiest to track through the package changelog and README.

---

## accrue

### 1.1.2

**Patch release for linked release-contract alignment and CI stability.**

`1.1.2` is a small follow-up to the `1.1.1` linked publish line. It keeps the same public billing surface, then tightens the release contract around it: package docs, release notes, and CI now agree on the same three-package `accrue` / `accrue_admin` / `accrue_portal` version family.

### 1.1.1

**Linked-release recovery and public release-truth cleanup.**

`1.1.1` keeps the active-subscription-change and three-package release story from `1.1.0`, then tightens the public release contract after the first linked publish attempt. The shipped line, package docs, and recovery workflow now describe the same `accrue` / `accrue_admin` / `accrue_portal` version family more clearly.

### 1.1.0

**Official subscription-change flows, clearer release truth, same-version three-package publishing.**

This release makes **active subscription changes** feel first-party instead of implied. `swap_plan/3` and `preview_upcoming_invoice/2` are now part of the explicit public story, with provider-honest boundaries across Stripe, Fake, and the bounded Braintree path.

The operator and self-serve surfaces moved with the same contract: admin and portal flows now describe the same preview-before-commit story as the core library. The release process was also tightened so `accrue`, `accrue_admin`, and `accrue_portal` publish together with one clearer public version line, changelog, and install story.

### 1.0.0

**Stable public baseline for the core billing surface.**

`1.0.0` is the point where Accrue stopped reading like a promising pre-1.0 library and started reading like a deliberate public contract. The core checkout, billing portal, webhook, invoice, admin, docs, and proof surfaces were locked into a stable release line with clearer upgrade and maintenance expectations.

### 0.2.0

**Stripe Tax–ready billing, calmer installs, stronger CI trust.**

You can turn on **automatic tax** for subscriptions and checkout in a first-class way, with billing state and observability columns to match. The **Fake** processor understands the same shapes, so tests stay deterministic.

Install and boot got **clearer diagnostics**: preflight checks, webhook route awareness, and migration inspection errors surface as ordinary setup hints instead of mystery crashes. Docs and the **checked-in host demo** stay aligned so “what CI proves” and “what you run locally” mean the same thing.

Under the hood: Connect, webhooks, telemetry, and config refinements; release gates and package-doc checks got stricter so regressions are caught before they reach Hex.

### 0.1.2

Patch release focused on **HexDocs** and README polish so published docs match what you see on GitHub.

### 0.1.1

Early **CI and release pipeline** stabilization so public automation and docs publishing behave predictably.

---

## accrue_admin

The admin package is the **LiveView dashboard** that mounts into your Phoenix router. It tracks `accrue` closely—install the same version family for both.

### 1.1.2

Matches **accrue 1.1.2**: the admin package stays on the same linked three-package release line, with public release notes and CI checks updated so the published version story stays consistent across the core, admin, and portal packages.

### 1.1.1

Matches **accrue 1.1.1**: the admin package stays on the linked three-package release line and picks up the same release-truth and recovery-path cleanup as the core package.

### 1.1.0

Matches **accrue 1.1.0**: the admin UI now documents and exercises the same active-subscription-change story as the core library, while staying aligned with the linked three-package publish flow.

### 1.0.0

Matches **accrue 1.0.0**: the admin package shipped as part of the stable public baseline, with the mounted operator dashboard and docs treated as a first-class part of the release contract.

### 0.2.0

Matches **accrue 0.2.0**: same tax and billing surface assumptions, asset and docs drift fixes alongside the core release.

### 0.1.x

Initial public releases with the admin UI, asset pipeline, and docs wired for the same Stripe-backed flows as the core library.

---

## How we version

- **Patch** — safe fixes, docs, and internal quality.
- **Minor** (pre-1.0) — new capabilities you can adopt incrementally; read the changelog before upgrading production.

When in doubt, read **[Upgrade](upgrade.md)** and run your usual test and staging passes.
