Skip to content

Releases: LingyiChen-AI/OmniKube

v0.0.15

Choose a tag to compare

@github-actions github-actions released this 06 Jul 06:21

feat: 通用资源 / CRD 支持

新增「API 资源」页,经 API discovery + RESTMapper 动态发现并管理集群内任意资源类型(含 CRD 及未纳入专页的内置资源),未知类型回退 YAML 编辑;新增粗粒度 customresources 权限统一门控非内置资源,角色矩阵加「其它 / 自定义资源」行;新增 GET /api-resources 发现端点;AI 助手同步放开至任意资源(仍受用户本人权限双闸门约束)。

Full Changelog: v0.0.14...v0.0.15

v0.0.13

Choose a tag to compare

@github-actions github-actions released this 04 Jul 07:19

docs(readme): integrated-deploy feature section + gallery screenshots

Captured on the Test cluster (list / editor with resource cards / live WebSocket
publish drawer), light theme to match the existing gallery.

Full Changelog: v0.0.12...v0.0.13

v0.0.12

Choose a tag to compare

@github-actions github-actions released this 04 Jul 02:32

fix(auth): stale token on /login no longer deadlocks the loader

A 401 from the bootstrap GET /me while sitting on /login was misread as a
failed sign-in (path-based heuristic), so the token was never cleared and
the app hung on the full-screen spinner (blank login, can't sign in).

  • interceptor keys the 'stay on page' branch off the request URL
    (POST /login|/change-password), not window.location.pathname, so a
    bootstrap /me 401 falls through to logout + redirect
  • App hydration failure now clears the token instead of swallowing it,
    so a failed /me can never strand the app on the loader

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Full Changelog: v0.0.11...v0.0.12

v0.0.11

Choose a tag to compare

@github-actions github-actions released this 04 Jul 02:22

fix(ai): history popover readable in dark theme

The history list renders in a Popover portal outside the chat window, so the
--ok-ai-* theme vars (defined on the window) didn't resolve there — hover/time
colours broke and the list was hard to read in dark mode. Re-apply the theme
vars + elevated background on the popover content root, and use sky-tinted
hover/active states (with an active accent bar) that read clearly in both themes.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Full Changelog: v0.0.10...v0.0.11

v0.0.10

Choose a tag to compare

@github-actions github-actions released this 03 Jul 08:28

i18n(users): localize the username placeholder per language

It was hardcoded to "jane.doe" in every locale; now shows a localized hint
(zh 例如 zhangsan, en e.g. jane.doe, etc.). Update the users test accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Full Changelog: v0.0.9...v0.0.10

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 03 Jul 08:07

fix(topbar): clear/replace the selected cluster when it's been removed

The top bar only auto-selected when nothing was chosen, so a deleted cluster
stayed selected and kept sending a stale X-Cluster-ID (API 400). Now, after a
successful cluster-list load, reconcile the selection: none → first; removed →
first available, or clear if none remain. Skips reconciliation on load error so
transient failures don't wipe a valid choice.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Full Changelog: v0.0.8...v0.0.9

v0.0.8

Choose a tag to compare

@github-actions github-actions released this 03 Jul 07:55

fix(login): show an error toast on failed sign-in (401 on /login)

The axios interceptor treated every 401 as "session expired", whose toast +
redirect was guarded by pathname !== '/login' — so a wrong password on the login
page surfaced nothing. Now a 401 on /login shows the server's reason
(用户名或密码错误); other 401s keep the expire-and-redirect behavior.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Full Changelog: v0.0.7...v0.0.8

v0.0.7

Choose a tag to compare

@github-actions github-actions released this 03 Jul 07:40

feat(rbac/ui): gate cluster-scoped grants + dashboard perms; fix login captcha flash

  • role matrix: disable cluster-scoped resources (nodes, PVs) under a
    namespace-scoped rule (bulk toggles exclude them, stale grants stripped) with
    an explanatory hint (7 locales)
  • dashboard: gate nodes (cluster-scoped) + events (admin-only) on permission so
    namespace-scoped users no longer trigger 403s
  • users: unify the edit-roles action to the pencil icon, consistent with other edits
  • login: reserve the captcha field's space with a same-size shimmer placeholder
    so it no longer pops in / shifts layout on refresh
  • gitignore docker-compose-local.yml (holds local secrets)

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Full Changelog: v0.0.6...v0.0.7

v0.0.6

Choose a tag to compare

@github-actions github-actions released this 03 Jul 03:43

test: stub getComputedStyle to silence jsdom "Not implemented" log spam

AntD's scrollbar-size measuring calls getComputedStyle(elt, pseudoElt); jsdom
throws on the pseudo-element arg. Drop it in the test setup so the CI log isn't
flooded with the (harmless, caught) error.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

Full Changelog: https://github.com/LingyiChen-AI/OmniKube/commits/v0.0.6

v0.0.5

Choose a tag to compare

@github-actions github-actions released this 12 Jun 08:54

fix: support deployment under a sub-path via NEXT_PUBLIC_BASE_PATH (#1)

Behind an nginx sub-path proxy (location /ops/) every /_next asset and
/api request resolved to the domain root and came back as HTML,
breaking the app with 'Unexpected token <'.

  • next.config.ts: wire basePath from NEXT_PUBLIC_BASE_PATH (build-time)
  • request(): prefix API calls and the 401 login redirect with basePath;
    route the auth pages' direct fetch calls through it
  • ws: client URL and server upgrade path accept the prefixed /ws
  • proxy: build the login redirect from nextUrl.clone() so the basePath
    is preserved (new URL('/login', req.url) drops it)
  • Dockerfile: NEXT_PUBLIC_BASE_PATH build arg; README: nginx sub-path
    deployment guide (proxy_pass without trailing slash)

Verified with a /ops build: pages/assets/API all serve under /ops,
unauthenticated pages 307 to /ops/login, and a default build keeps
serving at the root unchanged.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com