Site API v1 is gone; v2 publishes the CMS model, so the app can now set every
post field. The v1 client and mock are removed (owner decision).
- Client generated from the live v2 spec, filtered to the operations the app
uses (make update-spec filters it; 93 KB instead of 2 MB); app-owned models
mapped from the v2 records; untyped processes (/me, uploads, link preview,
versions) called through the same middlewares.
- v2 has no idempotency keys or ETags: a retried create adopts the post an
earlier attempt made, slugs are made unique per blog, and edits and deletes
compare modifyDate first (412 conflict).
- Posts carry title, name, short name, slug, description, excerpt, read time,
SEO title/description/keywords, featured flag and image, author and
schedule; blank fields are filled by deterministic rules.
- Composer: Details & SEO section with on-device suggestions (Foundation
Models, never Private Cloud Compute; rules as fallback), Draft / Publish now /
Schedule, Featured, author picker, post image choice, nearby place labels.
The Shortcuts intent and Share Extension fill details too.
- Post detail shows every stored field.
- In-process v2 fake for Mock mode and tests; 305 unit tests at 100% line
coverage of KoF22Kit; new UI test for suggestions and drafts.
BREAKING CHANGE: only Site API v2 is supported.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>