v26.4.0-rc.1
Pre-releaseWhat's Changed (v26.3.2 -> v26.4.0)
✨ Features
RBAC (Role-Based Access Control) Management
Added a complete RBAC management system for superadmins, including role CRUD operations, permission management, role assignments, and entity-specific select components for sessions, model services, registries, storage hosts, and keypairs.
- FR-2207: add RBAC management UI specification by @ironAiken2 in #5746
- FR-2219: add RBAC management route, menu item, feature flag, and i18n keys by @ironAiken2 in #5766
- FR-2220: implement role list page with query, table, and filters by @ironAiken2 in #5767
- FR-2221: implement role creation modal with adminCreateRole mutation by @ironAiken2 in #5768
- FR-2222: implement role detail drawer with metadata and tab placeholders by @ironAiken2 in #5769
- FR-2223: extend RoleFormModal for edit mode with adminUpdateRole mutation by @ironAiken2 in #5770
- FR-2224: add role delete and purge with confirmation dialogs by @ironAiken2 in #5771
- FR-2225: implement role assignment management with assign/revoke by @ironAiken2 in #5772
- FR-2226: implement permission management with create/delete by @ironAiken2 in #5773
- FR-2238: migrate RBAC tabs to Role sub-connections with server-side ordering by @ironAiken2 in #5782
- FR-2239: add bulk role assign/revoke mutations by @ironAiken2 in #5783
- FR-2240: add permission update mutation with edit mode by @ironAiken2 in #5784
- FR-2242: implement BAIAdminSessionSelect for RBAC permission modal by @ironAiken2 in #5888
- FR-2244: implement BAIAdminModelServiceSelect for RBAC permission modal by @ironAiken2 in #5889
- FR-2245: implement BAIAdminModelServiceSelect for RBAC permission modal by @ironAiken2 in #5890
- FR-2246: implement BAIAdminKeypairSelect for RBAC permission modal by @ironAiken2 in #5891
- FR-2247: implement BAIAdminContainerRegistrySelect for RBAC permission modal by @ironAiken2 in #5892
- FR-2248: implement BAIAdminStorageHostSelect for RBAC permission modal by @ironAiken2 in #5893
- FR-2402: filter RBAC operations by valid entity-operation combinations by @ironAiken2 in #6231
- FR-2435: replace separate RBAC combination queries with unified rbacPermissionMatrix API by @ironAiken2 in #6327
Diagnostics System Enhancements
Enhanced the diagnostics system with category-based results, CSP frame-src checking, configurable storage thresholds, result export, and auto-diagnostics notification after login.
- FR-2300: add category field to DiagnosticResult type by @agatha197 in #5969
- FR-2300: add CSP frame-src diagnostic check by @agatha197 in #5970
- FR-2300: add configurable storage volume threshold by @agatha197 in #5974
- FR-2300: add toggle to hide passed diagnostics results by @agatha197 in #5976
- FR-2300: add diagnostics result export by @agatha197 in #5977
- FR-2300: add auto-diagnostics notification after login by @agatha197 in #5978
- FR-2429: replace admin diagnostic notifications with sidebar badge by @yomybaby in #6313
Keypair Self-Service Management
Added a new keypair management modal allowing users to issue new keypairs, set main keypair, and deactivate keys with filtering, sorting, and pagination.
- FR-2183: rename MyKeypairInfoModal to legacy and add
@sincebranching by @agatha197 in #6099 - FR-2183: create MyKeypairManagementModal with myKeypairs query, tabs, and table by @agatha197 in #6100
- FR-2183: add issue new keypair mutation and credential result modal by @agatha197 in #6102
- FR-2183: add set as main and deactivate actions for active tab by @agatha197 in #6103
- FR-2183: add filtering, sorting, pagination and fix schema alignment by @agatha197 in #6108
Session Dependency Management
Added session dependency management UI allowing users to define and view dependencies between sessions.
- FR-1741: add session dependency management UI by @agatha197 in #5595
Model Store Improvements
Improved model item UI and added filtering by cloneable vfolder with MOUNT_IN_SESSION permission.
- FR-2382: model item UI improvement by @agatha197 in #6254
- FR-2413: filter model store list by cloneable vfolder with MOUNT_IN_SESSION permission by @agatha197 in #6262
Admin Page Enhancements
Added new superadmin pages for sessions, serving, and data management, along with grouped admin menu items.
- FR-2316: add Admin Session list page for superadmin by @yomybaby in #6124
- FR-2318: add Admin Serving page for superadmin with modify/delete support by @yomybaby in #6125
- FR-2317: add AdminVFolderNodeListPage for superadmin data management by @yomybaby in #6122
- FR-2369: group admin menu items and hide empty groups based on config by @yomybaby in #6165
Authentication & Security
Added concurrent login session guard, distinct login failure messages, password change email modal, and allowed client IP settings.
- FR-2189: add concurrent login session guard with force-login support by @nowgnuesLee in #6174
- FR-2377: add distinct error messages for each login failure type by @ironAiken2 in #6340
- FR-2228: add password change email modal to login form by @ironAiken2 in #6033
- FR-2190: add allowed client IP setting to user profile modal by @ironAiken2 in #6137
Multi-Step Async Notification System
Added a notification system for tracking multi-step asynchronous operations with progress indicators.
Session Launcher Improvements
Improved cluster mode defaults and resource-aware warning for cluster size selection.
- FR-2323: change cluster mode default to multi-node with per-option descriptions by @yomybaby in #6163
- FR-1427: add resource-aware warning for cluster size selection by @yomybaby in #6025
UI Components & Enhancements
Added BAIModal fullscreen mode, BAIBadge semantic color component, BAIDeleteConfirmModal, BAINameActionCell, and other UI improvements.
- FR-2213: add minimize, maximize, and fullscreen mode to BAIModal by @agatha197 in #5744
- FR-1609: add BAIBadge component with semantic color support by @nowgnuesLee in #6175
- FR-2424: add BAIDeleteConfirmModal and apply to resource-policy tables by @yomybaby in #6308
- FR-2411: apply BAINameActionCell to remaining table name columns by @yomybaby in #6273
- FR-2425: add clear-all-selection button to table row selection indicator by @yomybaby in #6321
- FR-2430: add copyable name icon on hover to BAINameActionCell by @yomybaby in #6311
- FR-2432: make current IP address copyable in UserProfileSettingModal by @yomybaby in #6309
- FR-40: add defaultUnit prop to BAIDynamicUnitInputNumber by @yomybaby in #6015
- FR-2302: add DatePicker UI for datetime type in BAIGraphQLPropertyFilter by @nowgnuesLee in #5992
Serving & Endpoint Improvements
Added auto-refresh for endpoint detail page and user purge enhancements with bulk mutation support.
- FR-2401: replace refresh button with auto-refresh button on endpoint detail page by @nowgnuesLee in #6229
- FR-2366: enhance user purge with bulk mutation and soft-delete label improvements by @ironAiken2 in #6155
Theme & Logo Customization
Added per-area logo path and size configuration via theme.json, and updated resource-policy naming.
- FR-2356: add per-area logo path and size configuration via theme.json by @ironAiken2 in #6141
- FR-2427: update resource-policy tab names with resource policy suffix by @yomybaby in #6312
- FR-2428: add policy type prefix to resource-policy modal titles by @yomybaby in #6315
🐛 Bug Fixes
Session & Serving Fixes
Fixed resource display for terminated sessions, multi-node cluster mode conversion, scheduling history timestamp formatting, and LLM Chat Test button enablement.
- FR-2412: display resource amounts for terminated sessions in session list table by @yomybaby in #6272
- FR-2381: convert multi-node x1 to single-node x1 in session launcher by @yomybaby in #6218
- FR-2380: show seconds in scheduling history timestamps by @nowgnuesLee in #6192
- FR-2384: enable LLM Chat Test button when any route is HEALTHY by @nowgnuesLee in #6178
- FR-2385: comment out unsupported traffic ratio column in route list by @nowgnuesLee in #6180
UI & Component Fixes
Fixed table scroll overlap, refresh button positioning, modal type signatures, and various component issues.
- FR-2363: merge defaultColumnOverrides with columnOverrides in BAITable by @yomybaby in #6127
- FR-2410: fix dashboard card table scroll overlap with sticky header by @ironAiken2 in #6266
- FR-2433: standardize refresh button position above tables by @yomybaby in #6314
- fix: correct onCancel type signatures for modal components by @yomybaby in #6027
- fix: resolve ShellScriptEditModal crash and antd deprecation warnings by @agatha197 in #6257
- FR-2408: add missing BAINameActionCell component files by @yomybaby in #6271
Model & Artifact Fixes
Fixed artifact import error display and endpoint status tag color alignment.
- FR-2364: remove nullable artifactRevision size check that caused successful imports to show as errors by @nowgnuesLee in #6130
- FR-2390: align endpoint status tag colors with route status colors by @nowgnuesLee in #6190
Agent & Resource Fixes
Fixed resource bar graph alignment in agent table.
- FR-2319: fix resource bar graph alignment in agent table by @nowgnuesLee in #6084
Form & Validation Fixes
Fixed missing form field dependencies for validation recalculation.
Theme & Notification Fixes
Fixed theme settings single source of truth and notification banner toggle behavior.
- FR-2376: use themeMode as single source of truth for theme settings by @ironAiken2 in #6166
- FR-2337: toggle See Detail/See Summary text and reset notification banner on reconnection by @ironAiken2 in #6167
SSH & Keypair Fixes
Corrected misleading SSH keypair private key warning message.
- FR-2372: correct misleading SSH keypair private key warning message by @yomybaby in #6160
- FR-2415: fix misleading SSH private key warning message by @ironAiken2 in #6267
Build & Infrastructure Fixes
Fixed Node.js OOM crashes, pnpm publish for catalog protocol, RBAC stack review feedback, and dotfiles delete path.
- fix: increase Node.js heap memory limit for dev server to prevent OOM crashes by @yomybaby in #6017
- FR-2357: use pnpm publish to resolve catalog protocol in backend.ai-ui by @nowgnuesLee in #6104
- fix: resolve RBAC stack PR review feedback (#5767~#5891) by @ironAiken2 in #6034
- FR-2414: send dotfiles delete path as query parameter instead of request body by @ironAiken2 in #6264
- fix: make plugins copy optional in serve-release script by @yomybaby in #6139
i18n Fixes
Fixed missing and incorrect translation keys.
- FR-2389: fix i18n translations for FromHuggingFace key by @agatha197 in #6188
- fix: add missing i18n translations for modelService and notification keys by @yomybaby in #6275
- chore: fix untranslated toTextKey in auto-diagnostics notification by @agatha197 in #6116
Documentation Fixes
Fixed cross-page link resolution bug in docs-toolkit.
🔨 Refactoring
Code Cleanup & Modernization
Extracted shared service creation utilities, removed unused web component wrappers, and improved component structure.
- FR-2404: extract shared service creation utilities into useModelServiceLauncher hook by @yomybaby in #6241
- FR-2352: remove unused React-to-WebComponent wrappers and DefaultProvidersForWebComponent by @ironAiken2 in #6149
- FR-2300: move checkSslMismatch to configRules by @agatha197 in #5971
- FR-2020: bundle i18next and react-i18next as dependencies in backend.ai-ui by @nowgnuesLee in #6088
- refactor: add internal Suspense boundary to ModelBrandIcon and improve grid responsiveness by @agatha197 in #6322
Build Tool Migration
Replaced typescript-json-schema with TS Compiler API for theme schema generation.
- FR-2306: replace typescript-json-schema with TS Compiler API for theme schema generation by @yomybaby in #5995
🎨 Style
Visual Improvements
Applied white logo variant for dark mode on the login page.
- FR-2353: use white logo variant on login page in dark mode by @nowgnuesLee in #6086
🧪 E2E Tests
New Test Coverage
Added comprehensive E2E tests for bulk user creation, vfolder operations, chat service, serving deployment, session dependencies, user profile settings, and more.
- FR-2287: add E2E tests for vfolder type selection by @agatha197 in #5935
- FR-2286: add E2E tests for chat service with mock model service by @agatha197 in #5933
- FR-2295: add serving deploy lifecycle integration test by @agatha197 in #5940
- FR-2308: add E2E tests for datetime filter in session scheduling history modal by @nowgnuesLee in #6000
- FR-1817: add E2E tests for bulk user creation feature by @ironAiken2 in #5843
- FR-1741: add E2E tests for session dependency management by @agatha197 in #5601
- FR-2386: add E2E tests for User Profile Setting Modal by @ironAiken2 in #6182
- FR-2381: add E2E tests for multi-node x1 cluster mode warning by @yomybaby in #6220
- e2e: add E2E tests for vfolder mount permission controls by @agatha197 in #5958
- e2e: add E2E tests for forgot password flow by @ironAiken2 in #6133
Test Fixes
Fixed various E2E test issues including strict mode violations, flaky assertions, and Playwright compatibility.
- FR-2275: fix BAIPropertyFilter click timeout in environment E2E tests by @agatha197 in #5943
- FR-2273: fix app-launcher E2E tests to pass without skipping by @agatha197 in #5944
- FR-2278: mark session-lifecycle E2E tests as fixme when no agent available by @agatha197 in #5945
- FR-2274: fix dashboard Resource Group Widget E2E test for empty quota state by @agatha197 in #5947
- FR-2279: fix user-crud E2E test fragile radio assertion and keypair modal name by @agatha197 in #5948
- fix: fix registry delete cancel E2E test strict mode violation by @agatha197 in #5955
- fix: fix session-scheduling-history-modal E2E test strict mode violation by @agatha197 in #5960
- fix: remove .skip from screenshot seed spec for Playwright MCP compatibility by @yomybaby in #6018
- fix: update e2e tests for renamed resource policy modal titles by @yomybaby in #6333
🛠 Chores
Schema & Configuration Updates
Updated GraphQL schema, unified TOML parser, and added Playwright video configuration.
- FR-2388: update GraphQL schema and fix artifactRevision field rename by @ironAiken2 in #6186
- FR-2400: update schema with login history/session types and rename SubStepResult to SubStepResultGQL by @nowgnuesLee in #6222
- FR-2383: unify TOML parser — replace remaining markty-toml with smol-toml by @ironAiken2 in #6253
- FR-2296: add playwright-video.config.ts for e2e GIF recording workflow by @agatha197 in #5951
- FR-2305: bump version to 26.4.0-alpha.0 and update dependencies by @yomybaby in #5985
i18n & Tool Updates
Added i18n translations for RBAC and diagnostics keys, and updated development tools.
- FR-2237: add i18n translations for RBAC keys across 19 languages by @ironAiken2 in #5778
- FR-2300: add i18n translations for diagnostics keys across all languages by @agatha197 in #5980
- FR-2298: update Jira tool references from fw-jira to jira-workflow skill by @yomybaby in #5963
- FR-2387: add playwright-cli and webui-connection-info skills by @yomybaby in #6184
📝 Documentation
Documentation Updates
Updated E2E coverage report and added bulk user creation documentation.
- FR-2310: update E2E coverage report with comprehensive audit by @yomybaby in #6013
- FR-1817: add bulk user creation documentation to admin menu by @ironAiken2 in #5851
Feature Specs
Added feature specifications for diagnostics, multi-step notifications, model store improvements, and keypair management.
- FR-2301: add diagnostics system enhancement feature spec by @agatha197 in #5968
- FR-2391: add multi-step async notification feature spec by @yomybaby in #6193
- FR-2382: add Model Store improvement feature spec by @yomybaby in #6173
- FR-2183: add keypair self-service management feature spec by @agatha197 in #6019
Full Changelog: v26.3.2...v26.4.0