What shipped, and when.

Public record of what we've built. Subscribe to the changelog RSS for updates.

APIv1.4.0-moat2026-06-08

Defensibility moat-widening · 4 migrations, 12 endpoints, 14 surfaces

  • Defense Ledger tamper-evident signoff: every MLRO signature now binds to a SHA-256 hash over canonical-JSON of evidence_pack + narrative + decision + signoff payload (migration 164). New /api/v1/defense/{id}/verify endpoint recomputes the hash from the live row for examiner-grade tamper detection. Canonicalization algorithm published verbatim at /products/defense-ledger/verification so regulators can verify without trusting OilFlow.
  • Pre-Deal data-class partitioning: predeal_checks gains a data_class column ('aggregable' | 'private') via migration 165. Set X-OilFlow-Data-Class: private to keep individual deals out of cross-customer aggregations. Bank Enterprise tier defaults to private. All cross-customer reader paths (precedents, pulse, defense generate peer context, counterparty_intel daemon) now filter aggregable-only.
  • Customer cluster contribution: new cluster_submissions table (migration 166) + POST /api/v1/clusters/submit (auth) + POST /api/public/clusters/submit (anon, IP-rate-limited) + GET /api/v1/clusters/submissions/{request_id} (status). Admin triage at /admin/cluster-submissions promotes confirmed submissions into broker_scam_blocklist with provenance attribution to OilFlow's named investigator. Submitter never named publicly.
  • Document-backed verified profiles: verified_profiles gains documents, reference_contacts, document_count columns (migration 167). The /api/v1/verified/submit endpoint accepts arrays of HTTPS-URL-validated supporting docs (UBO disclosure, company registration, reference letters, trade-history samples, licenses, audited financials) and reference contacts. Confirmed-fraud cluster cross-check rejects scammer self-verification; likely/suspected hits surface as soft-match flags in the admin queue.
  • Verified counterparty self-update: POST /api/v1/verified/{slug}/update-documents lets approved counterparties refresh documents incrementally. Submitter-email match auth, IP rate-limited 3/hr, fires verified_profile.documents_updated webhook.
  • 8 new webhook event types: cluster.contribution_accepted | _rejected | _duplicate, verified_profile.approved | _rejected | _documents_updated, defense_pack.signed | _rescinded. enqueueEvent now supports broadcast events (memberId: null) for cross-customer events.
  • Embeddable Verified-by-OilFlow SVG badge at /verified/{slug}/badge.svg with 6h-fresh + 24h-SWR caching. Counterparties embed via <a><img></a> for inbound-link brand network effect.
  • Public anyone-can-check lookup at /verified/lookup + GET /api/public/verified/lookup. D&B-style recommendation tier (block / caution / verified / unknown).
  • Outlook task pane add-in scaffolded: sideloadable manifest at /outlook-addin/manifest.xml + Office.js task pane at /outlook-addin/taskpane. RM highlights a deal email, gets a sub-30s Pre-Deal verdict in the reading pane.
  • Live transparency surfaces: /intelligence/clusters (live cluster directory), /intelligence/corpus-metrics (live aggregations across 5 corpus tables, refreshed every 30 minutes), /intelligence/simar-chahal-cluster (flagship CEO-impersonation teardown).
  • Email notifications fire on every triage outcome (cluster accept / reject / duplicate, verified approve / reject) via the existing Resend infrastructure. Closes the 'Wave B email worker' TODO.
  • Terms of Service § 18 published: SKU #3 cluster contribution licensing, SKU #5 outcome telemetry license, SKU #6 MLRO attestation binding. 30-day customer notice cycle begins on TOS rollout email send.
  • Stripe SKU: oilflow_verified_counterparty_plus at $499/yr (USD/EUR/GBP/AED). First 1,000 counterparties remain on permanent free Tier 0; subsequent default to paid Verified+.

Affected endpoints

  • GET /api/v1/defense/{id}/verify
  • POST /api/v1/clusters/submit
  • GET /api/v1/clusters/submissions/{request_id}
  • POST /api/v1/verified/{slug}/update-documents
  • POST /api/public/clusters/submit
  • GET /api/public/verified/lookup
  • GET /verified/{slug}/badge.svg
  • GET /intelligence/clusters
  • GET /intelligence/corpus-metrics
  • GET /intelligence/corpus-metrics.json
  • GET /intelligence/clusters/rss.xml
  • GET /outlook-addin/manifest.xml
  • GET /outlook-addin/taskpane
APIv1.0.0-api2026-06-02

Lane 3 · Self-serve activation + retention layer

  • Sandbox keys: /api/v1/keys/sandbox issues 7-day, 100 calls/day keys with no signup friction
  • Customer audit export: /api/v1/audit now supports memberId-scoped JSON/CSV/summary modes
  • Webhook delivery formats: subscriptions accept delivery_format='raw'|'slack'|'teams'; payloads render through Block Kit / Adaptive Card 1.5 templates
  • Customer watchlist sync: /api/v1/watchlists ingests CSV books; daily agent fires watchlist.match_detected against new adverse media + cluster + sanctions deltas
  • KYC pipeline realtime: every /kyc/screen + /kyc/rescreen returns screening_run_id; subscribers stream pipeline_events via Supabase realtime channel 'pipeline:{id}'
  • Postman collection auto-generated from OpenAPI: /oilflow.postman_collection.json

Affected endpoints

  • POST /api/v1/keys/sandbox
  • POST /api/v1/watchlists
  • GET /api/v1/audit?format=summary
APIv0.21.0-api2026-05-29

Lane 2 · Compliance API expansion

  • Webhooks: subscribe/unsubscribe + HMAC-signed delivery + DLQ — /api/v1/webhooks
  • Regulator reports: /api/v1/reports synthesises FATF Rec.10 / FinCEN CDD / EU 6AMLD packages
  • Multilingual adverse media: /api/v1/adverse-media/* — 11 languages incl. AR/RU/UR/FA
  • UBO graph: /api/v1/ubo/screen traverses ownership N hops + screens every node
  • LC discrepancy engine: /api/v1/lc/validate against UCP 600 + cross-doc consistency
  • Async KYC re-screen: /api/v1/kyc/rescreen for batched repeat runs

Affected endpoints

  • POST /api/v1/webhooks
  • POST /api/v1/reports
  • POST /api/v1/adverse-media/entities
  • POST /api/v1/ubo/screen
  • POST /api/v1/lc/validate
FEATUREv0.19.02026-04-27

Design System v3 · Bloomberg Terminal Anchor

  • Authenticity charter (platform/DESIGN.md) — POV, voice, motion, and pre-delivery rules every UI PR follows
  • Solid surfaces by default: glass reserved for overlays only (Dialog/Popover/Sheet); border-radii collapsed to ≤10px on cards, ≤6px on buttons
  • All numeric data switched to Geist Mono + tabular-nums; accent gold reserved for state, CTA, and live data only
  • New primitives: LiveTicker (Bloomberg-style intel marquee), StatusDot (semantic deal/doc state), DataRow (terminal key/value)
  • Founder presence: NavFoundingTick in nav, FounderStripe under hero, FoundersLetter mounted, voice anchors on /how-it-works, /for-brokers, /pricing
  • Operational empty states + KYC pipeline confirmation on /apply (replaces SaaS "thanks for applying" with 7-step status checklist)
  • Motion pass: emil-design-eng playbook — every transition specifies exact properties; hover translates gated behind (hover:hover) media query; scale(0.97) on every button :active
  • Banned-phrase audit clean: "AI-powered" eliminated, "AI drafts" softened to "auto-drafted" across operational + marketing copy
FEATUREv0.18.02026-04-22

Design System v2 · Refined Terminal

  • New three-font system: Instrument Serif (display) + Geist Sans + Geist Mono
  • 17 new UI primitives: Dialog, Tabs, Tooltip, Select, DataTable, CommandPalette (⌘K), Form, and more
  • Expanded Tailwind tokens: type scale, spacing, neutral ramp, z-index, elevation, chart palette
  • New marketing pages: /for-sellers, /for-buyers, /for-brokers, /pricing, /how-it-works, /trust
FIXv0.17.32026-04-18

NCNDA gate hardening

  • Schema, auth, retry, and idempotency fixes across automated NCNDA dispatch
  • Deep audit fixes: lock scope, unique constraints, ODI crash paths
FEATUREv0.17.02026-04-15

Phase A–C · Operating System of Trade

  • DocuSign JWT integration for SPA signing
  • Q88 / inspection parser — AI parses PDFs, derives drift flags
  • LC coordination infrastructure (bank routing activates as MOUs sign)
  • Dispute mediation workflow + port-agent directory
  • Repeat-match recommendations (every 6h after deal close)
INFRAv0.16.02026-04-09

Admin cockpit + ODI

  • Admin authentication hardened (P0 audit)
  • RLS hardening across member + deal tables
  • Shared infra observability + error tracking
FEATUREv0.15.02026-04-01

Structured outputs across automation

  • AI layer upgraded to latest model generation
  • Strict JSON schemas on every AI call
  • Deal ops UI consolidated into a single admin surface

OLDER RELEASES ON REQUEST