Skip to content

v1.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Jul 05:17
002fa2f

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