# v2.2.0 — 2026-07-02

## Summary

The declarative-authoring release: the Simplicity Contract is frozen, its first pieces ship (the `RGXAddon` global entry point, the machine-checkable schema, the in-tree `rgx-mcp` developer tool), and RGXAuras lands as the first Tier 3 runtime primitive.

## New

- **RGXAuras** — taint-safe aura scanning and watching. `HasPlayerAura`/`GetPlayerAura` fast path via `C_UnitAuras.GetPlayerAuraBySpellID`; `HasAura`/`GetAura`/`IterateAuras` for any unit; `WatchUnit` incremental `UNIT_AURA` cache with `OnApplied`/`OnRemoved`/`OnUpdated` callbacks (player watched by default). Built around Midnight's secret-aura restrictions: every potentially-secret field comparison stays behind an internal pcall boundary, so restricted units yield nil/false instead of taint.
- **`RGXAddon` global entry point** — line 1 of a consumer addon is the addon: `RGXAddon "MyAddon" { ... }` (curried form supported). The `local RGX = assert(...)` form is now the documented escape hatch, not the front door.
- **Declarative API contract** — `schemas/rgx-addon.schema.json` (keys annotated `x-rgx-ships: today|tier4`; trigger vocabulary and control grammar encoded) plus `docs/DECLARATIVE-API.md`. Excluded from the packaged zip.
- **`rgx-mcp` in-tree** at `tools/rgx-mcp/` — read-only MCP server: `rgx_validate_addon`, `rgx_audit_lua`, `rgx_generate_addon`, `rgx_get_contract`. Reads the schema live from the checkout; excluded from the packaged zip; registered in `.mcp.json`.
- `RGXSharedMedia` fires `RGX_SHAREDMEDIA_UPDATED` after every scan; new `SM:ExcludeFolder(name)` API (framework folder excluded by default).

## Fixed

- CI: Discord release notifications failed silently — `curl` without `--fail` treated webhook 4xx rejections as success. The step now guards an empty secret, prints the HTTP status, and fails loudly with the response body. Avatar URL corrected to an asset that exists.
- Removed dead `KittyGetSoundPacks`/`KittyRegisterSoundPack` scan from `RGXSharedMedia` (fictional API).
- `RGXDelves`/`RGXHonor` deferred checks use `RGX:After` (framework "no raw C_Timer" rule).
- Packaging: added `LICENSE.txt` (MIT); `.pkgmeta` excludes agent/tool files and uses the valid `manual-changelog` key.
- Repaired double-encoded UTF-8 across 11 documentation files.

## Docs

- Entry docs (README, SUPER-SIMPLE, Home, description.html) lead with the declarative front door; `docs/USAGE-BPU.md` deleted in favor of the Tier 2 work item it described; API reference gained the previously undocumented Database & Profiles, unit-event, Safe-widget, and utility surfaces.

## Upgrade Notes

No breaking changes. Everything is additive per the Simplicity Contract. Consumers can start using `RGXAddon`, `RGXAuras`, and `RGX_SHAREDMEDIA_UPDATED` immediately.
