Skip to content

Reame

v0.1.4 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

Published 14d Model Serving & MLOps
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

cpu gguf inference kv-cache llama-cpp llm
+4 more
local-llm openai-api self-hosted speculative-decoding

Summary

AI summary

Chat endpoint now respects each model's chat template and stops at end-of-turn tokens.

Changes in this release

Dependency Low

Prebuilt binaries added for Linux x64, Linux ARM64, and macOS ARM64; runtime now depends on libzstd.

Prebuilt binaries added for Linux x64, Linux ARM64, and macOS ARM64; runtime now depends on libzstd.

Source: llm_adapter@2026-07-15

Confidence: high

Bugfix Medium

/v1/chat/completions now respects each model's chat template and stops at end-of-generation tokens, reducing token usage from 600 to ~7.

/v1/chat/completions now respects each model's chat template and stops at end-of-generation tokens, reducing token usage from 600 to ~7.

Source: llm_adapter@2026-07-15

Confidence: high

Bugfix Medium

Default config no longer requires a second draft model; missing model files now fail fast with clear path information.

Default config no longer requires a second draft model; missing model files now fail fast with clear path information.

Source: llm_adapter@2026-07-15

Confidence: high

Bugfix Medium

Error messages for an incorrect `model.path` now indicate that relative paths resolve from the working directory.

Error messages for an incorrect `model.path` now indicate that relative paths resolve from the working directory.

Source: llm_adapter@2026-07-15

Confidence: high

Bugfix Medium

Interleaved serving's completion state is now protected by its own mutex, preventing starvation of `finished()` waiters under load.

Interleaved serving's completion state is now protected by its own mutex, preventing starvation of `finished()` waiters under load.

Source: llm_adapter@2026-07-15

Confidence: high

Full changelog

v0.1.4 — the first-users release

Every fix in this release came from the project's first days with real users (thanks, HN):

The chat endpoint now speaks each model's chat template. /v1/chat/completions used to concatenate messages as plain role: content text — a format chat models were never trained on — so they never emitted their end-of-turn token and every reply ran to max_tokens, hallucinating both sides of the conversation. Messages now go through the GGUF's own template, and generation stops at any end-of-generation token (ChatML's <|im_end|> included) on all three decode paths: classic, speculative, interleaved. Measured: a short factual answer went from 600 tokens of rambling to 7 tokens and finish_reason: "stop".

One GGUF is enough out of the box. The default config required a second draft model for speculative decoding and died with a bare "No such file or directory" when it was missing. The default is now mode = lookup (n-gram drafting, no second model needed), lookup mode no longer loads a stale draft_model_path, and a missing model file fails fast naming the exact path and how to fix it.

Clear error for a wrong model.path. Relative paths resolve from the working directory — the error now says so. /opt is gone from the examples; models and cache default to project-relative paths.

Interleaved serving: completion state moved under its own mutex. Under load the stepping loop could starve finished() waiters, so cross-thread signals (like the Conclave's early-consensus stop) landed late or never.

Prebuilt binaries below: Linux x64, Linux ARM64, macOS ARM64 (runtime dependency: libzstd).

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Reame

Get notified when new releases ship.

Sign up free

About Reame

All releases →

Related context

Related tools

Beta — feedback welcome: [email protected]