Skip to content

v0.42.0 — Your Box, Your Default

Choose a tag to compare

@gizmax gizmax released this 21 Jul 17:28
· 98 commits to main since this release
4b5eb1c

Born on real hardware: deploying to an NVIDIA DGX Spark exposed how much of the local-first story assumed bare metal. 0.41.1 made Spark Mode work in Docker, 0.41.2 made discovery find your local models - 0.42.0 lets you make one of them the default and generates workflows with it.

Added

Default model picker. New workflow_default_model setting: steps without an explicit model: use it instead of the built-in default. Pick it in the onboarding wizard - detected local providers now list their models (Ollama tags, vLLM/NIM served ids) - or set it via PATCH /api/settings. Values are validated against the model registry at write time (UNKNOWN_MODEL on typos), persisted to the DB, restored at startup. Empty string clears it.

Any Ollama model, first-class. ollama/<tag> resolves dynamically like nim/<id> always has - any locally pulled model at $0/run, region local, same injection-safe character discipline. Base URLs honour OLLAMA_HOST everywhere.

Workflow generation on local models. The "describe it in plain English" generator no longer demands a cloud API key on a box that runs local models. Provider resolution picks, in order: SANDCASTLE_ADVISOR_PROVIDER, any cloud provider with a configured key, the local provider named by workflow_default_model, and on a Spark a reachable local NIM/vLLM. Verified end-to-end on GB10 hardware: full workflow YAML generated by a local vLLM, zero cloud keys.

/health/providers models list - reachable local providers return their model names; that is what the wizard picker renders.

Changed

  • Bare-default resolution order: workflow_default_model (when set) -> Spark NIM autoroute (when applicable) -> sonnet. Explicit model: sonnet counts as the bare default - the same convention the Spark autoroute has used since 0.33. Explicit non-default models are never rewritten.
  • The onboarding wizard keeps cloud API key entry visible alongside detected local providers (was either/or).

pip install sandcastle-ai==0.42.0