MMSP
GitHub119

Changelog

One line per release. Each links to the release's entries in the repository, where every change records what it did and, when it breaks something, how to migrate.

  • [2026-10-24] Version 0.5.6: Kimi K3.1 Pro is supported, and on the Kimi K3 series ThinkingLevel.NONE turns thinking off and PromptCaching.ENHANCE asks for the 1h cache; ThinkingLevel.NONE also turns thinking off on Claude Sonnet 4.6, Opus 4.8, Sonnet 5 and Opus 5; every error MMSP raises is typed (RoutingError, InvalidMessageError, UnsupportedContentError, UnknownEventError, ProviderStreamError, ConcurrentCallError), each a subclass of the built-in it replaces, and the MMSP server relays them with their fields; the history holds deep copies, a second stateful call while one is in flight raises ConcurrentCallError, and a message with nothing a client can send raises InvalidMessageError; an abort or a closed stream closes the provider's request at once; a token count of 0 stays 0; the Chat Completions client records a gateway's encrypted reasoning under the shared fidelity keys; TokenDance's DeepSeek V4.1 Flash moves to openai-chat; the configuration page states what each client sends for each UniConfig key, and the site gains the Model Index and Model Status pages, RFC pages at /rfcs/ and search.

  • [2026-10-23] Version 0.5.5: MiniMax-M3.1-Flash is supported, and the registry adds Vertex AI, Bedrock and TokenDance rows and refreshes OpenRouter and SiliconFlow; the site gains a live model catalog with an integration kit per entry and a status page fed by a daily probe; the rules MMSP keeps are written down as RFCs (MMSP-RFC-0001 to MMSP-RFC-0012); the Anthropic clients work on anthropic SDK 2.x; the vLLM adapter reads VLLM_API_KEY and VLLM_BASE_URL instead of OpenAI's variables, and OpenAI's other environment variables go only where OPENAI_API_KEY goes; a stream that ends without its usage or finish reason raises IncompleteStreamError; OpenRouter's encrypted reasoning survives replay, a Claude replay omits unsigned thinking, GLM and Kimi K2 extension keys reach the API from TypeScript, the vLLM adapter sends chat_template_kwargs from Python, and tts_config rejections raise UnsupportedParameterError.

  • [2026-10-19] Version 0.5.4: every client reads its environment key only with no base URL or its own default endpoint and refuses any other base URL passed without a key with ApiKeyRequiredError, and the rule ships as @prismshadow/mmsp/credentials and mmsp.credentials; GPT-6 Luna is supported with reasoning off preserved; model CI runs by affected client and publication waits for the full suites; the README lists Vertex AI support for Gemini 4 Argon.

  • [2026-10-14] Version 0.5.3: Gemini 4 Argon support in Python and TypeScript, with thinking-level mapping, registry metadata, and official API documentation.

  • [2026-10-10] Version 0.5.2: an MMSP server serves the models of a table over HTTP as MMSP streams, the mmsp client calls it, and the playground's server page edits the table, starts the server, charts its metrics and tests each row against its upstream; Claude Haiku 5.5 is supported and Sonnet 5.5 cache reads drop to $0.10; the official Gemini client is named google-official (alias gemini-official); a chat sent to another model in the playground starts a new conversation.

  • [2026-10-01] Version 0.5.1: google-genai is the compatible client for Google's generateContent and Vertex AI names it, while gemini-official speaks the Gemini API's Interactions endpoint only and refuses a service-account key; Qwen3.8 27B replaces Qwen3.6 35B A3B on OpenRouter and SiliconFlow; the site, the mark and the images take a pure blue brand color, the docs gain a Design philosophy page, and the publish workflow skips a version that is already published.

  • [2026-09-30] Version 0.5.0: AgentHub is renamed MMSP, the Model Message Stream Protocol (mmsp on PyPI, @prismshadow/mmsp on npm); streaming protocol v2 closes every item with its .done item and every stream with one stop event; clients are named by type, an official client per vendor and a compatible client per protocol; Gemini moves to the Interactions API and Vertex AI to generateContent; Claude Opus 5.5, Sonnet 5.5 and Fable 5.1, GPT-6.1 Sol, DeepSeek Flash and Gemini 3.8 TTS are supported; the playground and the tracer are redesigned, and the site at mmsp.penguin.ooo opens.

  • [2026-09-14] Version 0.4.15: the Responses clients (openai_responses, gpt6, deepseek_v4, minimax_m3) keep every function call of an interleaved parallel tool-call turn, so a gateway that opens every call before closing any no longer loses all but the last one, and the next request no longer fails on an orphaned function_call_output.

  • [2026-09-12] Version 0.4.14: the first-party DeepSeek V4 and GPT Responses clients send a text-only tool result as a plain string, so a strictly validating DeepSeek Responses endpoint no longer rejects every request after a tool call with 400 invalid_json.

  • [2026-09-12] Version 0.4.13: the OpenAI Chat client replays a tool-calling assistant turn with its reasoning field present even when the model produced no chain of thought, so a DeepSeek tool chain reached through an endpoint that reissues tool_call ids is no longer rejected part-way through.

  • [2026-09-11] Version 0.4.12: the OpenAI Chat, Kimi K3 and GLM clients send a tool result's images in the user message that follows the tool messages, so an image read by a tool works behind a gateway that validates the Chat Completions schema, and every tool result on those clients goes out as a plain string.

  • [2026-09-09] Version 0.4.11: GPT-6 Astra joins the registry and the shared GPT client is renamed gpt6 for it, with none thinking clamping to low on GPT-6; the DeepSeek V4 Flash rows move to the price effective 2026-09-10, DeepSeek images are gated by a text-only deny-list instead of the "vision" substring, and deepseek-v4.1-flash is pre-registered; and the generic OpenAI Chat and Responses clients send a text-only tool result as a plain string.

  • [2026-09-04] Version 0.4.10: Gemini 3.8 Flash joins the registry and the shared Gemini client is renamed for it, the Gemini 2 series is dropped, registry rows record the list price with no discount field, every thinking level and thinking summary value stays on the wire, and a vLLM adapter client maps the thinking level onto whatever switch each served model's own chat template reads.

  • [2026-09-02] Version 0.4.9: GPT-5.6 reads an image over the 30,000-patch limit at high detail instead of rejecting it, in a prompt and in a tool result, on the GPT-5.6, OpenAI Responses and OpenAI Chat clients.

  • [2026-08-26] Version 0.4.8: glm-5.3-flash joins the registry and reads images in a prompt and in a tool result, while every other GLM model refuses an image item instead of sending one.

  • [2026-08-25] Version 0.4.7: the Gemini client splits function responses into their own contents, fixing the Vertex AI 400 Requests ending with a model turn are not supported. on messages that mix a tool result with text — an interrupted turn's carry-over resent with the next prompt, or tool outputs folded into a summarization request.

  • [2026-08-21] Version 0.4.6: deepseek-v4-flash-vision-exp joins the registry and reads images in a prompt and in a tool result, the DeepSeek client moves onto the OpenAI Responses protocol, every Responses client replays content items in the order the model produced them, an internal unused event never reaches a caller, and the playground plays a spoken answer as one clip and keeps its configuration across a reload.

  • [2026-08-20] Version 0.4.5: streaming clients skip output they do not recognize unless AGENTHUB_DEBUG is set, AutoLLMClient lists the model ids an endpoint serves, every client accepts default headers for endpoints that demand their own, GLM-5.3 and claude-opus-5 join the registry, and the OpenRouter entries move to the openai-responses client.

  • [2026-08-19] Version 0.4.4: thinking levels gain a MAX tier above XHIGH, and each client maps the ladder onto its vendor's effort vocabulary (DeepSeek re-mapped to its current low/high/max values).

  • [2026-08-18] Version 0.4.3: every streaming client skips the heartbeat events gateways inject on long generations, across the OpenAI Responses, OpenAI Chat Completions, Anthropic Messages, and Gemini protocols.

  • [2026-08-18] Version 0.4.2: generic OpenAI Responses and Anthropic Messages protocol clients covering OpenAI, OpenRouter, DeepSeek, Z.AI, and MiniMax (the generic chat client renames to openai-chat), GPT-5.6 support, UniConfig.fast_mode, and the Claude and Kimi series clients unified with family-wide temperature rejection.

  • [2026-07-22] Version 0.4.1: Kimi K3, the Gemini 3.6 generation (gemini-3.6-flash, gemini-3.5-flash-lite), and GLM-5.2 support, a supported-model registry with USD/CNY pricing, context windows, and modalities, and the UnsupportedParameterError parameter error class.

  • [2026-07-20] Version 0.4.0: the fidelity content-item payload replaces signature/phase (breaking), OpenAI-compatible clients replay the exact upstream reasoning field, Claude 5 support, and hardened tool-call streaming.

  • [2026-06-01] Version 0.3.3: OpenAI-compatible embedding input format.

  • [2026-05-30] Version 0.3.2: Claude 4.8, a generic OpenAI Chat Completions-compatible client, abort support, agent skills, and a broad model refresh.

  • [2026-04-28] Version 0.3.1: Gemini TTS and image generation, GPT-5.5, the UModelVerse vendor, and automatic Claude caching.

  • [2026-03-11] Version 0.3.0: Claude 4.6 with adaptive thinking, GPT-5.4 with phase labels, Claude on Amazon Bedrock, and GLM-5.

  • [2026-01-22] Version 0.2.0: Gemini 3, Claude 4.5, GLM-4.7, GPT-5.2, and Qwen3 models, with prompt caching for Claude.