You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[2.2.0] - 2026-10-09
Added
🆕 Strata engine(experimental, opt-in) — Strata as a second inference engine behind a new engine layer (core/engines/). Opt-in via STRATA_ENABLED=true + NVIDIA GPU; off by default, llama.cpp behaviour snapshot-tested byte-for-byte. Engine abstraction + registry; config["engine"] is additive — missing key = llama.cpp, no storage migration. Family × size catalogue (8 virtual models, /strata/<family>-<SIZE>), env-var-only launch, pinned-revision shard pre-download through llamaMan's downloader, load-stage parsing from container logs, settings-fingerprint-driven REINSTALL=1, per-model flags from Strata's own setup.py, Hang Watchdog + Slow-Storage Allowance. Images: Strata repo download + docker build from the UI (built for this node's GPU generations), pull-by-name for both engines, deletion of built images. ⚠️ Builds default to STRATA_REPO_REF=main (unpinned third-party source); pin a commit for reproducibility. UI: engine picker, Strata launch fields beside their llama.cpp counterparts, recommended-models modal, quant-name aliases. Docs: README section + docs/STRATA.md. #97
llama.cpp Web UI toggle (default on; off passes --no-webui) and per-instance "Open llama-server" links. #97
Model Archive(opt-in) — mount a second volume, set ARCHIVE_DIR=/archive; unset hides the feature entirely. Archive/Restore buttons in the model list; archived models stay listed, dimmed, not launchable, absent from /api/tags / /v1/models. Moves run as cancellable jobs in the Downloads panel; cross-disk moves are atomic (hidden partial + fsync + size check), cancel/failure/low-space leave the source untouched, partials cleaned at startup. Refused while the model is in use (incl. sleeping, draft, mmproj, Strata shards), mid-download, or on name collision. Restore returns files to the original path, so presets/favorites/notes/display names survive. #98
Fixed
Download speed limit is now per node. "Global speed limit (Mbps)" lived in the shared settings blob, so one node's value capped every node. Now per-node (core/node_settings.py), falling back to the legacy top-level value — existing installs keep their limit until each node saves its own. #99