# Changelog

The change history for the SDK and its plugins: what landed in each release, what broke compatibility and what was removed.

## Anatomy of an entry

Every entry has three parts:

- **Version + date** — the release number and when it shipped (or, if still in progress, the target).
- **Changes by package** — grouped by package (`@fayz-ai/cli`, `@fayz-ai/db`, plugins…), because each package versions on its own.
- **Compatibility notes** — whenever behavior changes or a migration step is required.

While the SDK is pre-1.0, `0.x` versions can introduce behavior changes in minor releases — read the notes before upgrading. See [Versioning](/en/docs/reference/versions-and-channels) for the full policy.

---

## CLI 0.3.0 — database workflow {% badge status="beta" %}

**In progress** — documented here so you can follow along; not published yet.

This batch focuses on taking an app from mock to a real Supabase along a predictable, auditable path.

**`@fayz-ai/cli`**

- New **`fayz db apply`** command: builds an ordered migration plan and applies it through the Supabase management API.
  - `--dry-run` shows the entire plan **with no network calls** — good for reviewing before touching the database.
  - Explicit environment contract: requires `SUPABASE_PROJECT_REF` and `SUPABASE_PAT` (alias `SUPABASE_ACCESS_TOKEN`), never assumes a default.
  - Mandatory confirmation: asks for `y` in a TTY and **refuses** in a non-interactive shell unless `--yes` is passed.
- A more complete `fayz create` scaffold: it now generates **`.env.example`** (with runtime and tooling keys commented) and **`AGENTS.md`** (a vendor-neutral agent guide, with `CLAUDE.md` pointing at it).

**`@fayz-ai/db`**

- Now bundles the **spine SQL** (the shared base schema) inside `migrations/`, which `fayz db apply` consumes as the first step of the plan.
  - Up to 0.1.2, the spine step comes out empty and the dry run warns `installed @fayz-ai/db ships no migrations/`. From **0.1.3** onward that step is populated.

**Compatibility.** Existing apps keep running on `backend.provider: "mock"` with no changes. The real-database path is opt-in: only apps that fill in `.env.local` and run `fayz db apply` are affected.

{% callout type="warn" %}
The versions and scope above describe work **in progress** and may change before publication. Once the release ships, this entry is updated with the real date.
{% /callout %}
