CHANGELOG

What we shipped.

Weekly-ish. Tagged by type. Follow @openphn for the real-time version.

Apr 23, 2026compliance-v1.0.0launch

Compliance page lands at /compliance

Dedicated page that answers a legal review in one read. TCPA, the FCC 1:1 consent rule, DNC, call-hour windows, and state AI-disclosure laws — every claim backed by something you can see in the API.

  • Regulation × OpenPhn matrix with Enforced / Available status pills for 7 regimes (TCPA §227, FCC 2024 1:1, FTC DNC, state AI disclosure, Colorado AI Act, HIPAA, GDPR/CCPA)
  • Six proof cards: consent_type enum at the API boundary, server-side call-hour enforcement by destination timezone, tamper-evident audit chain, frozen-publish flow artifacts, DNC scrubbing, per-field confidence + ambiguity flags
  • Deep annex (A–H) with code-level explanations and cross-links to the DPA and /security
  • Shared-responsibility panel — what we enforce vs. what you still own — for clear defensibility
  • schema.org/FAQPage JSON-LD so the matrix can surface in regulatory Google queries
  • Print stylesheet + “Save as PDF” button so compliance officers can forward the page to outside counsel
  • TCPA block moved off /security onto /compliance for clearer page scope
Apr 23, 2026sdk-ts-v0.3.1feature

TypeScript SDK on npm via Trusted Publisher

openphn landed on npm, published through npm's Trusted Publisher OIDC — no API tokens in CI, OIDC handshake between GitHub Actions and the registry.

  • Install: `npm install openphn`
  • 20 endpoints: calls + batch + CSV export + pagination, webhooks + delivery history + retry, numbers, DNC, voices, Twilio BYO, analytics summary, whoami
  • 10 typed error classes (DNCBlockedError, RateLimitError, VerificationPendingError, etc.) so you can match on type instead of parsing strings
  • Auto-retry for 429 and 5xx with exponential backoff plus jitter, Retry-After respected
  • CI refuses to publish if the git tag version ≠ package.json version
Apr 22, 2026sdk-py-v0.3.0feature

Python SDK on PyPI via Trusted Publisher

openphn is live on PyPI, published through PyPI's Trusted Publisher OIDC — identical surface to the TypeScript SDK.

  • Install: `pip install openphn`
  • Same 20-endpoint coverage as the TS SDK
  • Same 10 typed exception hierarchy and auto-retry behavior
  • Release flow: bump pyproject.toml, tag sdk-python-v<new>, push — GitHub Actions handles the rest
Apr 21, 2026docs-v1.0.0launch

docs.openphn.com opens

93-page documentation site on Fumadocs. API reference auto-fetches the current OpenAPI at build time, so it stays in lockstep with production.

  • Full coverage: REST API reference, SDK usage, webhook signing, DNC, Twilio BYO, MCP server, dashboards, integrations
  • Dark/light themes + first-class search
  • Auto-regenerates on every merge to phase1-build
  • OpenAPI schema pulled from api.openphn.com so reference docs never drift from the live surface
Apr 20, 2026obs-v1.0.0feature

Observability + tamper-evident audit chain

End-to-end telemetry and a cryptographically chained audit log for every compliance-relevant action.

  • Sentry on backend, frontend, and admin with source maps uploaded + release tag pinned to HEAD
  • PostHog across the product with a 19-event taxonomy (dashboard, admin, marketing) and dedicated push_* events for Web Push
  • Grafana + Prometheus with an overview dashboard; voice-pipeline, system-health, and business dashboards on the way
  • SQL hash-chain audit log with a /v1/admin/audit/verify endpoint — proves that nothing has been rewritten since it happened
Apr 19, 2026admin-v1.0.0launch

admin.openphn.com split off

Admin tooling moved to its own surface behind Cloudflare Access — customer dashboard stays narrowly focused on tenant-scoped workflows.

  • Cloudflare Access SSO gating for every admin route
  • Audit-chain integration on every admin action
  • Clean separation from app.openphn.com — no more admin-only components leaking into tenant bundles
Apr 22, 2026mobile-v1.0.0launch

Mobile-first dashboard + Web Push

The customer dashboard is now fully responsive, and live call events can ping your phone via Web Push on iOS PWA and Android.

  • Dashboard responsive at 375 / 768 / 1440 — Playwright checks every breakpoint on every PR
  • Web Push notifications for live-call events (ring, answer, transfer, completion, voicemail)
  • Subscription management endpoints on the API side so you can opt in/out per device
Apr 16, 2026infra-v1.1.0feature

Auto-deploy on every push

CI + deploy pipelines are now wired end-to-end. Every push to phase1-build runs tests, then ships to production automatically.

  • Backend: GitHub Actions waits for the pytest check, then SSHes into Hetzner and runs git fetch + docker compose up --build
  • Marketing: Vercel Git integration watches the repo with Root Directory = marketing — every push auto-deploys
  • Hetzner server uses an SSH deploy key to pull from GitHub without tokens
  • Added TWILIO_SIGNATURE_VALIDATION gate on /webhooks/twilio/* — prior behavior let anonymous callers force-end in-flight calls
Apr 16, 2026marketing-v1.0.0launch

openphn.com launches

Marketing site goes live with the full home page, agent-stack integration surfaces, and the OpenClaw skill package.

  • Hero demo panel with the dentist-booking scenario (real audio, orbital ring, waveform)
  • Works-with-your-stack section: 18 frameworks + 6-tab code (OpenClaw, Claude Agent SDK, OpenAI, LangGraph, CrewAI, MCP)
  • Dynamic hero via UTM / referrer — visitors from openclaw, langgraph, crewai, n8n, etc. see the headline with their framework
  • openphn-openclaw npm skill package (publishable), SOUL.md template, NemoClaw-ready
  • n8n-nodes-openphn community node package
  • Mintlify docs scaffold for docs.openphn.com with OpenClaw / Claude Agent SDK / OpenAI / MCP pages
  • PostHog cookieless analytics across the marketing site (8 events)
Apr 13, 2026api-v0.2.0feature

Public API + Twilio connector

First cut of the v1 API with outcome schemas, signed webhooks, and Twilio provider support.

  • POST /v1/calls with objective + outcome_schema + consent_type
  • HMAC-SHA256 signed webhook delivery with 5s/30s/120s retry
  • Python + TypeScript SDKs published to PyPI and npm
  • Twilio provider (Vonage + Telnyx behind a feature flag)