# Apilyn public changelog

This changelog summarizes customer-visible v1 readiness. Detailed deprecation
rules live in `docs/api/CHANGELOG_POLICY.md`.

## 2026-08-06 — M2 API contract freeze / DX

### Added

- Public error code catalog: `docs/public/ERROR_CODES.md` (source:
  `apilyn.api.error_codes.PUBLIC_ERROR_CODES`).
- Developer recipes: `docs/api/RECIPES.md`, `docs/api/WEBHOOKS.md`.
- Offline SDK samples under `sdk/samples/` (Python + TypeScript) for async jobs,
  sync tools, and webhook signature verification.
- Stronger OpenAPI breaking-change heuristics: `operationId`, security schemes,
  global security, and basic type changes (`make openapi-diff`).

### Changed

- HTTP boundaries preserve domain `error.code` values instead of collapsing many
  failures to status-mapped `http_error` / `unauthorized` / `forbidden`.
  Notable clarifications for clients that inspect `error.code`:
  - `idempotency_conflict` on job create conflicts (409)
  - `missing_bearer` / `invalid_token` / `invalid_api_key` / `api_key_revoked`
  - `membership_required` / `permission_denied` / `org_mismatch`
  - resource codes such as `job_not_found`, `membership_not_found`
- Error envelope `details` from structured HTTPException payloads are forwarded
  to clients.

### Deprecated

- No `/v1` fields or endpoints deprecated in this milestone.

## 2026-07-24 — v1 launch-readiness evidence

### Added

- Public OpenAPI/SDK contract for upload, jobs, webhooks, usage, billing
  overview and document pipeline metadata.
- Async job pipelines for PDF operations, OCR, validation, accessibility,
  extraction, parsing, embeddings and PSEO/B2C tool flows.
- Dashboard and B2C applications that consume the generated TypeScript SDK.
- Internal admin/support console with audited support actions and DLQ requeue
  evidence.
- P34 E2E evidence suite:
  - sandbox upload/job/poll/webhook/download/usage;
  - live-simulated usage/credit/billing provider fake;
  - priority isolation demo;
  - worker crash/redelivery usage idempotency drill.

### Security and compliance evidence

- Threat model, data inventory, license register, secret rotation and incident
  runbooks.
- Supply-chain gates for npm audit high, SAST/SCA/SBOM/image scan in CI.
- Known limitations and external validation list for AGPL/legal, pentest,
  managed restore, MinIO/S3, ClamAV, pgvector, Terraform, Helm and Docker.

### Changed

- P34 sets the implementation program to final handoff when all local gates pass
  and records unavailable infrastructure as external validation instead of fake
  success.

### Deprecated

- No `/v1` public API fields or endpoints are deprecated at v1 launch.
