v26.4.6
What's Changed (v26.4.5 -> v26.4.6)
✨ Features
sToken Login Boundary
Introduces a new STokenLoginBoundary component that centralizes sToken-based authentication handling. The feature lands across several incremental PRs — spec, helpers, hook, core component, fallback UI, and migrations of LoginView and EduAppLauncher to the new boundary.
- FR-2618: add sToken login boundary component spec by @nowgnuesLee in #6828
- FR-2629: extend tokenLogin helper with optional extraParams by @nowgnuesLee in #6851
- FR-2630: add useSToken hook with nuqs and stoken deprecation warning by @nowgnuesLee in #6852
- FR-2631: implement STokenLoginBoundary component core by @nowgnuesLee in #6853
- FR-2632: add default fallback and error card UI for STokenLoginBoundary by @nowgnuesLee in #6855
- FR-2626: migrate LoginView sToken path to STokenLoginBoundary by @nowgnuesLee in #6861
- FR-2627: migrate EduAppLauncher sToken path to STokenLoginBoundary by @nowgnuesLee in #6864
CI / Project Automation
Adds automation around project status tracking via GitHub Actions.
🐛 Bug Fixes
RBAC & Session Reliability
Corrects RoleDetailDrawer queries against the updated schema and ensures cached access keys stay in sync when the main keypair is switched.
- FR-2646: align RoleDetailDrawer queries with updated schema by @ironAiken2 in #6882
- FR-2583: update cached access key in client config after switching main keypair by @agatha197 in #6621
Resilience & UX Fallbacks
Improves error surfacing when external configuration or services misbehave, and preserves final TPS values in the LLM Playground after a response completes.
- FR-2620: load fallback URL when config.toml parse fails by @agatha197 in #6836
- FR-2615: surface error and fallback in VSCode Desktop connection modal by @agatha197 in #6825
- FR-2582: preserve final TPS value after LLM Playground response ends by @yomybaby in #6707
🔨 Refactoring
Confirmation UX Standardization
Consolidates confirmation dialogs behind BAIConfirmModalWithInput and Popconfirm for a consistent destructive/reversible action pattern across the app.
- FR-2479: standardize confirmation UX with BAIConfirmModalWithInput and Popconfirm by @ironAiken2 in #6471
Build & Runtime Cleanup
Self-hosts Monaco Editor to remove the jsDelivr CDN dependency, simplifies memoization by relying on the React Compiler, and renames an endpoint hook for clarity.
- FR-2697: self-host Monaco Editor to eliminate jsDelivr CDN dependency by @yomybaby in #6959
- FR-2616: rely on React Compiler ('use memo') for memoization by @nowgnuesLee in #6857
- FR-2628: rename useEduAppApiEndpoint to useResolvedApiEndpoint by @nowgnuesLee in #6850
🛠 Chores
Release Pipeline & Dependencies
Streamlines the release workflow, upgrades GitHub Actions runners, and cleans up stale dependencies and lockfile artifacts.
- FR-2612: optimize release workflow with parallel jobs and eliminate double React build by @yomybaby in #6765
- FR-2614: bump to 26.5.0-alpha.0 and update dependencies by @yomybaby in #6820
- FR-2621: upgrade deprecated Node.js 20 GitHub Actions to v5 by @yomybaby in #6840
- FR-2692: remove stray lockfile artifact and refresh pnpm-lock.yaml by @yomybaby in #6939
- FR-2698: remove deprecated @types/uuid stub by @yomybaby in #6961
🧪 E2E & Unit Tests
Authentication & RBAC Coverage
Expands automated coverage across login error handling, concurrent session guards, and the full RBAC role management flow.
- FR-2436: add E2E tests for concurrent login session guard by @nowgnuesLee in #6326
- FR-2377: add E2E tests for login error messages by @ironAiken2 in #6345
- FR-2504: add E2E tests for RBAC role management by @ironAiken2 in #6531
Serving & Component Tests
Rewrites failing Serving E2E tests and adds unit coverage for the new STokenLoginBoundary component.
- FR-2472: review and rewrite failing Serving E2E tests by @ironAiken2 in #6472
- FR-2633: add unit tests for STokenLoginBoundary by @nowgnuesLee in #6856
📝 Documentation
Model Serving & Auto Scaling (26.4 Updates)
Comprehensive refresh of model serving documentation for the 26.4 release, including Model Store V2, Auto Scaling Rules V2, service launcher fields, runtime parameters for vLLM/SGLang, health check diagrams, and endpoint detail page content.
- FR-2543: update model serving documentation with new features by @nowgnuesLee in #6611
- FR-2571: document Model Store V2 and Auto Scaling Rules V2 (26.4.0+) by @nowgnuesLee in #6760
- docs: add endpoint detail page revision info, alert banners, and edit behavior docs by @agatha197 in #6767
- FR-2571: address 26.4 docs feedback — remove legacy model serving sections and apply KO wording fixes by @yomybaby in #6778
- FR-2603: apply 26.4 model serving doc feedback — service launcher fields, vLLM/SGLang runtime params by @agatha197 in #6804
- FR-2603: update auto scaling V2 screenshots, fix bold rendering, correct health check initial status, revise condition/cooldown terminology by @agatha197 in #6807
- FR-2603: add health check SVG diagrams for all 4 languages, replace ASCII art by @agatha197 in #6839
- FR-2623: reorganize admin model serving docs and remove clone references by @agatha197 in #6844
Screenshot & Translation Polish
Recaptures screenshots in light mode where needed, mandates language-specific captures, and fills in remaining translations for ja/th docs.
- FR-2569: recapture start_announcement_banner in light mode by @nowgnuesLee in #6625
- FR-2570: recapture login screenshots with TOTP OTP screen in light mode by @nowgnuesLee in #6630
- FR-2571: add Allowed Client IPs field to My Account dialog documentation by @nowgnuesLee in #6631
- FR-2571: address PR #6631 review feedback (excl. model store) by @nowgnuesLee in #6708
- FR-2624: translate remaining English headings in ja and th docs by @agatha197 in #6846
- FR-2645: mandate language-specific captures + replace 6 dark-mode WebUI screenshots by @ironAiken2 in #6868
Full Changelog: v26.4.5...v26.4.6