Frontend
API Changes
- Global roles query parameter integration — Added global roles filtering to the roles endpoint via new query parameter support in the data layer API slice.
- Tool type streaming architecture — Implemented comprehensive streaming support for tool types in advanced chat hooks with full test coverage and real-time updates.
- forceRedirect authentication bypass — New
forceRedirectoption inredirectToAuthSpa()allows callers to bypass tenant-switching and login/logout timestamp checks for immediate redirect scenarios.
Data Model
- Agent text-to-speech integration — New TTS API endpoints and data layer constants for agent voice synthesis with real-time audio streaming capabilities.
- Integration credential schema v2 migration — Enhanced credential schema model with improved field validation and security metadata for external service integrations.
- Call configuration models — New voice and screen share configuration data models with pipeline validation and settings persistence.
UI Components
- Agent voice and screen share tabs — Comprehensive voice communication interface with audio preview, voice picker modal, call configuration settings, and screen share capabilities including unit tests and Playwright automation helpers.
- iOS restriction modal SDK integration — Apple restriction modal moved to SDK with credit balance integration and reactive updates.
- Project management UI overhaul — New project creation, deletion, and renaming modals with full sidebar integration and project chat navigation.
- Apple restriction modal components — Platform-specific restriction handling with credit balance updates and user notification systems.
Infrastructure
- Tauri plugin compatibility fixes — Resolved
@tauri-apps/plugin-osresolution failures in web-containers vitest config and web-utils rollup build with mock stubs and external marking. - Advertising tenant access policy — Removed auto-redirect restrictions allowing users to visit advertising tenant agents via direct URL access.
Backend
API Changes
- CRM REST endpoints — Complete CRM domain with
pipelines/,deals/,activities/,persons/,organizations/endpoints supporting full CRUD operations, pipeline stage transitions, and deal state management. - Chat privacy control endpoints — Four-tier hierarchy with tenant-level, session-level, and user-level privacy controls via
GET/PATCH /chat-privacy-config/,POST /disable-chathistory/, andGET /chat-privacy-effective/. - Anonymous platform configuration endpoint — New
GET /core/users/platforms/config/public/for unauthenticated platform policy checks with throttling. - RBAC action catalog endpoints —
GET /core/rbac/actions/tree/(hierarchical) andGET /core/rbac/actions/definitions/(flat) for RBAC action discovery and UI autocomplete. - Paginated catalog search — New
GET /catalog/resources/search/withStandardPageNumberPagination, filtering, and N+1 query optimization. - Chat run tracking API — Read-only
/users/{user_id}/chat-run-trackers/endpoint with timing breakdowns, LLM provider metrics, and failure categorization.
Data Model
- CRM domain implementation — Platform-scoped
Pipeline/PipelineStage/LeadSource/Deal/Activity/Tagmodels with conditional unique constraints and service-managed state derivation. - LLM model registry with per-model kwargs — New
LLMModelRegistry.kwargsJSONField for model-specific initialization overrides (temperature, streaming, reasoning,use_responses_api) replacing hardcoded constants. - Chat privacy session controls —
Session.disable_chathistoryfield enabling per-conversation privacy with one-way toggle protection and student unlinking. - Chat run observability —
ChatRunTrackermodel capturing request-level timing, provider fallbacks, failure categories, andgeneration_idlinking toChatMessageHistory. - Disposable email domain blocking — Four-model system:
DisposableEmailDomain(blocklist),DisposableEmailDomainAllowlist(overrides),DisposableEmailRefreshLog(sync audit),DisposableEmailBlockConfig(runtime toggle).
Security Capabilities
- Disposable email blocking across registration flows — End-to-end protection covering form signup, SSO browser pipeline, SSO API tokens, magic-link authentication, and all eight custom IBL OAuth/SSO backends with upstream domain sync.
- Chat privacy memory protection — Single-turn semantics for DISABLED mode: no
ChatMessageHistorywrites, empty reads from all four read paths, no in-process buffer, andSession.studentnullification. - RBAC action registry enforcement — Production error logging for unregistered actions with strict CI validation via
StrictActionRegistrypytest plugin.
Infrastructure
- Migration backward-compatibility validation — Real
sqlmigrateSQL analysis replacing static AST engine, detecting DROP/RENAME operations that break running code with Claude-powered risk assessment. - CRM pipeline state machine — Atomic deal stage transitions with
select_for_updateserialization, auditActivitygeneration, anddeal_won/deal_lostsignal dispatch. - Anonymous search tenant opt-out enforcement — Server-side respect for
mentor_include_community_mentorsflag preventing API bypass of tenant community policy. - Integration credential schema v2 finalization — Data migration converting v1 shape (
{field: "string"}) to v2 ({field: {type, is_sensitive}}) with fail-closed sensitive field detection. - Starlette CVE-2026-48710 update — Security update to starlette 1.1.0 addressing identified vulnerability.
Infrastructure
- Agent and SkillsAI SPA support — Complete docker-compose templates, env configurations, and CLI integration for
agent.{BASE_DOMAIN}(port 5005) andskillsai.{BASE_DOMAIN}(port 5006) with inheritance from mentor/skills configurations. - CourseAI and VideoAI SPA deployment — New standalone SPAs at
course.ibl.aiandvideo.ibl.aiwith nginx server blocks, image catalog integration, and operator opt-in flags. - HQ to OS subdomain migration — Complete rename from
/hqsubpath toos.ibl.aistandalone domain with fallback removal and default-false rollout safety. - Skills SPA header configuration — Six new operator-tunable feature flags:
HIDE_DISCOVER_TAB,ADDITIONAL_LEFT/RIGHT_HEADER_MENU_ITEMS,ENABLE_AI_ANALYTICS_HEADER_MENU,ENABLE_STUDIO_HEADER_MENU,ENABLE_STATIC_COPYRIGHT. - Disposable email blocking configuration —
IBL_DISPOSABLE_EMAIL_BLOCK_ENABLEDDjango setting exposed as operator-facing config key for incident-response kill-switch capability.
Documentation
- RBAC skill documentation — Comprehensive iblai-rbac skill with default platform roles, account management policies screenshot, and default-roles.py reference implementation.
- Agent chat sidebar integration guide — Documentation for wrapping the Chat component with SDK
AppSidebarincluding projects dropdown, pinned/recent messages, and host content integration patterns. - Project management skill updates — Renamed
iblai-projectstoiblai-projectwith updated documentation and visual references.
REST API Changelog
🆕 New Endpoints
GET /api/ai-account/orgs/{org}/integration-credential/schema/v2/— V2 credential schema with enhanced field metadataGET /api/ai-mentor/orgs/{org}/users/{user_id}/chat-privacy-effective/— Resolved chat privacy mode with source and lock statusPOST /api/ai-mentor/orgs/{org}/users/{user_id}/sessions/{session_id}/disable-chathistory/— One-way session privacy toggleGET /api/ai-mentor/orgs/{org}/users/{user_id}/chat-run-trackers/— Chat observability with timing and provider metricsGET /api/ai-mentor/orgs/{org}/users/{user_id}/chat-run-trackers/{id}/— Individual chat run detailGET /api/catalog/resources/search/— Paginated catalog resource search with filteringGET /api/core/rbac/actions/definitions/— Flat RBAC action dictionaryGET /api/core/rbac/actions/tree/— Hierarchical RBAC action treeGET /api/core/users/platforms/config/public/— Anonymous platform configuration accessGET/POST /api/crm/organizations/,/api/crm/persons/,/api/crm/persons/{id}/invite/,/api/crm/persons/{id}/link-user/,/api/crm/persons/merge/— Complete CRM REST API
🗑️ Removed Endpoints
DELETE /api/ai-mentor/orgs/{org}/webhooks/github/pullrequest/— Deprecated GitHub webhook endpoint removed