Repository navigation
v0.7.1
neva 0.7.1 moves the svir bridge to svir 0.1.6, takes in what svir 0.1.5 made expressible in sampling, and fixes a promise the registry module made and did not keep.
Compatible with 0.7.0: nothing in the public API was removed or changed. Two results change; see Behaviour changes.
Sampling through svir
sampling_requestpassestoolChoice: requiredon to the model assvir::ToolChoice::Required; it was an error, as svir 0.1.4 had no way to say it. With no tools given, it isInvalidParamsup front. A model server may take it and still answer without a call, and the sample then saysendTurn.toolChoice: nonestill leaves the tools out (#156).sampling_resultreports a refusal,FinishReason::Refusal, as the stop reasonrefusal, besidecontentFilter. With svir 0.1.5, a refusal fell through toendTurn, and its text read as an answer (#156).- The
svirfeature requires svir 0.1.6, from live runs against mlx-lm, mlx-vlm, llama.cpp and vLLM: reasoning sent under two keys arrives once, a call of a named function that finishes withstopis a call, and a server's message is read fromdetail. Nothing in the bridge changes with it (#160).
Registry
ServerManifest::validate, and soto_json, refuses publisher metadata that is not a JSON object, as the schema types_meta["io.modelcontextprotocol.registry/publisher-provided"]; the registry refused it only at the upload.with_publisher_metadatano longer promises a 4 KB check: that limit is the official registry's, and it applies it at the upload (#153).- The
registrymodule docs show the import a manifest written by hand needs.Argumentis in bothneva::preludeandneva::registry, so with both globs in scope it is ambiguous (E0659); name the registry's explicitly (#155):
use neva::prelude::*;
use neva::registry::*;
use neva::registry::Argument; // shadows the two globs
let package = Package::cargo("weather-mcp", "0.3.0")
.with_package_argument(Argument::named("--port"));Behaviour changes
- A sampling refusal is
refusal, notendTurn, with svir 0.1.5 or later. A client that read the text of anendTurnas the answer now learns that it is not one. validateandto_jsonrefuse publisher metadata that is not an object. A manifest that carried one failed at the upload before.
The full list is in CHANGELOG.md. Diff: 0.7.0...0.7.1.