v26.4.8-rc.0
Pre-releaseWhat's Changed (v26.4.7 -> v26.4.8-rc.0)
This RC syncs the 26.4 release line with main, bringing the Vite/Vitest migration, the new Deployment management feature, the docs site uplift, VFolder V2 GraphQL migrations, and the Prometheus Query Preset admin UI into the 26.4 patch line.
✨ Features
Vite / Vitest Migration
Replaced Craco/Webpack with Vite for dev server, production build, and Electron publicPath, and migrated the entire test suite from Jest to Vitest. Includes vite-plugin-pwa service worker, BUI i18n context isolation, and CI coverage reporting.
- FR-2606: Vite PoC phase 1 — dev server + HMR + React Compiler parity by @nowgnuesLee in #6869, restore BUI i18n context isolation in #6870
- FR-2607: Vite spike answer — es6:// Electron publicPath via renderBuiltUrl by @nowgnuesLee in #6871
- FR-2610: Vite dev-reload plugin for i18n / theme / config.toml by @nowgnuesLee in #6872
- FR-2608: Vite production build with vite-plugin-pwa service worker by @nowgnuesLee in #6873
- FR-2609: Vitest migration for react/ (856/856 tests) by @nowgnuesLee in #6874, migrate BUI + root tests in #6875
- FR-2611: retire Craco/Webpack — build, Makefile, CI all on Vite/Vitest by @nowgnuesLee in #6876
- FR-2744: restore Vitest coverage reporting in CI by @nowgnuesLee in #7065
- FR-2746: re-enable 5 tests skipped during Vitest migration by @nowgnuesLee in #7071
- FR-2748: fully migrate test files from jest.* to vi.* and align TS globals by @nowgnuesLee in #7083
- FR-2796: hot-reload i18n JSON edits during dev by @yomybaby in #7211
- FR-2701: replace port-offset dev config with Portless by @yomybaby in #6983
- FR-2794: add dev-server Claude Code skill by @yomybaby in #7208
Deployment Management
Introduced the new Deployment feature set covering routing, list/detail pages, status tags, owner info, project admin views, and post-launch UX feedback for the deployment-centric model serving workflow.
- FR-1368: deployment infrastructure — feature flag, i18n keys, routes, sidebar by @agatha197 in #6904; shared UI components (ReplicaStatusTag, DeploymentStatusTag, DeploymentOwnerInfo) in #6910; list table and pages in #6916; detail with config section and 4 tabs in #6917
- FR-2577: project admin deployments page by @yomybaby in #6698
- FR-2664: split config card, add endpoint URL, imageV2, reorder tabs by @agatha197 in #7102
- FR-2767: redirect to launcher when no deployment presets available by @agatha197 in #7136
- FR-2750: deployment preset management UI feature spec by @agatha197 in #7091
- FR-2786: improve ModelCardV2 filter — typed filters, renderInput, BAISelect onSearch fix by @agatha197 in #7183
Prometheus Query Preset (Admin Serving)
Added a new Prometheus Query Preset admin UI under AdminServingPage with full CRUD, live preview, filtering, sorting, persisted column overrides, copyable templates, and i18n.
- FR-2451: prometheus tab scaffolding by @agatha197 in #7082; list table in #7084; create modal in #7085; delete confirmation in #7086; edit modal with live preview in #7094; polish preset list with BAINameActionCell, copyable QueryTemplate, column settings in #7095
sToken Login Boundary
Refactored sToken-based login flows into a unified STokenLoginBoundary, handling TOTP and concurrent sessions inline and replacing scattered routing logic in LoginView and EduAppLauncher.
- FR-2618: sToken login boundary component spec by @nowgnuesLee in #6828
- FR-2629: extend tokenLogin helper with optional extraParams by @nowgnuesLee in #6851
- FR-2630: useSToken hook with nuqs and stoken deprecation warning by @nowgnuesLee in #6852
- FR-2631: STokenLoginBoundary component core by @nowgnuesLee in #6853
- FR-2632: default fallback and error card UI by @nowgnuesLee in #6855
- FR-2626: migrate LoginView sToken path to STokenLoginBoundary by @nowgnuesLee in #6861
- FR-2627: migrate EduAppLauncher sToken path by @nowgnuesLee in #6864
- FR-2616: handle totp and concurrent-session inline by @nowgnuesLee in #6897
VFolder V2 GraphQL Migration
Continued migration of VFolder operations to the Strawberry V2 GraphQL API across creation, trash lifecycle, single-folder reads, notifications, and a new project admin data page.
- FR-2593: VFolder creation modal using V2 GraphQL mutation by @ironAiken2 in #6759
- FR-2613: VFolder trash lifecycle mutations to V2 by @ironAiken2 in #6817
- FR-2619: single-folder detail reads to vfolderV2 query by @ironAiken2 in #6842
- FR-2688: notification item VirtualFolderNode branch to V2 by @ironAiken2 in #6934
- FR-2691: relocate /data header panels — Dashboard + host-capacity cell by @ironAiken2 in #6941
- FR-2696: project admin data page by @ironAiken2 in #6962
Session Launcher
Moved the session count selector into the session start button's split dropdown for a cleaner default flow.
Documentation Site Uplift
Major redesign of the WebUI docs site spanning routing, IA, design tokens, dark mode, code blocks, search, version selection, AWS Amplify multi-version deployment, per-language PDF builds, and SEO/sharing metadata.
- FR-2711: docs site production uplift feature spec by @yomybaby in #6988, dev plan in #7004
- FR-2713: F1 site entry and multilingual routing in #7008
- FR-2714: F2 SEO and sharing metadata in #7012
- FR-2715: F3 information architecture (sidebar, TOC, breadcrumbs) in #7009
- FR-2716: F4 code-block syntax highlighting and copy button in #7010
- FR-2717: F5 build robustness and static asset optimization in #7006
- FR-2718: F6 versioned docs and minor-grained version selector in #7011
- FR-2719: per-language User Guide PDFs in CI release workflow in #7014
- FR-2722: --optimize-images flag for WebP/AVIF generation in #7028
- FR-2723: version-mismatch UX notice and view-latest banner in #7029
- FR-2726: BAI design — tokens/typography in #7032, topbar/sider/TOC in #7033, content components in #7034, dark-mode/mobile drawer/search in #7035
- FR-2728: replace lang-switcher pill row with native select in #7041
- FR-2730: WebUI docs multi-version deployment v1 spec in #7045
- FR-2735: amplify.yml for multi-version docs deployment in #7058
- FR-2733: 'Previous versions' selector entry with legacyDocsUrl in #7059
- FR-2731: pdfTag field in docs-toolkit versions schema in #7057
- FR-2732: per-version PDF download card on landing page in #7060
- FR-2734: declare versions and fix pdfFilenameTemplate in #7061
- FR-2749: web-only home page, language-stable URLs, icon-only language switcher in #7088
- FR-2755: align web docs code-block UI with design in #7107
- FR-2756: introduce shellsession pseudo-lang for terminal transcripts in #7115
Docs Toolkit Test Coverage
Added a docs-toolkit example boilerplate and expanded unit/E2E/PDF integration tests.
- FR-2782: docs toolkit & site test coverage uplift spec by @yomybaby in #7180
- FR-2783: docs-toolkit example boilerplate package by @yomybaby in #7181
- FR-2784: expand toolkit unit test coverage by @yomybaby in #7182
- FR-2785: example-driven E2E + PDF integration tests by @yomybaby in #7186
🐛 Bug Fixes
Deployment & Model Serving
Repaired schema-aligned mutation calls, preserved selected presets, and applied UX feedback after the deployment launcher migration.
- FR-2774: query runtime variant id and decode to UUID for addModelRevision by @nowgnuesLee in #7152
- FR-2773: preserve auto-selected resourcePresetId across applyInitialValues by @nowgnuesLee in #7153
- FR-2776: adapt addModelRevision call sites to new schema by @nowgnuesLee in #7158
- FR-2767: apply deployment migration feedback by @agatha197 in #7141
- FR-2780: deployment launcher post-migration feedback by @ironAiken2 in #7167
- FR-2787: deployment CRUD UI/UX improvements by @agatha197 in #7191
- FR-2709: resolve notification render loop and sider init error by @agatha197 in #6985
RBAC & i18n
Fixed Korean RBAC translations, localized scope names in the permission modal, and switched RBAC revoke/remove flows to a Popconfirm-style modal.
- FR-2775: localize ROLE_ASSIGNMENT and resolve scope name in permission modal by @ironAiken2 in #7155
- FR-2803: correct Korean RBAC translations to use 역할 and 동작 by @yomybaby in #7229
- FR-2804: use Popconfirm-style modal for reversible RBAC revoke / remove flows by @yomybaby in #7231
Vite Build Polish & Dev Server
Cleaned up residual issues from the Vite migration including Monaco self-hosting, Electron publicPath, and dev-time theme header color.
- FR-2608: disable vite-plugin-pwa auto-manifest to preserve manifest.json by @nowgnuesLee in #6877
- FR-2606: globalThis.packageVersion in WebUISider in #6878, @vite-ignore in dynamic plugin imports in #6879, restore Monaco self-hosting in dev in #7104, clear residual build-time warnings in #7113
- FR-2607: align Electron publicPath patch with Vite output by @yomybaby in #7189
- FR-2779: respect PORTLESS_PORT env var as Portless daemon-port fallback by @yomybaby in #7164
- FR-2795: restore dev-time theme header color override after Vite migration by @yomybaby in #7209
Misc Frontend
Fixed file upload status reset and minor UX glitches.
- FR-2777: reset upload status when a new cycle starts after the previous one ended by @ironAiken2 in #7160
Docs Site Build & UX
Stabilized docs-archive and Amplify build pipelines, fixed metadata propagation, and polished UI details across banner, sidebar, scrollspy, mobile drawer, and PDF font selection.
- FR-2720: repair broken cross-reference anchors by @yomybaby in #7016
- FR-2721: CJK-capable font for PDF header/footer stamp by @yomybaby in #7027
- FR-2728: preview-server URL handling in #7039, CSS quick fixes in #7040, figure caption / lede / table fixes in #7042
- FR-2738: docs-archive workflow fixes — pin pnpm@9 in #7073, pnpm@10 to match engines in #7074, --no-frozen-lockfile in #7075, Node from .nvmrc in #7076, build docs-toolkit before build:web in #7077, src/ overlay model in #7093, --no-strict in Amplify build in #7097
- FR-2735: align amplify.yml with docs-archive fixes in #7078, Amplify monorepo manifest schema in #7089
- FR-2745: PDF font selection for Japanese and Thai builds on macOS by @agatha197 in #7068
- FR-2753: make root docs index a redirect-only page by @yomybaby in #7099
- FR-2754: per-version metadata propagation by @yomybaby in #7103
- FR-2758: polish docs site banner, sidebar, scrollspy, mobile drawer by @yomybaby in #7117
- FR-2759: copy per-chapter images directories in build by @yomybaby in #7119
- FR-2766: webui + storybook entries in amplify.yml monorepo manifest by @yomybaby in #7132
- FR-2765: docs site follow-ups — Lablup transliteration, 가/A icon, sort order by @yomybaby in #7133
- FR-2770: polish docs sider version selector and mobile topbar layout by @yomybaby in #7143
🔨 Refactoring
UI Conventions & Dead Code
Standardized the deployment card UX with BAICard conventions and removed dead Lit-bridge events.
- FR-2772: unify deployment card UX with BAICard conventions by @ironAiken2 in #7146
- FR-2727: clean up dead Lit-bridge events inside useWebUINavigate by @nowgnuesLee in #7036
- FR-2451: polish Prometheus query preset list — column groups, persisted overrides, helper consolidation by @nowgnuesLee in #7221
Workspace Architecture
Reduced external dependencies and reorganized internal package layout.
🛠 Chores
CI, Tooling & Authoring
Refreshed CI workflows, added authoring conventions for terminal transcripts, and added Claude Code agent ergonomics.
- FR-2700: React topic-level skill guides for Claude Code agents by @yomybaby in #6966
- FR-2707: clickable VS Code link in Claude Code statusline by @yomybaby in #6977
- FR-2708: git safety indicator in Claude Code statusline by @yomybaby in #6982
- FR-2712: .watchmanconfig to ignore heavy directories by @yomybaby in #6991
- FR-2747: replace branch-lockfile auto-merge with weekly scheduled workflow by @yomybaby in #7080
- FR-2757: migrate bash blocks with prompts to shellsession across 4 locales by @yomybaby in #7116
- FR-2763: refine FR-2757 with content-aware bash vs shellsession judgement by @yomybaby in #7124
- FR-2644: hide react-grab toolbar in development mode by @yomybaby in #6863
📝 Documentation
Authoring Guides & Runbooks
Updated authoring conventions and added a release runbook for multi-version docs deployment.
- FR-2736: release runbook for multi-version docs site deployment by @yomybaby in #7056
- FR-2764: authoring guides for shellsession/bash conventions and inline-comment localization by @yomybaby in #7128
Screenshots
Recaptured locale screenshots at 2× zoom and refreshed remaining manual screenshots across 4 languages.
- FR-2650: update all locale screenshots to 2× zoom for sharper text by @ironAiken2 in #6891
- FR-2743: capture remaining manual screenshots in 4 langs (FR-2650 follow-up) by @ironAiken2 in #7072
🧪 E2E Tests
Added an E2E suite for Prometheus Query Preset CRUD, filter, sort, and table settings.
- FR-2451: E2E tests for prometheus preset CRUD, filter, sort, and table settings by @agatha197 in #7108
Full Changelog: v26.4.7...v26.4.8-rc.0