Back to Updates

Platform Updates — July 31–August 7, 2026

ibl.ai Engineering

13 production image releases (1.120.0 → 1.132.0) plus 39 iblai-web-frontend package releases — 52 in all: admin-set LLM spend caps enforced across tenant, agent, and per-user scopes; the Agent Computer Protocol and in-chat computer use in OS; a grading results API with grader components and a results tab; a new first-party iblai LLM provider covering chat, embeddings, and TTS; SEO foundations across OS and LMS; and notarized macOS desktop builds.

Releases from July 31–August 7, 2026 — covering iblai-prod-images 1.120.0 through 1.132.0 and 39 iblai-web-frontend package releases. 52 releases in all.

serviceimage / pinversion span
dmiblai-dm-pro4.324.0-ai4.332.0-ai
osiblai-os-spa0.108.90.117.0
edxiblai-edx-prosumac.2.45.0sumac.2.49.0
lmsiblai-lms-spa0.54.30.60.0
cliibl-cli5.53.15.54.0
authiblai-auth-spa2.1.12.2.1
agent-ai@iblai/agent-ai2.8.02.8.1
web-utils@iblai/web-utils2.1.62.1.11
web-containers@iblai/web-containers1.15.81.16.5
data-layer@iblai/data-layer1.11.11.12.1
mcp@iblai/mcp1.8.41.8.9
iblai-js@iblai/iblai-js2.2.72.3.7

iblai-dm-pro (4.324.0-ai4.332.0-ai)

LLM Spend Caps. Admin-imposed maximum LLM spend over a calendar-aligned interval (day / week / month / year), enforced across three scopes: tenant, agent, and user-per-agent. New SpendCap model (migration 0342) with block and alert_only enforcement modes. When a block-mode cap is exceeded, chat setup returns 402 (error="spend_cap_exceeded") reporting the most-specific cap (user > agent > tenant).

A reconcile_spend_caps Celery beat task (every 15 minutes, configured in dl_manager/settings/client.py) refreshes each cap's cached spend from ClickHouse and fires near-limit admin alerts as alert_thresholds are crossed. Admin REST API under /orgs/<org>/… (RBAC Ibl.Mentor/SpendCaps/*) for CRUD on tenant / agent / user-per-agent caps, returning live current_spend_usd / remaining_usd / is_exceeded.

Status endpoint GET /orgs/<org>/spend-caps/status/<user_id>/ lets members read their own spend zones and percent_used (no dollar amounts). GET /orgs/<org>/spend-caps/agents/ lists every agent-scoped cap for a tenant including mentor_unique_id, mentor_name, and reconciled counters. User-per-agent cap payloads include the capped user's email alongside username.

A SPEND_CAP_ALERT notification type (ibl-notification-consumer 1.43.0, migration 0054) emails platform admins as spend crosses thresholds. SpendCap is registered in Django admin with audit-logging and scope / interval / enforcement / enabled filters.

Grading Results API. Grading results are now exposed via API. Deployment: run migrations on DM.

Web Crawler User-Agent. The web crawler sends an identifying User-Agent header (Iblai-bot/1.0 (+https://ibl.ai/bot)), overridable per-tenant via the WEBCRAWLER_USER_AGENT core Config key. A per-document crawler_extra_headers JSONField (migration 0343) supports sending auth tokens or custom HTTP headers to gated sites. Header values are never logged.

Memory Users Endpoint. New endpoint listing users whose memories you have permission to view. Deployment: run migrations in DM.

iblai LLM Provider. New iblai provider (ibl-ai-mentor-app 3.263.0) covering chat, embeddings, and text-to-speech, powered by a single tenant credential named iblai. Chat model choice is delegated to the gateway's auto-router by default, with an optional rule table for explicit routing. Embeddings use the same model as the openai provider, so switching a tenant requires no re-index. Migration 0345 adds two routing tables and the new provider choices (rolling-safe). Deployment: run python manage.py seed_llm_registry. Switch tenants onto iblai only after rollout completes.

TTS Cost Tracking. OpenAI and Google TTS calls are now traced per request in Langfuse. Run register_langfuse_tts_models once per environment to register their prices.

Platform API Key Expiration. Updating a Platform API Key's expires_in now applies the new expiration, measured from the time of the update.

iblai-os-spa (0.108.90.117.0)

Agent Computer Protocol (ACP). The OS SPA integrates ACP for agent-to-agent interoperability. An in-chat computer use toggle lets users enable screen-based computer use directly from the chat interface; computer use no longer requires a local model.

Human Support Tab. Agents can now have a human-support configuration in their settings.

Sidebar Overhaul. The sidebar is now called "Recents", Search is grouped with it, and pinned chats carry a visible pin marker. Infinite-scroll pagination is available for the projects list.

Searchable Chat History. A searchable chats dialog with recency grouping (today, yesterday, last 7 days, etc.) is available from the sidebar.

Voice Captions. A useLiveKitTranscription hook renders live captions for voice calls; captions are behind a toggle, off by default.

Agent Evaluations. Agent evaluation features are available in the agent settings area.

Grading Tab. Agent settings include a grading tab that responds to MENTOR:ENABLE_GRADING iframe messages from the parent frame.

SEO Foundation. robots.txt, sitemap, manifest, structured metadata, and JSON-LD are now emitted. Public agent pages are indexable with rich metadata. The explore agent-directory pages are also indexable.

Content Rendering. Inline math and currency symbols are correctly disambiguated. LLM-emitted $…$ styling wrappers render as prose instead of LaTeX. Code fence newlines and bodies are preserved in canvas rendering.

Configurable Partner CSP. Partner Content Security Policy hosts are configurable via the CSP_PARTNER_HOSTS environment variable, supporting both HTTPS and WSS origins. S3 presigned media hosts are allowed in connect-src.

Desktop App. macOS builds are notarized Developer ID distributions. Self-signed Windows builds (x64 + arm64) are available. Builds can be locked to a single tenant via IBL_TENANT. The ibl.ai logo is used as the header and macOS app icon (proper squircle). Tauri IPC event emits are marshalled to the main thread.

Dataset Curator Role. A dataset curator / viewer role is available on the access tab.

Agent Settings from SDK. The agent settings tab is sourced from the SDK AgentSettingsTab component.

Clipboard in Embeds. Copy-to-clipboard works even when the embedding page withholds the clipboard permission.

Workflow Renames. Auto-save refetch no longer discards an inline rename in progress.

iblai-edx-pro (sumac.2.45.0sumac.2.49.0)

XBlock Completion API for AI Trainers. New POST /api/ibl/completion/xblock/<usage_id>/complete endpoint (ibl_completion_api 1.9.6 → 1.10.0) allows staff or superuser callers to mark completions on behalf of a learner identified by username. The endpoint requires the learner to be enrolled and accepts only plain completable leaves (HTML, discussion, poll, drag-and-drop-v2, word_cloud, etc.); container/aggregator blocks, graded/scored blocks, and blocks with custom completion tracking (video, SCORM, LTI, agent xblock) are rejected. LMS-only route, inert unless called by a staff/superuser identity. Deployment: picked up on image rebuild + LMS restart, no migrations.

Iframe Completion Tracker. The iframe completion tracker fires publish_completion for HTML/Text XBlocks (ibl-edx-lmsx-addon-theme 0.1.5 → 0.1.6). Tracked elements are treated as visible immediately once the tracker initialises; the configured completion delay is unchanged. Deployment: picked up on image rebuild + LMS restart, no migrations.

ibl-cli (5.53.15.54.0)

Additional OpenID SSO Backends. Four more independent OpenID SSO backends: IBLOpenIDThreeBackend through IBLOpenIDSixBackend. The ibl-edx-base-oauth-sso-backend Tutor plugin template renders IBL_OPENID_SSO_THREE_* through _SIX_* Django settings blocks (each with NAME, OIDC_ENDPOINT, USE_IDP_USERNAME, USERNAME_KEY, FULLNAME_KEY, EMAIL_KEY, FIRST_NAME_KEY, LAST_NAME_KEY, ID_TOKEN_ISSUER, ACCESS_TOKEN_URL, AUTHORIZATION_URL, REVOKE_TOKEN_URL, USERINFO_URL, JWKS_URI, JWT_DECODE_OPTIONS, USE_IDTOKEN_FIELDS), and appends all four backends to THIRD_PARTY_AUTH_BACKENDS. Requires iblai-edx-pro ibl-base-oauth-sso-backend >= 1.11.0.

iblai-lms-spa (0.54.30.60.0)

EdX Iframe Display. The edx iframe display mode changed from display: none to visibility: hidden, allowing embedded content to initialise in the background before becoming visible.

SEO for Courses and Programs. Public course and program about pages (Phase 2) are available behind an allow_self_linking gate. Tenant-aware metadata foundation includes robots.txt, sitemap, Open Graph tags, and JSON-LD. Default page title/branding is "ibl.ai | Agentic LMS".

iOS App Icon. The iOS app icon now uses the blue ibl.ai logo.

Analytics Integration. Analytics SDK memory menu items are integrated into the LMS.

Partner CSP. Configurable partner CSP hosts via CSP_PARTNER_HOSTS, supporting HTTPS and WSS origins.

iblai-auth-spa (2.1.12.2.1)

Application Page. A new application page is available in the auth SPA.

Branding. The ibl.ai logo is always shown and the header logo is enlarged. Per-app theme defaults (skills, analytics) use the ibl.ai logo.

Partner CSP. Partner CSP hosts are configurable via CSP_PARTNER_HOSTS. WSS partner origins are allowed in connect-src.

Stale Tenant Cleanup. A stale selected_tenant no longer triggers an unwanted /join redirect.

@iblai/agent-ai (2.8.02.8.1)

Chat Links. Links in chat messages now open in a new tab instead of navigating the current window.

@iblai/web-utils (2.1.62.1.11)

Chat Phase Tracking. A new ChatPhase type tracks the in-flight turn state (thinking, tool calling, streaming, etc.). useAdvancedChat exposes chatPhase; selectors selectChatPhase and constant IDLE_CHAT_PHASE are exported.

OpenAI-Compatible Remote Chat. An OpenAI-compatible remote chat mode with MCP tool support for computer use is available. Streaming is enabled by default; non-streaming is gated.

Tool Call Improvements. write_todos extracts todo lists from tool calls. tool_call.end frames are captured, and tool calls are upserted by id instead of appended.

Token Forwarding. Preserved tokens are forwarded as edx_jwt_token on native redirect.

Screen Capture. Screen capture support added for Cowork computer use.

@iblai/web-containers (1.15.81.16.5)

Grading. Grader components with a results tab. The grading view endpoint integration is updated.

Agent Skills. Slash-command skill components with consistent-height popups are available in chat.

Time Tracking. The time-tracking hook and provider now send course_id and block_id alongside session data.

API Token Policy. API token policy management is available in the integration settings.

LLM Provider Management. The LLM tab shows ordered provider cards with active/inactive states, the ibl.ai provider logo, and bundled logo fallbacks. The profile Local Models card shows only Model Manager status (models are managed in the LLM tab).

Analytics. Analytics memory feature with profile preview mode. Analytics tabs for watchers. Updates for memory, course, program, and management users views.

Category Search. The Edit Agent category dropdown is interactive, searches by name instead of id, and the category list stays inside the host dialog.

ACP / Cowork. ACP integration with Cowork MCP tool support.

@iblai/data-layer (1.11.11.12.1)

Time Tracking. The data layer now supports course_id and block_id fields for time-tracking requests.

@iblai/mcp (1.8.41.8.9)

Cowork. ACP support merged; Cowork MCP arguments cleaned up for the computer-use flow.

@iblai/iblai-js (2.2.72.3.7)

SDK Updates. Cascading updates from auth, web-containers, web-utils, data-layer, mcp, and agent-ai releases. The SDK bundles the latest versions of all frontend packages.