Skip to content

Swiss AI Hub v0.308.3

Choose a tag to compare

@github-actions github-actions released this 15 Jul 04:58

Added

  • 🧹 Shadowing Base-Model Cleanup: Introduced OpenWebuiProvisioner._delete_shadowing_base_models(), which runs on every provisioner sync (at API startup) and deletes any OpenWebUI base-model row whose id shadows a provisioned model's base_model_id. It is scoped strictly to those ids, so workspace models, agents, and unrelated base models are left untouched.
  • 📡 Base-Model Listing Client Method: Added OpenWebuiClient.list_base_models() to read base-model overrides via GET /api/v1/models/base — rows that are invisible to list_models() and the Workspace UI, which filter on base_model_id != None.
  • 🧪 Robust Provisioner Testing: Included three new unit tests in test_openwebui_provisioner_llm_models.py validating the fix: it repairs a shadowing entry, leaves the healthy (unregistered) state alone, and ignores unrelated base models.

Changed

  • 🐛 Fixed "Model not found" for granted models: Role-granted models (Kimi-K2.6, Qwen, Ministral, gemma) now chat correctly in OpenWebUI for non-admin users. Previously, an admin saving a raw text-generation/* model in the Workspace created a private base-model row with empty access_grants, which denied every non-admin at the base_model_id access hop — before the request ever reached AI-Hub's API (Apertus, the one model nobody had edited, was the only one that worked).
  • 🔒 Enforced Provisioning Invariant Automatically: The rule that raw base models must stay unregistered in OpenWebUI — previously only documented in _build_llm_model_data — is now enforced on every sync. The stray rows are cleaned automatically at API startup, requiring no manual action on deploy.
  • 🔕 Disabled Message Actions by Default: Updated the OpenWebUI initialization routine (init-openwebui.sh) to seed the Sources, Tracing, and Memory action plugins with is_active = false, so their message action buttons are hidden from the chat UI by default on both fresh and existing deployments. They remain re-enableable per deployment via Admin Panel → Functions.
  • ⚙️ Parameterized Function Registration: Enhanced the register_function step to accept an optional is_active argument (defaulting to true), with the registration loop passing false for the three AI-Hub action plugins while leaving all pipes and the title filter enabled.