Skip to content

2.2.1

Choose a tag to compare

@nullata nullata released this 10 Oct 23:00
· 4 commits to main since this release

[2.2.1] - 2026-10-11

Added

  • πŸ†• Decision models (System One) β€” decision models answer typed questions about an input with probabilities instead of generating text: the System One API introduced by TypeSafe's Jev, served by llama.cpp (images built after 2026-10-05) on POST /v1/systemone. Open GGUFs: Julia-1, Laya, Kev-4B, lev, Clef-Flash, Clef, OpenJev (OpenJev and Clef also take images, with their --mmproj). llama-server recognises them from <arch>.decision.type in the GGUF; no flag is needed. #104 #105
    • Routing. POST :42069/v1/systemone picks the model by "model" like /v1/chat/completions (auto-start, eviction rules, cluster forwarding, queue). The request is forwarded unchanged β€” no sampling overrides. On an instance's own port it goes through the per-instance proxy's queue when that proxy runs. Chat endpoints refuse decision models with HTTP 422 β€” they don't generate text.
    • Detection + launch presets. Picking one in the launch form says so under Model Path and fills the form without a preset: Exclude from Max Models on, Web UI off (its chat page can't drive the model), Parallel Slots 8 (each question takes a slot, sharing the input), Embedding Model off (llama.cpp turns embedding mode on itself where needed). An encoder (BERT-style) model also gets Context, Batch and Micro-batch Size set to its context length β€” its whole input must fit in one micro-batch. Clef (and Clef-Flash) asks all questions in one prompt and one pass, so it gets Parallel Slots 1 and Batch = Micro-batch = Context (16384, its trained default, when Context is blank).
    • Batch knobs. Batch Size (--batch-size, default 2048) and Micro-batch Size (--ubatch-size, default 512) added to the launch form; blank omits the flag. A question whose options don't fit in one batch is rejected by llama-server ("increase the physical batch size") β€” raise these.
    • Request log. System One answers are recorded, with input_tokens as the prompt tokens (output_tokens is always 0).
  • Exclude from Max Models. New launch-form toggle: instances with it on are not counted toward LLAMAMAN_MAX_MODELS and are never evicted β€” embedding models, decision models, anything small that should stay up. Split out from Embedding Model, which now only sets the embedding flag; turning Embedding Model on still turns this one on, and presets saved before the toggle existed inherit it from their Embedding Model setting. Live-updated from preset (no relaunch). #105
  • Clear Preset button. In the launch form (before Export): resets the form to the selected model's defaults β€” recommended decision-model settings included β€” without saving.

Fixed

  • TTFT and tokens/s stamped on the first generated token. The request log treated the first bytes of a stream as the first token. Strata sends an empty role chunk and keep-alive comments while it reads the prompt, so its TTFT read ~0 and tokens/s was divided over prompt reading plus generation. SSEAccumulator.feed now reports whether a chunk carried generated output, and the first-token stamp waits for one. #103