Skip to content

v2.6.1

Choose a tag to compare

@github-actions github-actions released this 28 Aug 19:08
· 14 commits to main since this release

[2.6.1] — 2026-08-28 — Airframe 0.4.1 and Unified Chat Templating

Highlights

  • Single chat-templating renderer. All paths (HTTP /api/generate, OpenAI
    /v1/chat/completions + /v1/completions, Anthropic /v1/messages, and the
    CLI generate) now render prompts through one prompt_render module that uses
    each model's real GGUF chat_template (Jinja via shimmyjinja), with a
    family fallback (ChatML/Llama3/Gemma) and a --raw escape for base/completion
    models. Previously instruct models were fed raw prompts or a coarse
    ChatML/Llama3/OpenChat heuristic — the root cause of garbled output on
    Qwen3/Gemma/etc.
  • Real GGUF template sourced at load. ModelSpec.chat_template is populated
    from the GGUF header (airframe metadata), so Jinja-first rendering is automatic.
  • shimmyjinja extended for real templates: slice-with-step (messages[::-1],
    used by Qwen3 thinking) + Gemma family fallback.
  • Offline routing gate. tests/gguf_routing.rs validates template routing for
    every model in the models dir (no GPU, ~14s) — the cheap per-model "screen test".
  • Legacy server retired. shimmy_server_gpu (a dead standalone GPU server with
    its own template renderer) removed — 1,847 lines deleted. See CHAT_TEMPLATING.md.

Docs

  • New docs/CHAT_TEMPLATING.md — the canonical architecture reference.

Release

  • Updated the Airframe dependency to 0.4.1.
  • Published Linux x86_64, Windows x86_64, and macOS arm64 binaries.
  • Corrected release artifact permissions and names so platform downloads are
    attached to the GitHub release.