# 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.