Skip to content

Wayfinder Router v0.1.2 - Steer any single request

Choose a tag to compare

@tcballard tcballard released this 18 Jun 16:54
· 137 commits to main since this release

v0.1.2 makes the gateway's routing decision controllable per request. Until now the local-vs-cloud boundary was a property of your wayfinder-router.toml - the same for every call. Now any client can override it for one request, over plain OpenAI-compatible transport, with no application code change and no change to the deterministic core.

What's new

The model field is now a routing directive. It rides on every OpenAI-style request and was previously ignored:

  • auto (or any ordinary model id like gpt-4o) — Wayfinder scores and decides, exactly as before.
  • a configured endpoint name (local, cloud, …) — pin this call straight to that endpoint.
  • prefer-local / prefer-cloud — pin to the low / high end of your router without naming a concrete endpoint.

A new X-Wayfinder-Threshold header re-cuts a binary router for a single request — a number in 0.01.0, reusing your configured scoring weights:

client.chat.completions.create(model="cloud", messages=[...])              # pin one call to cloud
client.chat.completions.create(model="auto", messages=[...],
    extra_headers={"X-Wayfinder-Threshold": "0.8"})                        # move the cut for one call

Every response now reports how it was routed. Alongside the existing
x-wayfinder-router-model and x-wayfinder-router-score, responses carry a new
x-wayfinder-router-mode header: scored, pinned, or threshold-override.

The boundary still holds

An override only changes which endpoint a request is forwarded to — the prompt is still scored deterministically and offline, and no override adds a model call, key read, or provider logic to the core (WF-ADR-0001 / WF-ADR-0004). The threshold override is deliberately scoped to binary routers; against a classifier or multi-tier config it returns a clear 400 rather than guessing.

Fully backwards compatible

Existing clients are unaffected: an unrecognized model value falls through to scoring (so Wayfinder stays a drop-in proxy) and any unrelated header is ignored.

Install / upgrade

pip install -U "wayfinder-router[gateway]"

Looking ahead → v0.2.0

This release is the first, router-side piece of the v0.2.0 direction: wayfinder-chat, a turnkey chat experience (a LibreChat fork that depends on wayfinder-router) where local-vs-cloud routing and its controls are built into the UI. The per-request override shipped here is exactly what lets a chat client expose a routing-mode picker and a threshold slider per conversation - without compromising the router's transparent, bring-your-own-client identity. The router stays lean for power users; the chat app will serve everyone who just wants one thing to install and talk to.

Full changelog: https://github.com/itsthelore/wayfinder-router/blob/main/CHANGELOG.md