# Apilyn public launch status

Status: **M9 post-GA ops pack** closes the launch track (M1–M9). Default
path remains **KEEP_CAPS** until allowlist LIFT_ALL is signed; expansion only
via [`POST_GA_EXPANSION_GATE.md`](../implementation/POST_GA_EXPANSION_GATE.md).

Freeze marker: publish the live status URL via
[`STATUS_SLA_FREEZE.md`](../implementation/STATUS_SLA_FREEZE.md) at cutover.
Material public copy changes require signed
[`GA_LAUNCH_CHECKLIST.md`](../implementation/GA_LAUNCH_CHECKLIST.md) +
[`GA_CUTOVER_RUNBOOK.md`](../operations/GA_CUTOVER_RUNBOOK.md).

See [`M9_POST_GA_OPS_READINESS.md`](../implementation/M9_POST_GA_OPS_READINESS.md),
[`M8_GA_CUTOVER_READINESS.md`](../implementation/M8_GA_CUTOVER_READINESS.md),
[`M7_SOAK_GA_READINESS.md`](../implementation/M7_SOAK_GA_READINESS.md).

## Soft-launch posture

- Single-region allowlist (default `eu`)
- Plans: `free` + `starter` only when `SOFT_LAUNCH_ENABLED=true`
- Live API keys disabled by default during soft launch
- Wave F media-core: **DEFER**
- Ghostscript / advanced PAdES: remain gated (M5 NO-GO)

## Available v1 surfaces

- Public `/v1` API contract generated from FastAPI/OpenAPI.
- Generated TypeScript and Python SDKs under `sdk/generated`.
- Async job model for upload, job create, polling, output download and usage
  rollups.
- Webhook endpoint management, signed delivery, retry and replay.
- Dashboard, B2C and admin applications built as separate workspaces; dashboard
  and B2C use the generated SDK/API surface rather than backend repositories.
- Internal support/admin surface is separate from customer dashboard auth.

## P34 executable evidence

Run:

```bash
cd backend
uv run pytest tests/test_p34_launch_readiness.py -q
```

The suite demonstrates:

1. sandbox key creation, upload, merge/OCR/validation jobs, polling, signed
   webhook delivery, output download and usage/billing reconciliation with fake
   backends;
2. live-simulated quota, usage, credit ledger and fake provider aggregation;
3. priority isolation between cheap merge load and OCR bursts;
4. worker crash/redelivery behavior without duplicate usage.

## Current caveats

See `docs/implementation/KNOWN_LIMITATIONS_ACCURACY_BASELINES.md` for the full
list. Notable caveats before external GA:

- Soft-launch environment must apply `values-soft-launch.yaml` and complete M5
  yellow human gates (restore/erase, paging, pentest, Stripe sandbox, AGPL form).
- Redis, MinIO/S3, ClamAV, pgvector, Docker, Terraform, Helm, Stripe test-mode,
  legal review, external pentest and managed restore/erasure drills require
  environment-specific validation.
- Accessibility and AI reports are reviewable evidence with provenance and
  confidence; Apilyn does not claim legal accessibility compliance.
