Skip to content
pleach
ReferenceChangelog

@pleach/gateway changelog

Release history for @pleach/gateway — site-docs entries that materially touched the @pleach/gateway surface, newest-first. Canonical runtime history lives upstream.

This page collects the site-content changelog entries that materially touched the @pleach/gateway docs surface or named a @pleach/gateway symbol. It is not the runtime changelog — the canonical record of @pleach/gateway runtime behavior lives in the upstream package CHANGELOG.md and on npmjs.org/package/@pleach/gateway.

See the combined site changelog at /docs/changelog/combined for the chronological unified view across every SKU.

Unreleased

Added

  • Gateway llm.invocation spans ship. Gateway · OpenTelemetry replaces its "dedicated tracer is roadmap" section and hand-rolled span shim with the shipped behavior: one llm.invocation span per routed call from GatewayClient.route() and per transport-served GatewayRuntime.routeChatCompletion() call; the tracer option (tracer: null disables, omitted → trace.getTracer("@pleach/gateway") from the optional @opentelemetry/api peer); the attribute list per surface; errors recording only error.type and http.response.status_code with the fixed message llm invocation failed; and RouteChatCompletionInput.callClass, validated against ALL_CALL_CLASSES and used for attribution only. @pleach/gateway drops the "OTEL span emission is not in Phase A" bullet, lists spans as shipped, and adds tracer to the constructor-options table. The packages-table row already said spans ship and is unchanged. Upstream source, not yet published to npm.

  • Gateway gains a "Not a proxy" framing block. The SKU overlaps a governed-proxy control plane (Portkey, Cloudflare AI Gateway, and the enterprise control planes above them) feature-for-feature — routing, over-budget refusal, cost attribution, failover. The page now states the distinction: gateway is an in-process routing client that never opens a socket of its own and consumes a host-supplied GatewayTransport, versus a proxy that routes all traffic through a vendor and holds the audit trail on its side. Altitude, not timing — both enforce at runtime. Cross-links to the new comparison section.

  • The chat-completion transport seam documented. Gateway gains GatewayChatTransport — the runtime-native contract routeChatCompletion dispatches through (route(request) → { content, usage, costUsd? }), distinct from the Phase-A callClass-shaped GatewayTransport. Its first concrete implementation is createOpenAiCompatibleTransport: point baseURL at any OpenAI-Chat-Completions endpoint (OpenAI, OpenRouter, Together, Groq, vLLM) and supply an auth callback. costUsd is a hint, not a requirement — the gateway stays the single source of truth for cost attribution. The cloud-IAM transports (Bedrock, Azure OpenAI, Vertex) implement the same contract in later cuts. Marked experimental; the npm README is the source of truth for the frozen signature.

  • @pleach/gateway/next documented as shipped (createGatewayRoute). Migration from core flipped from "roadmap / NOT shipped today" to shipped. The factory is a Web-standard (req) => Response POST handler wrapping GatewayClient; docs carry the real opts (client | clientOptions + tenantId, optional transports / resolveRoute) and the { family, callClass, model, prompt, byokKey? } request body. The never-shipped { runtime, credentialStore, costEmitter } params were removed.

Fixed

  • Phase-A status corrected: failover and region routing ship. The status list called cross-provider failover and region routing "v1.x work"; both ship as experimental subpaths (@pleach/gateway/failover, @pleach/gateway/region). Added Tenant resolution, Failover, and Region routing reference sections.
  • Schema codeRepository + sameAs for @pleach/gateway corrected in the site's Organization + SoftwareApplication JSON-LD @graph (inlined in <head> on every page). Both fields now point at https://github.com/pleachhq/gateway (was https://github.com/pleachhq, a leftover from when the SKU schemas were drafted against an upstream monorepo). Load-bearing because sameAs is the field AI search engines use for entity reconciliation across the npm ↔ GitHub ↔ docs boundary. See the combined view for the full cross-SKU pack.

Added

Changed

  • The proxy-side comparison drops "provider cost plus 5%" as the category's price floor. Concentrate launched 2026-06-10 on a $5M pre-seed giving away routing, cross-provider fallback, PII redaction, RBAC, SSO, and audit logs at zero markup on tokens, and charging for log retention, org- and model-level rate limits, and the contract. The section names it alongside Merge Gateway and says the consequence plainly: routing is not a priced surface in this category any more. The altitude argument — gateway is an in-process routing client, a proxy holds the audit trail on its side — is unchanged by it.

  • Cross-docs status-flip pass — @pleach/gateway@0.8.0-alpha.0 Phase A with Anthropic transport real and other transports deferred to Phase B. "Planned" / "no shipping code yet" claims across ~55 docs pages rewritten. Touched Gateway, Audit ledger, Event log, and others.

  • Pricing / FAQ rewrites — Hosted Gateway description rewrites to per-tenant subscription pricing with optional consolidated billing, drops any percentage-on-routed-spend framing (100% of disclosed-pricing LLM router cohort runs zero markup on inference).

  • FAQ → Is there a hosted version? — answer rewrites to lead with No today, name the gateway as the planned multi-tenant routing SKU, and close with the FSL-conversion-clock mechanism behind the net-additive guarantee.

  • GatewayClient-per-cost-center note added on Gateway.

2026-06-08

Changed

  • Packages table corrected to real published version — @pleach/gateway 0.8.0-alpha.0 (was largely stale "Reserved · placeholder" framing).
  • Plugin contract → Sibling SKUs as plugins section retitled and rewritten with per-row real Phase A status — includes @pleach/gateway.