feat(hubble): modernize graph workbench experience#19
Conversation
|
Important Review skippedToo many files! This PR contains 522 files, which is 422 over the limit of 100. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (529)
You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
license-eye has checked 2235 files.
| Valid | Invalid | Ignored | Fixed |
|---|---|---|---|
| 1567 | 4 | 664 | 0 |
Click to see the invalid file list
- hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js
- hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.module.scss
- hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.test.js
- hugegraph-hubble/hubble-fe/src/utils/language.js
Use this command to fix any missing license headers
```bash
docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix
</details>
There was a problem hiding this comment.
Pull request overview
This PR modernizes the Hubble FE “workbench” experience by introducing journey-based navigation (graph overview → data preparation → query/analysis), improving graph-context persistence, hardening recovery/error states, and raising accessibility/keyboard support across frequently used surfaces.
Changes:
- Added workbench/journey navigation utilities (route → title, sidebar keying, graph context extraction/persistence) with tests.
- Improved UX resilience: explicit loading/error states + retry patterns for data sources, import tasks, async tasks/results, profile, and logs.
- Accessibility + usability upgrades: skip-to-content link, focus-visible ring contracts, keyboard shortcuts (Mod+Enter, focused “F” fullscreen), and accessible icon buttons.
Reviewed changes
Copilot reviewed 161 out of 162 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| hugegraph-hubble/hubble-fe/src/utils/workbenchNavigation.js | Map route paths to localized workbench page titles. |
| hugegraph-hubble/hubble-fe/src/utils/workbenchNavigation.test.js | Covers route→title-key mapping contract. |
| hugegraph-hubble/hubble-fe/src/utils/workbenchGraphContext.js | Extract/resolve/persist graph + graphspace context. |
| hugegraph-hubble/hubble-fe/src/utils/workbenchGraphContext.test.js | Tests graph-context extraction + persistence behaviors. |
| hugegraph-hubble/hubble-fe/src/utils/user.js | Add PD-aware account authorization helper. |
| hugegraph-hubble/hubble-fe/src/utils/user.test.js | Tests account-access helper and user storage. |
| hugegraph-hubble/hubble-fe/src/utils/sidebarNavigation.js | Mode-aware sidebar selection key derivation. |
| hugegraph-hubble/hubble-fe/src/utils/sidebarNavigation.test.js | Verifies sidebar menu key rules across modes. |
| hugegraph-hubble/hubble-fe/src/utils/routeEnvironment.js | Gate internal routes by build environment. |
| hugegraph-hubble/hubble-fe/src/utils/routeEnvironment.test.js | Tests build-environment gating semantics. |
| hugegraph-hubble/hubble-fe/src/utils/language.js | Centralize current-language lookup for i18n. |
| hugegraph-hubble/hubble-fe/src/utils/graphSemanticZoom.js | Semantic zoom rules for dense graph label visibility. |
| hugegraph-hubble/hubble-fe/src/utils/graphSemanticZoom.test.js | Tests label visibility thresholds + update behavior. |
| hugegraph-hubble/hubble-fe/src/utils/graph.js | Improve fitView + force layout tuning by graph size. |
| hugegraph-hubble/hubble-fe/src/utils/graph.test.js | Covers new layout tuning + fit behavior expectations. |
| hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.js | Allow compact previews by optionally hiding labels. |
| hugegraph-hubble/hubble-fe/src/utils/formatGraphInData.test.js | Tests schema label visibility toggle. |
| hugegraph-hubble/hubble-fe/src/utils/dataPreparationNavigation.js | Compute mode-aware “Schema” entry path from context. |
| hugegraph-hubble/hubble-fe/src/styles/workbench-focus.test.js | Enforces focus-visible ring contract in workbench shell. |
| hugegraph-hubble/hubble-fe/src/routes/route-guard.test.js | Ensures unauthorized account deep links redirect pre-mount. |
| hugegraph-hubble/hubble-fe/src/routes/index.js | Adds AccountRoute gating + hides /test outside dev builds. |
| hugegraph-hubble/hubble-fe/src/pages/TaskEdit/taskFlow.js | New task creation flow helpers + error shaping. |
| hugegraph-hubble/hubble-fe/src/pages/TaskEdit/task-flow.test.js | Tests task flow concurrency + error semantics. |
| hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/index.js | Show mapping tip only when submit is disabled. |
| hugegraph-hubble/hubble-fe/src/pages/TaskEdit/FieldForm/index.js | Replace icon-only click with accessible button control. |
| hugegraph-hubble/hubble-fe/src/pages/TaskEdit/BaseForm/index.js | Add loading state to “Next” submit button. |
| hugegraph-hubble/hubble-fe/src/pages/TaskDetail/index.js | Add retryable loading/error UI for import task runs. |
| hugegraph-hubble/hubble-fe/src/pages/Task/components/TopStatistic.js | Render unavailable metrics as “--” instead of zeros. |
| hugegraph-hubble/hubble-fe/src/pages/Task/components/TopStatistic.test.js | Tests “--” behavior for unavailable stats. |
| hugegraph-hubble/hubble-fe/src/pages/My/my-recovery.test.js | Expand profile/password recovery and loading coverage. |
| hugegraph-hubble/hubble-fe/src/pages/My/index.module.scss | Token-based bounded surface styling for profile page. |
| hugegraph-hubble/hubble-fe/src/pages/Meta/meta-recovery.test.js | Mock router Link for recovery coverage. |
| hugegraph-hubble/hubble-fe/src/pages/Meta/index.js | Add GraphJourneyNav into graph schema/meta journey. |
| hugegraph-hubble/hubble-fe/src/pages/Login/login-request-error.test.js | Add language chooser + redirect query/hash restoration tests. |
| hugegraph-hubble/hubble-fe/src/pages/Login/index.js | New branded login shell + pre-auth language selection. |
| hugegraph-hubble/hubble-fe/src/pages/GraphDetail/index.module.scss | Update graph-detail visual hierarchy and responsive layout. |
| hugegraph-hubble/hubble-fe/src/pages/Graph/index.js | Rename clear action to clearGraph + API rename usage. |
| hugegraph-hubble/hubble-fe/src/pages/Graph/graph-default-replace.test.js | Enforces conservative clear contract naming/usage. |
| hugegraph-hubble/hubble-fe/src/pages/Graph/default-card-actions.test.js | Updates clear action tests for renamed API + copy. |
| hugegraph-hubble/hubble-fe/src/pages/Graph/ClearGraphConfirmModal.test.js | Updates destructive-scope localization contracts. |
| hugegraph-hubble/hubble-fe/src/pages/Graph/ClearGraphConfirmModal.js | Updates scope message key for clear confirmation. |
| hugegraph-hubble/hubble-fe/src/pages/Error404/index.test.js | Home link target updated + bounded surface presence. |
| hugegraph-hubble/hubble-fe/src/pages/Error404/index.module.scss | New bounded surface styling for 404 page. |
| hugegraph-hubble/hubble-fe/src/pages/Error404/index.js | Reworks 404 into bounded surface + navigation recovery. |
| hugegraph-hubble/hubble-fe/src/pages/Datasource/index.js | Add retryable loading/error UI for datasource list. |
| hugegraph-hubble/hubble-fe/src/pages/Datasource/datasource-recovery.test.js | Tests datasource list failure vs empty + retry. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/ModuleButton/index.module.scss | Workbench navigation button styling refresh. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/Item/index.module.scss | Rework nav item styling + disabled presentation. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/Item/index.js | Adds badges + aria-labels for nav actions. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/Home/workbenchHome.test.js | Tests workbench journeys + schema entry behavior. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/Home/workbenchHome.js | Defines journey model + exports helpers. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/Home/index.js | Replaces legacy nav home with journey cards + branding. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/index.test.js | Keeps ops items disabled and avoids dashboard probing. |
| hugegraph-hubble/hubble-fe/src/modules/navigation/ConsoleItem/index.js | Marks ops entries “Coming Soon” with disabled badges. |
| hugegraph-hubble/hubble-fe/src/modules/component/ZoomGraph/index.js | Adds aria-labels for zoom icon buttons. |
| hugegraph-hubble/hubble-fe/src/modules/component/ZeroDegreeNode/index.js | Adds aria-label for isolated-nodes icon button. |
| hugegraph-hubble/hubble-fe/src/modules/component/toolbar-accessible-name.test.js | Ensures all toolbar icon buttons have accessible names. |
| hugegraph-hubble/hubble-fe/src/modules/component/TaskNavigateView/index.module.scss | Use shared analysis result height token. |
| hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/LabelStatistics/index.module.scss | Use shared analysis result height token. |
| hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/Home/index.module.scss | Use shared analysis result height token. |
| hugegraph-hubble/hubble-fe/src/modules/component/StatisticsPanel/GraphStatistics/Home/index.module.scss | Use shared analysis result height token. |
| hugegraph-hubble/hubble-fe/src/modules/component/SettingConfigPanel/index.module.scss | Use shared analysis result height token. |
| hugegraph-hubble/hubble-fe/src/modules/component/RefreshGraph/index.js | Adds aria-label for refresh layout icon button. |
| hugegraph-hubble/hubble-fe/src/modules/component/RedoUndo/index.js | Adds aria-labels for undo/redo icon buttons. |
| hugegraph-hubble/hubble-fe/src/modules/component/MenuBar/index.module.scss | Make menu bar horizontally scrollable when constrained. |
| hugegraph-hubble/hubble-fe/src/modules/component/layoutConfigPanel/Home/index.module.scss | Use shared analysis result height token. |
| hugegraph-hubble/hubble-fe/src/modules/component/GraphStatusView/index.module.scss | Use shared analysis result height token. |
| hugegraph-hubble/hubble-fe/src/modules/component/Graph/index.module.scss | Tokenize heights + improve fullscreen behavior. |
| hugegraph-hubble/hubble-fe/src/modules/component/FullScreen/index.test.js | Tests focused “F” shortcut + tooltip labeling. |
| hugegraph-hubble/hubble-fe/src/modules/component/FullScreen/index.js | Adds focused “F” shortcut + accessible button labeling. |
| hugegraph-hubble/hubble-fe/src/modules/component/FixNode/index.js | Adds aria-label for fix-node icon button. |
| hugegraph-hubble/hubble-fe/src/modules/component/FitCenter/index.js | Adds aria-label for fit-center icon button. |
| hugegraph-hubble/hubble-fe/src/modules/component/ClearGraph/index.js | Adds aria-label for clear-canvas icon button. |
| hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/index.module.scss | Tokenize heights + fullscreen sizing for 3D canvas. |
| hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.test.js | Adds retry/empty/context coverage for result view. |
| hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.module.scss | Bounded surface + readable result layout. |
| hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Result/index.js | Adds loading/error/empty states + return context link. |
| hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.test.js | Tests list retry + polling stop after failure. |
| hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Home/index.js | Adds retry UI + prevents overlapping polling requests. |
| hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Detail/index.module.scss | Constrain long task names + accessible clear selection. |
| hugegraph-hubble/hubble-fe/src/modules/asyncTasks/Detail/index.js | Adds column constraints + replaces icon click with button. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/TableView/index.module.scss | Tokenize result height for table view. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/TableView/index.js | Add X/Y scroll sizing for wide tables. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/JsonView/index.module.scss | Tokenize result height for JSON view. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/Home/index.module.scss | Introduce shared result height token for query results. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/QueryResult/GraphResult/Home/index.js | Pass layout details (incl. nodeCount) to graph renderer. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.test.js | Adds keyboard execute shortcut + disabled execution tests. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/QueryBar/ContentCommon/index.js | Adds Mod+Enter shortcut + disables execute while executing. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Home/index.test.js | Tests source-specific recovery behavior. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Home/index.js | Adds per-tab error UI + retry actions. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/Favorite/index.js | Adds table vertical scrolling. |
| hugegraph-hubble/hubble-fe/src/modules/analysis/LogsDetail/ExecuteLog/index.js | Adds table vertical scrolling. |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/Home/index.js | Adds per-tab error UI + retry actions (algorithm). |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/Favorite/index.js | Adds table vertical scrolling (algorithm). |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/LogsDetail/ExecuteLog/index.js | Adds table vertical scrolling (algorithm). |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/Home/index.test.js | Tests independent retry + pending-page behavior. |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/Home/index.module.scss | Tokenizes analysis height and layout sizing. |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/RankApiView/index.module.scss | Tokenize analysis result height. |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/NeighborRankView/index.module.scss | Tokenize analysis result height. |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/JaccView/index.module.scss | Tokenize analysis result height. |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/GraphResult/Home/index.module.scss | Prevent overflow via min-width constraints. |
| hugegraph-hubble/hubble-fe/src/modules/algorithm/algorithmsForm/Home/index.module.scss | Fix sidebar flex sizing. |
| hugegraph-hubble/hubble-fe/src/low-frequency-surface-contract.test.js | Enforces bounded surfaces on low-frequency pages. |
| hugegraph-hubble/hubble-fe/src/layout.ant.test.js | Tests skip link + semantic title + focus movement. |
| hugegraph-hubble/hubble-fe/src/layout.ant.js | Adds skip link + route title heading + main focus target. |
| hugegraph-hubble/hubble-fe/src/index.js | Centralizes language selection for Ant Design locale. |
| hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/home.json | Adds workbench journey copy (zh-CN). |
| hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/modules/analysis.json | Adds shortcut/async-result/log recovery keys (zh-CN). |
| hugegraph-hubble/hubble-fe/src/i18n/resources/zh-CN/components/common.json | Adds workbench navigation/context/page title keys (zh-CN). |
| hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/pages.json | Updates clear graph copy + workbench/login/task/datasource strings. |
| hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/home.json | Adds workbench journey copy (en-US). |
| hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/modules/analysis.json | Adds shortcut/async-result/log recovery keys (en-US). |
| hugegraph-hubble/hubble-fe/src/i18n/resources/en-US/components/common.json | Adds workbench navigation/context/page title keys (en-US). |
| hugegraph-hubble/hubble-fe/src/i18n/index.js | Uses shared language helper + updated fallback language. |
| hugegraph-hubble/hubble-fe/src/empty-table-density.test.js | Enforces responsive global empty-table contract. |
| hugegraph-hubble/hubble-fe/src/components/Topbar/topbar-request-error.test.js | Preserves hash+query in login redirect and stabilizes mocks. |
| hugegraph-hubble/hubble-fe/src/components/Topbar/index.module.scss | New header styling + Select theming. |
| hugegraph-hubble/hubble-fe/src/components/Topbar/index.ant.js | Adds BrandLockup + graph context switcher + hash-preserving redirect. |
| hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.test.js | Tests aria-current + journey tab links. |
| hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.module.scss | Adds journey nav styling. |
| hugegraph-hubble/hubble-fe/src/components/GraphJourneyNav/index.js | Adds journey navigation for graph detail/schema. |
| hugegraph-hubble/hubble-fe/src/components/GraphContextSwitcher/index.module.scss | Styles for topbar context switcher. |
| hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.test.js | Tests mode-aware schema/graph schema targeting + titles. |
| hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.module.scss | Adds journey step styling for preparation flow. |
| hugegraph-hubble/hubble-fe/src/components/DataPreparationNav/index.js | Adds data-prep journey nav with honest fallbacks. |
| hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.module.scss | New brand lockup styling. |
| hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js | Shared brand mark + wordmark component. |
| hugegraph-hubble/hubble-fe/src/assets/hugegraph-mark.svg | Adds vector brand mark asset. |
| hugegraph-hubble/hubble-fe/src/App.scss | Token-based layout + bounded container surfaces. |
| hugegraph-hubble/hubble-fe/src/App.js | Loads global workbench styles. |
| hugegraph-hubble/hubble-fe/src/App.css | Improves global empty-table layout. |
| hugegraph-hubble/hubble-fe/src/api/request.js | Preserve hash in redirect-to-login behavior. |
| hugegraph-hubble/hubble-fe/src/api/request-language-header.test.js | Adds default-language coverage for requests. |
| hugegraph-hubble/hubble-fe/src/api/request-error-semantics.test.js | Ensures redirects preserve query+hash and no extra requests fire. |
| hugegraph-hubble/hubble-fe/src/api/manage.js | Renames clear endpoint wrapper to clearGraph. |
| hugegraph-hubble/hubble-fe/src/api/manage-contract.test.js | Updates API contract assertions for clearGraph rename. |
| hugegraph-hubble/hubble-fe/src/api/languageHeader.js | Reuses shared language helper for Accept-Language. |
| hugegraph-hubble/hubble-fe/src/accessible-click-actions.test.js | Enforces accessible click targets + task-name column constraints. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Code Review
This pull request refactors the HugeGraph Hubble frontend to introduce a unified 'Graph Data Workbench' layout, improving accessibility, keyboard navigation, and responsive design. Key enhancements include a dynamic GraphContextSwitcher, progressive semantic zoom for dense graphs, localized error recovery states across data preparation and query views, and a redesigned login page. The code review identified several potential TypeError vulnerabilities due to missing null/undefined checks on API responses and method returns, as well as an opportunity to expand icon coverage in accessibility tests.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Bug: Graph Query canvas collapses on second identical Run QueryWhile smoke-testing this UI branch ( Environment
Steps to reproduce
ExpectedRe-running the same query should keep a readable layout (or re-layout cleanly), not stack all nodes on top of each other. Actual
Screenshots1st run (OK): 2nd run (collapsed): Notes
Happy to retest after a fix. |
There was a problem hiding this comment.
license-eye has checked 2245 files.
| Valid | Invalid | Ignored | Fixed |
|---|---|---|---|
| 1573 | 4 | 668 | 0 |
Click to see the invalid file list
- hugegraph-hubble/hubble-be/src/main/java/org/apache/hugegraph/controller/graph/SampleGraphController.java
- hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/unit/SampleGraphControllerTest.java
- hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.js
- hugegraph-hubble/hubble-fe/src/components/BrandLockup/index.module.scss
Use this command to fix any missing license headers
```bash
docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix
</details>
There was a problem hiding this comment.
license-eye has checked 2257 files.
| Valid | Invalid | Ignored | Fixed |
|---|---|---|---|
| 1584 | 8 | 665 | 0 |
Click to see the invalid file list
- hugegraph-client/src/test/java/org/apache/hugegraph/driver/GremlinManagerTest.java
- hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/handler/ExceptionAdvisorStatusTest.java
- hugegraph-hubble/hubble-be/src/test/java/org/apache/hugegraph/service/auth/UserServiceLevelTest.java
- hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/utils.js
- hugegraph-hubble/hubble-fe/src/modules/component/Canvas3D/utils.test.js
- hugegraph-hubble/hubble-fe/src/pages/Meta/ImageView.module.scss
- hugegraph-hubble/hubble-fe/src/pages/Schema/schema-template-starting-point.test.js
- hugegraph-hubble/hubble-fe/src/pages/TaskEdit/MappingForm/meta-recovery.test.js
Use this command to fix any missing license headers
```bash
docker run -it --rm -v $(pwd):/github/workspace apache/skywalking-eyes header fix
</details>
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request enhances the HugeGraph client and Hubble workbench with an idempotent traversal fallback mechanism, a new sample dataset loader, and dashboard health probing. The frontend features a redesigned workbench UI, including a new sidebar, topbar, graph context switcher, and semantic zoom for dense graphs. The review feedback identifies several critical robustness and usability issues: updating the CodeEditor to react to programmatic value changes, wrapping localStorage writes in try-catch blocks, adding null checks and optional chaining to graph rendering utilities, resolving a tab key type mismatch, silencing background polling to prevent UI flickering, and removing an invalid Input child from a hidden Form.Item to avoid React prop-type warnings.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request significantly enhances the HugeGraph Hubble UI/UX, focusing on improved navigation, robust error handling, and streamlined data management workflows. Key changes include refactoring navigation components for better context awareness, implementing granular error handling and retry mechanisms across various modules (e.g., AlgorithmHome, AnalysisHome, AsyncTaskHome, Datasource, Graph, Schema, Task), and introducing a new SampleGraphController for loading demo data. Additionally, the PR refines form validations, adds accessibility enhancements, and polishes UI elements. Two notable issues were identified: the UserService.java hardcodes the 'admin' username, which should be configurable, and SampleGraphController.java uses magic numbers for retry logic that should be replaced with named constants for clarity.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces significant improvements to the HugeGraph Hubble platform, including refined authorization logic for account management, enhanced graph sampling capabilities, and UI/UX improvements such as a new navigation journey and keyboard shortcuts. The backend now enforces stricter permission checks for account management and graph space membership. I have reviewed the changes and have two specific recommendations regarding RESTful conventions and code clarity.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces significant enhancements to HugeGraph Hubble, including a new native monitoring and alerting framework, improved GraphSpace and user management, and various UI/UX improvements. Key changes include the addition of monitoring API endpoints, integration with PD/Store discovery, and robust error handling for upstream service failures. I have reviewed the code and identified several areas where defensive programming (null checks and safe type casting) is needed to prevent potential runtime exceptions, as well as a recommendation to refactor static resource loading to ensure application stability during startup.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a comprehensive native operations and monitoring system for Hubble, allowing administrators to view cluster topology, service tiers, and node status securely. It implements role-based capabilities and secures backend controllers by enforcing strict permission checks. Additionally, it adds a sample graph controller for loading demo datasets, improves transaction safety during data ingestion, and refactors client-side Gremlin traversal fallbacks. The frontend is updated with a responsive layout, a new primary navigation structure, localized keyboard shortcuts, and a graph context switcher. The review comments correctly identify a potential thread-blocking issue due to Thread.sleep() in the sample data loader and a possible regression in exception message internationalization within HugeClientPoolService.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces several significant improvements, including the addition of an operations monitoring module, enhanced authorization checks for graph space management, and a new sample graph loading feature. The changes also include UI improvements such as a new navigation structure, a shortcut help modal, and column settings. I have identified a few issues in the backend services regarding date aggregation logic and redundant fallback ID handling in the user controller that should be addressed.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces several significant features and improvements, including a new sample graph controller for loading demo datasets, enhanced security and authorization for graph space management, and improved error handling for operations monitoring. The review identified three areas for improvement: the use of blocking thread sleeps in the sample graph controller, potential memory issues with in-memory pagination for graph space access, and memory risks in the statistics fallback mechanism. The reviewer's comments are actionable and address potential performance and stability issues.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a new SampleGraphController for loading sample datasets, adds robust permission checks to authentication controllers, and improves the GraphsService statistics collection by falling back to bounded graph reads when Gremlin statistics fail. It also includes UI enhancements like a keyboard shortcut help modal, a column settings component, and improved i18n support. The reviewer correctly identified that the manual retry logic for schema creation in SampleGraphController is brittle and should be replaced by the client's native .ifNotExist() support.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
/gemini review |
- name schema creation retry constants - preserve existing retry behavior and coverage - add before and current UI evidence for PR summary - include navigation and graph-list screenshots
- reserve Ctrl+Enter for query execution - make Command+Enter insert an editor newline - replace the action dropdown with an accessible mode switch - keep query controls aligned at narrow widths - refresh English PD UI evidence
- reuse the existing safe Dashboard URL contract - keep native monitoring available when Dashboard is disabled - expose localized and keyboard-accessible disabled reasons - cover configured, unavailable, forbidden, and popup states
- localize the built-in GraphSpace name in Schema templates - cover the stored Chinese nickname regression - refresh English Navigation, Overview, and Schema evidence
- register GraphSpace admin assignment as a POST mutation - defer the large sample graph payload until it is requested - accept heterogeneous numeric count values safely - simplify job-name validation and cover the changed contracts
- require operator-managed Store origins with exact scheme, host, and port - pin validated DNS answers while preserving HTTPS hostname verification - redact structured credentials and endpoints from exception diagnostics - document production overrides and cover the security boundaries
- remove unsafe path-id fallbacks from account updates and deletes - preserve the canonical identity returned by the user service - cover delete lookups that resolve to a different canonical id
- use daily metrics before bounded live reads - reject malformed Gremlin count responses - avoid unbounded list-page count queries - cover live fallback and failure semantics
- clarify node identity, type labels, and topology roles - compact monitoring actions and metric availability cards - simplify language switching and perform a clean logout - extend operations and logout regression coverage
- clarify query shortcuts, empty states, and compact results - correct Schema navigation and documentation paths - explain operations metrics and external Dashboard scope - add contextual sidebar expansion and onboarding links
- restore Schema template and in-graph application flows - clarify query, algorithm, and demo-data interactions - adapt standalone operations navigation and node metrics - align topbar, language, and sidebar responsive behavior
06292e4 to
5a8f1f9
Compare
- prevent long labels from overlapping form controls - prefill graphspace resource limits with defaults - keep nickname validation aligned with server rules - cover layout and submitted default values
- replace three abbreviated test headers with the standard Apache-2.0 text\n- align the files with license-eye header validation\n- keep runtime code and test behavior unchanged
- expose stable language and GraphSpace title test anchors\n- update browser smoke selectors for the current toggle UI\n- cover both anchors with focused frontend tests
- load runtime config during API-backed browser authentication - validate PD and non-PD graphspace landing contracts separately - cover config injection and failure handling with Node tests


What this PR delivers
This PR turns Hubble into a cohesive graph workbench with native operations, centralized
authorization context, safer credential handling, and recoverable end-to-end journeys. Native
monitoring no longer depends on Dashboard or Grafana; Dashboard remains an optional advanced
entry.
Product and workflow modernization
algorithms, async tasks, data sources/import, accounts, profile, and Operations.
query, result inspection, and task recovery; direct URLs and legacy aliases now resolve to a
stable destination or an actionable error state.
states, plus keyboard focus, accessible names, localized status text, and responsive desktop
layouts.
P0 = 0, P1 = 0, with no unresolved actionable P2.
Native cluster Operations
freshness, bounded caches/fan-out, response limits, timeouts, and explicit partial/stale state.
and independent system/drive/Raft/backend metric groups.
Dashboard never blocks native monitoring.
Authorization and security contract
SUPERADMIN/SPACEADMIN/USERcapability/action context; the frontend does not infer security permissions from role names or cached flags.SUPERADMINcan access cluster Operations; standaloneADMINmaps through the backend compatibility context, while standaloneUSERremains restricted.SPACEADMINcan manage only members, roles, targets, and grants inside assigned spaces; global account/space operations remainSUPERADMIN-only.Deployment compatibility
localized unsupported PD/Store states, and token-authenticated Gremlin execution.
hugegraph/hugegraph#161.
historical time-series storage, mobile layouts, or production capacity policy.
UI evidence
Real Chrome validation covers PD and standalone deployments, role/login switching, source
failure/recovery, and five desktop viewports: 1280×720, 1366×768, 1440×900, 1920×1080, and
2560×1440.
Verification — current head
ec034d0a2239/2239 keys with 1525 statically referenced keys; production build passed.
and cross-module regression gates passed.
10 native-bearing JARs; release tarball SHA-256:
600a5283f1f576a26227549d783ad11adfa93b84ed2073cd6c8d32d0c02aef06.CLEAN, and 61/61 review threads resolved.