Skip to content

v0.80.0

@JimmyWesley JimmyWesley tagged this 11 Sep 06:34
One spec version since 0.79.0 (v0.80).

Behaviour changes worth reading before upgrading:

- Extensions (Part L). A plain pip install monkeyllm is unchanged: nothing
  is loaded until an operator installs an extension (vine ext install)
  and a forest enables it in _meta/extensions.yaml. That file is versioned
  and travels in a snapshot; validate reports an extension a forest
  expects and this deployment does not have, as a health line and never
  as an install. A declared secret may not be written there.

- An extension contributes at named seams (converters, curation, events,
  tools, routes under /v1/ext/<id>/, jobs, ranking, prompt, roles) and
  never patches. A contribution the host cannot serve is inert and
  named, never an error. Handlers marked heavy run in the extension's
  own environment and process.

- Audit rows gain via (ext:<id>), nullable. A row written before this
  version reads it as absent. principal stays whoever caused the act.

- Model roles carry a kind (chat, embed, vision, transcribe, rerank). An
  extension registers a role and is handed a bound caller, never an
  endpoint or a key; its spend is metered and capped per extension per
  forest, and exhaustion is a refusal.

- The MCP tools/list menu may carry extension tools; its visibility
  filter fails closed, so an unrecognised SDK shape yields fewer tools,
  never more.

- Station: /v1/ext routes, admin-gated; Studio gains an Extensions
  console. New environment: MONKEYLLM_EXT_HOME, MONKEYLLM_EXT_INDEX,
  MONKEYLLM_EXT_WORKER_TIMEOUT. pyproject declares an empty extensions
  extra as the name a future dependency lands under.

- The demo harness (examples/demo) accepts a model's native function-call
  syntax beside the JSON it asks for. Product behaviour is unchanged.

Signed-off-by: Jimmy Wesley <rededown@hotmail.com>
Assets 2
Loading