Skip to content

v26.8.0

Latest

Choose a tag to compare

@yomybaby yomybaby released this 31 Jul 09:01

What's Changed (v26.7.3 -> v26.8.0)

✨ Features

RBAC Permission Management

Reworked the RBAC surface around scope-level editing: a detailed permissions tab with per-scope-type tables, a scope-level edit modal, multi-scope bulk editing with keep-as-is semantics, and clearer feedback on save.

Scope-Aware Routing & URL State

The current project and scope are now encoded into the URL routing scheme, with the router owning 404 handling and route-handle-declared access control. Page state migrated from use-query-params to nuqs, and multi-tab pages gained a per-tab URL-persisted table state pattern.

Auto-Refresh Controls

Introduced an opt-in auto-refresh interval dropdown on BAIFetchKeyButton with an animated countdown border, rolled it out to polling consumers with per-consumer defaults chosen by data volatility, and unified container log refresh on the same control.

Administration & Maintenance

System announcements can now be authored and managed directly from the WebUI, and resource-group administration gained SFTP settings.

Sessions & Model Serving

Session listings surface image metadata and idle-checker reclamation status, and the Start from URL modal gained an experimental Hugging Face model import tab.

Bulk Actions & Credentials

Bulk operations now report partial failures through a shared error modal that preserves form state, and credential management gained bulk deactivation plus a v2 user selector.

UI Components & Theming

The user theme selector was refined around product-owned built-in families, a tabbed Downloads modal was added, and BAITagList gained a text/hover overflow variant for table cells.

Terminology Governance

Built out a terminology governance system: approved verbs, an unknown-term checker with precedence and rename rules, a high-signal near-duplicate check, non-English avoid rows with a precision self-test harness, and CI gating that fails verification on terminology drift across every language and the user manual.

Developer Experience

Dev-environment work focused on file-descriptor pressure from watchers, opt-in type checking, login pre-fill, and a migration of the stacked-PR workflow to GitHub Stacked PRs.

🐛 Bug Fixes

Routing & URL State

Follow-up fixes to the scope-aware routing rollout — URL project validation, project switching, and a nuqs render-phase update loss.

Backward Compatibility

Guards so RBAC surfaces keep working against managers older than 26.8.0.

Model Serving & Chat

Fixes across the deployment and chat flows — endpoint visibility during rollout, the token selector, recovery form rendering, and preset review/description details.

Sessions & Connection Info

Connection-info failures now surface properly instead of showing a bogus loopback dialog, and app launches carry through their port and visibility settings.

  • FR-3359: surface TCP connection info failures instead of bogus 127.0.0.1 SSH/SFTP dialog by @ironAiken2 in #8367, FR-3396: stretch SSH/SFTP connection modal so values render on one line by @agatha197 in #8499
  • FR-3343: pass open-to-public and preferred-port settings through to TensorBoard and confirmation app launches by @nowgnuesLee in #8327

Tables, Filters & Dashboard

Corrections to property filters, expanded rows, scheduling history, dashboard suspensions, and the Fair Share warning state.

Internationalization

Locale detection now runs at i18n init so the login screen respects the browser language, and a group→project terminology fix was retranslated across 20 locales.

Build, CI & Tooling

Build hardening and pipeline repairs across the docs toolkit, dev process lifecycle, and the React production build.

  • fix: guard writeHashedAsset against path traversal via logicalName by @yomybaby in #8293
  • FR-3214: kill the whole dev process group on shutdown so leaked watch orphans don't exhaust file descriptors by @nowgnuesLee in #8156
  • fix: Raise Node heap limit for the React production build by @rapsealk in #7955, FR-3338: resolve eslint-plugin-react-hooks 7.1.1 compiler diagnostics by @nowgnuesLee in #8316
  • FR-3321: make docs-toolkit npm publish workable from CI by @yomybaby in #8273, FR-3321: publish docs-toolkit with pnpm, matching backend.ai-ui by @yomybaby in #8305, FR-3322: resolve release tag from env so PDF upload survives the Playwright container by @yomybaby in #8275
  • fix(docs-toolkit): repair PDF stamp glyphs, one-page cover, and reader outline by @rapsealk in #8271, FR-3360: bump sharp to ^0.35.1 to restore docs-toolkit type resolution by @yomybaby in #8370
  • FR-3319: add opt-in polling watcher to survive macOS fseventsd stream drops by @yomybaby in #8262
  • fix: use token-based color for provisioning/warming-up replica tags by @yomybaby in #7879

🔨 Refactoring

Resource slot metadata was centralized into a shared provider, 404 handling moved into the router, and PDF stamp fonts are now subset via upstream fontkit.

🎨 Style

Edit terminology and icons were unified across forms and row actions, bulk action buttons were standardized in table selection toolbars, and several smaller display adjustments landed.

🧪 E2E Tests

Targeted regression coverage for the URL-desync and Hugging Face import work, locator repairs for the vfolder suite, plus the ongoing automated auto-heal runs.

📝 Documentation

🛠 Chores

Repository housekeeping: reviewer routing, CI configuration, the version bump, and dependency updates.

🙌 New Contributors

Full Changelog: v26.7.3...v26.8.0