Releases: kubestellar/console
Releases · kubestellar/console
v0.3.18-weekly
Changelog
- c324cc3 Add ArgoCD ApplicationSet integration with security and error handling fixes (#4423)
- 4691de5 Add Claude Code GitHub Workflow (#4471)
- a20db04 Add missing ARIA labels to interactive elements (#4893)
- 9cf9296 Add query parameter validation to MCP endpoints (#4791)
- 2d6eae6 Add screenshot 1 for issue #4398
- 977cbda Add screenshot 1 for issue #4409
- e16cf08 Add screenshot 1 for issue #4543
- 9804aa6 Add screenshot 1 for issue #4565
- e1e713a Add screenshot 1 for issue #4954
- 6c5e2ea Add unmount guards to UpgradeStatus and PodHealthTrend (#5008)
- 3a18206 Extract 278 hardcoded strings to i18n translation keys (#4506)
- 9f685fd Extract hardcoded hex colors from chart components into named constants (#5064)
- c8de766 Fix 15 Go backend issues: mutex, scanner, type safety, SSE, cache, permissions (#4823)
- 900ffbc Fix 15 Go backend security audit findings (#5039)
- e68d6d9 Fix 6 persistent test failures blocking coverage (#4638)
- 734d308 Fix Checkers fullscreen taunt overlap and add behind-main warning (#4656)
- 1da707b Fix DOMPurify install, DeleteWorkload test, SlackID persistence, Antigravity CLI validation (#4642)
- 0a86c33 Fix Go backend issues: delete workload, error handling, race conditions (#4408)
- 2628b72 Fix SecurityIssues isRefreshing to use actual hook value (#4836)
- 06c27de Fix WS logout, MCP validation, refresh button, dynamic card fallback (#4917)
- e16f28d Fix Welcome page stats/SEO and MaintenanceWindows validation (#4424)
- f6b3424 Fix abort signal leaks, topology error suppression, test failures (#4779)
- a8b8119 Fix blank card empty state and persist collapse/expand state (#4900)
- d0ba2b4 Fix cache clearing, session state, key corruption, animation consistency (#4993)
- a431576 Fix compliance filters, hardcoded URLs, error handling, MCP bridge panic (#4754)
- 913af2a Fix configurator metrics: wrap instead of truncate on narrow cards (#4410)
- 54bb5bc Fix console errors, stale data, drill-down, group form, CRD stats, node repair (#4459)
- c57df31 Fix control plane health, CRD cache, permissions, CPU modal, webhook, storage keys (#4458)
- a67f955 Fix coverage workflow, toast visibility, role types, GPU dates, JSON naming (#4433)
- 40ac650 Fix dark mode support in flagged components (#4824)
- 23b0530 Fix dev startup scripts to handle stale port processes (#4905)
- 9b65877 Fix ensureConnection timeout race for orphaned WebSockets (#4938)
- a69a21b Fix error states, abort controllers, unmount safety (#4992)
- b8bfe7d Fix frontend issues: centralization, state management, consistency test, filter glow (#4407)
- f3d1edf Fix marketplace install button and add mission history pagination (#4784)
- 0d88e63 Fix nightly regressions and cascade false correlation (#4931)
- 2e0c7b3 Fix node confirm, etcd parse, DNS/control-plane scope, maintenance, quota, RBAC perf (#4867)
- b8003d6 Fix path traversal, CORS, WS logout, SSE recovery, lazy fallback, padding (#4950)
- 7d63c57 Fix pin icon overlap and search bar visibility (#4958)
- 72e5a4a Fix profile dropdown clipped on narrow viewports (#4397)
- 9dae436 Fix remaining TS errors in tsconfig.json and vite.config.ts (#4427)
- add6736 Fix resource limits detection, security recommendation, GPU sort mutation, oversized files (#4706)
- 8f9841c Fix runSavedMission: use shared preflight + prompt logic (#4771)
- f17931a Fix security, persistence, compliance modal, token cache, MCP errors (#4767)
- 06108cb Fix sidebar icon border bleed, configurator overflow, and vite TS errors (#4390)
- 35f6052 Fix stale workload requests overwriting current selection (#4406)
- 1bc0d4e Fix stat block navigation to use React Router instead of hard refresh (#4964)
- 21c5e1b Fix theme toggle visibility, light mode contrast, remove debug logs (#4883)
- 9e5748e Fix timer/listener leaks, dashboard race, memo perf, mission name display (#4675)
- 0ada139 Fix: Broad port-kill logic can terminate unrelated local processes (#4482)
- fd5958a Fix: Dependency audit can silently downgrade tool/runtime failures to zero vulnerabilities (#4479)
- 7366e4f Fix: Deployment Issues card (#4486)
- b101e0a Fix: Environment-variable injection pattern is unsafe/brittle in Playwright wrappers (#4481)
- 02aa9d8 Fix: Govuln timeout path is reported as clean scan textually (#4480)
- c7eec08 Fix: Header config validation is too shallow and can yield false confidence (#4485)
- 4ed8fb7 Fix: Issues in rbac_test.go (#4477)
- 3540a6c Fix: OAuth smoke test mutates .env without guaranteed restoration on abrupt exits (#4483)
- 941f3b5 Fix: Orchestrator script does not run with strict immediate-exit behavior (#4484)
- d806dd5 Fix: Secret scan can report PASS even when scanner execution fails (#4478)
- a39fedd Fix: title : ControlPlaneHealth card silently treats all managed clusters as "no data" (#4476)
- 12fff55 Lint cleanup: remove unused vars, fix exhaustive-deps, type any → unknown (#4538)
- 521cf64 Migrate modal state to useModalState and fix card loading violations (#4384)
- 8bf5ff5 Set Claude GitHub Action to use Opus 4.6 model (#4473)
- 93c1648 Sort active mission list by last activity (most recent first) (#4504)
- 8ff033e Split large vendor chunks for better lazy loading (#4651)
- 07a9de4 Update UI/UX scanner baseline: 272→273 raw hex (#4952)
- 4b6e743 Use safe localStorage wrappers in settings + remove emoji PR convention (#4383)
- e84683f Wire Predictive Health card to global cluster filter (#4683)
- 9c0e81c Wire Stats Overview to global cluster filter (#4678)
- 568c2d2 Wire isRefreshing in HelmReleaseStatus card (#4828)
- e3ad0ca Wire missing isRefreshing/isFailed in 14 cards + fix memory leak (#4584)
- f8afc8f chore(deps): Bump @netlify/functions from 5.1.3 to 5.1.5 in /web (#5003)
- e41e7aa chore(deps): Bump @playwright/test from 1.58.2 to 1.59.1 in /web (#4997)
- 8c2df99 chore(deps): Bump eslint-plugin-react-refresh in /web (#5002)
- 3edd99b chore(deps): Bump i18next from 26.0.2 to 26.0.3 in /web (#4995)
- 02000e2 chore(deps): Bump modernc.org/sqlite from 1.48.0 to 1.48.1 (#4994)
- 4c72143 chore(deps): Bump react-i18next from 16.6.2 to 17.0.2 in /web (#5000)
- ff04ea7 chore(deps): Bump recharts from 3.8.0 to 3.8.1 in /web (#4996)
- 9df903f chore(deps): Bump vite from 8.0.3 to 8.0.5 in /web (#4999)
- f8d34a6 feat: add GA4 tracking to mission landing page (#4589)
- 3da2c69 feat: add rotating tips to all 28 dashboards (#4646)
- 63f76fd feat: dynamically fetch YouTube tutorial videos from playlist (#4469)
- b841cc8 feat: split auto-qa adoption psychology into individual issues (#4783)
- 60898e2 fix: WebSocket race condition in kubectlProxy causing Safari errors (#4528)
- 196c3bd fix: add Netlify redirect for YouTube playlist API (#4472)
- 9d7ca7e fix: cache hooks test timeout in clearAllStorage tests (#5040)
- cfa64e9 fix: discard mission responses after cancellation (#4503)
- a4a9576 fix: dynamic card config crash and GitHubActivity magic number (#4568)
- 0405672 fix: exclude localhost traffic from GA4 error monitor (#4643)
- af285c4 fix: improve Learn dropdown video tut...
v0.3.18-nightly.20260406
Changelog
- c324cc3 Add ArgoCD ApplicationSet integration with security and error handling fixes (#4423)
- 4691de5 Add Claude Code GitHub Workflow (#4471)
- a20db04 Add missing ARIA labels to interactive elements (#4893)
- 9cf9296 Add query parameter validation to MCP endpoints (#4791)
- 2d6eae6 Add screenshot 1 for issue #4398
- 977cbda Add screenshot 1 for issue #4409
- e16cf08 Add screenshot 1 for issue #4543
- 9804aa6 Add screenshot 1 for issue #4565
- e1e713a Add screenshot 1 for issue #4954
- 6c5e2ea Add unmount guards to UpgradeStatus and PodHealthTrend (#5008)
- 3a18206 Extract 278 hardcoded strings to i18n translation keys (#4506)
- 9f685fd Extract hardcoded hex colors from chart components into named constants (#5064)
- c8de766 Fix 15 Go backend issues: mutex, scanner, type safety, SSE, cache, permissions (#4823)
- 900ffbc Fix 15 Go backend security audit findings (#5039)
- e68d6d9 Fix 6 persistent test failures blocking coverage (#4638)
- 734d308 Fix Checkers fullscreen taunt overlap and add behind-main warning (#4656)
- 1da707b Fix DOMPurify install, DeleteWorkload test, SlackID persistence, Antigravity CLI validation (#4642)
- 0a86c33 Fix Go backend issues: delete workload, error handling, race conditions (#4408)
- 2628b72 Fix SecurityIssues isRefreshing to use actual hook value (#4836)
- 06c27de Fix WS logout, MCP validation, refresh button, dynamic card fallback (#4917)
- e16f28d Fix Welcome page stats/SEO and MaintenanceWindows validation (#4424)
- f6b3424 Fix abort signal leaks, topology error suppression, test failures (#4779)
- a8b8119 Fix blank card empty state and persist collapse/expand state (#4900)
- d0ba2b4 Fix cache clearing, session state, key corruption, animation consistency (#4993)
- a431576 Fix compliance filters, hardcoded URLs, error handling, MCP bridge panic (#4754)
- 913af2a Fix configurator metrics: wrap instead of truncate on narrow cards (#4410)
- 54bb5bc Fix console errors, stale data, drill-down, group form, CRD stats, node repair (#4459)
- c57df31 Fix control plane health, CRD cache, permissions, CPU modal, webhook, storage keys (#4458)
- a67f955 Fix coverage workflow, toast visibility, role types, GPU dates, JSON naming (#4433)
- 40ac650 Fix dark mode support in flagged components (#4824)
- 23b0530 Fix dev startup scripts to handle stale port processes (#4905)
- 9b65877 Fix ensureConnection timeout race for orphaned WebSockets (#4938)
- a69a21b Fix error states, abort controllers, unmount safety (#4992)
- b8bfe7d Fix frontend issues: centralization, state management, consistency test, filter glow (#4407)
- f3d1edf Fix marketplace install button and add mission history pagination (#4784)
- 0d88e63 Fix nightly regressions and cascade false correlation (#4931)
- 2e0c7b3 Fix node confirm, etcd parse, DNS/control-plane scope, maintenance, quota, RBAC perf (#4867)
- b8003d6 Fix path traversal, CORS, WS logout, SSE recovery, lazy fallback, padding (#4950)
- 7d63c57 Fix pin icon overlap and search bar visibility (#4958)
- 72e5a4a Fix profile dropdown clipped on narrow viewports (#4397)
- 9dae436 Fix remaining TS errors in tsconfig.json and vite.config.ts (#4427)
- add6736 Fix resource limits detection, security recommendation, GPU sort mutation, oversized files (#4706)
- 8f9841c Fix runSavedMission: use shared preflight + prompt logic (#4771)
- f17931a Fix security, persistence, compliance modal, token cache, MCP errors (#4767)
- 06108cb Fix sidebar icon border bleed, configurator overflow, and vite TS errors (#4390)
- 35f6052 Fix stale workload requests overwriting current selection (#4406)
- 1bc0d4e Fix stat block navigation to use React Router instead of hard refresh (#4964)
- 21c5e1b Fix theme toggle visibility, light mode contrast, remove debug logs (#4883)
- 9e5748e Fix timer/listener leaks, dashboard race, memo perf, mission name display (#4675)
- 0ada139 Fix: Broad port-kill logic can terminate unrelated local processes (#4482)
- fd5958a Fix: Dependency audit can silently downgrade tool/runtime failures to zero vulnerabilities (#4479)
- 7366e4f Fix: Deployment Issues card (#4486)
- b101e0a Fix: Environment-variable injection pattern is unsafe/brittle in Playwright wrappers (#4481)
- 02aa9d8 Fix: Govuln timeout path is reported as clean scan textually (#4480)
- c7eec08 Fix: Header config validation is too shallow and can yield false confidence (#4485)
- 4ed8fb7 Fix: Issues in rbac_test.go (#4477)
- 3540a6c Fix: OAuth smoke test mutates .env without guaranteed restoration on abrupt exits (#4483)
- 941f3b5 Fix: Orchestrator script does not run with strict immediate-exit behavior (#4484)
- d806dd5 Fix: Secret scan can report PASS even when scanner execution fails (#4478)
- a39fedd Fix: title : ControlPlaneHealth card silently treats all managed clusters as "no data" (#4476)
- 12fff55 Lint cleanup: remove unused vars, fix exhaustive-deps, type any → unknown (#4538)
- 521cf64 Migrate modal state to useModalState and fix card loading violations (#4384)
- 8bf5ff5 Set Claude GitHub Action to use Opus 4.6 model (#4473)
- 93c1648 Sort active mission list by last activity (most recent first) (#4504)
- 8ff033e Split large vendor chunks for better lazy loading (#4651)
- 07a9de4 Update UI/UX scanner baseline: 272→273 raw hex (#4952)
- 4b6e743 Use safe localStorage wrappers in settings + remove emoji PR convention (#4383)
- e84683f Wire Predictive Health card to global cluster filter (#4683)
- 9c0e81c Wire Stats Overview to global cluster filter (#4678)
- 568c2d2 Wire isRefreshing in HelmReleaseStatus card (#4828)
- e3ad0ca Wire missing isRefreshing/isFailed in 14 cards + fix memory leak (#4584)
- f8afc8f chore(deps): Bump @netlify/functions from 5.1.3 to 5.1.5 in /web (#5003)
- e41e7aa chore(deps): Bump @playwright/test from 1.58.2 to 1.59.1 in /web (#4997)
- 8c2df99 chore(deps): Bump eslint-plugin-react-refresh in /web (#5002)
- 3edd99b chore(deps): Bump i18next from 26.0.2 to 26.0.3 in /web (#4995)
- 02000e2 chore(deps): Bump modernc.org/sqlite from 1.48.0 to 1.48.1 (#4994)
- 4c72143 chore(deps): Bump react-i18next from 16.6.2 to 17.0.2 in /web (#5000)
- ff04ea7 chore(deps): Bump recharts from 3.8.0 to 3.8.1 in /web (#4996)
- 9df903f chore(deps): Bump vite from 8.0.3 to 8.0.5 in /web (#4999)
- f8d34a6 feat: add GA4 tracking to mission landing page (#4589)
- 3da2c69 feat: add rotating tips to all 28 dashboards (#4646)
- 63f76fd feat: dynamically fetch YouTube tutorial videos from playlist (#4469)
- b841cc8 feat: split auto-qa adoption psychology into individual issues (#4783)
- 60898e2 fix: WebSocket race condition in kubectlProxy causing Safari errors (#4528)
- 196c3bd fix: add Netlify redirect for YouTube playlist API (#4472)
- 9d7ca7e fix: cache hooks test timeout in clearAllStorage tests (#5040)
- cfa64e9 fix: discard mission responses after cancellation (#4503)
- a4a9576 fix: dynamic card config crash and GitHubActivity magic number (#4568)
- 0405672 fix: exclude localhost traffic from GA4 error monitor (#4643)
- af285c4 fix: improve Learn dropdown video tut...
v0.3.18-nightly.20260403
Changelog
- 3ca6eac Add Go goroutine leak detection and map bounds tests (P2-C, P2-D) (#4052)
- f07e868 Add array safety guards to nil-safety CI workflow (P1-B) (#4048)
- 658c4fc Add back navigation to NamespaceDrillDown and GPUNamespaceDrillDown (#4192)
- b491d13 Add concurrent mutation safety scan test (P2-B) (#4054)
- 5cd1e1b Add confirmation dialogs and user feedback for destructive actions (#3916)
- d2de0fc Add draft save/restore feature to Contribute modal (#4340)
- 20ee5bb Add hover tooltips for technical abbreviations (CPUs, GPUs, TPUs, VRAM, CUDA, MIG) (#4027)
- 0c8a6d6 Add magic numbers ratchet and security endpoint audit (P4-A, P4-C) (#4060)
- 6c73866 Add mission component unit tests and card factory validation (P3-A, P3-C) (#4056)
- feca3ea Add navigation error toast regression test (P1-C) (#4051)
- d5c317a Add page coverage smoke tests for untested feature dashboards (P3-B) (#4058)
- 54878cb Add screenshot 1 for issue #4343
- 807d119 Add screenshot 1 for issue #4355
- e24a161 Add screenshot 1 for issue 1985a3cf-6265-40b8-8f07-1e735e89d6e5
- cc9f524 Add screenshot 1 for issue 3307be76-e651-4ea3-a80e-27031017498a
- 9c3e20e Add screenshot 1 for issue 632d87d0-462f-4683-b8ce-264ff76f2c52
- 310762e Add screenshot 1 for issue a6a62d0a-579b-4bf8-b104-044c82d3aa50
- 9b72a20 Add screenshot 1 for issue a8e6ffbc-0185-4642-9180-1f87c4fe76f2
- 6a25f47 Add screenshot 1 for issue aab966e7-0bae-4b1d-aedd-3fd8ead81331
- ea029e9 Add screenshot 1 for issue b95cdbf3-b5c0-490d-8ef4-2f6f5fb1875d
- 8921e97 Add screenshot 1 for issue fdc44169-92ef-4ec7-b9a6-1a1e4084faae
- f68d5c4 Clean up test screenshot
- 6171e0d Expand card-standard ratchet for isRefreshing/isFailed + add concurrency safety tests (#4049)
- cbf92d9 Fix 'Failed to load dashboard' toast when switching between dashboards (#4011)
- 9067372 Fix WCAG AA color contrast violations (opacity + inline styles) (#4210)
- 1c68411 Fix color consistency: error states, status shades, progress bar colors (#3891)
- 661064a Fix custom card validation, ADOPTERS link, sparkles overlay, GPU chart order and units (#4032)
- 88bab39 Fix inconsistent inline CSS spacing values — align to 4px/8px grid (#3867)
- 4ada1d3 Fix modal safety: disable backdrop close on forms, add ESC key handling (#3954)
- c517a51 Fix refresh icon animation consistency: use animate-spin CSS class, tie to loading state (#3906)
- 303a2a3 Merge pull request #4289 from kubestellar/fix/stable-coverage
- c928a11 Merge pull request #4292 from kubestellar/fix/stable-coverage
- 4ac7784 Merge pull request #4293 from kubestellar/fix/stable-coverage
- 1c510f5 Merge pull request #4294 from kubestellar/fix/stable-coverage
- 57b6e50 Merge pull request #4295 from kubestellar/fix/stable-coverage
- 9bbbeb0 Merge pull request #4297 from kubestellar/fix/stable-coverage
- a9f9a57 Merge pull request #4298 from kubestellar/fix/stable-coverage
- 1c4563e Merge pull request #4299 from kubestellar/fix/stable-coverage
- c2c907c Merge pull request #4301 from kubestellar/fix/stable-coverage
- 51f7227 Merge pull request #4302 from kubestellar/fix/stable-coverage
- e61f06e Merge pull request #4304 from kubestellar/fix/stable-coverage
- 95f9891 Merge pull request #4309 from kubestellar/fix/stable-coverage
- 5600280 Merge pull request #4317 from kubestellar/fix/stable-coverage
- 5f1a982 Merge pull request #4320 from kubestellar/fix/stable-coverage
- 92f3f65 Merge pull request #4326 from kubestellar/fix/stable-coverage
- 62c06c5 Merge pull request #4331 from kubestellar/fix/stable-coverage
- ab3fbae Merge pull request #4333 from kubestellar/fix/stable-coverage
- aea428f Merge pull request #4337 from kubestellar/fix/stable-coverage
- 2285073 Merge pull request #4338 from kubestellar/fix/stable-coverage
- d494fbf Merge pull request #4344 from kubestellar/fix/coverage-wave1
- 3364c90 Merge pull request #4354 from kubestellar/fix/coverage-on-push
- dfbfc59 Merge pull request #4358 from kubestellar/fix/last-test-failures
- 7310860 Merge pull request #4360 from kubestellar/fix/remaining-test-failures
- 35be049 Merge pull request #4361 from kubestellar/fix/aipredictions-tests
- 307c1ab Merge pull request #4362 from kubestellar/fix/skip-flaky-alerts-tests
- a5c0f19 Remove debug console.log statements from useMissionControl.ts (#3819)
- c3abeff Revert "feat: show active user count in navbar header (#4103)" (#4106)
- 88117dc Test screenshot upload
- 9aec910 Test screenshot upload for token verification
- 6f93cb5 [WIP] Add ARIA labels to interactive elements (#3856)
- 48b5689 chore(deps): Bump @types/three from 0.169.0 to 0.183.1 in /web (#3937)
- 9797cfd chore(deps): Bump i18next from 25.10.5 to 26.0.2 in /web (#3943)
- 7d9234c chore(deps): Bump i18next-browser-languagedetector in /web (#3936)
- fa6304f chore(deps): Bump modernc.org/sqlite from 1.47.0 to 1.48.0 (#3934)
- da8d0d0 chore(deps): Bump msw from 2.12.9 to 2.12.14 in /web (#3941)
- 9c275d6 chore(deps): Bump postcss from 8.5.6 to 8.5.8 in /web (#3935)
- 8127ccf chore(deps): Bump typescript-eslint from 8.57.1 to 8.57.2 in /web (#3933)
- 686448b chore(deps): Bump vite-plugin-compression2 from 2.5.2 to 2.5.3 in /web (#3939)
- 355f00d feat: show active user count in navbar header (#4103)
- 124dd64 fix(deps): patch lodash high CVE + brace-expansion moderate CVE via npm audit fix (#4208)
- 47b2448 fix: add .catch() to all response.json() calls to prevent Firefox unhandled rejections (#3979)
- 838e815 fix: add auth and restrict CORS on cancel-chat and events endpoints (#3829, #3830) (#3839)
- 30460a7 fix: add dark mode variants for white opacity classes in cluster dialog components (#4029)
- a4c3656 fix: add exponential backoff and max retries to WebSocket reconnection (#3870) (#3880)
- 10e1be7 fix: add loading/disabled state to CreateDashboardModal Create button (#3919)
- 6aadabb fix: add missing aria-label attributes to role="button" elements and icon-only buttons (#4105)
- c9dbf37 fix: add missing loading/error states to data-fetching components (#3865)
- 4d3e1b1 fix: add missing test files for AI providers (#3828) (#3848)
- 3dfa028 fix: add missing token revocation methods to MockStore (#3851, #3852) (#3860)
- edf8072 fix: add toast notifications for silent error handling in mission callbacks and stats config (#3914)
- 0d8e667 fix: address Auto-QA issues for refresh animation, error handling (#4100)
- d35e3a4 fix: address Copilot review feedback from PRs #4105, #4106, #4107 (#4109)
- f1a8bfc fix: align QA tuner category taxonomy with consumer focus areas (#3862) (#3869)
- 1207b12 fix: cardHooks-expand minor fix
- 0a97497 fix: chain config-writing jobs sequentially to prevent race condition (#3826) (#3841)
- c893c1b fix: clear setTimeout on unmount in Kubedle and PreflightFailure (#3822)
- ac3a658 fix: defer useSearchIndex API hooks until user types a search query (#3871) (#3884)
- b4385fa fix: extract hardcoded Google Fonts URL to externalApis config (#3877)
- 1ba563d fix: harden CORS origin matching to prevent prefix and wildcard bypass (#3863) (#3868)
- e6217ef fix: move Ad...
v0.3.18-nightly.20260329
Changelog
- b096eeb Add Notary Project as adopter (#3689)
- 08a682d Add comprehensive unit tests for useDeepLink hook (#3707)
- 9113589 Add health indicators to FloatingDashboardActions and DashboardContext (#3758)
- 03c0da3 Add loading skeleton, error state, and empty state to AdmissionWebhooks card (#3697)
- 3fb8412 Add unit tests for useCardGridNavigation and useDashboardScrollTracking (#3702)
- 94f98b9 Extract hardcoded user-facing strings to i18n translation keys (#3789)
- 3de6692 Fix WCAG AA color contrast for reduced-opacity text elements (#3711)
- d181f87 Fix auto-QA error handling: ErrorBoundary wrapping + console.error cleanup (#3802)
- fc0cdf8 Fix stale closure in useDashboardReset addMissingDefaults (#3705)
- 85b7ead Improve etcd detection beyond pod name matching (#3700)
- e6682a8 Make
make devstart OAuth dev mode via startup-oauth.sh --dev (#3695) - a31e058 Replace hardcoded hex colors with CSS design tokens in CNCF components (#3633)
- 78ce414 Replace namespace import with iconRegistry to enable tree-shaking (#3698)
- a885c89 Split oversized useCachedData.ts into focused modules (#3668)
- e125cbd feat: add fullscreen expand button to markdown preview (#3750) (#3751)
- 6a3b3d0 feat: add per-profile controls dialog to OSCAL card (#3713)
- c6c7cbf feat: lazy-load NamespaceDrillDown and NodeDrillDown (#3665)
- ae3688b fix(pods): remove single-cluster assumptions in Pods.tsx (#3756)
- 755de94 fix: Add dark mode variants to PayloadCard color classes (#3635)
- 6be0a2a fix: Pod Brothers game shows game over immediately on start (#3725)
- 770bd56 fix: add bounds checking for int32 conversion in replicas param (#3691) (#3740)
- 574e238 fix: add data freshness indicators and TTL validation (auto-QA stale data) (#3804)
- 2a8b9ac fix: add draggable resize handle to AI missions sidebar (#3724)
- d304183 fix: add error state rendering to ClusterChangelog card (#3699)
- 8127ad8 fix: add missing @netlify/blobs dependency for nightly-e2e function (#3748)
- 7c12ef8 fix: add mission preflight permission check with structured error taxonomy (#3742) (#3754)
- f6e88fb fix: add output size limit to NodeDebug to prevent browser freezes (#3797) (#3808)
- 4f8e51d fix: add provider connection lifecycle for VS Code to prevent silent timeouts (#3743) (#3752)
- 7a07606 fix: batch consecutive setState calls to prevent UI flicker (#3739) (#3745)
- dc80bff fix: clean up game keyboard listeners on unmount to prevent key capture leak (#3732)
- af8e50c fix: clean up module-level WebSocket and pending requests on unmount (#3696)
- 652cec7 fix: complete Antigravity provider connection flow with handshake and readiness UI (#3744) (#3753)
- 42417a7 fix: compute predictive health estimates from actual resource usage (#3714)
- d7a0cb3 fix: consolidate duplicate card add buttons into single top-right bubble (#3763) (#3768)
- 808e328 fix: consolidate duplicate useMCP import in Deploy.tsx (#3598) (#3749)
- 2572418 fix: correct 5 bugs in workloads handler (#3729)
- 97693d0 fix: deduplicate utility functions between Dashboard.tsx and dashboardUtils.ts (#3709)
- 7e4e6d0 fix: derive latestMinor dynamically from cluster versions instead of hardcoding (#3706)
- 2be3c11 fix: ensure touch targets meet 44px WCAG 2.5.5 minimum (#3738) (#3747)
- df3872b fix: fetch real NetworkPolicy resources instead of heuristic (#3794) (#3809)
- 08fbc3b fix: guard against NaN values in GPU drilldown and Gauge component (#3764) (#3774)
- 232a7a8 fix: hide empty preview panel in AddCardModal when no card is hovered (#3765) (#3771)
- f77df58 fix: inject fake k8s clients in TestClusterGroupsCRUD for CI (#3770)
- 8ed7dca fix: make Kyverno policy rows open insights drilldown view (#3805) (#3810)
- e5a62e6 fix: make dashboard respond to AI mission sidebar resize (#3737)
- 2a4fd2b fix: make nightly E2E benchmark tests resilient to endpoint failures (#3692) (#3741)
- b9d750a fix: prevent HardwareHealthCard from overriding user's explicit view choice (#3798) (#3811)
- d585c6a fix: prevent sidebar close/minimize buttons from overflowing viewport (#3761) (#3773)
- 3a5f124 fix: redirect title text to homepage instead of docs site (#3728)
- 682ed24 fix: remove visible background from pin and collapse sidebar buttons (#3787) (#3807)
- e52d726 fix: render AgentSelector dropdown via portal to escape overflow-hidden ancestors (#3783) (#3785)
- 80baae5 fix: replace empty TODO handlers with toast notifications in MissionControlDialog (#3730)
- 9b30297 fix: require cluster selection in NodeDebug instead of silently defaulting (#3795) (#3814)
- c9b594b fix: resolve Auto-QA demo data coverage gaps in cards and detection logic (#3792)
- f1262bc fix: resolve consistency-test magic numbers and unguarded join (#3776) (#3784)
- 5f83631 fix: restrict useDashboardHealth polling to dashboard pages only (#3712)
- cf922c6 fix: route NetworkUtils ping through backend proxy for reliable latency measurements (#3799) (#3812)
- 80a2e83 fix: show user GitHub avatar in AI missions chat (#3766) (#3775)
- 816ce72 fix: smooth banner close button hover animation (#3736)
- eb4aaac fix: surface error details from swallowed catch blocks in useDependencies (#3731)
- e46d5ec fix: treat adoption psychology issues as bonus in auto-qa (#3786)
- 96bb90c fix: use Button component in mission-control instead of raw (#3704)
- 142c249 fix: use isLoading && !hasData pattern in DNSHealth card (#3690) (#3746)
- 0638dd9 fix: use route constants and strengthen drilldown nav tests (#3710)
- 69798b4 fix: use showSkeleton from useCardLoadingState in ControlPlaneHealth (#3796) (#3806)
- 9fd3385 fix: use subtle transparent hover backgrounds for sidebar icon buttons (#3762) (#3772)
- 12ff724 fix: warn users about non-interactive terminal in agent missions (#3767) (#3769)
- 4ac5ad9 fix: wire useCardLoadingState in DNSHealth card (#3701)
- be9fd8b fix: wrap unprotected localStorage calls with safe utility functions (#3779)
- f4003bc perf: wrap hot-path components in React.memo and memoize inline styles (#3703)
- 2afae07 refactor: centralize modal open/close state with useModalState hook (#3782)
- 9c613e9 ✨ Add rotating "Did You Know" tips for variable-reward engagement on clusters, compliance, and arcade pages (#3793)
v0.3.17-weekly
Changelog
- b096eeb Add Notary Project as adopter (#3689)
- 08a682d Add comprehensive unit tests for useDeepLink hook (#3707)
- 9113589 Add health indicators to FloatingDashboardActions and DashboardContext (#3758)
- 03c0da3 Add loading skeleton, error state, and empty state to AdmissionWebhooks card (#3697)
- 3fb8412 Add unit tests for useCardGridNavigation and useDashboardScrollTracking (#3702)
- 94f98b9 Extract hardcoded user-facing strings to i18n translation keys (#3789)
- 3de6692 Fix WCAG AA color contrast for reduced-opacity text elements (#3711)
- d181f87 Fix auto-QA error handling: ErrorBoundary wrapping + console.error cleanup (#3802)
- fc0cdf8 Fix stale closure in useDashboardReset addMissingDefaults (#3705)
- 85b7ead Improve etcd detection beyond pod name matching (#3700)
- e6682a8 Make
make devstart OAuth dev mode via startup-oauth.sh --dev (#3695) - a31e058 Replace hardcoded hex colors with CSS design tokens in CNCF components (#3633)
- 78ce414 Replace namespace import with iconRegistry to enable tree-shaking (#3698)
- a885c89 Split oversized useCachedData.ts into focused modules (#3668)
- e125cbd feat: add fullscreen expand button to markdown preview (#3750) (#3751)
- 6a3b3d0 feat: add per-profile controls dialog to OSCAL card (#3713)
- c6c7cbf feat: lazy-load NamespaceDrillDown and NodeDrillDown (#3665)
- ae3688b fix(pods): remove single-cluster assumptions in Pods.tsx (#3756)
- 755de94 fix: Add dark mode variants to PayloadCard color classes (#3635)
- 6be0a2a fix: Pod Brothers game shows game over immediately on start (#3725)
- 770bd56 fix: add bounds checking for int32 conversion in replicas param (#3691) (#3740)
- 574e238 fix: add data freshness indicators and TTL validation (auto-QA stale data) (#3804)
- 2a8b9ac fix: add draggable resize handle to AI missions sidebar (#3724)
- d304183 fix: add error state rendering to ClusterChangelog card (#3699)
- 8127ad8 fix: add missing @netlify/blobs dependency for nightly-e2e function (#3748)
- 7c12ef8 fix: add mission preflight permission check with structured error taxonomy (#3742) (#3754)
- f6e88fb fix: add output size limit to NodeDebug to prevent browser freezes (#3797) (#3808)
- 4f8e51d fix: add provider connection lifecycle for VS Code to prevent silent timeouts (#3743) (#3752)
- 7a07606 fix: batch consecutive setState calls to prevent UI flicker (#3739) (#3745)
- dc80bff fix: clean up game keyboard listeners on unmount to prevent key capture leak (#3732)
- af8e50c fix: clean up module-level WebSocket and pending requests on unmount (#3696)
- 652cec7 fix: complete Antigravity provider connection flow with handshake and readiness UI (#3744) (#3753)
- 42417a7 fix: compute predictive health estimates from actual resource usage (#3714)
- d7a0cb3 fix: consolidate duplicate card add buttons into single top-right bubble (#3763) (#3768)
- 808e328 fix: consolidate duplicate useMCP import in Deploy.tsx (#3598) (#3749)
- 2572418 fix: correct 5 bugs in workloads handler (#3729)
- 97693d0 fix: deduplicate utility functions between Dashboard.tsx and dashboardUtils.ts (#3709)
- 7e4e6d0 fix: derive latestMinor dynamically from cluster versions instead of hardcoding (#3706)
- 2be3c11 fix: ensure touch targets meet 44px WCAG 2.5.5 minimum (#3738) (#3747)
- df3872b fix: fetch real NetworkPolicy resources instead of heuristic (#3794) (#3809)
- 08fbc3b fix: guard against NaN values in GPU drilldown and Gauge component (#3764) (#3774)
- 232a7a8 fix: hide empty preview panel in AddCardModal when no card is hovered (#3765) (#3771)
- f77df58 fix: inject fake k8s clients in TestClusterGroupsCRUD for CI (#3770)
- 8ed7dca fix: make Kyverno policy rows open insights drilldown view (#3805) (#3810)
- e5a62e6 fix: make dashboard respond to AI mission sidebar resize (#3737)
- 2a4fd2b fix: make nightly E2E benchmark tests resilient to endpoint failures (#3692) (#3741)
- b9d750a fix: prevent HardwareHealthCard from overriding user's explicit view choice (#3798) (#3811)
- d585c6a fix: prevent sidebar close/minimize buttons from overflowing viewport (#3761) (#3773)
- 3a5f124 fix: redirect title text to homepage instead of docs site (#3728)
- 682ed24 fix: remove visible background from pin and collapse sidebar buttons (#3787) (#3807)
- e52d726 fix: render AgentSelector dropdown via portal to escape overflow-hidden ancestors (#3783) (#3785)
- 80baae5 fix: replace empty TODO handlers with toast notifications in MissionControlDialog (#3730)
- 9b30297 fix: require cluster selection in NodeDebug instead of silently defaulting (#3795) (#3814)
- c9b594b fix: resolve Auto-QA demo data coverage gaps in cards and detection logic (#3792)
- f1262bc fix: resolve consistency-test magic numbers and unguarded join (#3776) (#3784)
- 5f83631 fix: restrict useDashboardHealth polling to dashboard pages only (#3712)
- cf922c6 fix: route NetworkUtils ping through backend proxy for reliable latency measurements (#3799) (#3812)
- 80a2e83 fix: show user GitHub avatar in AI missions chat (#3766) (#3775)
- 816ce72 fix: smooth banner close button hover animation (#3736)
- eb4aaac fix: surface error details from swallowed catch blocks in useDependencies (#3731)
- e46d5ec fix: treat adoption psychology issues as bonus in auto-qa (#3786)
- 96bb90c fix: use Button component in mission-control instead of raw (#3704)
- 142c249 fix: use isLoading && !hasData pattern in DNSHealth card (#3690) (#3746)
- 0638dd9 fix: use route constants and strengthen drilldown nav tests (#3710)
- 69798b4 fix: use showSkeleton from useCardLoadingState in ControlPlaneHealth (#3796) (#3806)
- 9fd3385 fix: use subtle transparent hover backgrounds for sidebar icon buttons (#3762) (#3772)
- 12ff724 fix: warn users about non-interactive terminal in agent missions (#3767) (#3769)
- 4ac5ad9 fix: wire useCardLoadingState in DNSHealth card (#3701)
- be9fd8b fix: wrap unprotected localStorage calls with safe utility functions (#3779)
- f4003bc perf: wrap hot-path components in React.memo and memoize inline styles (#3703)
- 2afae07 refactor: centralize modal open/close state with useModalState hook (#3782)
- 9c613e9 ✨ Add rotating "Did You Know" tips for variable-reward engagement on clusters, compliance, and arcade pages (#3793)
v0.3.17-nightly.20260327
Changelog
- 7367a92 Add 'dev mode' labels to development build indicator bar (#3462)
- a417e49 Add Learn dropdown to navbar combining tour, videos, and resources (#3474)
- d9fd0c4 Add dark mode variants to components flagged by auto-QA (#3011)
- 286b71a Add markdown preview toggle to Contribute dialog description (#3456)
- 48499ba Add tooltips for technical abbreviations and status indicators (#3419)
- e087ead Add unit tests for useMetricsHistory hook (#3580) (#3593)
- 41781a3 Extract hardcoded user-facing strings to i18n translation keys (#3491)
- 44931fb Fix GPU type display and inventory sort fields (#3030, #3031) (#3040)
- e48fed7 Fix RBAC Explorer loading states, pagination, and virtualization (#3038)
- b3a8fad Fix Safari caching OAuth redirects by adding Cache-Control: no-store (#3454)
- 551491c Fix UI flicker: batch consecutive setState calls in AlertBadge, CodeBlock, Pagination, StatsConfig (#3050)
- 90ada4e Fix chunk_load errors on /deploy: safeLazy null-module guard for eager bundle failures (#3572)
- ebfd28d Fix docs issue creation auth and coin tracking consistency (#3034, #3036) (#3039)
- dfb5265 Fix kc-agent binary validation in start-dev.sh and startup-oauth.sh (#3415)
- cefa607 Fix missing loading/error states in components flagged by Auto-QA (#3515)
- 9c4ecd8 Fix uncaught_render errors on /deploy: remove redundant useHelmReleases call (#3586)
- 6a5441e Fix unhandled promise rejections on /multi-tenancy page (#3542)
- c334c13 Fix unhandled_rejection GA4 errors on /cluster-admin (AbortError, URL-parse, missing catch) (#3543)
- 3310204 Fix unhandled_rejection errors on /ai-agents from missing context providers (#3510)
- 06e243a Fix: Recommended Cards/Actions chips show inline dropdown, not expanded panel (#3449)
- 05d34ac Merge pull request #3074 from kubestellar/fix/nightly-cross-browser-separate-workflow
- 48663ce Merge pull request #3080 from kubestellar/fix/nightly-playwright-timeout
- fb419b9 Merge pull request #3081 from kubestellar/fix/nightly-scope-tests
- fb55626 Merge pull request #3094 from kubestellar/fix/agent-demo-mode-bridge
- 9f88015 Merge pull request #3117 from kubestellar/feat/iso27001-audit-card
- a9a33a4 Merge pull request #3398 from kubestellar/fix/copilot-retry-assignment
- af554d1 Merge pull request #3409 from kubestellar/fix/copilot-session-queue
- f1a7032 Merge pull request #3594 from kubestellar/fix/issue-3582-ui-hooks-tests
- 67fe3fa Merge pull request #3614 from kubestellar/feat/goose-agent-provider
- 3bb95da Remove stale INVENTORY.md entries for non-existent component files (#3535)
- f002416 Remove unused npm dependency @netlify/blobs (#3568)
- 7311db4 chore(deps): Bump @playwright/test from 1.58.1 to 1.58.2 in /web (#3301)
- b21c6c3 chore(deps): Bump @react-three/drei from 9.122.0 to 10.7.7 in /web (#3305)
- 13d56d3 chore(deps): Bump eslint-plugin-react-hooks from 5.2.0 to 7.0.1 in /web (#3297)
- 25e3b44 chore(deps): Bump i18next from 25.8.18 to 25.10.5 in /web (#3304)
- 1719436 chore(deps): Bump k8s.io/apiextensions-apiserver from 0.31.0 to 0.35.3 (#3293)
- 271859e chore(deps): Bump modernc.org/sqlite from 1.46.1 to 1.47.0 (#3299)
- 338e8cc chore(deps): Bump react-i18next from 16.5.8 to 16.6.2 in /web (#3307)
- 5354e3b chore(deps): Bump terser from 5.46.0 to 5.46.1 in /web (#3294)
- 31543c3 chore(deps): Bump three from 0.169.0 to 0.183.2 in /web (#3306)
- ab6ef41 chore(deps): Bump typescript-eslint from 8.57.0 to 8.57.1 in /web (#3302)
- 974e6e0 feat: ISO 27001 card — agent mode, live kubectl checks, unified controls (#3120)
- 0601439 feat: Mission Control UX polish — auto-assign, flight plan glow, overlay dimming (#3601)
- f1e89e1 feat: Mission Control — AI-powered multi-cluster solutions orchestrator (#3531)
- ca09403 feat: add /welcome conference landing page (#3404)
- 4456504 feat: add Goose AI agent provider and reorganize agent selector UI
- 26913f8 feat: add Goose AI agent provider and reorganize agent selector UI
- f2d55ba feat: add Goose AI agent provider and reorganize agent selector UI
- e153bca feat: add PagerDuty/OpsGenie notifications, Inspektor Gadget integration, and investigation runbooks (#3425)
- 91665b1 feat: add built-in 'all healthy clusters' default group to cluster groups card (#3460)
- 4119b73 feat: add info panels to dashboard cards for user guidance (#3663)
- c53c446 feat: add kagent as alternative agent backend with A2A proxy (#3432)
- c67337e feat: add play/stop/restart lifecycle controls for local clusters (#3545) (#3596)
- 5867b44 feat: add unit tests for Compliance dashboard stats component (#3321) (#3344)
- 9f1e9a6 feat: add useRBACFindings hook for live RBAC data and E2E tests
- ef14053 feat: card polish, kagent gold standard, tabbed AI Agents (#3478)
- 3a1d72e feat: drag-and-drop workload deployment with dynamic dependency resolution (#3584)
- 7429496 feat: expand integration labels for common CNCF project combinations (#3624)
- e6976ed feat: expose console version via /api/version and --version flag (#3236)
- 182549c feat: kagenti provider + kagent cards + tabbed AI Agents dashboard (#3461)
- 7a52e46 feat: migrate Arcade, Clusters, Deploy to shared DashboardPage framework
- fa567fd feat: open KB install guide from agent dropdown, add Esc to cluster dialog
- 882059b feat: pass KUBECONFIG env var to kc-agent in startup scripts (#3166)
- 8b3cf6f feat: queue-based Copilot assignment with concurrency control
- 0dc9339 feat: sidebar controls, install CTA with KB prompts, toast dedup, fullscreen fixes (#3483)
- 936e1d9 feat: tabbed AI Agents dashboard, component-only card support, wider dropdowns (#3475)
- bb3d0f8 feat: wire scale up/down controls in WorkloadDeployment card (#3587)
- afed0ff fix(tests): resolve 3 nightly test suite failures (#3445)
- 5d37c1a fix: Auto-QA card type check now finds object-key registrations (#3619)
- e2c82ec fix: NamespaceOverview auto-select and localStorage persistence (#3113, #3115, #3116) (#3119)
- c01f382 fix: WCAG AA color contrast — raise opacity floors and centralize chart tooltip colors (#2995)
- 36f6bb2 fix: accurate 2h window and error_detail in GA4 error monitor
- b52d32b fix: add /cluster-admin to perf tests and GPUOverview mock data (#3591)
- 647bfca fix: add 90s grace period for agent disconnect and suppress install modal for known agents (#3192)
- cfbe6f5 fix: add CostDrillDown view — clicking costs no longer shows "Unknown view type" (#3206)
- 55c4e6b fix: add RBAC drilldown view for cluster user navigation (#3195) (#3196)
- 9a227c6 fix: add Terminate Session button to AI Missions (#3608) (#3617)
- 07904fc fix: add WebSocket ping/pong keepalive to prevent connection FD leak (#3286)
- 1890900 fix: add cache layer to Provider Health card (#3275)
- c1ca167 fix: add caching, pagination, and client reuse to fetchLinkedPRs (#3369) (#3383)
- e331bac fix: add compliance drilldown panel to TrestleScan card (closes #3623) (#3625)
- 9b43eee fix: add concurrency limiter to multi-cluster API requests (#3521) (#3527)
- 169bdb0 fix: add confirmation dialog before deleting AI missions (#3662)
- 7d880f8 fix: add empty state to GPUOverview for no-GPU clusters (#3588)
- 241086e fix: add error handling and retry-with-backoff to workload hooks (#3255, #...
v0.3.17-nightly.20260320
Changelog
- 0dbb2c1 Add tooltips for technical abbreviations in stat blocks and card factory modal (#2881)
- 2db5136 Fix TestLocalClusterManager to expect vcluster as 4th tool (#2950)
- 4144728 ci: trigger fresh vllm-d deploy with new runner SA
- 951d743 fix: expand Resource Marshall to cover all dependency kinds (#2965) (#2969)
- 7587a81 fix: extract remaining inline magic numbers to named constants (#2880)
- 363457d fix: guard against undefined card in DragOverlay and invalid findIndex in handleDragEnd (#2985)
- 40cbb5f fix: modal safety — disable backdrop close on form modals, add Escape key to ApiKeyPromptModal (#2858)
- 032510d fix: prevent card_render crashes from unvalidated localStorage data in ClusterMetrics (#2856)
- 6165119 fix: resolve Rules of Hooks violation in CardRuntime causing runtime errors on / (#2855)
- 014b287 ⏪ revert: remove modulePreload config (restores Vite defaults) (#2905)
- 2e6dd9f
⚠️ fix: harden dynamic card timer sandbox (Copilot review) (#2954) - 21cf670
⚠️ upgrade gh-aw v0.58.3 → v0.62.1 + add nightly version check (#2962) - 5881a16 ⚡ perf: drop modulepreload for lazy-loaded heavy chunks (#2901)
- 478b26b ⚡ perf: lightweight mission landing page — skip dashboard providers (#2910)
- c8e3941 ⚡ perf: pass prefetched mission via navigation state on import (#2908)
- b23cd92 ⚡ perf: race mission lookups — resolve on first success, cancel rest (#2897)
- b61f156 ⚡ perf: use Promise.any for mission lookups — resolve on first hit (#2906)
- 667421d ✨ Add Card Factory templates for timers, image viewer, and port forwards (#2989)
- f0c12d8 ✨ Add Copilot assignment health monitoring to auto-qa (#2909)
- 558a596 ✨ Add drill-down detail modals for all multi-tenancy dashboard cards (#2896)
- 09f32fe ✨ Add host cluster selector and labels to vCluster create form (#2923)
- 50525ca ✨ Add per-cluster vCluster operator install mission (#2924)
- 003445c ✨ Add vCluster support for creating and managing virtual clusters (#2915)
- 28fcbae ✨ Add yellow demo outline to multi-tenancy detail modals (#2900)
- 68eab4a ✨ Added karmada card (#2882)
- 0bdd16e ✨ Check vCluster CRDs on clusters, show install status in dropdown (#2935)
- f6a2110 ✨ Extract hardcoded user-facing strings to i18n translations (#2919)
- 6e71623 🌱 Migrate raw localStorage calls to safe utility functions (#2921)
- 817f811 🌱 Remove redundant left icon from vCluster dropdown entries (#2959)
- e187a88 🌱 Use vCluster icon in host cluster dropdown and status badge (#2958)
- 28f9875 🌱 add unit tests for critical hooks (#2891)
- 5e9457e 🌱 improve: rewrite /from-lens with collaborative tone and fix inaccuracies (#2913)
- 3aabfd3 🐛 Fix Mission Browser mobile layout (#2916)
- eef3da6 🐛 Fix demo fallback for MCP config hooks when fetch fails (#2834)
- 5c32aa6 🐛 Fix duplicate agent responses in mission chat (#2957)
- 597f61b 🐛 Fix duplicate folder rendering in Mission Explorer (#2952, #2953, #2964) (#2975)
- a3eb1b3 🐛 Fix missing isRefreshing wiring in NetworkOverview card (#2961)
- 08f1aa5 🐛 Fix mission stuck in running state, npm audit, and resilience (#2973, #2974, #2968, #2971) (#2980)
- b2c2b3f 🐛 Improve dedup: check all streamed messages since last user msg + add tests (#2960)
- 21a0845 🐛 Re-validate imported mission content before execution (#2956) (#2977)
- f89bf72 🐛 Register compliance hooks with mode transition system (#2947) (#2976)
- 36c0753 🐛 fix(a11y): add keyboard support to clickable divs in multi-tenancy cards (#2942)
- 65f5986 🐛 fix: Make tour trigger visible at all viewport widths (#2983)
- 36acd01 🐛 fix: accept E2E responses with valid guides but empty runs (#2890)
- 39fd444 🐛 fix: add Cache-Control no-cache to all SPA routes to prevent chunk_load errors (#2946)
- 372319c 🐛 fix: add GA4 passthrough handlers in MSW to fix UTM tracking on deploy previews (#2895)
- 368938d 🐛 fix: add missing /api prefix to NamespaceManager API calls (#2888)
- 2e5b3d1 🐛 fix: assign unique user_id to demo users to prevent GA4 data loss (#2940)
- 93f5790 🐛 fix: cluster connectivity alerts notify once, not every 5 minutes (#2978)
- ef9fee4 🐛 fix: complete vllm-d deploy RBAC — add batch, policy, networking, autoscaling, SCC (#2922)
- c15e3fa 🐛 fix: deduplicate browser notifications with 5-minute cooldown (#2934)
- bbeb281 🐛 fix: detect vCluster via StatefulSet (v0.20+) not just CRDs (#2937)
- 4927b55 🐛 fix: detect vCluster via StatefulSet, on-demand per-cluster check (#2938)
- b82c7c4 🐛 fix: eliminate all circular chunk dependencies in build (#2979)
- 6fc887e 🐛 fix: eliminate circular chunk dependencies causing broken execution order (#2963)
- 624aa02 🐛 fix: emit deploy:result on failure and pass groupName to API (#2887)
- 31795a5 🐛 fix: expand rewards scope to all kubestellar repos (#2981)
- 32d12b5 🐛 fix: expose safe timer APIs in dynamic card sandbox (#2951)
- 0dc04ba 🐛 fix: mission landing page fails to resolve most KB directories (#2883)
- 488036d 🐛 fix: mission sidebar import uses same stale directory list as landing page (#2894)
- 83b9d84 🐛 fix: permanent vllm-d deploy RBAC + perf guard comments (#2912)
- 32766c4 🐛 fix: prevent duplicate mission completion events (#2893)
- 5bd2c33 🐛 fix: remove double URL encoding in MissionLandingPage import (#2892)
- 9cb591c 🐛 fix: replace invalid wildcard host with RegExp matcher for GA4 passthrough (#2898)
- ec03e54 🐛 fix: resolve 3 GA4 runtime errors (deploy render, SSE iteration, clipboard fallback) (#2911)
- 6d46ef9 🐛 fix: resolve nightly consistency-test failures (#2885)
- 030bb32 🐛 fix: restore modulepreload for charts-vendor and markdown-vendor (#2904)
- 2e0341e 🐛 fix: send button hidden for missions with long descriptions (#2884) (#2902)
- b2a3b46 🐛 fix: separate vCluster from local cluster tools, show install status per cluster (#2925)
- ad7e01b 🐛 fix: show Demo badge in multi-tenancy detail modals when card uses demo data (#2899)
- 96f02a7 🐛 fix: show newest missions first in sidebar chat list (#2889)
- b1bbaff 🐛 fix: stop duplicate notifications and persist dedup across reloads (#2936)
- 4052107 🐛 fix: throttle auto-qa Copilot assignments to avoid rate limiting (#2907)
- e81fa53 🐛 fix: use ring instead of border for demo outline on modals (#2903)
- d85790f 🐛 fix: use source cluster name instead of namespace in deploy annotation (#2886)
- 7a4122d 📖 docs: add Claude Code recommendation and marketplace redirect to contributing docs (#2914)
- d3ca87d 📖 docs: add Open Cluster Management as adopter (#2917)
v0.3.17-nightly.20260318
Changelog
- 390db84 Add arrow key navigation to dropdown menus (keyboard a11y) (#2814)
- fa27ad5 Fix Auto-QA false positive: replace gap-1 with gap-2 on interactive elements (#2810)
- 034284d Fix unhandled promise rejections triggering GA4 unhandled_rejection errors on / (#2818)
- 8b95d0d Fixed flaky tests (#2829)
- c449047 fix(a11y): Add missing ARIA labels and roles to interactive elements (#2815)
- 3afe41b fix: add disabled states to action buttons during async operations (#2811)
- 6293d84 ✨ Add mission landing page for instant deep-link UX (#2850)
- 1767a7a ✨ Improve mission import UX: auto-open sidebar with imported mission (#2849)
- 8fd06fd ✨ Update tenant architecture card to match Braulio's design (#2830)
- 6ee801c 🐛 Address Copilot review comments on tenant topology card (#2831)
- 6588627 🐛 Fix solution import: support nested KB format, add lenient defaults and GA4 error tracking (#2842)
- c2196a1 🐛 Fix: ARIA labels missing on icon-only Button components (#2837)
- 3010102 🐛 fix: align CI/CD statsType across config, page, and type union (#2848)
- 5e1cd9b 🐛 fix: bundle arcade game cards into single chunk to reduce chunk_load errors (#2833)
- 1409a11 🐛 fix: improve connection routing in Tenant Architecture card (#2851)
- d0a17be 🐛 fix: keyboard navigation gaps in AlertBadge (aria-label + onKeyDown bubbling) (#2838)
- 7dfc1bc 🐛 fix: make GitHub API base URL configurable for GHE support (#2843)
- 72ec099 🐛 fix: resolve nightly test regressions (card-registry, consistency, unit) (#2852)
- 1eb60ad 🐛 fix: set isDone on SSE error to prevent benchmark retry loop (#2846)
- e3a926e 🐛 fix: treat nightly E2E empty runs as valid data, not failure (#2845)
- 1a129b0 🐛 fix: use same-origin relative URLs instead of localhost fallback (#2847)
- a1c4d4c 🐛 fix: warn when using default feedback/rewards repo targets (#2844)
v0.3.17-nightly.20260317
Changelog
- dba249a Added tests for feedback.go & gitops.go (#2671)
- ca034b7 Added tests for handlers
- f3a8d1a Addressed feedback
- 84656d0 Fix: surface user-visible error toasts in CustomDashboard catch blocks (#2705)
- c771971 Merge pull request #2765 from xonas1101/test-api-high-traffic-handlers
- 7f8354a chore(deps): bump @dnd-kit/sortable from 9.0.0 to 10.0.0 in /web (#2748)
- e8c4f06 chore(deps): bump @netlify/blobs from 10.6.0 to 10.7.2 in /web (#2752)
- c0d0dcd chore(deps): bump @sqlite.org/sqlite-wasm in /web (#2749)
- 4126fcc chore(deps): bump @tanstack/react-virtual in /web (#2755)
- e107a13 chore(deps): bump @vitest/ui from 4.0.18 to 4.1.0 in /web (#2751)
- a59434d chore(deps): bump i18next from 25.8.4 to 25.8.18 in /web (#2754)
- 3847e46 chore(deps): bump jsdom from 28.0.0 to 29.0.0 in /web (#2753)
- 258d6ca chore(deps): bump react-router-dom from 7.13.0 to 7.13.1 in /web (#2750)
- 02afd20 chore(deps): bump typescript-eslint from 8.56.0 to 8.57.0 in /web (#2757)
- 05cb162 chore(deps): bump vite-plugin-compression2 from 2.5.1 to 2.5.2 in /web (#2756)
- 3fcfb3c ✨ Add Multi-Tenancy dashboard with OVN, KubeFlex, K3s, KubeVirt cards (#2787)
- 0d47c17 ✨ Add Tenant Architecture topology card with interactive SVG diagram (#2790)
- d5a8c1c ✨ Add cluster_created and github_connected analytics events (#2746)
- 66ced60 ✨ Add explicit demo mode awareness to 6 high-visibility cards (#2732)
- 4c99b4a ✨ Add full resources, /assign info, and find-issues links to greetings (#2761)
- 73c47b8 ✨ Add missing user feedback: confirmation dialogs and toast notifications (#2782)
- 170501c ✨ Add network alerts: DNS failure, certificate error, cluster unreachable (#2773)
- 7731468 ✨ Add real network stats, console-kb mission loading, fix SVG layout
- ac23845 ✨ Added CloudEvents card (#2669)
- 0736bfe ✨ Added live cluster data support for CRIO card (#2640)
- cc9be81 ✨ Added live cluster data support for Fluentd card (#2612)
- 1d86d3a ✨ Added mcp tests (#2636)
- c07906f ✨ Centralize modal state management using existing useModalState hook (#2726)
- 1ceaea2 ✨ Track install method, update channel, and make update usage in GA4 (#2771)
- a2880b9 ✨ Warm up first-time contributor greetings (#2759)
- cb028e6 🌱 Add comprehensive unit tests for useInsightEnrichment hook (#2731)
- 2295637 🌱 Fix wildcard imports in test files for tree-shaking (#2737)
- 15d37a5 🌱 Recompile all gh-aw workflows with v0.58.3
- fcb62b4 🌱 Sync workflows from kubestellar/infra (#2620)
- 7fad658 🐛 Add JWT Authorization header to MCP API fetch calls in status card hooks (#2729)
- 49f1a06 🐛 Add Kubernetes wheel icon for Multi-Tenancy sidebar
- 5e0ccb2 🐛 Add Multi-Tenancy dashboard to discoverable dashboards list (#2791)
- 2ce302e 🐛 Add RBAC checks to settings and cluster group sync endpoints (#2626)
- 8983443 🐛 Add SQLite connection pool configuration to prevent resource exhaustion (#2747)
- 86923c7 🐛 Add auto-reconnect with exponential backoff to SSE streams (#2720)
- ac569f6 🐛 Add freshness indicators to components with stale data (#2725)
- 83ab5db 🐛 Add null guards to prevent Cluster Admin crash on 404/500/empty (#2715)
- c83a234 🐛 Add partial coverage warning to compliance score card (#2801)
- 1566532 🐛 Change Multi-Tenancy sidebar icon to Users (multi-person)
- 6b8dca4 🐛 Default demoWhenEmpty to true when demoData is provided (#2783)
- d16c180 🐛 Distinguish scanner fetch failures from clean scan results (#2723)
- 5aaf064 🐛 Enable SQLite WAL mode to prevent database blocking during concurrent operations (#2658) (#2684)
- cd6ec64 🐛 Fix Event Stream empty on load + remove Latest Benchmark from main dashboard (#2777)
- 8b151b1 🐛 Fix GA4 error double-counting and runtime error root causes (111 errors/28d) (#2704)
- 33cc745 🐛 Fix GPU NaN% in Resource Allocation card (#2785)
- 72d5f3e 🐛 Fix Hardware Health card showing Refresh failed on load (#2776)
- 064b637 🐛 Fix Kube Craft always placing grass block (#2716)
- 45761c3 🐛 Fix Pod Brothers game stuck on Game Over after Try Again (#2713)
- d204555 🐛 Fix RemediationConsole calling non-existent /api/shell/exec endpoint (#2733)
- 80a2e30 🐛 Fix SSE cache leak, Fiber context recycling, and goroutine leak (#2624)
- 39e85f4 🐛 Fix aggregate cards showing demo data as real — expose isDemoData from hooks
- 1c42118 🐛 Fix alert click-through showing 'No cluster selected' (#2797)
- c043da1 🐛 Fix alert notifications: dedup, deep link, and repeated firing (#2772)
- e9ea1d8 🐛 Fix broken contains operator in dynamic cluster group evaluation (#2622)
- 24e32ea 🐛 Fix cache guard to handle all data shapes (not just arrays) (#2778)
- 306ee2d 🐛 Fix cache not persisting — OPFS fallback used in-memory SQLite (#2793)
- 2224852 🐛 Fix compliance cache: include errored clusters, increase timeouts (#2803)
- 2056b9b 🐛 Fix compliance card detection: OPA false positives, Kubescape timeout, invalid kubectl flag (#2802)
- ac5691e 🐛 Fix copilot-setup-steps preview server hanging
- a66e12f 🐛 Fix dashboard cards stuck in loading state indefinitely (#2714)
- 7f6a875 🐛 Fix dashboard data disappearing on refresh (#2774)
- a0cab2a 🐛 Fix demo data to show mixed state + resize tenant isolation to 1/2
- 1ca9346 🐛 Fix hardware health tabs, AI agent auto-select, multi-tenancy icon
- 9ab63c4 🐛 Fix inconsistent component patterns (#2562)
- fe29c07 🐛 Fix memory leak in console watcher timer backoff (#2692)
- 5ad4e7a 🐛 Fix remaining GA4 errors: max call stack, stale HTML caching, clipboard (#2707)
- 389e968 🐛 Fix remaining cards going blank on refresh (events, pods, nodes) (#2786)
- 38d62b6 🐛 Fix scanner fetch failures misrepresented as No Findings (#2722)
- f3161aa 🐛 Fix setInterval memory leak in useTokenUsage (#2709)
- ff072c0 🐛 Fix sidebar: rename "Add Item" to "Add Dashboard", add Multi-Tenancy to search
- 8581c81 🐛 Fix timer cleanup in WelcomeCard, DemoToLocalCTA, RecommendationCard (#2708)
- 0b3a1ec 🐛 Fix: Compliance Score card shows Demo badge when agent is running but tools not installed (#2770)
- 4ae756f 🐛 Guard lazy imports against stale chunks and fix clipboard crashes (#2775)
- 19c36bd 🐛 Handle 401/403 gracefully in multi-tenancy card fetchers (#2788)
- cc523ac 🐛 Include cluster context in recommendation cache key (#2629)
- f3a7767 🐛 Increase Tenant Architecture card height from 4 to 6 grid units
- 311cd38 🐛 Limit concurrent helm/kubectl subprocesses to prevent OOM kill (#2792)
- a5698a9 🐛 Mark stale kubeconfig contexts + add Prune Kubeconfig AI mission (#2800)
- 4d3101a 🐛 Move Multi-Tenancy to default sidebar navigation (#2789)
- d16d288 🐛 Register useKyverno with unified mode transition system (#2730)
- 159c070 🐛 Register workload hooks for mode transition refetch (#2710)
- f1beb4b 🐛 Remove preview server from copilot-setup-steps — it hangs every time
- 87a0260 🐛 Restore full demo data for all multi-tenancy cards
- 25848ef 🐛 Revert demoWhenEmpty default + throw when no data source available (#2784)
- 7531af0 🐛 Revert jsdom 29.0.0 — requires Node.js v22.13.0+ (#2763)
- 773b3bd 🐛 Save partial progress ...