Releases: LingyiChen-AI/OmniKube
Release list
v0.0.15
feat: 通用资源 / CRD 支持
新增「API 资源」页,经 API discovery + RESTMapper 动态发现并管理集群内任意资源类型(含 CRD 及未纳入专页的内置资源),未知类型回退 YAML 编辑;新增粗粒度 customresources 权限统一门控非内置资源,角色矩阵加「其它 / 自定义资源」行;新增 GET /api-resources 发现端点;AI 助手同步放开至任意资源(仍受用户本人权限双闸门约束)。
Full Changelog: v0.0.14...v0.0.15
v0.0.13
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
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
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
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
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
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
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
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
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