Releases: kubestellar/console
Releases · kubestellar/console
v0.3.27-weekly
Changelog
- 3afc0d9 Add screenshot 1 for issue #14317
- 8a69a4f Add screenshot 1 for issue #14322
- 761af1e Add screenshot 1 for issue #14328
- 7db6bda ✨ feat: reorganize Stellar console layout per UI improvement spec (#14338)
- 9f8e9db 🌱 fix: clear SSE reconnect timer on unmount and wire missing isRefreshing
- 0b75847 🌱 refactor: consolidate validation helpers into pkg/api/middleware (#14297)
- 334fe2f 🌱 refactor: extract CardWrapper into focused composites (#14301)
- e813d77 🌱 refactor: fix context propagation gaps in agentic_detection_runs (#14358)
- 9e7637f 🌱 refactor: move hardcoded strings in LicenseComplianceDashboard to i18n (#14327)
- 1f8bf87 🌱 refactor: split MissionSidebar.tsx into focused sub-components (#14339)
- 0f1c101 🌱 refactor: split stellar.go into domain-specific handlers (#14304)
- 0dd1f30 🌱 sec: add fork guards to 4 pull_request_target workflows (#14319)
- fb64467 🌱 sec: add fork guards to hive-interactive.yml and hold-issue-guard.yml (#14330)
- d82a48e 🌱 test: add E2E test for stellar auto-startup on console load (#14325)
- 6b8c312 🐛 fix: add AbortController cleanup to FeatureRequestModal and GitHubTokenSection (#14318)
- 5d1dd6c 🐛 fix: auto-start stellar on console load and correct deploy project count (#14321)
- cdc1b33 🐛 fix: correct inaccurate text in mission control deploy stage (#14336)
- ce5ebbe 🐛 fix: correct mission control sidebar button behavior (#14282)
- 4d3ae09 🐛 fix: correct mission status after successful rollback completion (#14353)
- e0bcec2 🐛 fix: handle API 404 errors in KB validation workflow (#14309)
- 0d0efea 🐛 fix: prevent mission from being marked Failed while awaiting user confirmation (#14333)
- faea961 🐛 fix: resolve state update issue in Mission Control deploy stage (#14337)
- bd2aeeb 🐛 fix: stale closures, topology cache key, FixerDefinitionPanel AbortController (#14356)
- 9765e7a 🐛 fix: use proper i18next pluralization instead of {{plural}} variable (#14331)
- ddd1ff1 🐛 fix: use safego for AI WS goroutines and handle exec WS write errors
v0.3.27-nightly.20260517
Changelog
- 56ed7eb ci: add helm rollback verification steps to upgrade-smoke workflow (#14158)
- d8a9616 ci: auto-file issues when KB nightly validation finds gaps (#14099)
- 4949938 feat(kb): cross-reference preflight errors against KB coverage (#14104)
- c0a20d8 Clean up 12 screenshot(s) older than 7 days
- f4e45dd ci: add nightly mission-control-kind-e2e workflow (#14094)
- 28f0c68 ci: make coverage gate blocking on threshold breach (#14285)
- 99fef25 ci: retrigger after gitlink fix on main (#14250)
- 891f427 feat(kb): add mission.schema.json and ajv validation in CI (#14155)
- 0d280f9 feat(kb): track zero-result KB browse paths and expose /api/missions/gaps (#14272)
- dab0f99 fix(e2e): suppress console errors from AppErrorBoundary in smoke tests
- 4b52a38 fix(startup): use atomic PID updates for kc-agent restarts (#14172)
- 25add26 fix: don't force global demo mode when quantum workload (#14068)
- d0e606f fix: remove worktree gitlinks breaking all Netlify deploys (#14264)
- 0b16537 fix: resolve useVersionCheck coverage test regressions (#14247)
- cbc01f3 fix: stabilize Stellar provider and dedupe SSE (#14220) (#14263)
- bfa39f6 fix: start Stellar provider with protected app (#14122)
- 0422947 fix: use === undefined instead of falsy check in dedup.ts shareMetricsBetweenSameServerClusters (#14134)
- 34f54a4 fix: use icons in Stellar side rail (#14124)
- a2e72e3 fix: use vi.hoisted() for mockShowToast to prevent undefined mock in vi.mock factory closes #14096 (#14110)
- c9d792f refactor(PodDrillDown): useAsyncData, sections, effect cleanups (#14147) (#14178)
- 799a411 refactor(svg): replace raw hex colors with chartColors.ts constants (#14043)
- c723aec refactor: split useMissions preflight helpers (#14231)
- ea9a668 test(e2e): add Playwright logout flow tests (#14295)
- c841360 test(go): unit tests for agentic detection runs handler (#14206)
- 58de917 test(missions): add KB pipeline coverage for (#14075)
- 6825126 test(ui): add Vitest suites for RangeSliderInput, FileAttachmentButton, and Slider (#14081)
- 28be87a ♻️ Deduplicate fetch block in sendNotifications / sendBatchedNotifications (#14170)
- 0372b9d ♻️ refactor: split useVersionCheck.tsx into focused modules (#14133)
- cae52d8 ♻️ refactor: type-safe hook registry (replaces #14130) (#14197)
- f8f4421 ♻️ split MissionBrowser state (#14177)
- 7bc0177 ⚡ Add AbortSignal.timeout() to Netlify fetch() calls (#14060)
- 0af8c29 ⚡ Memoize DashboardPage/Services/Cost render-time allocations (#14078)
- f9b9ef8 ⚡ perf: address performance and pagination bundle
- b6baaf1 ⚡ perf: memoize DashboardPage card handlers and extract grid style constant (#14125)
- 70ec2b5 ⚡ perf: memoize MissionListItem to reduce sidebar re-renders (#14087)
- 26173fd ⚡ perf: wrap MissionListItem in React.memo and memoize sidebar chains (#14082)
- b8c815a ✨ Add attention bubble for Stellar siderail (#14164)
- 0ad3fc3 ✨ Add hive interaction directions workflow for issues and PRs (#14091)
- c9bef0e ✨ Add search functionality to contribute modal updates section (#14101)
- 5bc4a18 ✨ feat: adaptive heartbeat and living state connection (#14273)
- 5a7dcb2 ✨ feat: show stellar audit log inline instead of new tab (#14274)
- 1f99b16 � ci: fix screenshot artifact path and pin kubectl version (#14138)
- 5490eed 🌱 Consolidate remaining mission-control gauge hex colors (#14047)
- e3fcfb2 🌱 Create shared useLocalStorage hook and refactor 4 consumers (#14168)
- 8c81ec7 🌱 Extract shared GitHub issue URL builder (#14048)
- 5571635 🌱 chore: auto-extract PreflightErrorCode from TypeScript source (#14175)
- caf7260 🌱 ci: fix actions/checkout version comment in kb-nightly-validation.yml (#14174)
- 21f1b0e 🌱 fix: add reportAgentActivity to useLocalAgent test mocks (#14291)
- 84481ed 🌱 fix: update 18 failing tests to match current implementation (#14278)
- 7413480 🌱 refactor: extract demo fallback handler helper (#14079)
- ea2ef3e 🌱 sec: add fork guards to ai-fix.yml and copilot-automation.yml (#14270)
- 547cbf1 🌱 test/ci: apply follow-up fixes for agentic detection and mission validation (#14261)
- e222666 🌱 test: fix invalid ARIA role query in Slider.test.tsx (#14135)
- bf8e6ea 🏗 refactor(errors): consolidate error handling patterns (#14038)
- 8a89097 🐛 Add Others category to Event Summary card for unaccounted events (#14225)
- 1b71897 🐛 Add kubestellar.io to CORS allowlist to restore social clicks (#14119)
- c248bd8 🐛 Add minimum height to cards to prevent content scrolling (#14189)
- fb83981 🐛 Add missing /stellar page route (#14108)
- 081f2d4 🐛 Add trust gate to hive-interactive workflow (#14109)
- 3287afb 🐛 Auto-remove resources from stellar watch list after inactivity (#14224)
- 9708125 🐛 Fix 19 test failures from state management consolidation (#14044)
- 6de2ed8 🐛 Fix Mission Control: fresh session on open + skip review prompt on suggest (#14200)
- 9f7f1e7 🐛 Fix Playwright cross-browser dashboard test failures (#14076)
- 17a879f 🐛 Fix StackContext test for useStack outside provider (#14051)
- b98ce50 🐛 Fix Stellar dismiss/clear events returning empty JSON response (#14209)
- 2cc5e6b 🐛 Fix Stellar log text size and make logs clickable (#14208)
- d12b1ae 🐛 Fix Stellar not auto-connecting on login (#14188)
- ed34960 🐛 Fix high latency in agent connection heartbeat (#14167)
- bb0e3e6 🐛 Fix mission control suggest not displaying results to user (#14103)
- 4d81b78 🐛 Fix search filter display in updates section (#14136)
- f888f0f 🐛 Fix sidebar interaction in flight plan modal (#14137)
- 7e85ee3 🐛 Fix stellar side rail navigation actions (#14092)
- c9804b5 🐛 Fix useVersionCheck test failures (#14176)
- 4d9c9fe 🐛 Fix useWorkloads falsy trap: use nullish coalescing for scaled-to-zero deployments (#14163)
- 8645cc2 🐛 Fix vi.mock hoisting bug in FileAttachmentButton test (#14107)
- 20e5629 🐛 Fix workflow shell injection via unsanitized workflow_dispatch inputs (#14059)
- 240f07f 🐛 Fix zero-contrast / invisible text in stats cards (Light Mode) (#14207)
- f0c19cc 🐛 Fix zero-contrast text in Storage/Pods stats cards (light mode) (#14199)
- 3b3d66b 🐛 Fix: Correct layout alignment in Active Alerts card (#14213)
- b0838ba 🐛 Fix: Show rollback changes button on mission failure (#14214)
- 913fa0b 🐛 Make flight plan sidebar sticky for interaction (#14236)
- d207d87 🐛 Merge deploy-to-clusters into a single unified AI mission session (#14271)
- 6b5c0f1 🐛 Migrate kc-agent hooks to agentFetch (#14180)
- 59ec254 🐛 Narrow AppErrorBoundary E2E error pattern to avoid suppressing real crashes (#14106)
- dda76a1 🐛 Portal priority dropdown to fix overflow clipping in PayloadCard (#14100)
- 10dedec 🐛 Remove triage/accepted gate from hive-interactive workflow (#14154)
- dc2008f 🐛 fix 14 test failures from MissionBrowser refactor (#14243)
- 2250115 🐛 fix multiple AI missions interaction conflict (#14182)
- dbc4321 🐛 fix(startup): use unique temp path for atomic PID write (#14222)
- cc2e0f2 🐛 fix(tests): resolve coverage RED in AlertsContext, DashboardSettingsSection (#14227)
- d59218c...
v0.3.27-nightly.20260516
Changelog
- 20004ee implement State Resilience Framework for mentorship #12000 (#13683)
- c56d201 Clean up 5 screenshot(s) older than 7 days
- 94fddbd ci: auto-close PRs from new accounts with no prior contributions (#13963)
- 0900c8c feat: add Netlify deploy failure reporter workflow (#13858)
- 635da55 fix(ClusterLocations): compute stats tiles from pre-chip base data (#13951)
- 7f68a53 fix(i18n): guard initReactI18next usage to prevent test load failures (#14026)
- 04ad627 fix(i18n): use namespace import for initReactI18next to fix 73 test load failures (#14033)
- 99da11b fix: guard empty DNS slice in card_proxy and drasi_proxy to prevent panic (#13840) (#13842)
- f5d40ae fix: quantum proxy routes were missing from netlify.toml (#13927)
- 4e359f5 fix: remove duplicate const declarations breaking Netlify build (#13850)
- 6924303 fix: remove duplicate podDiagnosis and diagnosisEvidence in PodDrillDown (#13860)
- 6735f46 fix: restore if err := on writeJSON calls in handleKagentCRDSummary (#13849)
- 292d9c1 test(core): add comprehensive suites for error classification and global boundary (#13919)
- c4b2544 test(coverage): 252+ tests for 14 uncovered lib/hook modules (#13982)
- 14638ac test(coverage): 42 tests for validateExternalUrl, quantum/pollingContext, useAppSideEffects (#13988)
- 5f05467 test(coverage): 6 tests for LazyEChart — Suspense/skeleton/style/lazy-resolve (#13990)
- 20fcc80 test(coverage): add api and cache coverage (#14006)
- add41ee test(e2e): add Playwright simulation for catastrophic network failure recovery (#13920)
- 6665695 test(quantum): RTL coverage for QuantumCircuitViewer and QuantumQubitGrid components (#13832) (#14012)
- c3d9c84 test(quantum): RTL coverage for QuantumStatus card component (#13832) (#14003)
- c216a78 test(quantum): Vitest coverage for useQuantumAuthStatus hook glue (#13832) (#13911)
- cb0b9f4 test(quantum): Vitest coverage for useQuantumCircuitAscii hook glue (#13832) (#13852)
- 3f1f997 test(quantum): Vitest coverage for useQuantumQubitGridData hook glue (#13891)
- 915f52a test(quantum): Vitest coverage for useQuantumSystemStatus — disabled path and isDemoData gating (#13832) (#13843)
- 21ed9fe test(ui): add Vitest suite for CollapsibleSection via autonomous AI agent prototype (#13916)
- a9d50b2 ♻️ refactor: replace 100 registerHooks wrappers with 3 factory helpers (#13790)
- c0a6d86
⚠️ add pagination to missions-scores endpoint - a446965 ⚡ Add useMemo to expensive array derivations in Storage, ActiveAlerts, DashboardGrid (#13999)
- 3a0baf6 ✨ Add ResolveScannerProvider for Stellar two-tier provider system (#13936)
- ac75a38 ✨ Add interactive hive bot via issue comment mentions (#13896)
- acf3a87 ✨ Show cluster context in kubectl terminal output (#13910)
- 8e1fd57 � Fix JSON injection in stellar TriggerData and sanitize error leakage (#13938)
- 9fbdba2 � Fix heredoc injection in hive-interactive.yml (#13918)
- 57c7008 � Memoize cutoff in ClusterChangelog to prevent render-loop recomputation (#13969)
- fd7e9cf � Reuse http.Client in forwardEventToStellar for connection pooling (#13970)
- c646596 🌱 Add dedicated stat-block display and drill-down tests (#13831)
- f215c4a 🌱 Add error wrapping to sqlite_stellar.go (#14001)
- 47ece73 🌱 Adopt shared Netlify CORS/timeout utilities in 6 functions (#14028)
- fbd9323 🌱 Bound goroutine fan-out in mcp_query and server_federation (#14027)
- 1987249 🌱 Bound goroutine spawning in forwardEventToStellar (#14005)
- c9e0807 🌱 Deduplicate competitor landing page shells (#14017)
- 035574a 🌱 Extract helpers from card_proxy, feedback_requests, mcp/bridge (#14013)
- 0901423 🌱 Extract shared Netlify function utilities (CORS, timeout, retry, error) (#14016)
- 3646789 🌱 Fix new-contributor-pr-gate permissions and comment formatting (#14021)
- 3de47e2 🌱 Fix shell injection in test-installer.yml via env-var indirection (#13968)
- 5407f19 🌱 Fix tautological useQuantumSystemStatus unauthenticated test (#13878)
- 7002113 🌱 Migrate cached hooks to createCachedHook factory (#14029)
- 3d243b0 🌱 Replace fmt.Sprintf JSON with json.Marshal in stellar.go audit entries (#13948)
- 9a56947 🌱 Replace inline fontSize/fontFamily with Tailwind classes (#13887)
- 4d170a7 🌱 Replace namespace import with named imports in i18n.ts (#14015)
- 5e70f6b 🌱 refactor: add i18n to drilldown hardcoded strings (#13770) (#13776)
- 7edd50e 🌱 refactor: consolidate chart color systems — eliminate raw hex duplication (#13785)
- e0ab578 🌱 refactor: deduplicate 3 Gadget trace hooks into parameterized factory (#13775)
- 2c62ead 🌱 refactor: wrap onboarding sequential DB writes in transaction (#13767) (#13779)
- 4bfd2c7 🌱 test: add Vitest coverage for useMissionToolCheck hook (#13766)
- fe3c055 🏗 Consolidate chart color systems: replace raw hex with named constants (#13784)
- 9789bf8 🏗 Remove dead MissionProvider refactor files (3331 lines) (#13884)
- 6619c62 🏗 refactor(state): consolidate state management patterns (#14039)
- 0bd05e5 🐛 Add /result/histogram to quantum-proxy ALLOWED_PATHS (#13961)
- 7f05bab 🐛 Add Maximum card height option for quantum demo cards (#13949)
- 39cfc39 🐛 Add context-aware timeout to subprocess semaphore acquisition (#13954)
- 6ddcf0f 🐛 Add keyboard accessibility to stellar event handlers (#13885)
- d393554 🐛 Add kubeconfig support to Helm installs (#13872)
- 3ede423 🐛 Add length truncation to renderUntrustedPromptData (#13876)
- 424b533 🐛 Add rate limiting to quantum-proxy.mts POST endpoint (#13942)
- a3f9073 🐛 Bump warm TTC threshold to 4500ms for CI runner variance (#13793)
- 4117495 🐛 Disable scaling controls for system namespaces (#13917)
- dc900ce 🐛 Fix 13 coverage test failures: async preflight + AI mode button name (#13866)
- 3fab259 🐛 Fix 18 test failures from PR #13982 regression (#14000)
- 23746aa 🐛 Fix 281 test failures from Coverage Suite run #2729 (#13895)
- b1f4407 🐛 Fix 3 test failures from React 18 setState batch timing (#14009)
- 4ddefb5 🐛 Fix 40 test failures from scroll behavior change (#13923) (#13930)
- 0e53626 🐛 Fix 562 test failures: missing mocks, duplicate declaration, ratchet thresholds (#13888)
- a7f70f7 🐛 Fix AI Health Check drilldown and health percentage (#13857)
- 6c9e02b 🐛 Fix AI Missions sidebar overflow: add scrollbar for long content (#13815)
- fb72302 🐛 Fix AI Missions sidebar scrollbar — add overflow-y-auto to panel container (#13870)
- 7452a6a 🐛 Fix Active Alerts card layout — align content to top (#13846)
- 32edde3 🐛 Fix AgentStatusIndicator auth_error dropdown test (#13905)
- 3c0bc58 🐛 Fix Cluster Upgrade Status and Operator Status cards (#13826)
- 1e3bdf8 🐛 Fix Events Timeline showing 'Live' badge with 'Refresh failed' (#13868)
- ed813eb 🐛 Fix JSON injection in solver TriggerData and sanitize scheduler errors (#13945)
- 42a30b0 🐛 Fix MSW quantum passthrough to match multi-segment paths (#13962)
- bb8a97e 🐛 Fix NPS popup: delay first appearance, snooze 7 days on dismiss (#13822)
- 45d4b5a 🐛 Fix Netlify functions leaking upstream error bodies (#14004)
- 8b8468e 🐛 Fix OSCAL drill-down totals (#13829)
- b0629a7 🐛 Fix OpenAI Codex and Gemini CLI timeout for cluster queries (#13818)
- 9ab2537 🐛 Fix SSRF, p...
v0.3.27-nightly.20260515
Changelog
- 33bb058 Clean up 2 screenshot(s) older than 7 days
- d055bb1 Fix MCP bridge binaries in container (#13658)
- 3fc1d98 Remove dead code in gitops_drift.go (#13594)
- b8040e2 feat: add Ctrl+Z / Ctrl+Shift+Z keyboard shortcuts for dashboard undo/redo (#13764)
- 5807772 fix(ci): prevent shell injection in preview-status.yml (#13724)
- bbb64c2 fix(ci): prevent shell injection in workflow-failure-issue.yml (#13720)
- 7f2c511 fix(i18n): wrap theme removal toast in translation layer (#13570)
- fd22193 fix: Chaos Mesh card reads flat custom-resources API and PodChaos conditions (#13761)
- 0f0a42c fix: Expand quantum proxy allowlist to include auth, qasm, execute, loop, qubits endpoints (#13601)
- 8d8f622 fix: Move path traversal check into allowlist validator for defense-in-depth (#13626)
- ba48262 fix: add missing settings.theme.removeFailed i18n key (#13610)
- 05f1712 fix: guard against undefined cluster in handleDiagnose and handleRepair when targetClusters is empty (#13621)
- 12c90f7 fix: persist verification state to localStorage in Contribute section (#13545)
- 3a4db53 fix: role label takes precedence over deployment name in buildComponentsFromDeployments (#13718)
- abe1388 fix: use console.error for GPU utilization fetch failure (#13559)
- 2e4892f fix: use console.error for MCP backend fetch failure (#13568)
- f00f117 fix: use typed useTranslation('cards') for pipeline error i18n keys (#13622)
- 3240534 refactor: decompose server.go into config, middleware, startup modules (#13540)
- f20fd10 refactor: deduplicate getConsoleUrl — consolidate 3 divergent copies (#13747)
- 09a3a3f ♻️ Migrate 6 useCached hooks to createCardCachedHook factory (#13752)
- a28e978 ♻️ Migrate 8 useCached hooks to createCardCachedHook (#13765)
- ea8b1ac ✨ Add Detection Runs for agentic workflows (#13706)
- f40fa1a ✨ Add confirmation dialogs for destructive delete actions (#13641)
- 7e6e938 ✨ Add interactive tooltip with exact event counts to Events Timeline chart (#13737)
- df18fe2 🌱 Add missing idx_users_github_login database index (#13741)
- a033fb9 🌱 Add rate limiting to 4 Netlify POST endpoints (#13745)
- d739ac7 🌱 Add rate limiting to github-pipelines.mts mutate endpoint (#13742)
- 14fa629 🌱 Consolidate 15 duplicate HTTP clients into shared pool (#13726)
- 4cb9336 🌱 Consolidate 17 handler HTTP clients into shared pool (#13730)
- fedecae 🌱 Decompose setupRoutes into focused route files (Phase 2) (#13561)
- c6ec982 🌱 Extract useDrillDownWebSocket hook — eliminate 680 LOC duplication (#13725)
- 9ff453a 🌱 Migrate 3 components from direct WebSocket to useDrillDownWebSocket (#13743)
- 3a403d4 🌱 Pin actions/github-script to SHA in mttr-badge.yml (#13617)
- 8e56e4f 🌱 Standardize status indicator colors to consistent pattern (#13552)
- 0a79d87 🌱 i18n: wrap hardcoded error strings in pipeline cards + CrossClusterPolicyComparison (#13597)
- 0d57002 🌱 test: add Vitest coverage for useCachedQuantum pure fetch functions (#13667)
- fe28191 🏗 Remove dead useMissions.provider.tsx + orphaned test (Phase 0) (#13564)
- 5979ff7 🏗 refactor: deduplicate From* comparison landing pages (#13753)
- af70d8d 🐛 Add attribution footer and triage labels to reopen requests (#13671)
- 3b03f37 🐛 Add error boundary around resolution apply path to prevent full-page crash (#13595)
- 9f87c85 🐛 Add missing Live badge to Event Stream card (#13697)
- 7e133e6 🐛 Add missing loading states on async actions (#13705)
- 08871c0 🐛 Add per-IP rate limiting to NPS endpoint (#13759)
- 0370e45 🐛 Add per-IP rate limiting to NPS endpoint (1 per 24h) (#13668)
- 8ce38be 🐛 Add try/catch around appendWsAuthToken() in drilldown views (#13618)
- d2c2e43 🐛 Add user notifications for silent error catch blocks (#13638)
- 06307c8 🐛 Add visual fill track to slider inputs (#13542)
- 5cb9332 🐛 Change limited-permissions indicator from warning yellow to info blue (#13682)
- 72addbd 🐛 Close Resource Allocation filter menu on scroll (#13699)
- d2ea4f4 🐛 Close issue #13275: error classification fix already merged in #13277 (#13669)
- d8a882c 🐛 Enable MCP bridge when running in-cluster mode (#13654)
- f62a33c 🐛 Fatal exit on crypto/rand failure instead of predictable JWT secret (#13666)
- 68063e1 🐛 Fix 25 ClusterHealth/ClusterDetailModal test failures after getConsoleUrl dedup (#13754)
- f203c6c 🐛 Fix 4 test failures from Coverage Suite run #2661 (#13676)
- a171ecc 🐛 Fix 403 on token save for local self-hosted console (#13629)
- 61565d8 🐛 Fix 9 test failures from SSE/REST routing refactor (#13673)
- d02d798 🐛 Fix AI agent premature completion on missing tool warning (#13633)
- ad37ebb 🐛 Fix AI agent to respect explicit negative constraints (#13655)
- 1a1577d 🐛 Fix CSS alignment and TypeError crashes in DeploymentIssues card (#13736)
- d5f1871 🐛 Fix Chaos Mesh card live refresh (#13760)
- 7dfe560 🐛 Fix Cluster Health card header clipping on sidebar compression (#13703)
- 3110a82 🐛 Fix Event Stream search icon alignment (#13693)
- bb2c4e2 🐛 Fix EventsTimeline crash and EventStream array safety (#13713)
- a5abcbe 🐛 Fix EventsTimeline crash on undefined data (#13695)
- b7526f0 🐛 Fix KagentStatusCard runtime distribution progress bar producing invalid values (#13592)
- 4ccd059 🐛 Fix NaN CSS width from division by zero in KagentiStatusCard (#13589)
- 69d9a11 🐛 Fix OPAPolicies broken mode badge when status has no mode (#13587)
- 04f39a7 🐛 Fix SSE/REST routing to use correct cluster mode check (#13659)
- 8fe9b93 🐛 Fix Security Compliance drill-down showing all zeros (#13565)
- ad59b79 🐛 Fix TypeError crash when applying saved resolution with missing fields (#13591)
- ee2a2c6 🐛 Fix VirtualizedMissionGrid crash with empty rowItems in list view (#13593)
- 23227b7 🐛 Fix WelcomeCard and AgentStatusIndicator test failures (#13640)
- 9135202 🐛 Fix async Promise executor leak in WebSocket-based drilldown views (#13598)
- 23eabb0 🐛 Fix async node selection race condition in MissionBrowser file tree (#13590)
- 9ead874 🐛 Fix black vertical line through Mission control button in AI missions sidebar (#13567)
- 3be50f7 🐛 Fix black vertical line through Mission control button in AI missions sidebar (#13569)
- 34335ca 🐛 Fix demo mode disable not forcing immediate CLI agent auth (#13623)
- 0db5a86 🐛 Fix failing nightly UX journey Playwright tests (#13653)
- 8e85e2e 🐛 Fix filter dropdown pushing page content down instead of overlaying (#13566)
- 0cc9516 🐛 Fix filter dropdown pushing page content instead of overlaying (#13571)
- d4cc4c1 🐛 Fix incorrect localhost port in onboarding widget (#13620)
- 68be150 🐛 Fix node capacity progress bar to use healthy/total ratio (#13690)
- db75a9d 🐛 Fix optional existingSecret and add K8s tool bindings to Kagenti (#13660)
- 7d2efd2 🐛 Fix search icon alignment in Event Stream card (#13557)
- c570cf0 🐛 Fix shell injection via PR title in pr-closed-verification.yml (#13715)
- 1727cc4 🐛 Fix shell injection via unquoted github.actor in workflows (#13733)
- 9c1bd30 🐛 Fix start.sh redundant app creation and FEEDBACK key persistence (#13624)
- 5f6dbe8 🐛 Fix stat block drill-down showing zeros on Security Compliance dashboard (#13572)
- e7...
v0.3.27-nightly.20260514
Changelog
- b235bb5 Clean up 2 screenshot(s) older than 7 days
- ef2e846 feat: add GitHub Actions workflow to auto-detect untested hooks and components (#13533)
- 2a15e78 fix(i18n): wrap drilldown toast messages in translation layer (#13455)
- fa8fa0d fix: add nil k8sClient guard in StartWatcher to prevent panic (#13451)
- 1c55a79 fix: harden workflow security for #13525 (#13528)
- d6aac74 fix: log GetUser error in ListAllFeatureRequests (#13300) (#13473)
- 0ea686e fix: make helm and gh soft dependencies for mission preflight check (#13483)
- c265301 fix: prevent setState on unmounted component in ChangeControlAudit (#13475)
- 8b99012 fix: prevent setState on unmounted component in HIPAADashboard (#13479)
- 9cb8d3e fix: prevent setState on unmounted component in IncidentResponseDashboard (#13482)
- 215377e fix: prevent setState on unmounted component in RBACAuditDashboard (#13478)
- 9185f79 fix: prevent setState on unmounted component in ThreatIntelDashboard (#13481)
- 74536a3 fix: prevent setState on unmounted component in compliance auto-refresh (#13458)
- f95403b fix: use console.error for permanent WebSocket reconnect failure (#13508)
- 2ce3e2b fix: use console.error for permanent presence disconnect failure (#13509)
- 0a52280 ✨ Improve navigation and routing (#13521)
- 30a0c16 ✨ Improve touch target sizes for mobile accessibility (#13522)
- 4833f25 ✨ Standardize inconsistent component patterns (#13469)
- 7be199a ✨ Support creating child (sub) issues from bug reporter (#13490)
- 404e953 � Split cardRegistry.ts into focused modules (#13501)
- 8c21441 🌱 Add test coverage for components identified by Auto-QA (#13468)
- 355bc1c 🌱 Extract remaining inline constants to useMissions.constants.ts (#13493) (#13503)
- 1d7e899 🌱 Extract useMissions.constants.ts from provider (#13493) (#13502)
- b129736 🌱 Extract useMissions.helpers.ts — pure utility functions (#13493) (#13505)
- 125e91d 🌱 Pre-allocate slice capacity in hot-path handlers (#13480)
- ae577ce 🌱 Reuse shared HTTP client in provider_openai_compat.go (#13450)
- 2c04102 🌱 Split large vendor chunks and lazy-load heavy routes (#13499)
- 0a3d598 🌱 test: add tests for useQASMFiles hook (#13484)
- ab17465 🐛 Add dashboard-page testid to loading skeleton (#13447)
- e8be600 🐛 Add dashboard-page testid to loading skeleton for cross-browser stability (#13452)
- d3bf035 🐛 Add scale reference labels to bar visualization in Stats Overview (#13463)
- 1af1a6d 🐛 Classify tool-missing mission errors to reduce ksc_mission_error noise (#13504)
- d56be5a 🐛 Deduplicate optional-tool warnings in CheckToolDependencies (#13500)
- 0a89227 🐛 Fix cluster summary progress bars to scale with actual data (#13457)
- 9be432e 🐛 Fix consistency-test regressions: join guard and fetch timeout (#13454)
- 7b332ab 🐛 Fix error leakage in feedback handlers + add MSW identity passthroughs (#13497)
- 2fd796b 🐛 Fix nightly regression: consistency-test and cache-test (#13443)
- 5bc7956 🐛 Fix notification badge count not syncing after marking as read (#13461)
- fbbce00 🐛 Fix skeleton loading tests for ChangeTimeline and CloudCustodianStatus (#13471)
- 20e34da 🐛 Fix skeleton loading tests using getAllByTestId for multiple elements (#13476)
- 70747ba 🐛 Fix validateClaudeKey default URL and hardcoded model (#13516)
- e60479d 🐛 Gracefully handle missing optional tools in mission execution (#13506)
- 6f0ca91 🐛 Hide Request Update button for closed GitHub issues (#13489)
- 025cfbc 🐛 Increase compliance job timeout to 45 minutes (#13446)
- 9d59753 🐛 Prevent setState on unmounted component in 16 compliance dashboards (#13488)
- 654f26b 🐛 Remove duplicate preflight error messages in mission sidebar (#13465)
- d75b513 🐛 Remove input reflection of repo param in ACMM scan responses (#13438)
- f5ec2a7 🐛 Remove leaked error details from sub-issue linking warnings (#13494)
- 8c5329d 🐛 Reset cert-manager demo state on live refresh (#13442)
- 0dd8d8c 🐛 Show 'No clusters connected' instead of 'All systems healthy' in empty environments (#13513)
- e0ccbaa 🐛 Upgrade swallowed console.warn to console.error in catch blocks (#13444)
- 89e6cb0 🐛 Wire OPENAI_BASE_URL env var to OpenAI provider and key validation (#13518)
- dd83ef5 🐛 i18n: wrap dashboard toast messages in t() for locale support (#13433)
v0.3.27-nightly.20260513
Changelog
- cc48a38 Add screenshot 1 for issue #13278
- b6a2282 Clean up 3 screenshot(s) older than 7 days
- 3e740ca Eliminate pending reservation status, make overview cards clickable (#13327)
- a254602 Synchronous GPU reservation provisioning (#13323)
- e12ccb9 feat: standardize quantum demo mode to Bell state with bell.qasm (#13339)
- 4bb7d22 fix(ArgoCDApplications): compute stats tiles from pre-chip base data (#13385)
- 9f1899d fix: correct detectServerType priority — vllm before llm-d (#13273) (#13274)
- 19a736e fix: restore DejaVu priority in quantum circuit viewer font stack (#13338)
- 9df6c71 fix: stabilize nightly cache and benchmark tests (#13337)
- 6275985 ✨ Add server address to cluster popup and fix version check for nightly channel (#13238)
- f518861 � Sanitize user input in error response in github_pipelines.go
- 7af1f51 � Wrap 3 bare goroutines with safego.GoWith() (#13343)
- 773911a 🌱 Add useLLMd priority test for vllm-deployment detection (#13292)
- 60c3daa 🌱 Extract isValidPreviewUrl and fix open redirect in FeatureRequests
- 16d0489 🌱 Extract magic number latency thresholds into shared constants (#13253)
- 4541ad9 🌱 Fix architect queue r2: error leak, lazy images, useMemo, watcher json.Encode (#13235)
- afdf4ca 🌱 Fix architect queue r3: lazy images + pem.Encode error check (#13242)
- 10fbf34 🌱 Initialize nil slices in Go handlers to prevent null JSON serialization (#13320)
- d4e3bf9 🌱 Migrate 21 bare goroutines to safego.GoWith() (#13329)
- 35086b3 🌱 Migrate 6 React.lazy() calls to safeLazy() wrapper (#13316)
- 574cdb0 🌱 Migrate card fetch() calls to useCache/useCached* hooks (#13319)
- 8685523 🌱 Reuse shared HTTP clients in kc-agent instead of per-request (#13424)
- eca1cb8 🌱 Sanitize user input reflected in GPU and MCP error responses (#13393)
- 6a1e7de 🌱 Upgrade gh-aw from v0.71.5 to v0.72.1 (#13246)
- ec4263e 🌱 Use %w for error wrapping instead of %v (#13331)
- 1d5e399 🌱 Wrap 14 bare goroutines with safego.GoWith() (#13355)
- 7d050dd 🎨 Fix color contrast issues for WCAG AA compliance (#13299)
- 43a2e71 🐛 Add ARIA labels to role="button" elements and modal accessibility (#13270)
- d46680f 🐛 Add stale data detection to 5 WebSocket hooks (#13256)
- 17c3588 🐛 Add startup_failure to benchmark conclusion allowlist (#13266)
- 42b9e44 🐛 Emit GA4 agent_token_failure event on kc-agent token fetch failure (#13268)
- e69cfff 🐛 Fix Event Stream card excessive empty spacing above events (#13288)
- 9ccac20 🐛 Fix GPU a11y trap and add provisioning test coverage (#13357)
- d8cdab5 🐛 Fix PingHandler SSRF TOCTOU with DialContext IP validation (#13353)
- f2bbe53 🐛 Fix Provider Health card to fetch live data in in-cluster mode (#13280)
- d35eb8a 🐛 Fix SSRF in Drasi proxy with IP blocking and redirect prevention (#13342)
- 1b210b9 🐛 Fix SSRF in issue-stats.mts — validate repo query param (#13291)
- 9e019c5 🐛 Fix XSS in BlueprintReport via HTML escaping (#13313)
- b2e8a2d 🐛 Fix button label truncation in AI Missions panel (#13333)
- 60cb806 🐛 Fix cross-browser loading state visibility in Dashboard tests (#13287)
- f19552a 🐛 Fix dashboard grid ARIA structure with proper role=row wrappers (#13289)
- 327f750 🐛 Fix goroutine safety: context timeouts + mutex helper (#13245)
- 99d0cd2 🐛 Fix modal escape handling and ARIA labels (#13267)
- 217bf14 🐛 Fix nightly test regressions (#13271)
- 2cca92a 🐛 Fix nil-slice JSON in GetDashboardCards and GetDueSwaps (#13415)
- eddd42c 🐛 Fix nil-slice JSON in GetDashboardCards and GetDueSwaps (#13418)
- ea090e9 🐛 Fix nil-slice JSON serialization in store layer (#13402)
- d40a5e7 🐛 Fix nil-slice JSON serialization in store layer (12 instances) (#13423)
- 352199b 🐛 Fix nil-slice JSON serialization in store layer (12 instances) (#13426)
- 0ec8a70 🐛 Fix silently discarded errors in sqlite_dashboards.go and server_ai_tokens.go (#13304)
- 39cfd2e 🐛 Fix system updates check feedback (#13239)
- 6c79fa7 🐛 Increase dashboard-nav perf job timeout to 60 minutes (#13286)
- e6ef62d 🐛 Internationalize AgentApprovalDialog security authorization flow (#13255)
- c17d13a 🐛 Migrate 3 remaining bare goroutines to safego (#13312)
- 1a820b1 🐛 Move Anthropic API key from localStorage to sessionStorage (#13414)
- e3a233d 🐛 Parse structured error body in fetcherUtils and classify RBAC errors (#13277)
- 1a30ffd 🐛 Remove input reflection in acmm-scan.mts repo parameter (#13409)
- 243b658 🐛 Remove input reflection in feedback-app Netlify function (#13401)
- dd46230 🐛 Remove stale 'pending' references from GPU SQL filters (#13366)
- a8a8357 🐛 Replace CIDR blocklist with Go stdlib IP checks for SSRF prevention (#13367)
- ff81b97 🐛 Replace raw API error codes with user-friendly messages on Network page (#13281)
- ed5a0d7 🐛 Sanitize 6 remaining public API error leaks (#13377)
- 4440547 🐛 Sanitize GPU provisioning error response (#13354)
- 207265f 🐛 Sanitize error leakage and input reflection in kc-agent handlers (#13425)
- d469885 🐛 Sanitize error responses in 9 public API handlers (#13374)
- 06af9e4 🐛 Sanitize error responses in drasi_proxy and workloads handlers (#13363)
- eccabee 🐛 Sanitize error responses in drasi_proxy.go (#13413)
- a2ed64b 🐛 Sanitize error responses in kc-agent HTTP handlers (#13395)
- 6b63e1e 🐛 Sanitize error responses in kc-agent ops handlers (#13403)
- 6f0373c 🐛 Sanitize error responses in nightly_e2e.go and feedback_github.go (#13384)
- 218c0f2 🐛 Sanitize error responses in ping.go and missions.go (#13380)
- d826ecf 🐛 Sanitize error responses in workloads, missions, gitops, and kagenti handlers (#13373)
- aa99406 🐛 Sanitize query params and validate paths in quantum proxy (#13408)
- d0df645 🐛 Surface backend sync failures in useClusterGroups (#13254)
- 8076c99 🐛 Validate Netlify preview URLs before window.open (#13387)
- 9abc904 🐛 Wire isDemoData through useCertManager hook and CertManager card (#13336)
- d722c4b 🐛 Wire isRefreshing in ComplianceScore card
- 895af8d 🐛 Wire isRefreshing in ComplianceScore card (#13381)
- 2cb1e78 🐛 Wire isRefreshing in ComplianceScore card (#13382)
- 86ae8dc 🐛 Wire isRefreshing to 24 data cards for refresh icon animation (#13361)
- 6790891 🐛 sec: Remove input reflection of cluster param in custom_resources.go (#13429)
- 2b35f5a 🐛 sec: Sanitize error leakage in gitops_operators.go (4 instances) (#13427)
- 6d15c07 🔐 Fix numeric validation in github-pipelines.mts and error leakage in feedback-app.mts (#13296)
- 5384f77 🔒 Replace magic number with named constant in kagenti_provider (#13269)
- e19eb83 🛡️ Add SafeGo() panic recovery wrapper for background goroutines (#13302)
- 86003ed 🛡️ Migrate remaining 18 bare goroutines to safego (#13306)
v0.3.27-nightly.20260512
Changelog
- 9ad443c Add screenshot 1 for issue #13033
- 900831c Add screenshot 1 for issue #13034
- ca62142 Add screenshot 1 for issue #13036
- e59e5ec Clean up 3 screenshot(s) older than 7 days
- d662c9e chore(deps): bump @netlify/blobs from 10.7.4 to 10.7.5 in /web (#13207)
- 4c1ae0e chore(deps): bump @storybook/react-vite from 10.3.5 to 10.3.6 in /web (#13199)
- 4d5d28b chore(deps): bump @types/node from 25.6.0 to 25.7.0 in /web (#13202)
- 9f83ec3 chore(deps): bump actions/github-script from 7 to 9 (#13204)
- 0bdd41e chore(deps): bump actions/setup-python from 5.6.0 to 6.2.0 (#13200)
- 3bc7494 chore(deps): bump azure/setup-kubectl from 5.0.0 to 5.1.0 (#13198)
- 6b27c15 chore(deps): bump docker/setup-qemu-action from 3.6.0 to 4.0.0 (#13197)
- dd8c26f chore(deps): bump eslint from 10.2.0 to 10.3.0 in /web (#13209)
- 993b3e5 chore(deps): bump eslint-plugin-react-hooks from 7.0.1 to 7.1.1 in /web (#13194)
- 6ba6395 chore(deps): bump i18next from 26.0.8 to 26.1.0 in /web (#13203)
- 8b67a1a chore(deps): bump modernc.org/sqlite from 1.50.0 to 1.50.1 (#13195)
- df39a82 chore(deps): bump postcss from 8.5.10 to 8.5.14 in /web (#13205)
- cb90f18 chore(deps): bump sigstore/cosign-installer from 4.1.1 to 4.1.2 (#13206)
- 64e9fe4 chore(deps): bump tailwind-merge from 3.5.0 to 3.6.0 in /web (#13208)
- 51554e0 chore(deps): bump tailwindcss from 4.2.4 to 4.3.0 in /web (#13201)
- 1d5a0d2 chore(deps): bump vitest from 4.1.5 to 4.1.6 in /web (#13196)
- 9f9291a feat: add autonomous project banner linking to hive dashboard (#13146)
- cc38051 fix(ArgoCDApplications): reset pagination when clicking status filter tiles (#13086)
- 8d3bde3 fix(a11y): banner overflow and focus ring clipping (#13157)
- e998f8a fix(cache): guard FedRAMPDashboard .replace() crash causing cache warm-return regression (#13162)
- 96ccfb0 fix(cache): guard undefined string operations in compliance dashboard cards (#13166)
- 1d0a935 fix(i18n): LocalClustersSection defaultValue hides missing keys (#13160)
- 7ead67f fix(i18n): replace hardcoded strings in autonomous banner (#13159)
- 9034c71 fix(i18n): wire Retry buttons through translation layer in 8 compliance dashboards (#13142)
- f289e73 fix(missions): repair close, minimize, back, and history header controls (#13158)
- c93b027 fix(studio): prevent Create Custom Card editor from blocking button clicks (#13177)
- bc4d498 fix(test): update SigningStatusDashboard error state test for i18n Retry buttons (#13145)
- 531eec6 fix(ui): contain resolution card layout and make responsive (#13155)
- 6fb3e57 fix: DOM nesting and structure violations (#13178)
- 527b34a fix: add console.warn logging to silent dashboard create/delete catches (#13088)
- 78e3777 fix: auto-close IBM Credentials modal after successful save (#13210)
- 4332fb6 fix: banner overlap — increase BANNER_HEIGHT_PX to match actual content height (#13147)
- 912ff69 fix: bump Helm appVersion to 0.3.26 (#13150)
- ef36681 fix: graceful handling of missing kubeconfig on Windows (#13184)
- 11630fe fix: guard against division by zero in StockMarketTicker portfolio summary (#13076)
- f82b00b fix: handle refresh errors after close and reopen in feedback handler (#13082)
- c2a3a0b fix: log cleanup errors in orbit temp file handling (#13084)
- 0bc1c3a fix: prevent false-positive error state in DataComplianceCards on partial cluster failure (#13192)
- fca7fdd fix: redact internal errors from API responses (#13217)
- 4ba2e20 fix: refresh icon animation consistency issues (#13179)
- 9dc0abe fix: replace as any cast with defaultValue in Intoto error key (#13101)
- 20813a6 fix: replace as any casts with defaultValue in vCluster i18n keys (#13098)
- 25ac964 fix: restore DejaVu Sans Mono font for circuit viewer and refine Qiskit logo (#13181)
- f477b39 fix: sanitize SVG output in QuantumQubitGrid via DOMPurify to prevent XSS (#13122)
- 13d3ec9 fix: surface refresh and failure states in compliance cards (#13165)
- 018d229 refactor: migrate remaining hardcoded route strings to ROUTES constants (#13193)
- a5313a9 refactor: name demo replica constant in workloads handler (#13075)
- c329177 ⚡ Add lazy loading for large PodDrillDown tab components (#13065)
- 4cb5051 ✨ Improve AI Missions empty state action button layout (#13060)
- 48e946e ✨ Improve AI Missions empty state action button layout (#13069)
- 593da69 ✨ feat: add GA4 week-over-week error rate regression workflow (#12999)
- 71637c0 � Add failure_stage dimension to marketplace install GA4 events (#13049)
- 5268d8e 🌱 Extract hardcoded i18n strings (#13222)
- dba4cba 🌱 Fix architect queue r2: error leak, lazy images, useMemo, watcher json.Encode (#13234)
- b8095e7 🌱 Fix architect queue: SSRF, nil-slices, error leaks, json.Encode, lazy images (#13231)
- 059537b 🌱 Fix architect scan findings: json.Encode errors, context leaks, error leakage, perf (#13224)
- 9e8a6af 🌱 Fix nil-slice JSON null and add image lazy loading + dimensions (#13226)
- fa742ad 🌱 refactor: replace hardcoded rgba colors with named constants in timeline components (#13115)
- b93df58 🌱 refactor: replace hardcoded strings with i18n in AlertDrillDown and FixerCard (#13125)
- 8fd62da 🌱 refactor: use semantic color tokens for compliance dashboard tabs (#13114)
- ebbaf9d 🐛 Add card_type dimension to ksc_error card_render GA4 events (#13050)
- c8dd281 🐛 Add demo data support for cards missing demo mode (#13223)
- d4d8b20 🐛 Bound io.ReadAll with LimitReader to prevent memory exhaustion (#13225)
- ac24076 🐛 Fix 144 test failures from async appendWsAuthToken migration (#13078)
- 708fa91 🐛 Fix 150 test failures from Coverage Suite run #2482 (#13073)
- fc9859c 🐛 Fix 49 test failures from async appendWsAuthToken in useInsightEnrichment (#13090)
- cd886d9 🐛 Fix 87 test failures from async appendWsAuthToken in 3 test files (#13083)
- bed89c0 🐛 Fix Console Studio Code tab stuck in perpetual Compiling state (#13051)
- b874ad8 🐛 Fix GA4 uncaught_render errors and component_name=unknown tracking (#13047)
- 24c8dc0 🐛 Fix GA4 uncaught_render errors in card component (#13037)
- 0131deb 🐛 Fix Mission Control in cluster mode + add Kagenti deployment docs (#13167)
- b821e7e 🐛 Fix cluster-mode Kagenti mission startup (#13168)
- 4066fa5 🐛 Fix custom card column layout misalignment after resize (#13070)
- a4a90d8 🐛 Fix demo mode silently swallowing onboarding errors (#13118)
- 23d6df4 🐛 Fix error info leakage in github-pipelines.mts (#13229)
- 7fd04cf 🐛 Fix nav bar agent status to show connection state instead of issue counts (#13039)
- 2f4b6b4 🐛 Fix nightly dashboard assertions (#13068)
- 56fa523 🐛 Fix perpetual Compiling state in Code tab preview (#13030)
- b139f2f 🐛 Fix persistent Node Not Ready false alarm in k3d environments (#13046)
- 8d259be 🐛 Fix profile dropdown duplicate email and inconsistent role labels (#13067)
- 272d879 🐛 Fix screenshot rendering as inline markdown images in feedback issues (#13052)
- c377cc0 🐛 Fix test failures from Coverage Suite run #2473 (#13063)
- 57ff98e 🐛 Fix unguarded .join() call found by consistency test (#13053)
- edca87b 🐛 Fix ws_auth_missing and agent_token_failure GA4 regression (#13...
v0.3.27-nightly.20260511
Changelog
- 0f1639e (#12954)
- 7a6a39f Add screenshot 1 for issue #13005
- c26b06b fix(i18n): wire StatsConfig modal strings through translation layer (#12984)
- e8aa7d0 fix(i18n): wrap Cancel and Reset labels in WorkloadMonitorDiagnose (#13024)
- ef08b94 fix: add error states to status card components (#12990)
- 31bba97 fix: add loading and error states to InstallCTAFlow and RequestApprovalModal (#12988)
- 43b9c89 fix: add user-visible error states for console error patterns (#12989)
- c3c5510 fix: address keyboard navigation gaps (#13019)
- 603c01a fix: resolve AI Missions chat auto-scroll content visibility issue (#12983)
- f6e1257 fix: resolve Playwright CI failures across 4 test suites (#13014)
- 63aaf5b fix: resolve Save Resolution and All Saved tab in AI Missions (#12981)
- 3a6e350 fix: resolve stale data and freshness indicator issues (#13018)
- 0671329 fix: update UnifiedDemoContext tests to spy on console.debug (#13027)
- f315ce4 refactor: consolidate route string constants and eliminate duplication (#12885)
- cd0d77f ✨ Add ARIA labels to interactive elements (#12965)
- 267d96f ✨ Add user-initiated fix verification step (#13004)
- d5c83d2 ✨ Include deployment mode and backend status in bug report diagnostics (#13009)
- 73f94b2 ✨ Support bug reporter sub-issues and diagnostics (#13003)
- 226f3c5 ✨ support LLM provider selection and API key configuration (#13001)
- c6cadb8 🐛 Add empty state to API Keys modal when no providers available (#12940)
- 1e58179 🐛 Add fetch timeouts and sanitize error messages in Netlify functions (#13023)
- dc71bc8 🐛 Add pre-flight tool validation before mission launch (#12957)
- 95acac5 🐛 Allow configuring kc-agent URL for WSL/cross-host setups (#12969)
- eacee41 🐛 Clear session/polling localStorage keys in E2E setupDemoMode (#12936)
- 9eb2839 🐛 Explicitly set maxFailures: 0 to prevent masking browser failures (#12933)
- 1ce7f6c 🐛 Fix ClusterComparison tests after useCardData hooks migration (#12925)
- 2eea880 🐛 Fix ConfirmMissionPromptDialog test failures (#12964)
- 02e2661 🐛 Fix ConfirmMissionPromptDialog tests for pre-flight tool validation (#12960)
- 51a47f6 🐛 Fix Dashboard Playwright tests flaking on Firefox and mobile-chrome (#12923)
- c3909db 🐛 Fix Missions Playwright test flakiness from state leakage and nondeterministic locators (#12937)
- 21099b5 🐛 Fix Node Conditions card showing refresh failures with demo data (#12955)
- 75f25b0 🐛 Fix Node Conditions stale refresh state (#12959)
- 18f4a52 🐛 Fix Operator Status and Subscriptions cards stuck in refresh failure loop (#12949)
- 8502e36 🐛 Fix build failures in kagenti tool bridge (#13011)
- 5bc0f45 🐛 Fix events list not rendering despite valid stats data (#13008)
- 04713ec 🐛 Fix excessive spacing between search bar and content in Cluster Admin cards (#12947)
- d997442 🐛 Fix inconsistent namespace metrics (#12956)
- d91109c 🐛 Fix nil-slice JSON serialization and add missing DB index (#13022)
- c30b61f 🐛 Fix useBackendHealth test expectation after sub-issues support (#13013)
- a72cc19 🐛 Reduce safeLazy retry/backoff to fit within E2E test timeouts (#12941)
- 8187212 🐛 Reduce safeLazy timeout/retry to fit within Playwright test windows (#12935)
- 91591d8 🐛 Reset cachedKubaraConfig on navigation to prevent state leakage (#12934)
- 9a0ba18 🐛 Route kagenti follow-up messages through SSE proxy (#13010)
- be2503c 🐛 Show cached data when kc-agent goes offline instead of skeleton (#12970)
- 8ba859a 🐛 Sync critical issues badge with actual data (#12972)
- 76d4eba 🐛 suppress backend snackbar in cluster reconnects (#13000)
- 0fc6ce9 📖 Document KC_AGENT_TOKEN env var and improve security warning (#12974)
- 08c2c29 📖 Document Kagenti tool integration and cluster context architecture (#13015)
v0.3.26-weekly
Changelog
- 4948657 🌱 Migrate card components to standardized useCardData hooks (#12922)
- 3c5f0c2 🐛 Batch consecutive setState calls to prevent UI flicker (#12921)
- 58d95c8 🐛 Fix Playwright mission tests: mock conflicts, weak assertions, wrong endpoint (#12912)
- 8d7f5f3 🐛 Fix join guard violations and cache pattern warnings (#12917)
- ac45176 🐛 Replace raw networkidle waits with best-effort helper in mission tests (#12913)
v0.3.26-nightly.20260510
Changelog
- 054fb31 Add screenshot 1 for issue #12748
- fca580b Add screenshot 1 for issue #12753
- da1ecc6 Add screenshot 1 for issue #12754
- 782d106 Add screenshot 1 for issue #12790
- b56375d Add screenshot 1 for issue #12795
- 545540c Add screenshot 1 for issue #12805
- 18a0b2c Add screenshot 1 for issue #12806
- b71cff9 Add screenshot 1 for issue #12807
- db6dbaa Add screenshot 1 for issue #12808
- 380b32b Add screenshot 1 for issue #12839
- e4fb584 Add screenshot 2 for issue #12795
- 03709a7 Add screenshot 2 for issue #12839
- ce17f2c � Connect vCluster after AI Mission creation (#12776)
- ec8fd64 🌱 Improve state management patterns (#12896)
- a18c677 🌱 Replace inline 4px spacing with Tailwind classes (#12897)
- 9befe6c 🌱 Sync workflows from kubestellar/infra (#12887)
- 705815b 🐛 Add accessible names to unlabeled buttons and controls (#12870)
- 93b25a1 🐛 Add empty state for Flight Plan Blueprint with no healthy clusters (#12853)
- 6768c3c 🐛 Add owner label to Helm chart to satisfy cluster policies (#12888)
- 063335e 🐛 Add owner label to Helm chart to satisfy cluster policies (#12903)
- 6835e39 🐛 Add schema validation for dashboard card restoration from localStorage (#12773)
- f656cc4 🐛 Add try/catch safety wrapper for localStorage access in useDashboardReset (#12787)
- f813afd 🐛 Add unsaved changes warning when switching tabs in Contribute modal (#12762)
- 821d8dc 🐛 Clear global search query on page navigation (#12775)
- 25a00ba 🐛 Convert data URI previews to real File objects on draft restore (#12829)
- 1dde351 🐛 Debounce active-users requests to prevent 429 on rapid route switching (#12901)
- e57ff38 🐛 Debounce kagenti-provider status polling to prevent 429 on rapid route switching (#12902)
- 0b77ede 🐛 Defer auto-assign completion until async assignment resolves (#12849)
- 1c91e53 🐛 Differentiate AI missions button style from alerts button (#12782)
- 35856f0 🐛 Filter SSE retry warnings in smoke test error collector (#12747)
- 3c9d487 🐛 Fix 18 test failures in useCachedDeploymentIssues after PR #12840 (#12855)
- 6410351 🐛 Fix 35 test failures from Coverage Suite run #2394 (#12828)
- 80afd0a 🐛 Fix 4 test failures in FeatureRequestModal and useDashboardReset (#12796)
- 849c9cd 🐛 Fix AI Cluster Issue Predictor contradictory health status on My Clusters page (#12797)
- 65aac74 🐛 Fix AI Missions toggle button visibility on desktop (#12820)
- 0c35320 🐛 Fix AI streaming UI jank from extractBalancedBlocks rescanning (#12851)
- d76cb75 🐛 Fix ClusterFilterPanel tests failing on ResizeObserver redefinition (#12803)
- 0c3d0c5 🐛 Fix Deployment Issues card showing stale state after recovery (#12840)
- 1c5da00 🐛 Fix Events dashboard not refreshing after bulk event deletion (#12798)
- e430662 🐛 Fix Events modal showing empty state when dashboard has data (#12792)
- 241e6ef 🐛 Fix Events test for cached stats clearing after bulk deletion (#12801)
- c1e7a33 🐛 Fix Mission Browser mobile density and import feedback (#12814)
- 1b71ba2 🐛 Fix Mission Control action crash with null safety guards (#12756)
- 995baf1 🐛 Fix Playwright cross-browser nightly failures (#12740)
- 1a31a7c 🐛 Fix SidebarCustomizer i18n and dashboard list height (#12852)
- 629b4fb 🐛 Fix Target Cluster Selector keyboard accessibility (#12850)
- 841abe5 🐛 Fix card sort dropdown keyboard focus management (#12869)
- 2924e72 🐛 Fix check preview button in updates modal (#12752)
- 1c8ab1f 🐛 Fix cluster card layout with long cluster/context names (#12755)
- 41f2895 🐛 Fix cluster route never reaching stable idle state (#12898)
- f4e389b 🐛 Fix compliance score mismatch between overview and donut card in demo mode (#12763)
- a3cf425 🐛 Fix dashboard reconnection and disconnected cluster error handling (#12733)
- 9e3fd72 🐛 Fix dashboard reset Add Missing mode deduplication logic (#12789)
- a8235ca 🐛 Fix excessive scrollbar distance from bottom of screen (#12750)
- 4040fb0 🐛 Fix fleet coverage calculation in Recommended Policies card (#12777)
- 86e75b9 🐛 Fix global filter panel overlapping dashboard stats content (#12785)
- e5bc500 🐛 Fix mission routing: support /missions deep link and browser Back behavior (#12817)
- d9c3a35 🐛 Fix mobile My Clusters toolbar overflow for sort controls (#12866)
- 7863759 🐛 Fix mobile search field collapse on dashboard cards and namespace manager (#12871)
- d96adf6 🐛 Fix navbar agent status indicator to show connection state over dashboard health (#12858)
- 5ce4744 🐛 Fix panic risk from unguarded type assertions in gitops_argo.go (#12884)
- 371863c 🐛 Fix removed default sidebar items reappearing after refresh (#12872)
- 5503282 🐛 Fix test failures from Coverage Suite run #2416 (#12875)
- c0add73 🐛 Fix test failures in Coverage Suite (#12791)
- 71b4816 🐛 Fix useLocalAgent reconnection test to match new recovery behavior (#12736)
- 763694a 🐛 Fix vCluster delete and connect actions in settings (#12774)
- 99bade1 🐛 Guard pull_request_target workflows against fork PRs (#12880)
- 182ecda 🐛 Include vCluster connection step in AI mission creation prompt (#12788)
- adfa2a1 🐛 Limit banner stacking to prevent excessive viewport consumption (#12784)
- 529c90b 🐛 Memoize filteredClusterNames Set to prevent unnecessary recomputation (#12831)
- 29810d3 🐛 Only clear stale kc_meta:* localStorage entries instead of all (#12834)
- 5c848c5 🐛 Refresh token status on FeatureRequestModal reopen (#12781)
- b6279ff 🐛 Remove excess right margin pushing scrollbar away from viewport edge (#12749)
- 13512d9 🐛 Remove placeholder Test Card from Deploy dashboard default layout (#12813)
- 0dbdfca 🐛 Require feedback body for NPS detractor GitHub issue submission (#12769)
- 4437935 🐛 Require validator in loadFromStorage to prevent unvalidated parsed objects (#12832)
- 54985ff 🐛 Restore AI missions button in Navbar (#12783)
- 8d7265a 🐛 Sanitize error responses in ArgoCD application handlers (#12883)
- 0aab35e 🐛 Sanitize error responses in Kagenti provider proxy (#12881)
- 2dcf5c8 🐛 Scope undo/redo keyboard shortcuts to active dashboard only (#12815)
- b3f6e01 🐛 Show badge counts on collapsed sidebar navigation items (#12837)
- 96009d6 🐛 Silence noisy OPFS fallback during cache initialization (#12899)
- b66deac 🐛 Stabilize getActionCount callback with ref-backed pattern (#12819)
- 08f3c3b 🐛 Suppress excessive SSE retry noise for offline clusters (#12746)
- 1d62860 🐛 Unmount AI Mission panel when hidden instead of CSS hiding (#12900)
- 00f2776 🐛 Use bubble-phase Escape handling in Mission Preview (#12848)
- d02e17c 🐛 Use crypto.randomUUID() for card history IDs (#12838)
- 998f2b8 🐛 Use useMobile hook in MissionBrowser for responsive viewport updates (#12836)
- e91a55c 📖 Fix Kagenti backend Helm deployment documentation (#12876)