Skip to content

Llmff

v1.3.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

Published 20d LLM Frameworks
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

agent-tools cli inference-pipeline json-schema llm llm-inference
+13 more
llm-pipeline llmops local-ai local-llm observability offline ollama openai-compatible pipeline reproducible retrieval rust yaml

Summary

AI summary

Rust library API breaking change: LlmffError enum now includes new variants, while all CLI, schema, and runtime contracts remain unchanged.

Full changelog

llmff v1.3.0

llmff v1.3.0 hardens the execution core: failure classification, stage
wiring, and per-stage validation now live in the type system instead of
string matching and hand-maintained checklists. Every documented contract —
CLI output, exit codes, failure kinds, schemas, trace and event records — is
byte-identical to v1.2.0.

Added

  • A typed failure-classification API in llmff-core: LlmffError gains
    StageTimeout and HttpTool variants plus a FailureKind enum with
    failure_kind()/failure_message(), so exit codes and trace failure_kind
    values derive from types. Error message text, exit codes, and failure-kind
    strings are unchanged; characterization tests freeze the full mapping.
  • An exhaustive internal stage-op enum drives the stage metadata catalog,
    execution dispatch, and graph validation, so adding a stage without wiring
    every site fails to compile instead of relying on a checklist.
  • Typed per-op stage specs give validation and execution one shared parse
    point per stage; validation messages and failure timing are unchanged.
  • Release-evidence gating now verifies recorded release commits against the
    actual git tags (git rev-list) instead of pinned copies, and check
    scripts share one helper library.
  • Engine internals split into cohesive submodules (backends, inference, tool,
    loop, map, stage ops) with an unchanged public library API surface of the
    same twelve items.
  • Launch-article manifest snippets are now validated with llmff inspect;
    the v1.1 article's loop example is runnable as printed.
  • Compatibility with the existing Python subprocess supervisor, batch supervisor,
    Node.js streaming supervisor, agent runner adoption guide, OpenTelemetry bridge,
    and ecosystem readiness gates.

Boundary

This release adds no manifest surface, no stages, no backends, and no runtime
behavior. It is an internal hardening pass; llmff remains a bounded execution
runner, not an agent framework, planner, memory system, or scheduler. One
library-level note: LlmffError gained variants, which is source-breaking
only for Rust library consumers who match the enum exhaustively; the
documented CLI, schema, event, trace, and exit-code contracts are unaffected
and remain additive-only.

Install

cargo install --git https://github.com/syndicalt/llmff --tag v1.3.0 llmff
scripts/smoke-install.sh --git https://github.com/syndicalt/llmff --tag v1.3.0

Release preflight

Run the release preflight gate before creating or pushing the tag:

scripts/release-preflight.sh v1.3.0

Breaking Changes

  • `LlmffError` enum now includes additional variants (`StageTimeout`, `HttpTool`) and a new `FailureKind` enum, breaking exhaustive match sites in Rust consumer code.

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 Llmff

Get notified when new releases ship.

Sign up free

About Llmff

All releases →

Beta — feedback welcome: [email protected]