[
  {
    "date": "Sep 2, 2026",
    "updatedISO": "2026-09-02T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "feature",
    "title": "Run Studio AI enhancement jobs from the console",
    "body": "The console's Studio AI page lists and creates enhancement jobs (upscale, denoise, stabilize, color-correct, super-resolution) against the WAVE Studio AI API, priced per job.",
    "tags": [
      "console",
      "studio-ai",
      "enhancement"
    ],
    "id": "tag:wave.online,2026:changelog/sep-2-2026-run-studio-ai-enhancement-jobs-from-the-console",
    "href": "https://wave.online/changelog#sep-2-2026-run-studio-ai-enhancement-jobs-from-the-console"
  },
  {
    "date": "Sep 1, 2026",
    "updatedISO": "2026-09-01T00:00:00.000Z",
    "level": "workstream",
    "scope": "Compliance",
    "type": "feature",
    "title": "Read your organization's own audit trail",
    "body": "GET /v1/audit returns every billing, custody, and key-lifecycle event for your organization, filtered strictly to your own data. Mint a key with the audit:read scope and the console's Audit page renders the trail directly.",
    "tags": [
      "audit",
      "api",
      "console"
    ],
    "id": "tag:wave.online,2026:changelog/sep-1-2026-read-your-organization-s-own-audit-trail",
    "href": "https://wave.online/changelog#sep-1-2026-read-your-organization-s-own-audit-trail"
  },
  {
    "date": "Sep 1, 2026",
    "updatedISO": "2026-09-01T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "feature",
    "title": "Guardrails on every Dispatch request",
    "body": "Set your organization to flag, block, or redact, and WAVE Dispatch screens every request before it reaches a model. A flagged request carries the detected classes in a response header. A blocked request returns a 400.",
    "tags": [
      "dispatch",
      "guardrails",
      "safety"
    ],
    "id": "tag:wave.online,2026:changelog/sep-1-2026-guardrails-on-every-dispatch-request",
    "href": "https://wave.online/changelog#sep-1-2026-guardrails-on-every-dispatch-request"
  },
  {
    "date": "Sep 1, 2026",
    "updatedISO": "2026-09-01T00:00:00.000Z",
    "level": "workstream",
    "scope": "Agent commerce",
    "type": "feature",
    "title": "Agents authenticate with their own device-flow ceremony",
    "body": "The SDK ships startAgentCeremony, pollAgentCeremony, and refresh functions for the agent device-authorization flow (RFC 8628). Each agent identity binds its key material to its account, and rotating a key revokes the prior binding immediately.",
    "tags": [
      "sdk",
      "agent-auth",
      "security"
    ],
    "id": "tag:wave.online,2026:changelog/sep-1-2026-agents-authenticate-with-their-own-device-flow-ceremony",
    "href": "https://wave.online/changelog#sep-1-2026-agents-authenticate-with-their-own-device-flow-ceremony"
  },
  {
    "date": "Sep 1, 2026",
    "updatedISO": "2026-09-01T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "feature",
    "title": "See your inbox's registered webhooks in the console",
    "body": "The console's Comms page adds a Webhooks tab: enter an inbox and see its registered webhook endpoints and when each was registered. Secrets render redacted.",
    "tags": [
      "console",
      "webhooks",
      "comms"
    ],
    "id": "tag:wave.online,2026:changelog/sep-1-2026-see-your-inbox-s-registered-webhooks-in-the-console",
    "href": "https://wave.online/changelog#sep-1-2026-see-your-inbox-s-registered-webhooks-in-the-console"
  },
  {
    "date": "Aug 31, 2026",
    "updatedISO": "2026-08-31T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "fix",
    "title": "Fixes a sign-in loop after OAuth sign-in",
    "body": "WAVE fixes two bugs that caused some users to loop back to the sign-in screen after completing OAuth sign-in. Sign-in now completes on the first try.",
    "tags": [
      "gateway",
      "auth"
    ],
    "id": "tag:wave.online,2026:changelog/aug-31-2026-fixes-a-sign-in-loop-after-oauth-sign-in",
    "href": "https://wave.online/changelog#aug-31-2026-fixes-a-sign-in-loop-after-oauth-sign-in"
  },
  {
    "date": "Aug 29, 2026",
    "updatedISO": "2026-08-29T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "fix",
    "title": "WAVE fixes trial checkout key minting in the console",
    "body": "The console can now mint API keys with billing write access, so a self-serve trial checkout completes end to end.",
    "tags": [
      "console",
      "billing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-29-2026-wave-fixes-trial-checkout-key-minting-in-the-console",
    "href": "https://wave.online/changelog#aug-29-2026-wave-fixes-trial-checkout-key-minting-in-the-console"
  },
  {
    "date": "Aug 29, 2026",
    "updatedISO": "2026-08-29T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "fix",
    "title": "Fixes a checkout error that blocked trial signups",
    "body": "WAVE fixes a parameter error that caused some trial checkouts to fail. Trials now start correctly every time.",
    "tags": [
      "gateway",
      "billing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-29-2026-fixes-a-checkout-error-that-blocked-trial-signups",
    "href": "https://wave.online/changelog#aug-29-2026-fixes-a-checkout-error-that-blocked-trial-signups"
  },
  {
    "date": "Aug 28, 2026",
    "updatedISO": "2026-08-28T00:00:00.000Z",
    "level": "product",
    "scope": "Runtime",
    "type": "feature",
    "title": "WAVE Runtime adds durable agent threads",
    "body": "Create a thread to hold an agent session's state across steps, backed by durable per-thread storage instead of an in-memory cache.",
    "tags": [
      "runtime",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/aug-28-2026-wave-runtime-adds-durable-agent-threads",
    "href": "https://wave.online/changelog#aug-28-2026-wave-runtime-adds-durable-agent-threads"
  },
  {
    "date": "Aug 28, 2026",
    "updatedISO": "2026-08-28T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "API errors now guide agents to the right auth flow",
    "body": "When a request fails authentication, WAVE's response now points to the document describing how to authenticate. Agents no longer need prior knowledge of our auth flow.",
    "tags": [
      "gateway",
      "auth"
    ],
    "id": "tag:wave.online,2026:changelog/aug-28-2026-api-errors-now-guide-agents-to-the-right-auth-flow",
    "href": "https://wave.online/changelog#aug-28-2026-api-errors-now-guide-agents-to-the-right-auth-flow"
  },
  {
    "date": "Aug 28, 2026",
    "updatedISO": "2026-08-28T00:00:00.000Z",
    "level": "product",
    "scope": "Platform",
    "type": "improvement",
    "title": "Agent auth discovery document now reflects our real setup",
    "body": "WAVE's authorization-server metadata document now serves our actual configuration instead of redirecting, so agents can discover our auth setup in one call.",
    "tags": [
      "platform",
      "auth"
    ],
    "id": "tag:wave.online,2026:changelog/aug-28-2026-agent-auth-discovery-document-now-reflects-our-real-setup",
    "href": "https://wave.online/changelog#aug-28-2026-agent-auth-discovery-document-now-reflects-our-real-setup"
  },
  {
    "date": "Aug 27, 2026",
    "updatedISO": "2026-08-27T00:00:00.000Z",
    "level": "product",
    "scope": "SDK",
    "type": "feature",
    "title": "The WAVE CLI is now installable from npm",
    "body": "Run npx @wave-av/sdk or install it globally to get the wave command directly, with no build step required.",
    "tags": [
      "sdk"
    ],
    "id": "tag:wave.online,2026:changelog/aug-27-2026-the-wave-cli-is-now-installable-from-npm",
    "href": "https://wave.online/changelog#aug-27-2026-the-wave-cli-is-now-installable-from-npm"
  },
  {
    "date": "Aug 27, 2026",
    "updatedISO": "2026-08-27T00:00:00.000Z",
    "level": "platform",
    "scope": "Inference",
    "type": "feature",
    "title": "Inference: every model that matters, one POST away",
    "body": "inference.wave.online is live: one standard endpoint fronting 13 providers with measured routing, automatic failover, and per-token metering. Spend is tracked to eight decimals. The public leaderboard shows what we measured and what actually ran. The wave CLI is on npm. Every WAVE surface now serves both people and agents.",
    "tags": [
      "inference",
      "routing",
      "metering",
      "agent-ready"
    ],
    "id": "tag:wave.online,2026:changelog/aug-27-2026-inference-every-model-that-matters-one-post-away",
    "href": "https://wave.online/changelog#aug-27-2026-inference-every-model-that-matters-one-post-away"
  },
  {
    "date": "Aug 27, 2026",
    "updatedISO": "2026-08-27T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "feature",
    "title": "Every WAVE surface is agent-ready: 22 surfaces with full agent discovery",
    "body": "Every product subdomain now serves both people and agents: llms.txt with when-to-use guidance, /.well-known/skills.json discovery, OpenAPI with scoped permissions and typed error models, agent-friendly markdown 404s, and RFC RateLimit headers. The CLI is on npm. The platform usage endpoint shows all 7 channels live.",
    "tags": [
      "agent-ready",
      "discovery",
      "openapi",
      "skills"
    ],
    "id": "tag:wave.online,2026:changelog/aug-27-2026-every-wave-surface-is-agent-ready-22-surfaces-with-full-agen",
    "href": "https://wave.online/changelog#aug-27-2026-every-wave-surface-is-agent-ready-22-surfaces-with-full-agen"
  },
  {
    "date": "Aug 26, 2026",
    "updatedISO": "2026-08-26T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "feature",
    "title": "WAVE Console adds creator payout settings",
    "body": "Start onboarding with our payment platform from the console. See your payout status, including whether details and charges are enabled.",
    "tags": [
      "console",
      "payouts"
    ],
    "id": "tag:wave.online,2026:changelog/aug-26-2026-wave-console-adds-creator-payout-settings",
    "href": "https://wave.online/changelog#aug-26-2026-wave-console-adds-creator-payout-settings"
  },
  {
    "date": "Aug 26, 2026",
    "updatedISO": "2026-08-26T00:00:00.000Z",
    "level": "product",
    "scope": "Codec",
    "type": "fix",
    "title": "WAVE fixes a decode error affecting the codec service",
    "body": "We route decode requests directly to the decode container, closing a gap that returned 403 errors. Decoding now works as expected.",
    "tags": [
      "codec",
      "fix"
    ],
    "id": "tag:wave.online,2026:changelog/aug-26-2026-wave-fixes-a-decode-error-affecting-the-codec-service",
    "href": "https://wave.online/changelog#aug-26-2026-wave-fixes-a-decode-error-affecting-the-codec-service"
  },
  {
    "date": "Aug 25, 2026",
    "updatedISO": "2026-08-25T00:00:00.000Z",
    "level": "product",
    "scope": "SDK",
    "type": "feature",
    "title": "WAVE SDK adds a tenant list read",
    "body": "List your organization's comms tenants and their pod and key IDs. Key values never appear on this or any read surface.",
    "tags": [
      "sdk",
      "comms"
    ],
    "id": "tag:wave.online,2026:changelog/aug-25-2026-wave-sdk-adds-a-tenant-list-read",
    "href": "https://wave.online/changelog#aug-25-2026-wave-sdk-adds-a-tenant-list-read"
  },
  {
    "date": "Aug 25, 2026",
    "updatedISO": "2026-08-25T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "feature",
    "title": "WAVE Console lists your existing comms tenants",
    "body": "The comms page now shows your organization's tenants above the create form, with pod ID, client ID, and key ID for each.",
    "tags": [
      "console",
      "comms"
    ],
    "id": "tag:wave.online,2026:changelog/aug-25-2026-wave-console-lists-your-existing-comms-tenants",
    "href": "https://wave.online/changelog#aug-25-2026-wave-console-lists-your-existing-comms-tenants"
  },
  {
    "date": "Aug 25, 2026",
    "updatedISO": "2026-08-25T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "Read your organization's own record through the API",
    "body": "WAVE adds an endpoint that returns your organization's own record. Cross-organization reads are not possible by design.",
    "tags": [
      "gateway",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/aug-25-2026-read-your-organization-s-own-record-through-the-api",
    "href": "https://wave.online/changelog#aug-25-2026-read-your-organization-s-own-record-through-the-api"
  },
  {
    "date": "Aug 25, 2026",
    "updatedISO": "2026-08-25T00:00:00.000Z",
    "level": "product",
    "scope": "Vision",
    "type": "feature",
    "title": "Vision search adds video ingest and better reranking",
    "body": "WAVE can now ingest video for search and reranks results in three stages for more relevant matches.",
    "tags": [
      "vision"
    ],
    "id": "tag:wave.online,2026:changelog/aug-25-2026-vision-search-adds-video-ingest-and-better-reranking",
    "href": "https://wave.online/changelog#aug-25-2026-vision-search-adds-video-ingest-and-better-reranking"
  },
  {
    "date": "Aug 24, 2026",
    "updatedISO": "2026-08-24T00:00:00.000Z",
    "level": "product",
    "scope": "VSS",
    "type": "improvement",
    "title": "WAVE search adds model-scored relevance reranking",
    "body": "Search results now get a second relevance pass from a scoring model blended with similarity, sharpening the top results beyond keyword matching.",
    "tags": [
      "search",
      "vss"
    ],
    "id": "tag:wave.online,2026:changelog/aug-24-2026-wave-search-adds-model-scored-relevance-reranking",
    "href": "https://wave.online/changelog#aug-24-2026-wave-search-adds-model-scored-relevance-reranking"
  },
  {
    "date": "Aug 24, 2026",
    "updatedISO": "2026-08-24T00:00:00.000Z",
    "level": "product",
    "scope": "SDK",
    "type": "feature",
    "title": "WAVE SDK adds tenant onboarding and webhook registration",
    "body": "Create a tenant to get a scoped API key returned once. Register a webhook so tenant events fan out to your own endpoint.",
    "tags": [
      "sdk",
      "comms"
    ],
    "id": "tag:wave.online,2026:changelog/aug-24-2026-wave-sdk-adds-tenant-onboarding-and-webhook-registration",
    "href": "https://wave.online/changelog#aug-24-2026-wave-sdk-adds-tenant-onboarding-and-webhook-registration"
  },
  {
    "date": "Aug 24, 2026",
    "updatedISO": "2026-08-24T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "feature",
    "title": "WAVE Console adds a tenant onboarding page",
    "body": "Create a comms tenant from the console and see the resulting record, with the minted API key shown once behind a reveal button.",
    "tags": [
      "console",
      "comms"
    ],
    "id": "tag:wave.online,2026:changelog/aug-24-2026-wave-console-adds-a-tenant-onboarding-page",
    "href": "https://wave.online/changelog#aug-24-2026-wave-console-adds-a-tenant-onboarding-page"
  },
  {
    "date": "Aug 24, 2026",
    "updatedISO": "2026-08-24T00:00:00.000Z",
    "level": "product",
    "scope": "CLI",
    "type": "feature",
    "title": "WAVE CLI adds tenant onboarding for the mail relay",
    "body": "Run `wave comms tenant create` to provision an organization and mint its API key from the terminal. The key prints once and is never stored locally.",
    "tags": [
      "cli",
      "comms"
    ],
    "id": "tag:wave.online,2026:changelog/aug-24-2026-wave-cli-adds-tenant-onboarding-for-the-mail-relay",
    "href": "https://wave.online/changelog#aug-24-2026-wave-cli-adds-tenant-onboarding-for-the-mail-relay"
  },
  {
    "date": "Aug 24, 2026",
    "updatedISO": "2026-08-24T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "Send outgoing webhooks for incident events",
    "body": "WAVE can now send webhooks. Create a subscription and we deliver incident events with a signed payload and automatic retries.",
    "tags": [
      "gateway",
      "webhooks"
    ],
    "id": "tag:wave.online,2026:changelog/aug-24-2026-send-outgoing-webhooks-for-incident-events",
    "href": "https://wave.online/changelog#aug-24-2026-send-outgoing-webhooks-for-incident-events"
  },
  {
    "date": "Aug 22, 2026",
    "updatedISO": "2026-08-22T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE opens an organizations API and self-serve billing surface",
    "body": "Customers can now create and list organizations through the API. A new billing surface adds checkout, a billing portal, and an invoice list, with a signed webhook confirming payment.",
    "tags": [
      "gateway",
      "billing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-22-2026-wave-opens-an-organizations-api-and-self-serve-billing-surfa",
    "href": "https://wave.online/changelog#aug-22-2026-wave-opens-an-organizations-api-and-self-serve-billing-surfa"
  },
  {
    "date": "Aug 20, 2026",
    "updatedISO": "2026-08-20T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE arms its capability custody route",
    "body": "Granting, revoking, inspecting, and exercising a capability grant now works end to end through the custody API.",
    "tags": [
      "gateway",
      "custody"
    ],
    "id": "tag:wave.online,2026:changelog/aug-20-2026-wave-arms-its-capability-custody-route",
    "href": "https://wave.online/changelog#aug-20-2026-wave-arms-its-capability-custody-route"
  },
  {
    "date": "Aug 20, 2026",
    "updatedISO": "2026-08-20T00:00:00.000Z",
    "level": "product",
    "scope": "Platform",
    "type": "feature",
    "title": "Sellers get a hosted pricing page",
    "body": "pricing.wave.online now renders a hosted pricing page for any seller from their catalog, with tier and billing details filled in automatically.",
    "tags": [
      "platform",
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-20-2026-sellers-get-a-hosted-pricing-page",
    "href": "https://wave.online/changelog#aug-20-2026-sellers-get-a-hosted-pricing-page"
  },
  {
    "date": "Aug 20, 2026",
    "updatedISO": "2026-08-20T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "Codec minutes pricing goes live",
    "body": "WAVE's learned-codec cloud encoding is now billed at $0.01 per minute.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-20-2026-codec-minutes-pricing-goes-live",
    "href": "https://wave.online/changelog#aug-20-2026-codec-minutes-pricing-goes-live"
  },
  {
    "date": "Aug 19, 2026",
    "updatedISO": "2026-08-19T00:00:00.000Z",
    "level": "product",
    "scope": "Runtime",
    "type": "feature",
    "title": "WAVE Runtime exposes a real MCP server",
    "body": "The runtime service now answers MCP requests directly: initialize, ping, list tools, and call tools, so any MCP client can connect.",
    "tags": [
      "runtime",
      "mcp"
    ],
    "id": "tag:wave.online,2026:changelog/aug-19-2026-wave-runtime-exposes-a-real-mcp-server",
    "href": "https://wave.online/changelog#aug-19-2026-wave-runtime-exposes-a-real-mcp-server"
  },
  {
    "date": "Aug 19, 2026",
    "updatedISO": "2026-08-19T00:00:00.000Z",
    "level": "product",
    "scope": "SDK",
    "type": "feature",
    "title": "WAVE SDK adds a typed client for the runtime API",
    "body": "RuntimeClient wraps the runtime endpoint for listing models, completions, and streaming responses, authenticated with a bearer token.",
    "tags": [
      "sdk",
      "runtime"
    ],
    "id": "tag:wave.online,2026:changelog/aug-19-2026-wave-sdk-adds-a-typed-client-for-the-runtime-api",
    "href": "https://wave.online/changelog#aug-19-2026-wave-sdk-adds-a-typed-client-for-the-runtime-api"
  },
  {
    "date": "Aug 19, 2026",
    "updatedISO": "2026-08-19T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE opens a review product with code-host triggered runs",
    "body": "The review product is now fronted by the gateway with authenticated, pay-per-use access. It also fires on pull requests from a connected code-hosting platform, not just its original source.",
    "tags": [
      "gateway",
      "review"
    ],
    "id": "tag:wave.online,2026:changelog/aug-19-2026-wave-opens-a-review-product-with-code-host-triggered-runs",
    "href": "https://wave.online/changelog#aug-19-2026-wave-opens-a-review-product-with-code-host-triggered-runs"
  },
  {
    "date": "Aug 19, 2026",
    "updatedISO": "2026-08-19T00:00:00.000Z",
    "level": "product",
    "scope": "Platform",
    "type": "feature",
    "title": "WAVE's pricing page now lives on wave.online",
    "body": "wave.online/pricing now renders WAVE's own tiers directly instead of redirecting to a third-party site.",
    "tags": [
      "platform",
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-19-2026-wave-s-pricing-page-now-lives-on-wave-online",
    "href": "https://wave.online/changelog#aug-19-2026-wave-s-pricing-page-now-lives-on-wave-online"
  },
  {
    "date": "Aug 19, 2026",
    "updatedISO": "2026-08-19T00:00:00.000Z",
    "level": "product",
    "scope": "Voice",
    "type": "feature",
    "title": "Inbound phone calls can now reach the WAVE voice agent",
    "body": "WAVE adds a route that answers inbound calls and bridges them to the live voice agent, off by default while we roll it out.",
    "tags": [
      "voice"
    ],
    "id": "tag:wave.online,2026:changelog/aug-19-2026-inbound-phone-calls-can-now-reach-the-wave-voice-agent",
    "href": "https://wave.online/changelog#aug-19-2026-inbound-phone-calls-can-now-reach-the-wave-voice-agent"
  },
  {
    "date": "Aug 18, 2026",
    "updatedISO": "2026-08-18T00:00:00.000Z",
    "level": "product",
    "scope": "API Spec",
    "type": "improvement",
    "title": "Public API docs now match the live WAVE Search contract",
    "body": "The published spec replaces the outdated search paths with the four endpoints actually shipped: hybrid search, index upsert, index delete, and analytics.",
    "tags": [
      "api-docs",
      "search"
    ],
    "id": "tag:wave.online,2026:changelog/aug-18-2026-public-api-docs-now-match-the-live-wave-search-contract",
    "href": "https://wave.online/changelog#aug-18-2026-public-api-docs-now-match-the-live-wave-search-contract"
  },
  {
    "date": "Aug 18, 2026",
    "updatedISO": "2026-08-18T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "feature",
    "title": "WAVE Console adds search insights to the studio",
    "body": "See your organization's top queries, zero-result queries, and trending terms alongside the search tool, pulled straight from your account's own data.",
    "tags": [
      "console",
      "search"
    ],
    "id": "tag:wave.online,2026:changelog/aug-18-2026-wave-console-adds-search-insights-to-the-studio",
    "href": "https://wave.online/changelog#aug-18-2026-wave-console-adds-search-insights-to-the-studio"
  },
  {
    "date": "Aug 18, 2026",
    "updatedISO": "2026-08-18T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "feature",
    "title": "WAVE dispatch adds a tunable routing mode",
    "body": "Call dispatch with an optimize_for mode of cost, balanced, or intelligence to steer which model handles a request. Available modes are configured per catalog and per team.",
    "tags": [
      "dispatch",
      "routing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-18-2026-wave-dispatch-adds-a-tunable-routing-mode",
    "href": "https://wave.online/changelog#aug-18-2026-wave-dispatch-adds-a-tunable-routing-mode"
  },
  {
    "date": "Aug 18, 2026",
    "updatedISO": "2026-08-18T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE adds search rate limits, query analytics, and function calling",
    "body": "Search now enforces a per-organization rate limit before any compute runs, and a new analytics endpoint surfaces top, zero-result, and trending queries. The dispatch API adds function-calling support.",
    "tags": [
      "gateway",
      "search"
    ],
    "id": "tag:wave.online,2026:changelog/aug-18-2026-wave-adds-search-rate-limits-query-analytics-and-function-ca",
    "href": "https://wave.online/changelog#aug-18-2026-wave-adds-search-rate-limits-query-analytics-and-function-ca"
  },
  {
    "date": "Aug 17, 2026",
    "updatedISO": "2026-08-17T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "fix",
    "title": "Fix: WAVE Console bridge proxy stops returning a 404",
    "body": "A console proxy route was failing to reach its upstream service and returning the console's own not-found page. It now routes correctly and returns live data.",
    "tags": [
      "console",
      "fix"
    ],
    "id": "tag:wave.online,2026:changelog/aug-17-2026-fix-wave-console-bridge-proxy-stops-returning-a-404",
    "href": "https://wave.online/changelog#aug-17-2026-fix-wave-console-bridge-proxy-stops-returning-a-404"
  },
  {
    "date": "Aug 17, 2026",
    "updatedISO": "2026-08-17T00:00:00.000Z",
    "level": "product",
    "scope": "Email",
    "type": "feature",
    "title": "WAVE's mail relay now requires payment from unknown senders",
    "body": "An unauthenticated sender must pay $0.001 before their message reaches an inbox. Verified WAVE domains are never challenged.",
    "tags": [
      "email",
      "pay-to-reach"
    ],
    "id": "tag:wave.online,2026:changelog/aug-17-2026-wave-s-mail-relay-now-requires-payment-from-unknown-senders",
    "href": "https://wave.online/changelog#aug-17-2026-wave-s-mail-relay-now-requires-payment-from-unknown-senders"
  },
  {
    "date": "Aug 17, 2026",
    "updatedISO": "2026-08-17T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "fix",
    "title": "WAVE fixes truncated streaming responses and a broken model route",
    "body": "Tool-heavy streaming requests no longer cut off mid-response on a slow start. A model route pointing at a removed backend now falls through to a working provider.",
    "tags": [
      "gateway",
      "dispatch"
    ],
    "id": "tag:wave.online,2026:changelog/aug-17-2026-wave-fixes-truncated-streaming-responses-and-a-broken-model-",
    "href": "https://wave.online/changelog#aug-17-2026-wave-fixes-truncated-streaming-responses-and-a-broken-model-"
  },
  {
    "date": "Aug 16, 2026",
    "updatedISO": "2026-08-16T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "improvement",
    "title": "WAVE upgrades the large-context routing tier",
    "body": "The large-context tier now routes to a model that scored higher in our internal evaluation, improving answer quality for that class of request.",
    "tags": [
      "dispatch",
      "routing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-16-2026-wave-upgrades-the-large-context-routing-tier",
    "href": "https://wave.online/changelog#aug-16-2026-wave-upgrades-the-large-context-routing-tier"
  },
  {
    "date": "Aug 16, 2026",
    "updatedISO": "2026-08-16T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE adds four models and launches its routing classifier",
    "body": "Four top frontier models join the customer-selectable catalog. WAVE's own routing classifier is now live, automatically tiering each request.",
    "tags": [
      "gateway",
      "dispatch"
    ],
    "id": "tag:wave.online,2026:changelog/aug-16-2026-wave-adds-four-models-and-launches-its-routing-classifier",
    "href": "https://wave.online/changelog#aug-16-2026-wave-adds-four-models-and-launches-its-routing-classifier"
  },
  {
    "date": "Aug 15, 2026",
    "updatedISO": "2026-08-15T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "WAVE dispatch adds more provider fallbacks for reliability",
    "body": "The routing ladder now includes additional model providers, including a priority path for review-heavy tasks. A request that fails on one provider now has more places left to try.",
    "tags": [
      "gateway",
      "dispatch"
    ],
    "id": "tag:wave.online,2026:changelog/aug-15-2026-wave-dispatch-adds-more-provider-fallbacks-for-reliability",
    "href": "https://wave.online/changelog#aug-15-2026-wave-dispatch-adds-more-provider-fallbacks-for-reliability"
  },
  {
    "date": "Aug 14, 2026",
    "updatedISO": "2026-08-14T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "WAVE removes cold starts for three routed models",
    "body": "Three catalog models now run at the edge instead of on serverless compute, removing a roughly 100-second cold start on first use.",
    "tags": [
      "gateway",
      "performance"
    ],
    "id": "tag:wave.online,2026:changelog/aug-14-2026-wave-removes-cold-starts-for-three-routed-models",
    "href": "https://wave.online/changelog#aug-14-2026-wave-removes-cold-starts-for-three-routed-models"
  },
  {
    "date": "Aug 13, 2026",
    "updatedISO": "2026-08-13T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "fix",
    "title": "WAVE fixes console-minted API keys returning unauthorized",
    "body": "A key minted through the console can now authenticate on every route. Previously every request with a freshly minted key returned an authorization error.",
    "tags": [
      "gateway",
      "auth"
    ],
    "id": "tag:wave.online,2026:changelog/aug-13-2026-wave-fixes-console-minted-api-keys-returning-unauthorized",
    "href": "https://wave.online/changelog#aug-13-2026-wave-fixes-console-minted-api-keys-returning-unauthorized"
  },
  {
    "date": "Aug 9, 2026",
    "updatedISO": "2026-08-09T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "improvement",
    "title": "WAVE Console device control gets a restyled table view",
    "body": "The device control screen is restyled into a clearer table layout using the console's design tokens. The underlying controls and data are unchanged.",
    "tags": [
      "console",
      "device-control"
    ],
    "id": "tag:wave.online,2026:changelog/aug-9-2026-wave-console-device-control-gets-a-restyled-table-view",
    "href": "https://wave.online/changelog#aug-9-2026-wave-console-device-control-gets-a-restyled-table-view"
  },
  {
    "date": "Aug 7, 2026",
    "updatedISO": "2026-08-07T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "fix",
    "title": "Fixes WAVE Enhance billing to match actual usage",
    "body": "WAVE corrects Enhance billing to charge plain output minutes, matching what the service actually processes.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-7-2026-fixes-wave-enhance-billing-to-match-actual-usage",
    "href": "https://wave.online/changelog#aug-7-2026-fixes-wave-enhance-billing-to-match-actual-usage"
  },
  {
    "date": "Aug 6, 2026",
    "updatedISO": "2026-08-06T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "WAVE Enhance pricing goes live",
    "body": "WAVE Enhance is now billed at $0.60 per output minute.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/aug-6-2026-wave-enhance-pricing-goes-live",
    "href": "https://wave.online/changelog#aug-6-2026-wave-enhance-pricing-goes-live"
  },
  {
    "date": "Aug 5, 2026",
    "updatedISO": "2026-08-05T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "improvement",
    "title": "WAVE Console gets a visual refresh with a new accent and states",
    "body": "The console adds a distinct app accent color and canon typography, plus consistent focus rings, validation, empty, loading, and toast states across the interface.",
    "tags": [
      "console",
      "design"
    ],
    "id": "tag:wave.online,2026:changelog/aug-5-2026-wave-console-gets-a-visual-refresh-with-a-new-accent-and-sta",
    "href": "https://wave.online/changelog#aug-5-2026-wave-console-gets-a-visual-refresh-with-a-new-accent-and-sta"
  },
  {
    "date": "Jul 23, 2026",
    "updatedISO": "2026-07-23T00:00:00.000Z",
    "level": "product",
    "scope": "Zoom",
    "type": "feature",
    "title": "Zoom cloud recordings now land in WAVE automatically",
    "body": "When a Zoom recording completes, WAVE pulls the files, stores them under your organization, and registers them as VOD.",
    "tags": [
      "zoom",
      "recordings"
    ],
    "id": "tag:wave.online,2026:changelog/jul-23-2026-zoom-cloud-recordings-now-land-in-wave-automatically",
    "href": "https://wave.online/changelog#jul-23-2026-zoom-cloud-recordings-now-land-in-wave-automatically"
  },
  {
    "date": "Jul 23, 2026",
    "updatedISO": "2026-07-23T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE opens live audio/video remux and demux",
    "body": "POST /v1/av/remux and /v1/av/demux now transform audio/video synchronously through the gateway, no external hop required.",
    "tags": [
      "gateway",
      "media"
    ],
    "id": "tag:wave.online,2026:changelog/jul-23-2026-wave-opens-live-audio-video-remux-and-demux",
    "href": "https://wave.online/changelog#jul-23-2026-wave-opens-live-audio-video-remux-and-demux"
  },
  {
    "date": "Jul 23, 2026",
    "updatedISO": "2026-07-23T00:00:00.000Z",
    "level": "product",
    "scope": "Listen",
    "type": "feature",
    "title": "Control on-demand audio and video conversion through the API",
    "body": "WAVE adds an endpoint to start and stop an on-demand conversion that combines live video and audio into one stream.",
    "tags": [
      "listen",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/jul-23-2026-control-on-demand-audio-and-video-conversion-through-the-api",
    "href": "https://wave.online/changelog#jul-23-2026-control-on-demand-audio-and-video-conversion-through-the-api"
  },
  {
    "date": "Jul 23, 2026",
    "updatedISO": "2026-07-23T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "AV mux and transform pricing goes live",
    "body": "Live AV muxing is billed at $0.05 per minute. Container transforms are billed at $0.0005 per second.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jul-23-2026-av-mux-and-transform-pricing-goes-live",
    "href": "https://wave.online/changelog#jul-23-2026-av-mux-and-transform-pricing-goes-live"
  },
  {
    "date": "Jul 23, 2026",
    "updatedISO": "2026-07-23T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "feature",
    "title": "On-demand live audio/video conversion is now live",
    "body": "WAVE can now combine live video and separate audio into a single live stream on demand, started and stopped through the API.",
    "tags": [
      "transports"
    ],
    "id": "tag:wave.online,2026:changelog/jul-23-2026-on-demand-live-audio-video-conversion-is-now-live",
    "href": "https://wave.online/changelog#jul-23-2026-on-demand-live-audio-video-conversion-is-now-live"
  },
  {
    "date": "Jul 22, 2026",
    "updatedISO": "2026-07-22T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "fix",
    "title": "Fixes single-source live-switch channels",
    "body": "WAVE fixes a gap that blocked live-switch channels from running with just one source.",
    "tags": [
      "transports",
      "listen"
    ],
    "id": "tag:wave.online,2026:changelog/jul-22-2026-fixes-single-source-live-switch-channels",
    "href": "https://wave.online/changelog#jul-22-2026-fixes-single-source-live-switch-channels"
  },
  {
    "date": "Jul 21, 2026",
    "updatedISO": "2026-07-21T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "feature",
    "title": "WAVE Listen adds multi-source switch-mix channels",
    "body": "WAVE Listen can now mix and switch between 2, 4, or 8 sources in one channel.",
    "tags": [
      "transports",
      "listen"
    ],
    "id": "tag:wave.online,2026:changelog/jul-21-2026-wave-listen-adds-multi-source-switch-mix-channels",
    "href": "https://wave.online/changelog#jul-21-2026-wave-listen-adds-multi-source-switch-mix-channels"
  },
  {
    "date": "Jul 20, 2026",
    "updatedISO": "2026-07-20T00:00:00.000Z",
    "level": "product",
    "scope": "Zoom",
    "type": "fix",
    "title": "Zoom routes answer a missing key with a 401",
    "body": "A request to a Zoom route without credentials now returns 401 with the typed error body instead of a payment challenge. Organization resolution on those routes no longer fails on edge cases.",
    "tags": [
      "zoom",
      "auth"
    ],
    "id": "tag:wave.online,2026:changelog/jul-20-2026-zoom-routes-answer-a-missing-key-with-a-401",
    "href": "https://wave.online/changelog#jul-20-2026-zoom-routes-answer-a-missing-key-with-a-401"
  },
  {
    "date": "Jul 20, 2026",
    "updatedISO": "2026-07-20T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "WAVE Braided Audio billing goes live",
    "body": "WAVE Braided Audio is now billed by channel-minute. More channels cost proportionally more.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jul-20-2026-wave-braided-audio-billing-goes-live",
    "href": "https://wave.online/changelog#jul-20-2026-wave-braided-audio-billing-goes-live"
  },
  {
    "date": "Jul 20, 2026",
    "updatedISO": "2026-07-20T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "feature",
    "title": "WAVE Braided Audio adds higher-bit-depth formats",
    "body": "WAVE Braided Audio now publishes and renders 24-bit and 32-bit-float audio, in addition to the original format.",
    "tags": [
      "transports"
    ],
    "id": "tag:wave.online,2026:changelog/jul-20-2026-wave-braided-audio-adds-higher-bit-depth-formats",
    "href": "https://wave.online/changelog#jul-20-2026-wave-braided-audio-adds-higher-bit-depth-formats"
  },
  {
    "date": "Jul 19, 2026",
    "updatedISO": "2026-07-19T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE adds a video-conferencing route with per-minute billing",
    "body": "The gateway now fronts our video-conferencing service end to end, with sessions billed per minute.",
    "tags": [
      "gateway",
      "video"
    ],
    "id": "tag:wave.online,2026:changelog/jul-19-2026-wave-adds-a-video-conferencing-route-with-per-minute-billing",
    "href": "https://wave.online/changelog#jul-19-2026-wave-adds-a-video-conferencing-route-with-per-minute-billing"
  },
  {
    "date": "Jul 19, 2026",
    "updatedISO": "2026-07-19T00:00:00.000Z",
    "level": "product",
    "scope": "Listen",
    "type": "feature",
    "title": "WAVE Listen stem channel is now public",
    "body": "The chillwave stem channel is live. Listeners mix drums and pads live in the browser with no sign-up.",
    "tags": [
      "listen"
    ],
    "id": "tag:wave.online,2026:changelog/jul-19-2026-wave-listen-stem-channel-is-now-public",
    "href": "https://wave.online/changelog#jul-19-2026-wave-listen-stem-channel-is-now-public"
  },
  {
    "date": "Jul 18, 2026",
    "updatedISO": "2026-07-18T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "fix",
    "title": "Webhook payloads are read at any depth",
    "body": "Realtime webhook handling walks the whole payload instead of the top level only, so nested event fields are no longer missed.",
    "tags": [
      "realtime",
      "webhooks"
    ],
    "id": "tag:wave.online,2026:changelog/jul-18-2026-webhook-payloads-are-read-at-any-depth",
    "href": "https://wave.online/changelog#jul-18-2026-webhook-payloads-are-read-at-any-depth"
  },
  {
    "date": "Jul 18, 2026",
    "updatedISO": "2026-07-18T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "feature",
    "title": "Any WAVE content can now transmit as a Dante audio source",
    "body": "WAVE can turn any audio it processes into a discoverable AES67/Dante source, proven live end to end.",
    "tags": [
      "transports"
    ],
    "id": "tag:wave.online,2026:changelog/jul-18-2026-any-wave-content-can-now-transmit-as-a-dante-audio-source",
    "href": "https://wave.online/changelog#jul-18-2026-any-wave-content-can-now-transmit-as-a-dante-audio-source"
  },
  {
    "date": "Jul 18, 2026",
    "updatedISO": "2026-07-18T00:00:00.000Z",
    "level": "product",
    "scope": "Vision",
    "type": "improvement",
    "title": "Visual QA API is now fully live",
    "body": "WAVE's visual QA endpoint now has a working backend, completing the API announced earlier.",
    "tags": [
      "vision",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/jul-18-2026-visual-qa-api-is-now-fully-live",
    "href": "https://wave.online/changelog#jul-18-2026-visual-qa-api-is-now-fully-live"
  },
  {
    "date": "Jul 17, 2026",
    "updatedISO": "2026-07-17T00:00:00.000Z",
    "level": "product",
    "scope": "Console",
    "type": "feature",
    "title": "WAVE Console ships a real developer dashboard",
    "body": "Sign in to manage your account, create and rotate API keys, view billing, and get MCP onboarding, all from one dashboard.",
    "tags": [
      "console",
      "dashboard"
    ],
    "id": "tag:wave.online,2026:changelog/jul-17-2026-wave-console-ships-a-real-developer-dashboard",
    "href": "https://wave.online/changelog#jul-17-2026-wave-console-ships-a-real-developer-dashboard"
  },
  {
    "date": "Jul 17, 2026",
    "updatedISO": "2026-07-17T00:00:00.000Z",
    "level": "product",
    "scope": "Listen",
    "type": "feature",
    "title": "WAVE Listen radio channel is now public",
    "body": "The WAVE Listen radio stream is live and open to anyone, no account required.",
    "tags": [
      "listen"
    ],
    "id": "tag:wave.online,2026:changelog/jul-17-2026-wave-listen-radio-channel-is-now-public",
    "href": "https://wave.online/changelog#jul-17-2026-wave-listen-radio-channel-is-now-public"
  },
  {
    "date": "Jul 17, 2026",
    "updatedISO": "2026-07-17T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "feature",
    "title": "WAVE Listen player adds captions, an AI overlay, and a live-switch indicator",
    "body": "The WAVE Listen player now shows live captions and an AI overlay, plus a chip that tells listeners when the channel switches sources. Audio jitter handling also improves on real networks.",
    "tags": [
      "transports",
      "listen"
    ],
    "id": "tag:wave.online,2026:changelog/jul-17-2026-wave-listen-player-adds-captions-an-ai-overlay-and-a-live-sw",
    "href": "https://wave.online/changelog#jul-17-2026-wave-listen-player-adds-captions-an-ai-overlay-and-a-live-sw"
  },
  {
    "date": "Jul 16, 2026",
    "updatedISO": "2026-07-16T00:00:00.000Z",
    "level": "product",
    "scope": "SRT",
    "type": "feature",
    "title": "WAVE adds managed SRT and RTMP ingest and egress",
    "body": "Send or receive SRT and RTMP streams through a managed path with webhook-driven minute metering and signed playback.",
    "tags": [
      "srt",
      "ingest"
    ],
    "id": "tag:wave.online,2026:changelog/jul-16-2026-wave-adds-managed-srt-and-rtmp-ingest-and-egress",
    "href": "https://wave.online/changelog#jul-16-2026-wave-adds-managed-srt-and-rtmp-ingest-and-egress"
  },
  {
    "date": "Jul 16, 2026",
    "updatedISO": "2026-07-16T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "feature",
    "title": "New SRT relay supports any codec",
    "body": "WAVE adds a self-hosted SRT relay that passes through any codec or format, including ones our primary delivery network cannot carry.",
    "tags": [
      "transports"
    ],
    "id": "tag:wave.online,2026:changelog/jul-16-2026-new-srt-relay-supports-any-codec",
    "href": "https://wave.online/changelog#jul-16-2026-new-srt-relay-supports-any-codec"
  },
  {
    "date": "Jul 15, 2026",
    "updatedISO": "2026-07-15T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "WAVE Listen pricing goes live",
    "body": "WAVE Listen playout is now billed at $0.002 per minute.",
    "tags": [
      "pricing",
      "listen"
    ],
    "id": "tag:wave.online,2026:changelog/jul-15-2026-wave-listen-pricing-goes-live",
    "href": "https://wave.online/changelog#jul-15-2026-wave-listen-pricing-goes-live"
  },
  {
    "date": "Jul 14, 2026",
    "updatedISO": "2026-07-14T00:00:00.000Z",
    "level": "product",
    "scope": "Mesh",
    "type": "feature",
    "title": "A physical device can now join the WAVE mesh directly",
    "body": "The device runs as its own mesh node and accepts start, stop, and settings commands sent through WAVE, closing the local control loop end to end.",
    "tags": [
      "mesh",
      "device-control"
    ],
    "id": "tag:wave.online,2026:changelog/jul-14-2026-a-physical-device-can-now-join-the-wave-mesh-directly",
    "href": "https://wave.online/changelog#jul-14-2026-a-physical-device-can-now-join-the-wave-mesh-directly"
  },
  {
    "date": "Jul 14, 2026",
    "updatedISO": "2026-07-14T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "feature",
    "title": "WAVE Realtime enables recording storage in two new regions",
    "body": "Recordings from Asia-Pacific and South America now route to in-region storage automatically, based on where the session happens.",
    "tags": [
      "realtime",
      "storage"
    ],
    "id": "tag:wave.online,2026:changelog/jul-14-2026-wave-realtime-enables-recording-storage-in-two-new-regions",
    "href": "https://wave.online/changelog#jul-14-2026-wave-realtime-enables-recording-storage-in-two-new-regions"
  },
  {
    "date": "Jul 13, 2026",
    "updatedISO": "2026-07-13T00:00:00.000Z",
    "level": "product",
    "scope": "CLI",
    "type": "feature",
    "title": "Sign in to the WAVE CLI from your browser",
    "body": "Run wave login to authenticate through a browser device flow, then use wave whoami and wave logout to check or end your session.",
    "tags": [
      "cli",
      "auth",
      "oauth"
    ],
    "id": "tag:wave.online,2026:changelog/jul-13-2026-sign-in-to-the-wave-cli-from-your-browser",
    "href": "https://wave.online/changelog#jul-13-2026-sign-in-to-the-wave-cli-from-your-browser"
  },
  {
    "date": "Jul 12, 2026",
    "updatedISO": "2026-07-12T00:00:00.000Z",
    "level": "product",
    "scope": "App",
    "type": "feature",
    "title": "Control WAVE devices from app.wave.online",
    "body": "The web app now includes a client for commanding devices on your mesh, using the same API key and settings already in your account.",
    "tags": [
      "app",
      "device-control"
    ],
    "id": "tag:wave.online,2026:changelog/jul-12-2026-control-wave-devices-from-app-wave-online",
    "href": "https://wave.online/changelog#jul-12-2026-control-wave-devices-from-app-wave-online"
  },
  {
    "date": "Jul 12, 2026",
    "updatedISO": "2026-07-12T00:00:00.000Z",
    "level": "workstream",
    "scope": "Mesh",
    "type": "feature",
    "title": "Manage your device estate from the web",
    "body": "A live estate dashboard shows your Mesh devices at a glance, and a new web control surface lets you drive device settings from app.wave.online and console.wave.online.",
    "tags": [
      "mesh",
      "devices",
      "control"
    ],
    "id": "tag:wave.online,2026:changelog/jul-12-2026-manage-your-device-estate-from-the-web",
    "href": "https://wave.online/changelog#jul-12-2026-manage-your-device-estate-from-the-web"
  },
  {
    "date": "Jul 11, 2026",
    "updatedISO": "2026-07-11T00:00:00.000Z",
    "level": "product",
    "scope": "Desktop",
    "type": "feature",
    "title": "WAVE Desktop adds a device control surface",
    "body": "A new Control tab lets you start and stop a stream, toggle captions, and adjust codec, bitrate, and frame rate from one screen.",
    "tags": [
      "desktop",
      "device-control"
    ],
    "id": "tag:wave.online,2026:changelog/jul-11-2026-wave-desktop-adds-a-device-control-surface",
    "href": "https://wave.online/changelog#jul-11-2026-wave-desktop-adds-a-device-control-surface"
  },
  {
    "date": "Jul 11, 2026",
    "updatedISO": "2026-07-11T00:00:00.000Z",
    "level": "product",
    "scope": "Crest",
    "type": "feature",
    "title": "WAVE ships a cloud bridge for device control",
    "body": "Apps and APIs can now command a connected device through WAVE, with control and state routed over an organization-scoped channel.",
    "tags": [
      "crest",
      "device-control"
    ],
    "id": "tag:wave.online,2026:changelog/jul-11-2026-wave-ships-a-cloud-bridge-for-device-control",
    "href": "https://wave.online/changelog#jul-11-2026-wave-ships-a-cloud-bridge-for-device-control"
  },
  {
    "date": "Jul 11, 2026",
    "updatedISO": "2026-07-11T00:00:00.000Z",
    "level": "product",
    "scope": "Multiviewer",
    "type": "feature",
    "title": "Control individual tiles from WAVE Multiviewer",
    "body": "WAVE Multiviewer adds a device control panel so you can send commands to and read state from a single tile, not just the whole wall.",
    "tags": [
      "multiviewer"
    ],
    "id": "tag:wave.online,2026:changelog/jul-11-2026-control-individual-tiles-from-wave-multiviewer",
    "href": "https://wave.online/changelog#jul-11-2026-control-individual-tiles-from-wave-multiviewer"
  },
  {
    "date": "Jul 10, 2026",
    "updatedISO": "2026-07-10T00:00:00.000Z",
    "level": "product",
    "scope": "Captions",
    "type": "fix",
    "title": "Fix: WAVE Captions no longer errors on single-word audio",
    "body": "Short captions with only one recognized word were returning a server error. Captioning now handles single-word audio the same as longer clips.",
    "tags": [
      "captions",
      "fix"
    ],
    "id": "tag:wave.online,2026:changelog/jul-10-2026-fix-wave-captions-no-longer-errors-on-single-word-audio",
    "href": "https://wave.online/changelog#jul-10-2026-fix-wave-captions-no-longer-errors-on-single-word-audio"
  },
  {
    "date": "Jul 10, 2026",
    "updatedISO": "2026-07-10T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "Transcode pricing published",
    "body": "WAVE Transcode is billed at $0.015 per minute.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jul-10-2026-transcode-pricing-published",
    "href": "https://wave.online/changelog#jul-10-2026-transcode-pricing-published"
  },
  {
    "date": "Jul 10, 2026",
    "updatedISO": "2026-07-10T00:00:00.000Z",
    "level": "product",
    "scope": "Transcode",
    "type": "feature",
    "title": "On-demand video transcoding across common codecs",
    "body": "Send a source and get back a transcoded render delivered over a presigned link, handling the common codec set end to end.",
    "tags": [
      "transcode",
      "video",
      "codecs"
    ],
    "id": "tag:wave.online,2026:changelog/jul-10-2026-on-demand-video-transcoding-across-common-codecs",
    "href": "https://wave.online/changelog#jul-10-2026-on-demand-video-transcoding-across-common-codecs"
  },
  {
    "date": "Jul 08, 2026",
    "updatedISO": "2026-07-08T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE opens an authenticated relay route for device and bridge traffic",
    "body": "Publishing through the low-latency relay now requires gateway authentication and organization scoping before it reaches the relay.",
    "tags": [
      "gateway",
      "relay"
    ],
    "id": "tag:wave.online,2026:changelog/jul-08-2026-wave-opens-an-authenticated-relay-route-for-device-and-bridg",
    "href": "https://wave.online/changelog#jul-08-2026-wave-opens-an-authenticated-relay-route-for-device-and-bridg"
  },
  {
    "date": "Jul 8, 2026",
    "updatedISO": "2026-07-08T00:00:00.000Z",
    "level": "product",
    "scope": "Render",
    "type": "feature",
    "title": "WAVE Live: programmatic live video sessions",
    "body": "Start and control live video sessions over an HTTP API, with docs, a CLI, and an MCP descriptor. Sessions are tenant-isolated with per-session keys and an audit log.",
    "tags": [
      "live",
      "video",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/jul-8-2026-wave-live-programmatic-live-video-sessions",
    "href": "https://wave.online/changelog#jul-8-2026-wave-live-programmatic-live-video-sessions"
  },
  {
    "date": "Jul 8, 2026",
    "updatedISO": "2026-07-08T00:00:00.000Z",
    "level": "product",
    "scope": "Agent Money",
    "type": "feature",
    "title": "Gasless stablecoin settlement for agent payments",
    "body": "Agents can settle in pathUSD using a permit-signed transfer, so a payment clears without the payer holding gas. Built on the x402 payment flow.",
    "tags": [
      "payments",
      "x402",
      "stablecoin"
    ],
    "id": "tag:wave.online,2026:changelog/jul-8-2026-gasless-stablecoin-settlement-for-agent-payments",
    "href": "https://wave.online/changelog#jul-8-2026-gasless-stablecoin-settlement-for-agent-payments"
  },
  {
    "date": "Jul 8, 2026",
    "updatedISO": "2026-07-08T00:00:00.000Z",
    "level": "product",
    "scope": "MoQ",
    "type": "security",
    "title": "Authentication and tenant isolation on the MoQ relay",
    "body": "The live MoQ relay requires authenticated join tokens and isolates each organization's namespace, so only authorized participants can join a stream.",
    "tags": [
      "moq",
      "auth",
      "isolation"
    ],
    "id": "tag:wave.online,2026:changelog/jul-8-2026-authentication-and-tenant-isolation-on-the-moq-relay",
    "href": "https://wave.online/changelog#jul-8-2026-authentication-and-tenant-isolation-on-the-moq-relay"
  },
  {
    "date": "Jul 6, 2026",
    "updatedISO": "2026-07-06T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "Sandbox compute pricing goes live",
    "body": "WAVE Sandbox compute is now billed at $0.00004 per vCPU-second, based on actual CPU time used.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jul-6-2026-sandbox-compute-pricing-goes-live",
    "href": "https://wave.online/changelog#jul-6-2026-sandbox-compute-pricing-goes-live"
  },
  {
    "date": "Jul 6, 2026",
    "updatedISO": "2026-07-06T00:00:00.000Z",
    "level": "product",
    "scope": "Render",
    "type": "feature",
    "title": "Track long renders with live progress",
    "body": "Kick off a render and follow it asynchronously: poll for status or stream progress events over SSE, and get billed only when the render completes.",
    "tags": [
      "render",
      "async",
      "progress"
    ],
    "id": "tag:wave.online,2026:changelog/jul-6-2026-track-long-renders-with-live-progress",
    "href": "https://wave.online/changelog#jul-6-2026-track-long-renders-with-live-progress"
  },
  {
    "date": "Jul 05, 2026",
    "updatedISO": "2026-07-05T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "WAVE error responses now include a machine-readable next step",
    "body": "Every gateway error now carries a structured next_action alongside the human message, so an integrating agent can act on a failure without parsing prose.",
    "tags": [
      "gateway",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/jul-05-2026-wave-error-responses-now-include-a-machine-readable-next-ste",
    "href": "https://wave.online/changelog#jul-05-2026-wave-error-responses-now-include-a-machine-readable-next-ste"
  },
  {
    "date": "Jul 5, 2026",
    "updatedISO": "2026-07-05T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "WHEP egress pricing goes live",
    "body": "WHEP egress is now billed at $0.003 per minute.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jul-5-2026-whep-egress-pricing-goes-live",
    "href": "https://wave.online/changelog#jul-5-2026-whep-egress-pricing-goes-live"
  },
  {
    "date": "Jul 04, 2026",
    "updatedISO": "2026-07-04T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE opens embeddings and public payment settlement",
    "body": "POST /v1/embeddings now returns vector embeddings in a standard shape, selectable across multiple backends. Signed micropayments can now settle on the public payment network instead of test networks only.",
    "tags": [
      "gateway",
      "payments"
    ],
    "id": "tag:wave.online,2026:changelog/jul-04-2026-wave-opens-embeddings-and-public-payment-settlement",
    "href": "https://wave.online/changelog#jul-04-2026-wave-opens-embeddings-and-public-payment-settlement"
  },
  {
    "date": "Jul 4, 2026",
    "updatedISO": "2026-07-04T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "Embeddings pricing goes live",
    "body": "WAVE embeddings are now billed at $0.05 per million tokens.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jul-4-2026-embeddings-pricing-goes-live",
    "href": "https://wave.online/changelog#jul-4-2026-embeddings-pricing-goes-live"
  },
  {
    "date": "Jul 4, 2026",
    "updatedISO": "2026-07-04T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "feature",
    "title": "A standard embeddings API",
    "body": "Call POST /v1/embeddings to generate text embeddings, with managed backends or your own key.",
    "tags": [
      "embeddings",
      "api",
      "ai"
    ],
    "id": "tag:wave.online,2026:changelog/jul-4-2026-a-standard-embeddings-api",
    "href": "https://wave.online/changelog#jul-4-2026-a-standard-embeddings-api"
  },
  {
    "date": "Jul 4, 2026",
    "updatedISO": "2026-07-04T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "docs",
    "title": "Published Acceptable Use and DMCA policies",
    "body": "Our Acceptable Use Policy and DMCA takedown policy are now live as dedicated pages you can read and reference.",
    "tags": [
      "legal",
      "policy",
      "trust"
    ],
    "id": "tag:wave.online,2026:changelog/jul-4-2026-published-acceptable-use-and-dmca-policies",
    "href": "https://wave.online/changelog#jul-4-2026-published-acceptable-use-and-dmca-policies"
  },
  {
    "date": "Jul 03, 2026",
    "updatedISO": "2026-07-03T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "WAVE checkout now handles tax and invoicing automatically",
    "body": "WAVE's payment processor becomes the merchant of record on every charge, so tax collection, tax ID capture, and invoicing are handled automatically.",
    "tags": [
      "gateway",
      "billing"
    ],
    "id": "tag:wave.online,2026:changelog/jul-03-2026-wave-checkout-now-handles-tax-and-invoicing-automatically",
    "href": "https://wave.online/changelog#jul-03-2026-wave-checkout-now-handles-tax-and-invoicing-automatically"
  },
  {
    "date": "Jul 3, 2026",
    "updatedISO": "2026-07-03T00:00:00.000Z",
    "level": "product",
    "scope": "Desktop",
    "type": "feature",
    "title": "Capture from NDI, OMT, and Dante sources",
    "body": "The desktop encoder can now pull video and audio from NDI, OMT, and Dante devices on your network.",
    "tags": [
      "encoder",
      "capture",
      "ndi"
    ],
    "id": "tag:wave.online,2026:changelog/jul-3-2026-capture-from-ndi-omt-and-dante-sources",
    "href": "https://wave.online/changelog#jul-3-2026-capture-from-ndi-omt-and-dante-sources"
  },
  {
    "date": "Jul 2, 2026",
    "updatedISO": "2026-07-02T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "feature",
    "title": "WAVE Realtime rooms add live presence and a data channel",
    "body": "Clients now receive real-time state updates instead of polling, and can exchange data directly through the room. This completes the live client layer for rooms.",
    "tags": [
      "realtime",
      "presence"
    ],
    "id": "tag:wave.online,2026:changelog/jul-2-2026-wave-realtime-rooms-add-live-presence-and-a-data-channel",
    "href": "https://wave.online/changelog#jul-2-2026-wave-realtime-rooms-add-live-presence-and-a-data-channel"
  },
  {
    "date": "Jul 2, 2026",
    "updatedISO": "2026-07-02T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "Visual QA becomes a billed capability",
    "body": "WAVE's visual quality-assurance checks are now a billed capability, priced per run and per scored image.",
    "tags": [
      "pricing",
      "vision"
    ],
    "id": "tag:wave.online,2026:changelog/jul-2-2026-visual-qa-becomes-a-billed-capability",
    "href": "https://wave.online/changelog#jul-2-2026-visual-qa-becomes-a-billed-capability"
  },
  {
    "date": "Jul 2, 2026",
    "updatedISO": "2026-07-02T00:00:00.000Z",
    "level": "product",
    "scope": "Vision",
    "type": "feature",
    "title": "Automated visual QA becomes a billable check",
    "body": "WAVE's visual quality checks now run as a cascade from cheapest to most expensive and stop at the first failure. You are billed only when the expensive check actually runs.",
    "tags": [
      "vision"
    ],
    "id": "tag:wave.online,2026:changelog/jul-2-2026-automated-visual-qa-becomes-a-billable-check",
    "href": "https://wave.online/changelog#jul-2-2026-automated-visual-qa-becomes-a-billable-check"
  },
  {
    "date": "Jul 2, 2026",
    "updatedISO": "2026-07-02T00:00:00.000Z",
    "level": "product",
    "scope": "Vision",
    "type": "feature",
    "title": "WAVE Vision: automated visual QA for renders and UIs",
    "body": "Score renders and interfaces against a spec with a tiered vision pipeline, available as a metered API and through an SDK and MCP surface.",
    "tags": [
      "vision",
      "qa",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/jul-2-2026-wave-vision-automated-visual-qa-for-renders-and-uis",
    "href": "https://wave.online/changelog#jul-2-2026-wave-vision-automated-visual-qa-for-renders-and-uis"
  },
  {
    "date": "Jul 1, 2026",
    "updatedISO": "2026-07-01T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "fix",
    "title": "SRT ingest is now reachable from the public internet",
    "body": "WAVE opens the SRT listener ports on its receive grid so SRT sources can reach WAVE directly, not only over the internal network.",
    "tags": [
      "transports"
    ],
    "id": "tag:wave.online,2026:changelog/jul-1-2026-srt-ingest-is-now-reachable-from-the-public-internet",
    "href": "https://wave.online/changelog#jul-1-2026-srt-ingest-is-now-reachable-from-the-public-internet"
  },
  {
    "date": "Jul 1, 2026",
    "updatedISO": "2026-07-01T00:00:00.000Z",
    "level": "product",
    "scope": "Connect",
    "type": "feature",
    "title": "Inbound phone calls and call recording",
    "body": "Receive and record inbound voice calls, with SMS opt-in consent captured at phone setup.",
    "tags": [
      "telephony",
      "recording"
    ],
    "id": "tag:wave.online,2026:changelog/jul-1-2026-inbound-phone-calls-and-call-recording",
    "href": "https://wave.online/changelog#jul-1-2026-inbound-phone-calls-and-call-recording"
  },
  {
    "date": "Jun 30, 2026",
    "updatedISO": "2026-06-30T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "feature",
    "title": "Publish and play live video in the browser",
    "body": "Publish from the browser over WHIP and play back low-latency streams over WHEP, no plugins required.",
    "tags": [
      "realtime",
      "whip",
      "whep"
    ],
    "id": "tag:wave.online,2026:changelog/jun-30-2026-publish-and-play-live-video-in-the-browser",
    "href": "https://wave.online/changelog#jun-30-2026-publish-and-play-live-video-in-the-browser"
  },
  {
    "date": "Jun 28, 2026",
    "updatedISO": "2026-06-28T00:00:00.000Z",
    "level": "product",
    "scope": "App",
    "type": "feature",
    "title": "Composite multiple live sources in the browser",
    "body": "A canvas-backed compositor lets you mix multiple live sources in app.wave.online, with hardware encoding and a software fallback.",
    "tags": [
      "app",
      "compositor",
      "capture"
    ],
    "id": "tag:wave.online,2026:changelog/jun-28-2026-composite-multiple-live-sources-in-the-browser",
    "href": "https://wave.online/changelog#jun-28-2026-composite-multiple-live-sources-in-the-browser"
  },
  {
    "date": "Jun 27, 2026",
    "updatedISO": "2026-06-27T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "improvement",
    "title": "SRT latency buffer is now tunable",
    "body": "WAVE's SRT connections support a configurable latency buffer, so cellular and high-jitter links can recover retransmits without dropping.",
    "tags": [
      "transports"
    ],
    "id": "tag:wave.online,2026:changelog/jun-27-2026-srt-latency-buffer-is-now-tunable",
    "href": "https://wave.online/changelog#jun-27-2026-srt-latency-buffer-is-now-tunable"
  },
  {
    "date": "Jun 27, 2026",
    "updatedISO": "2026-06-27T00:00:00.000Z",
    "level": "product",
    "scope": "Render",
    "type": "feature",
    "title": "GPU render tier for 4K and 8K output",
    "body": "Heavier renders can finish on a GPU tier with hardware-accelerated AV1 encoding, priced by resolution-weighted minutes for custom and ultrawide sizes.",
    "tags": [
      "render",
      "gpu",
      "4k"
    ],
    "id": "tag:wave.online,2026:changelog/jun-27-2026-gpu-render-tier-for-4k-and-8k-output",
    "href": "https://wave.online/changelog#jun-27-2026-gpu-render-tier-for-4k-and-8k-output"
  },
  {
    "date": "Jun 25, 2026",
    "updatedISO": "2026-06-25T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "fix",
    "title": "Fix: two live bugs blocking WAVE Realtime publishing are resolved",
    "body": "Browser publish requests were being blocked by the realtime edge and rejected for a malformed offer. Both issues are fixed and publishing now succeeds end to end.",
    "tags": [
      "realtime",
      "fix"
    ],
    "id": "tag:wave.online,2026:changelog/jun-25-2026-fix-two-live-bugs-blocking-wave-realtime-publishing-are-reso",
    "href": "https://wave.online/changelog#jun-25-2026-fix-two-live-bugs-blocking-wave-realtime-publishing-are-reso"
  },
  {
    "date": "Jun 25, 2026",
    "updatedISO": "2026-06-25T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE opens self-serve checkout, billing portal, and identity verification",
    "body": "Customers can now start checkout with a plan plus metered add-ons and manage billing from a self-serve portal. Identity verification now accepts a custom return path.",
    "tags": [
      "gateway",
      "billing"
    ],
    "id": "tag:wave.online,2026:changelog/jun-25-2026-wave-opens-self-serve-checkout-billing-portal-and-identity-v",
    "href": "https://wave.online/changelog#jun-25-2026-wave-opens-self-serve-checkout-billing-portal-and-identity-v"
  },
  {
    "date": "Jun 25, 2026",
    "updatedISO": "2026-06-25T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "feature",
    "title": "Self-serve checkout and billing portal",
    "body": "Sign up and pay through a hosted checkout, then manage your plan, payment method, and invoices in a billing portal. Covers plans and metered usage.",
    "tags": [
      "billing",
      "checkout",
      "payments"
    ],
    "id": "tag:wave.online,2026:changelog/jun-25-2026-self-serve-checkout-and-billing-portal",
    "href": "https://wave.online/changelog#jun-25-2026-self-serve-checkout-and-billing-portal"
  },
  {
    "date": "Jun 25, 2026",
    "updatedISO": "2026-06-25T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "feature",
    "title": "A public pricing page with plans and SKUs",
    "body": "See every plan and usage-based SKU on one pricing page, rendered from the live pricing feed, alongside a machine-readable pricing manifest.",
    "tags": [
      "pricing",
      "billing",
      "docs"
    ],
    "id": "tag:wave.online,2026:changelog/jun-25-2026-a-public-pricing-page-with-plans-and-skus",
    "href": "https://wave.online/changelog#jun-25-2026-a-public-pricing-page-with-plans-and-skus"
  },
  {
    "date": "Jun 25, 2026",
    "updatedISO": "2026-06-25T00:00:00.000Z",
    "level": "product",
    "scope": "Connect",
    "type": "feature",
    "title": "Turn recordings into clips",
    "body": "Generate clips from your recordings through the WAVE clip engine, with each clip linked back to its source recording. You can also export a single still frame.",
    "tags": [
      "clips",
      "recordings",
      "video"
    ],
    "id": "tag:wave.online,2026:changelog/jun-25-2026-turn-recordings-into-clips",
    "href": "https://wave.online/changelog#jun-25-2026-turn-recordings-into-clips"
  },
  {
    "date": "Jun 25, 2026",
    "updatedISO": "2026-06-25T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "feature",
    "title": "Real-time voice agents with barge-in",
    "body": "Run a live voice agent in a room that listens, responds, and stops speaking the moment a caller interrupts.",
    "tags": [
      "realtime",
      "voice",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-25-2026-real-time-voice-agents-with-barge-in",
    "href": "https://wave.online/changelog#jun-25-2026-real-time-voice-agents-with-barge-in"
  },
  {
    "date": "Jun 24, 2026",
    "updatedISO": "2026-06-24T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "WHIP ingest pricing goes live",
    "body": "WHIP ingest is now billed at $0.005 per minute.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jun-24-2026-whip-ingest-pricing-goes-live",
    "href": "https://wave.online/changelog#jun-24-2026-whip-ingest-pricing-goes-live"
  },
  {
    "date": "Jun 21, 2026",
    "updatedISO": "2026-06-21T00:00:00.000Z",
    "level": "product",
    "scope": "Transports",
    "type": "feature",
    "title": "WAVE Bridge picks the best network path automatically",
    "body": "WAVE Bridge now selects how to cross the network with no configuration, tested live on a constrained connection. The relay path is always the fallback that cannot fail.",
    "tags": [
      "transports"
    ],
    "id": "tag:wave.online,2026:changelog/jun-21-2026-wave-bridge-picks-the-best-network-path-automatically",
    "href": "https://wave.online/changelog#jun-21-2026-wave-bridge-picks-the-best-network-path-automatically"
  },
  {
    "date": "Jun 20, 2026",
    "updatedISO": "2026-06-20T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "security",
    "title": "WAVE closes a real-time room anonymity gap",
    "body": "Rooms that require verified participants now correctly reject anonymous joiners, closing a control that was silently disabled.",
    "tags": [
      "gateway",
      "security"
    ],
    "id": "tag:wave.online,2026:changelog/jun-20-2026-wave-closes-a-real-time-room-anonymity-gap",
    "href": "https://wave.online/changelog#jun-20-2026-wave-closes-a-real-time-room-anonymity-gap"
  },
  {
    "date": "Jun 20, 2026",
    "updatedISO": "2026-06-20T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "feature",
    "title": "Broadcast transport fabrics: MXL, RIST, AES67, ST 2110",
    "body": "Route professional broadcast transports through WAVE as metered protocol fabrics, covering MXL, RIST, AES67, and ST 2110.",
    "tags": [
      "transports",
      "broadcast",
      "fabrics"
    ],
    "id": "tag:wave.online,2026:changelog/jun-20-2026-broadcast-transport-fabrics-mxl-rist-aes67-st-2110",
    "href": "https://wave.online/changelog#jun-20-2026-broadcast-transport-fabrics-mxl-rist-aes67-st-2110"
  },
  {
    "date": "Jun 19, 2026",
    "updatedISO": "2026-06-19T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "fix",
    "title": "Fix: WAVE Realtime join requests no longer fail without an offer",
    "body": "A join request sent without a media offer was returning an error from the realtime service. The client now omits the request body when there is no offer, and joins succeed.",
    "tags": [
      "realtime",
      "fix"
    ],
    "id": "tag:wave.online,2026:changelog/jun-19-2026-fix-wave-realtime-join-requests-no-longer-fail-without-an-of",
    "href": "https://wave.online/changelog#jun-19-2026-fix-wave-realtime-join-requests-no-longer-fail-without-an-of"
  },
  {
    "date": "Jun 19, 2026",
    "updatedISO": "2026-06-19T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE fronts multi-party real-time rooms end to end",
    "body": "Joining, publishing, subscribing, renegotiating, and leaving a real-time room now works through one authenticated path from app to media edge.",
    "tags": [
      "gateway",
      "realtime"
    ],
    "id": "tag:wave.online,2026:changelog/jun-19-2026-wave-fronts-multi-party-real-time-rooms-end-to-end",
    "href": "https://wave.online/changelog#jun-19-2026-wave-fronts-multi-party-real-time-rooms-end-to-end"
  },
  {
    "date": "Jun 19, 2026",
    "updatedISO": "2026-06-19T00:00:00.000Z",
    "level": "product",
    "scope": "Pricing",
    "type": "feature",
    "title": "Enhance and Mux AV1 pricing goes live",
    "body": "WAVE Acuity Enhance is now $0.025 per minute and Mux AV1 encoding is $0.04 per minute. Base Mux is priced at $0.003 per minute.",
    "tags": [
      "pricing"
    ],
    "id": "tag:wave.online,2026:changelog/jun-19-2026-enhance-and-mux-av1-pricing-goes-live",
    "href": "https://wave.online/changelog#jun-19-2026-enhance-and-mux-av1-pricing-goes-live"
  },
  {
    "date": "Jun 18, 2026",
    "updatedISO": "2026-06-18T00:00:00.000Z",
    "level": "product",
    "scope": "Render",
    "type": "feature",
    "title": "Render template library grows to 38 templates",
    "body": "New explainer, agenda, FAQ, steps, roadmap, and team templates join the library, bringing the render catalog to 38 ready-to-use templates.",
    "tags": [
      "render",
      "templates"
    ],
    "id": "tag:wave.online,2026:changelog/jun-18-2026-render-template-library-grows-to-38-templates",
    "href": "https://wave.online/changelog#jun-18-2026-render-template-library-grows-to-38-templates"
  },
  {
    "date": "Jun 16, 2026",
    "updatedISO": "2026-06-16T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE adds a clip-muxing route",
    "body": "Recordings can now be packaged into a clip-ready video file through one API route.",
    "tags": [
      "gateway",
      "clips"
    ],
    "id": "tag:wave.online,2026:changelog/jun-16-2026-wave-adds-a-clip-muxing-route",
    "href": "https://wave.online/changelog#jun-16-2026-wave-adds-a-clip-muxing-route"
  },
  {
    "date": "Jun 16, 2026",
    "updatedISO": "2026-06-16T00:00:00.000Z",
    "level": "product",
    "scope": "Transcribe",
    "type": "feature",
    "title": "Transcription API with multiple engine choices",
    "body": "Transcribe audio through a single WAVE API, with a choice of engines tuned for accuracy or speed.",
    "tags": [
      "transcribe",
      "api",
      "audio"
    ],
    "id": "tag:wave.online,2026:changelog/jun-16-2026-transcription-api-with-multiple-engine-choices",
    "href": "https://wave.online/changelog#jun-16-2026-transcription-api-with-multiple-engine-choices"
  },
  {
    "date": "Jun 16, 2026",
    "updatedISO": "2026-06-16T00:00:00.000Z",
    "level": "product",
    "scope": "Captions",
    "type": "feature",
    "title": "Captions API with WebVTT, SRT, and JSON output",
    "body": "Generate captions and get them back as WebVTT, SRT, or JSON from a single gateway-fronted endpoint.",
    "tags": [
      "captions",
      "api",
      "subtitles"
    ],
    "id": "tag:wave.online,2026:changelog/jun-16-2026-captions-api-with-webvtt-srt-and-json-output",
    "href": "https://wave.online/changelog#jun-16-2026-captions-api-with-webvtt-srt-and-json-output"
  },
  {
    "date": "Jun 16, 2026",
    "updatedISO": "2026-06-16T00:00:00.000Z",
    "level": "product",
    "scope": "Voice",
    "type": "feature",
    "title": "Text-to-speech voice synthesis",
    "body": "Turn text into natural spoken audio through the WAVE Voice API.",
    "tags": [
      "voice",
      "tts",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/jun-16-2026-text-to-speech-voice-synthesis",
    "href": "https://wave.online/changelog#jun-16-2026-text-to-speech-voice-synthesis"
  },
  {
    "date": "Jun 15, 2026",
    "updatedISO": "2026-06-15T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "feature",
    "title": "WAVE Realtime is live at rt.wave.online",
    "body": "The realtime service now answers on its own domain, with health checks public and the join endpoint gated behind authentication.",
    "tags": [
      "realtime",
      "infrastructure"
    ],
    "id": "tag:wave.online,2026:changelog/jun-15-2026-wave-realtime-is-live-at-rt-wave-online",
    "href": "https://wave.online/changelog#jun-15-2026-wave-realtime-is-live-at-rt-wave-online"
  },
  {
    "date": "Jun 15, 2026",
    "updatedISO": "2026-06-15T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "feature",
    "title": "WAVE dispatch reaches 300+ third-party models through one integration",
    "body": "A new backend lets WAVE dispatch calls reach a broad marketplace of frontier models, with a signed record produced for every call. Available with a customer key or WAVE-hosted access.",
    "tags": [
      "dispatch",
      "models"
    ],
    "id": "tag:wave.online,2026:changelog/jun-15-2026-wave-dispatch-reaches-300-third-party-models-through-one-int",
    "href": "https://wave.online/changelog#jun-15-2026-wave-dispatch-reaches-300-third-party-models-through-one-int"
  },
  {
    "date": "Jun 15, 2026",
    "updatedISO": "2026-06-15T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "WAVE opens a protected real-time join API",
    "body": "Callers can now join a real-time session and fetch connection credentials through one authenticated or pay-per-use endpoint. Nothing reaches the media edge directly.",
    "tags": [
      "gateway",
      "realtime"
    ],
    "id": "tag:wave.online,2026:changelog/jun-15-2026-wave-opens-a-protected-real-time-join-api",
    "href": "https://wave.online/changelog#jun-15-2026-wave-opens-a-protected-real-time-join-api"
  },
  {
    "date": "Jun 15, 2026",
    "updatedISO": "2026-06-15T00:00:00.000Z",
    "level": "product",
    "scope": "Connect",
    "type": "feature",
    "title": "Connect your Zoom account to import recordings",
    "body": "Link your Zoom account with a self-service OAuth flow, and completed Zoom recordings flow in automatically to feed clips.",
    "tags": [
      "zoom",
      "recordings",
      "integration"
    ],
    "id": "tag:wave.online,2026:changelog/jun-15-2026-connect-your-zoom-account-to-import-recordings",
    "href": "https://wave.online/changelog#jun-15-2026-connect-your-zoom-account-to-import-recordings"
  },
  {
    "date": "Jun 15, 2026",
    "updatedISO": "2026-06-15T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "feature",
    "title": "Verifiable receipts on every Dispatch response",
    "body": "Each paid WAVE Dispatch response carries a payment receipt and a signed context attestation, and you can verify them at a public endpoint.",
    "tags": [
      "dispatch",
      "attestation",
      "trust"
    ],
    "id": "tag:wave.online,2026:changelog/jun-15-2026-verifiable-receipts-on-every-dispatch-response",
    "href": "https://wave.online/changelog#jun-15-2026-verifiable-receipts-on-every-dispatch-response"
  },
  {
    "date": "Jun 14, 2026",
    "updatedISO": "2026-06-14T00:00:00.000Z",
    "level": "product",
    "scope": "Realtime",
    "type": "feature",
    "title": "WAVE Realtime adds a join endpoint for live meetings",
    "body": "A single request creates or opens a meeting and returns a join token and app ID. Client SDKs use the token to join instantly.",
    "tags": [
      "realtime",
      "meetings"
    ],
    "id": "tag:wave.online,2026:changelog/jun-14-2026-wave-realtime-adds-a-join-endpoint-for-live-meetings",
    "href": "https://wave.online/changelog#jun-14-2026-wave-realtime-adds-a-join-endpoint-for-live-meetings"
  },
  {
    "date": "Jun 14, 2026",
    "updatedISO": "2026-06-14T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "feature",
    "title": "WAVE SDK adds offline verification for signed records",
    "body": "The JavaScript SDK can now verify a signed record without a network call or a pre-shared key, entirely offline. It also flags when a prompt was truncated.",
    "tags": [
      "dispatch",
      "sdk"
    ],
    "id": "tag:wave.online,2026:changelog/jun-14-2026-wave-sdk-adds-offline-verification-for-signed-records",
    "href": "https://wave.online/changelog#jun-14-2026-wave-sdk-adds-offline-verification-for-signed-records"
  },
  {
    "date": "Jun 11, 2026",
    "updatedISO": "2026-06-11T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "feature",
    "title": "Every WAVE surface is agent-discoverable",
    "body": "Agents can find WAVE from anywhere. The gateway and every WAVE product now publish an MCP manifest and an agent card that point straight to the tools and how to pay for them.",
    "tags": [
      "agents",
      "discovery"
    ],
    "id": "tag:wave.online,2026:changelog/jun-11-2026-every-wave-surface-is-agent-discoverable",
    "href": "https://wave.online/changelog#jun-11-2026-every-wave-surface-is-agent-discoverable"
  },
  {
    "date": "Jun 11, 2026",
    "updatedISO": "2026-06-11T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "Errors that explain themselves",
    "body": "Every API error returns a plain-language reason, a suggested fix, and a “did you mean” hint — so people and agents can self-correct without digging through the docs.",
    "tags": [
      "gateway",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-11-2026-errors-that-explain-themselves",
    "href": "https://wave.online/changelog#jun-11-2026-errors-that-explain-themselves"
  },
  {
    "date": "Jun 10, 2026",
    "updatedISO": "2026-06-10T00:00:00.000Z",
    "level": "product",
    "scope": "Voice",
    "type": "feature",
    "title": "Word-level timestamps in the Voice API",
    "body": "The Voice API now returns per-word timing alongside the audio, so word-synced captions and karaoke highlighting work with no extra alignment step.",
    "tags": [
      "voice",
      "api"
    ],
    "id": "tag:wave.online,2026:changelog/jun-10-2026-word-level-timestamps-in-the-voice-api",
    "href": "https://wave.online/changelog#jun-10-2026-word-level-timestamps-in-the-voice-api"
  },
  {
    "date": "Jun 10, 2026",
    "updatedISO": "2026-06-10T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "Signed receipts for every payment",
    "body": "Each agent payment now returns a signed receipt, and a new receipts API lets you verify any charge after the fact — proof without trust.",
    "tags": [
      "x402",
      "gateway"
    ],
    "id": "tag:wave.online,2026:changelog/jun-10-2026-signed-receipts-for-every-payment",
    "href": "https://wave.online/changelog#jun-10-2026-signed-receipts-for-every-payment"
  },
  {
    "date": "Jun 9, 2026",
    "updatedISO": "2026-06-09T00:00:00.000Z",
    "level": "workstream",
    "scope": "Agent commerce",
    "type": "improvement",
    "title": "Sanctions screening on every payment",
    "body": "Agent payments are screened against sanctions lists before they settle — compliant machine commerce, on by default.",
    "tags": [
      "x402",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-9-2026-sanctions-screening-on-every-payment",
    "href": "https://wave.online/changelog#jun-9-2026-sanctions-screening-on-every-payment"
  },
  {
    "date": "Jun 9, 2026",
    "updatedISO": "2026-06-09T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "feature",
    "title": "Automatic credit when sync slips",
    "body": "If audio and video drift past the sync SLA, WAVE credits the affected usage back on its own — no ticket, no ask.",
    "tags": [
      "gateway",
      "media"
    ],
    "id": "tag:wave.online,2026:changelog/jun-9-2026-automatic-credit-when-sync-slips",
    "href": "https://wave.online/changelog#jun-9-2026-automatic-credit-when-sync-slips"
  },
  {
    "date": "Jun 9, 2026",
    "updatedISO": "2026-06-09T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "Pay per stream-minute",
    "body": "Usage is metered per stream-minute and per audio-minute at the edge and attributed to your key — transparent, per-use billing.",
    "tags": [
      "gateway",
      "money"
    ],
    "id": "tag:wave.online,2026:changelog/jun-9-2026-pay-per-stream-minute",
    "href": "https://wave.online/changelog#jun-9-2026-pay-per-stream-minute"
  },
  {
    "date": "Jun 9, 2026",
    "updatedISO": "2026-06-09T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "Standards-based sign-in",
    "body": "OIDC and OAuth discovery now resolve to a real identity provider, so you can wire WAVE into your own auth with standard tooling.",
    "tags": [
      "gateway",
      "identity"
    ],
    "id": "tag:wave.online,2026:changelog/jun-9-2026-standards-based-sign-in",
    "href": "https://wave.online/changelog#jun-9-2026-standards-based-sign-in"
  },
  {
    "date": "Jun 9, 2026",
    "updatedISO": "2026-06-09T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "feature",
    "title": "More payout currencies",
    "body": "The payment bridge settles in more currencies, so agents and operators can transact where they actually work.",
    "tags": [
      "money"
    ],
    "id": "tag:wave.online,2026:changelog/jun-9-2026-more-payout-currencies",
    "href": "https://wave.online/changelog#jun-9-2026-more-payout-currencies"
  },
  {
    "date": "Jun 8, 2026",
    "updatedISO": "2026-06-08T00:00:00.000Z",
    "level": "product",
    "scope": "Blog",
    "type": "feature",
    "title": "The WAVE blog is live",
    "body": "blog.wave.online is open — stories and deep dives on the video-and-payments layer, every post narrated by WAVE Voice.",
    "tags": [
      "brand",
      "voice"
    ],
    "id": "tag:wave.online,2026:changelog/jun-8-2026-the-wave-blog-is-live",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 8, 2026",
    "updatedISO": "2026-06-08T00:00:00.000Z",
    "level": "product",
    "scope": "Blog",
    "type": "feature",
    "title": "Listen to any post",
    "body": "Every post can be played as audio — narrated by WAVE Voice, with word-synced captions and a downloadable transcript.",
    "tags": [
      "voice",
      "blog"
    ],
    "id": "tag:wave.online,2026:changelog/jun-8-2026-listen-to-any-post",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 7, 2026",
    "updatedISO": "2026-06-07T00:00:00.000Z",
    "level": "workstream",
    "scope": "Brand & Web",
    "type": "feature",
    "title": "What you can build on WAVE",
    "body": "A new page for the one capability under everything — metered video, payable by anyone — and the things you can build on it, from per-stream creator payouts to agent-payable video.",
    "tags": [
      "brand",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-7-2026-what-you-can-build-on-wave",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 7, 2026",
    "updatedISO": "2026-06-07T00:00:00.000Z",
    "level": "workstream",
    "scope": "Agent commerce",
    "type": "improvement",
    "title": "x402 discovery now resolves from DNS",
    "body": "The _x402 discovery record is live, so an agent can resolve WAVE's payment terms straight from DNS before it calls.",
    "tags": [
      "x402",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-7-2026-x402-discovery-now-resolves-from-dns",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 7, 2026",
    "updatedISO": "2026-06-07T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "improvement",
    "title": "Public pages stay free of internal notes",
    "body": "A build check now blocks internal working notes from reaching any public page — what you read on wave.online is the customer story, nothing meant for the team.",
    "tags": [
      "platform",
      "trust"
    ],
    "id": "tag:wave.online,2026:changelog/jun-7-2026-public-pages-stay-free-of-internal-notes",
    "href": "https://wave.online/changelog#jun-7-2026-public-pages-stay-free-of-internal-notes"
  },
  {
    "date": "Jun 6, 2026",
    "updatedISO": "2026-06-06T00:00:00.000Z",
    "level": "workstream",
    "scope": "Money Engine",
    "type": "feature",
    "title": "Money Engine page",
    "body": "Payments, identity, and compliance for people and agents on one rail — mirrored to the Media Engine, with live / building / planned status.",
    "tags": [
      "money",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-6-2026-money-engine-page",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 6, 2026",
    "updatedISO": "2026-06-06T00:00:00.000Z",
    "level": "workstream",
    "scope": "Brand & Web",
    "type": "feature",
    "title": "The WAVE story",
    "body": "A narrative page on why WAVE exists, the two engines behind the platform, and who it's for.",
    "tags": [
      "brand"
    ],
    "id": "tag:wave.online,2026:changelog/jun-6-2026-the-wave-story",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 6, 2026",
    "updatedISO": "2026-06-06T00:00:00.000Z",
    "level": "workstream",
    "scope": "Agent commerce",
    "type": "feature",
    "title": "x402 facilitator landing",
    "body": "A page for the live x402 facilitator on Base mainnet — how agents pay per use, with sanctions screening on the payment path.",
    "tags": [
      "x402",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-6-2026-x402-facilitator-landing",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 6, 2026",
    "updatedISO": "2026-06-06T00:00:00.000Z",
    "level": "workstream",
    "scope": "Brand & Web",
    "type": "improvement",
    "title": "Positioning: video infrastructure first",
    "body": "Refreshed the platform message — WAVE is video infrastructure for the agentic internet, with agent-native payments as the differentiator.",
    "tags": [
      "brand"
    ],
    "id": "tag:wave.online,2026:changelog/jun-6-2026-positioning-video-infrastructure-first",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 6, 2026",
    "updatedISO": "2026-06-06T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "improvement",
    "title": "Media Engine claims substantiated",
    "body": "As real transports and SDKs shipped — RIST, SRT, AES67, OMT, the media-engine SDK, and the MCP tools — the public capability list was updated to match.",
    "tags": [
      "protocol",
      "trust"
    ],
    "id": "tag:wave.online,2026:changelog/jun-6-2026-media-engine-claims-substantiated",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 4, 2026",
    "updatedISO": "2026-06-04T00:00:00.000Z",
    "level": "workstream",
    "scope": "Agent commerce",
    "type": "feature",
    "title": "Agents page",
    "body": "WAVE's agentic-commerce stack on one page — how agents discover, negotiate, and pay for any capability.",
    "tags": [
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-4-2026-agents-page",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 4, 2026",
    "updatedISO": "2026-06-04T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "feature",
    "title": "Machine-readable capabilities index",
    "body": "Published a capabilities.json so agents and crawlers can enumerate every WAVE capability from one source.",
    "tags": [
      "discovery",
      "agents"
    ],
    "id": "tag:wave.online,2026:changelog/jun-4-2026-machine-readable-capabilities-index",
    "href": "https://wave.online/changelog#jun-4-2026-machine-readable-capabilities-index"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "improvement",
    "title": "WAVE runs entirely on the edge",
    "body": "WAVE runs entirely on the edge; the previous hosting is retired.",
    "tags": [
      "platform",
      "edge"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-wave-runs-entirely-on-the-edge",
    "href": "https://wave.online/changelog#jun-3-2026-wave-runs-entirely-on-the-edge"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "workstream",
    "scope": "Brand & Web",
    "type": "feature",
    "title": "The name — /av brand page",
    "body": "The living W·A·V·E acronym: a cycling headline and a letter band, each meaning tied to a real capability.",
    "tags": [
      "brand"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-the-name-av-brand-page",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "workstream",
    "scope": "Protocol & Media Engine",
    "type": "feature",
    "title": "Media Engine page",
    "body": "Timing, integrity, sync, reliability, and metering handled once — every transport inherits it. With live / building / planned status.",
    "tags": [
      "protocol"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-media-engine-page",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "improvement",
    "title": "Live status page",
    "body": "Per-surface edge probes, grouped by Web and Platform, with the real HTTP status — no fabricated uptime.",
    "tags": [
      "platform"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-live-status-page",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "workstream",
    "scope": "Discovery",
    "type": "feature",
    "title": "Agent discovery: llms.txt across surfaces",
    "body": "Machine-readable llms.txt on apex, developer, docs, agents, and the protocol spokes — one map agents read first.",
    "tags": [
      "agents",
      "discovery"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-agent-discovery-llms-txt-across-surfaces",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "workstream",
    "scope": "Compliance",
    "type": "improvement",
    "title": "Legal & compliance pages upleveled",
    "body": "Sticky on-page tables of contents, anchored sections, and last-updated badges — the reviewed text preserved verbatim.",
    "tags": [
      "legal"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-legal-compliance-pages-upleveled",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "product",
    "scope": "Gateway",
    "type": "improvement",
    "title": "Crawlable discovery + sitemap",
    "body": "Added a sitemap and robots pointer to the API gateway surface.",
    "tags": [
      "gateway"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-crawlable-discovery-sitemap",
    "href": "https://wave.online/changelog#jun-3-2026-crawlable-discovery-sitemap"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "product",
    "scope": "Bridge",
    "type": "docs",
    "title": "Sitemap + llms.txt",
    "body": "Agent-discovery and sitemap routes on the protocol bridge (labeled early scaffold).",
    "tags": [
      "bridge"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-sitemap-llms-txt",
    "href": "https://wave.online/changelog#jun-3-2026-sitemap-llms-txt"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "product",
    "scope": "Protocol spokes",
    "type": "docs",
    "title": "Brand titles + llms.txt — NDI / OMT / Dante",
    "body": "Corrected page titles to the WAVE brand and added agent-discovery to the NDI, OMT, and Dante spokes.",
    "tags": [
      "ndi",
      "omt",
      "dante"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-brand-titles-llms-txt-ndi-omt-dante",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "product",
    "scope": "Dispatch",
    "type": "feature",
    "title": "Live agent commerce over x402",
    "body": "Agents discover, negotiate, and settle for edge AI inference over HTTP-402 (x402) and MPP — on Base mainnet, with sanctions screening on the payment path, pay-per-use, no account.",
    "tags": [
      "agents",
      "x402"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-live-agent-commerce-over-x402",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "workstream",
    "scope": "Developer experience",
    "type": "feature",
    "title": "Published the SDK suite",
    "body": "@wave-av/sdk and @wave-av/cli on npm, wave-sdk on PyPI, plus the ADK and a public MCP server.",
    "tags": [
      "sdk"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-published-the-sdk-suite",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "workstream",
    "scope": "Brand & Web",
    "type": "improvement",
    "title": "Topbar + footer color system",
    "body": "The WAVE wordmark inherits the color of the product scrolling beneath it; the footer mark stays in sync.",
    "tags": [
      "brand"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-topbar-footer-color-system",
    "href": "https://wave.online/changelog#jun-3-2026-topbar-footer-color-system"
  },
  {
    "date": "Jun 3, 2026",
    "updatedISO": "2026-06-03T00:00:00.000Z",
    "level": "platform",
    "scope": "Platform",
    "type": "docs",
    "title": "Open-source READMEs refreshed",
    "body": "The public org profile and customer-facing repos audited; thin READMEs rewritten to the WAVE standard.",
    "tags": [
      "open-source"
    ],
    "id": "tag:wave.online,2026:changelog/jun-3-2026-open-source-readmes-refreshed",
    "href": "https://wave.online/changelog"
  },
  {
    "date": "Jun 1, 2026",
    "updatedISO": "2026-06-01T00:00:00.000Z",
    "level": "product",
    "scope": "SDK",
    "type": "fix",
    "title": "Rust and Python SDKs move to available package names",
    "body": "The Rust crate is now wave-sdk and the Python package is wave-av-sdk. Existing imports and the Ruby and Node packages are unchanged.",
    "tags": [
      "sdk",
      "rust",
      "python"
    ],
    "id": "tag:wave.online,2026:changelog/jun-1-2026-rust-and-python-sdks-move-to-available-package-names",
    "href": "https://wave.online/changelog#jun-1-2026-rust-and-python-sdks-move-to-available-package-names"
  },
  {
    "date": "May 2026",
    "updatedISO": "2026-05-01T00:00:00.000Z",
    "level": "workstream",
    "scope": "AI capabilities",
    "type": "feature",
    "title": "Multi-language captions, auto-chapters & entity detection",
    "body": "Captions across more languages, automatic chapter generation, and entity detection — one API, person or agent.",
    "tags": [
      "captions",
      "ai"
    ],
    "id": "tag:wave.online,2026:changelog/may-2026-multi-language-captions-auto-chapters-entity-detection",
    "href": "https://wave.online/changelog#may-2026-multi-language-captions-auto-chapters-entity-detection"
  }
]