Covers releases published 2026-08-21 → 2026-08-28 across iblai/iblai-prod-images (19 releases) and iblai/iblai-web-frontend (33 releases).
| Service / Package | Image / Pin | Version Span |
|---|---|---|
| dm | iblai-dm-pro | 4.343.0-ai → 4.356.0-ai |
| cli | ibl-cli (pyproject) | 6.0.0 → 6.2.0 |
| lms | iblai-lms-spa | 0.69.2 → 0.73.0 |
| edx | iblai-edx-pro | sumac.2.52.0 → sumac.2.55.0 |
| mfe | iblai-edx-mfe-pro | sumac.0.3.4 → sumac.0.3.6 |
| auth (deploy) | iblai-auth-spa | 2.2.2 → 2.2.5 |
| web-containers | @iblai/web-containers | 1.18.5 → 1.19.1 |
| data-layer | @iblai/data-layer | 1.12.106 → 1.13.0 |
| web-utils | @iblai/web-utils | 2.1.14 → 2.2.1 |
| mcp | @iblai/mcp | 1.10.4 → 1.12.1 |
| agent-ai | @iblai/agent-ai | 2.8.1 → 2.8.2 |
| auth (pkg) | @iblai/auth | 2.2.4 → 2.2.5 |
| iblai-js | @iblai/iblai-js | 2.5.5 → 2.7.2 |
iblai-dm-pro (4.343.0-ai → 4.356.0-ai)
Admin memory settings management (4.346.0) — tenant admins can view and update another user's memsearch settings via GET/PUT /api/ai-mentor/orgs/<org>/users/<user_id>/memsearch-settings/. Access is resolved through UserPlatformLink.is_admin; non-admin callers remain pinned to their own settings.
Analytics email-host exclusion toggle (4.348.0) — new ENABLE_ANALYTICS_EMAIL_HOST_EXCLUSION dynamic setting (global default True, platform-overridable) controls whether internal/test email hosts (@ibleducation.com, @ibl.ai) are excluded from chat-history and analytics views. Turning it off surfaces those sessions without a code change.
Analytics proxy (4.351.0) — new platform-scoped LLM usage analytics endpoint (GET /api/v2/analytics/llm-usage/) exposing cost, tokens, latency percentiles (p50–p99), and counts from the tracing backend. Three resources: metrics (aggregate with group_by type/model/tags/environment + day/week/month time series), observations (row-level drill-down, page-paginated), and traces (per-user/per-session drill-down with single-record get). All measures, aggregations, dimensions, and ordering are validated against a whitelist. RBAC usergroup row-scope is enforced on single-record fetches.
Admin chat-history export (4.355.0) — the document_sources column is available in admin chat-history exports, showing the retrieved-document context (source, title, snippet, score, confidence_level) the AI used to answer. A fail-safe normalizer reads every entry through .get() so malformed data cannot break report generation.
Voice transcription overhaul (4.356.0) — TranscriptionOptions (language + prompt) is threaded from convert_audio_to_text_by_provider to every provider, and each provider's model is resolved through Config (VOICE_TRANSCRIPTION_OPENAI_MODEL, ..._GROQ_MODEL, ..._GOOGLE_MODEL, VOICE_TRANSCRIPTION_LANGUAGE), so a tenant can adopt a newer transcription model from the Data Manager without a deploy. Default models move to gpt-transcribe (OpenAI) and whisper-large-v3-turbo (Groq). Mentors can pin the language their learners speak (transcription_language) and supply vocabulary hints (transcription_instructions), both editable through the mentor-settings endpoint. AudioToTextView accepts mentor, language, and prompt with precedence: request → mentor pin → tenant config → auto-detect. Provider selection stays with the platform via VOICE_TRANSCRIPTION_PROVIDER.
ibl.ai speech-to-text on the gateway (4.356.0) — speech-to-text runs on the ibl.ai gateway as a provider (stt_model_slug on the routing profile), with per-request cost recorded to Langfuse. The lookup can be shed per platform with IBLAI_STT_COST_LOOKUP_ENABLED.
ibl.ai Pro / Fast split (4.356.0) — the iblai LLM name splits into ibl.ai Pro (iblai-pro, today's configuration) and ibl.ai Fast (iblai-fast, a cheaper small-model variant). The provider key is unchanged; only llm_name moves and migration 0356 rewrites existing rows. Both variants share one routing-profile row. Fast's candidate set is exactly its own model plus fallbacks, so a Fast turn can never be escalated onto a Pro-tier model. The gateway is now asked to honour the configured model set via provider.{order,allow_fallbacks,require_parameters} and an explicit models fallback list. require_parameters keeps a tool-bound turn off any provider that would silently drop tools.
Deployment:
- Run
python manage.py migrate(migrations0356— eleven additive columns +iblai→iblai-prorename; rolling-deploy safe). - Run
python manage.py seed_tools && python manage.py seed_llm_registry. - Recreate ClickHouse materialized views for the new provider bucketing:
python manage.py create_clickhouse_views --action recreate --view mv_cost_per_provider_daily python manage.py create_clickhouse_views --action recreate --view mv_sessions_by_provider_daily - Breaking: clients sending
llm_name="iblai"must switch to"iblai-pro"or"iblai-fast". - Behaviour change: because
gpt-transcribereplaced the singularlanguagefield with alanguageslist, request parameters are now built per model.
ibl-cli (6.0.0 → 6.2.0)
Sandbox control-plane settings (6.1.0) — sixteen IBL_SANDBOX_* settings registered under IBL_DM for the per-chat-run VM sandbox backing the graph agent's execute tool: IBL_SANDBOX_API_URL, IBL_SANDBOX_IMAGE, IBL_SANDBOX_CPUS (1.0), IBL_SANDBOX_MEMORY_MB (512), IBL_SANDBOX_DISK_MB (1024), IBL_SANDBOX_IDLE_TIMEOUT_S (300), IBL_SANDBOX_MAX_LIFETIME_S (3600), IBL_SANDBOX_EXEC_TIMEOUT_S (60), IBL_SANDBOX_MAX_EXEC_TIMEOUT_S (600), IBL_SANDBOX_SYNC_MAX_FILES (20), IBL_SANDBOX_STATE_FILE_MAX_BYTES (512000), IBL_SANDBOX_STATE_SNAPSHOT_MAX_BYTES (8388608), IBL_SANDBOX_SHARE_MAX_FILE_BYTES (26214400), and IBL_SANDBOX_CREATE_ATTEMPTS_PER_RUN (3). IBL_SANDBOX_API_TOKEN is a SecretSetting (in secrets.yml, no generator). All sixteen are emitted from the common DM env template. Additive and inert by default until an operator sets API URL, token, and image; the per-mentor gate remains MentorSettings.enable_virtual_machine. The sandbox image must provide python3 and GNU grep.
Agent-based completion metadata key (6.2.0) — enable_agent_based_completion added to IBL_DM.COURSE_METADATA_KEYS and COURSE_METADATA_PUBLIC_KEYS defaults, allowing the new Studio "Agent Based Completion" toggle to persist and propagate through course metadata.
iblai-lms-spa (0.69.2 → 0.73.0)
SDK onboarding (0.70.0, 0.72.0) — the LMS integrates the SDK onboarding flow, including multi-agent onboarding for platforms with several agents.
Analytics agent picker (0.71.0) — a new agent picker on the LMS analytics view scopes analytics to a specific agent.
Role-based course content tabs (0.73.0) — course content tabs now gate visibility based on edX course roles.
iblai-edx-pro (sumac.2.52.0 → sumac.2.55.0)
Agent-based completion toggle (2.54.0) — new "Agent Based Completion" checkbox in the Studio "Mentor & Content Mode" section (formKey: enable_agent_based_completion). When enabled, the Skills/Mentor SPA disables the 5-second unit auto-completion timer and instead marks a unit complete based on the agent's own evaluation. Not yet wired end-to-end: the matching CLI metadata key landed in 6.2.0 (above); the SPA-side timer-disable logic is a separate change.
SSO full-name sync (2.55.0) — ibl-edx-signal-relay-app 0.6.1 → 0.6.2: listen_for_user_save now corrects UserProfile.name from first_name/last_name directly when both are present and differ from the current value, keeping the "Full Name" shown in the Skills SPA in sync with SSO-provided identity. No frontend change required.
Unified API gateway routing (2.55.0) — a new unified_api_wsgi.py entrypoint applies X-Forwarded-Prefix as SCRIPT_NAME and strips it from PATH_INFO, so the LMS/CMS resolves correctly when served behind the unified API gateway under a subpath.
Deployment: shared apps/ changes — picked up on image rebuild + LMS/CMS restart, no migrations.
iblai-edx-mfe-pro (sumac.0.3.4 → sumac.0.3.6)
Gradebook on Sumac (0.3.5) — the Gradebook MFE moved from the Olive branch to open-release/sumac.1.
JWT cookie fix for Discussions and Learning MFEs (0.3.6) — Discussions and Learning MFEs are pinned to iblai-develop, which carries the USE-JWT-COOKIE CORS fix. A frontend-platform build stage clones and compiles ibl-edx-mfe-frontend-platform#ibl-develop and copies the result into both MFE images so the webpack alias resolves.
iblai-auth-spa (2.2.2 → 2.2.5)
Login-complete redirect (2.2.5) — 401 responses during login-complete now redirect to the login page instead of the 409 conflict page. Deployment pin updated to @iblai/auth v2.2.5.
@iblai/web-containers (1.18.5 → 1.19.1)
ibl.ai voice provider in agent settings (1.18.7) — the agent voice tab now includes the ibl.ai on-device provider. Voices are shown by name instead of voice id, and the voice picker rows are aligned.
User role change guard (1.18.8) — the user role <select> is disabled while a role change is in flight, preventing double-submissions. Aria labels added across all locales.
Chat history in user profile (1.18.9) — a chat history view is available on the user profile page.
Multi-agent onboarding (1.18.10) — the onboarding flow now supports selecting from multiple agents.
Documentation & Help Center settings (1.18.11) — new documentation_url and support_url tenant settings. The Help Center link resolves from support_url with a legacy fallback. A Documentation field is added to organization settings. Duplicate organization settings removed from the Advanced tab.
Sandbox kind selection (1.19.0) — the sandbox UI now surfaces the kind of sandbox (e.g. VM type) as a selectable option.
On-device LLM providers (1.19.1) — the LLM tab surfaces on-device providers and models. A provider modal renders on-device model rows with a selection hook, and an info box explains on-device availability.
@iblai/data-layer (1.12.106 → 1.13.0)
Skills chat-history reducers (1.12.107) — Redux reducers for chat history in the skills subsystem.
edX + Studio user roles (1.13.0) — new API bindings for fetching user roles from edX and Studio, enabling role-based UI gating in consuming apps.
@iblai/web-utils (2.1.14 → 2.2.1)
Agent course voice autoplay (2.1.17) — new tenant setting to enable voice autoplay for agent course interactions.
Tauri mobile safety (2.1.18) — desktop-only chat commands are no longer invoked on Tauri mobile builds.
Agent-based completion flag (2.2.0) — client-side support for the enable_agent_based_completion course metadata flag, gating the completion timer in consuming SPAs.
Tenant settings: documentation & support URLs (2.2.1) — documentation_url and support_url registered as tenant settings with a default help-center fallback to the support portal.
@iblai/mcp (1.10.4 → 1.12.1)
Tracks @iblai/web-containers. The MCP server package picks up the voice provider, chat history, multi-agent onboarding, documentation/help-center settings, sandbox kind, and on-device LLM provider changes surfaced through web-containers.
@iblai/agent-ai (2.8.1 → 2.8.2)
Close button for embeds (2.8.2) — new showclosebutton attribute on the <agent-ai> web component. When set, the embed renders a close button that dispatches a closeEmbed custom event, allowing the host page to tear down the embed frame.
@iblai/auth (2.2.4 → 2.2.5)
Login-complete redirect — 401 responses during login-complete now redirect to the login page. Transitive dependency updates from web-containers and iblai-js.
@iblai/iblai-js (2.5.5 → 2.7.2)
SDK umbrella package — re-exports updated types, hooks, and API bindings from web-containers, data-layer, mcp, auth, web-utils, and agent-ai. No standalone feature additions; version bumps track downstream packages.