Skip to content

Staging#71

Open
Naseem77 wants to merge 103 commits intomasterfrom
staging
Open

Staging#71
Naseem77 wants to merge 103 commits intomasterfrom
staging

Conversation

@Naseem77
Copy link
Contributor

@Naseem77 Naseem77 commented Dec 30, 2025

PR Summary by Typo

Overview

This PR refines the display and interpretation of performance metrics on the dashboard, updates UI chart components for improved visualization, and includes minor Rust code enhancements and Next.js dependency updates. The changes alter how latency and memory usage are presented to users.

Key Changes

  • Updated Rust code for checking divisibility and error handling to use more idiomatic syntax.
  • Upgraded Next.js and related @next/swc packages to version 15.1.11.
  • Modified UI chart components (MemoryBarChart, VerticalBarChart) to adjust datalabel positioning, axis rendering, and logic for displaying percentile labels.
  • Reversed the interpretation of "Latency" and "Memory Usage" metrics on the dashboard, indicating that "HIGHER IS BETTER" instead of "LOWER IS BETTER".

Work Breakdown

Category Lines Changed
New Work 4 (3%)
Refactor 135 (97%)
Total Changes 139
To turn off PR summary, please visit Notification settings.

Summary by CodeRabbit

  • Refactor

    • Improved code quality through modernized condition checks and error handling patterns.
  • Chores

    • Updated Next.js and UI component library versions for enhanced performance and stability.
    • Updated core Rust dependencies for security and feature improvements.
    • Enhanced CI/CD workflows with concurrent job management and updated action versions.
  • Tests

    • Improved test reliability with increased timeout thresholds and refined page load detection.

Naseem77 and others added 8 commits March 6, 2025 15:36
Updated dependencies to fix Next.js and React CVE vulnerabilities.

The fix-react2shell-next tool automatically updated the following packages to their secure versions:
- next
- react-server-dom-webpack
- react-server-dom-parcel  
- react-server-dom-turbopack

All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com>
Fix Rust clippy lints for manual is_multiple_of and io::Error::other
…ve-vu-gjkikg

Fix React Server Components CVE vulnerabilities
@vercel
Copy link

vercel bot commented Dec 30, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
benchmark Building Building Feb 23, 2026 3:18pm
benchmark (staging) Ready Ready Preview, Comment Feb 23, 2026 3:18pm

Request Review

@typo-app
Copy link

typo-app bot commented Dec 30, 2025

Static Code Review 📊

✅ All quality checks passed!

@coderabbitai
Copy link

coderabbitai bot commented Dec 30, 2025

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The pull request consolidates several improvements: refactors modulo operations to dedicated method calls in Rust code, bumps multiple Rust and npm dependencies, upgrades GitHub Actions workflows with concurrency controls, simplifies error construction, and increases test timeout thresholds.

Changes

Cohort / File(s) Summary
Rust Refactoring
src/main.rs, src/neo4j_client.rs
Replaced arithmetic modulo checks (% 1000 == 0, % 10000 == 0) with dedicated is_multiple_of() method calls for periodic progress logging, maintaining same control flow.
Error Handling
src/utils.rs
Simplified error construction from io::Error::new(ErrorKind::Other, ...) to io::Error::other(...) in spawn command error path.
Rust Dependencies
Cargo.toml
Updated versions: strum_macros (0.26.4→0.27.2), falkordb (0.1.10→0.2.1 with tokio features), serde_json (1.0.133→1.0.143), prometheus (0.13.4→0.14.0 with gen features).
npm Dependencies
ui/package.json
Updated versions: next (15.1.3→^15.5.12), @radix-ui/react-separator (^1.1.1→^1.1.8), @radix-ui/react-toggle (^1.1.1→^1.1.10), @types/node (^20→^25).
GitHub Actions Workflows
.github/workflows/ci.yml, .github/workflows/playwright.yml
Added concurrency blocks for grouped cancellation by workflow and PR number; upgraded actions versions (checkout v4→v6, setup-node v4→v6, upload-artifact v4→v6).
Test Infrastructure
ui/tests/logic/POM/mainPage.ts
Increased network idle and popup wait timeouts from 5s to 15s; changed subsequent page load wait event from "load" to "domcontentloaded".
Code Cleanup
src/falkor.rs
Removed empty line between module declaration and comment.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐰 Hops through methods cleaner and bright,
Dependencies updated to fly just right,
Workflows now grouped to cancel with grace,
Faster timeouts in every test race,
Error paths simpler, code running fleet!

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title "Staging" is vague and generic, failing to convey meaningful information about the changeset. Consider a more descriptive title that highlights the primary changes, such as 'Refactor code idioms and update dependencies' or 'Update UI metrics interpretation and bump dependencies'.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch staging

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@typo-app typo-app bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Code Review 🤖

Files Reviewed: 8
Comments Added: 2
Lines of Code Analyzed: 139
Critical Issues: 2

PR Health: Risky 🚫

Give 👍 or 👎 on each review comment to help us improve.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
ui/app/components/VerticalBarChart.tsx (1)

82-86: Consider more robust percentile key inference.

The percentile key is inferred by checking if the label string includes "P50", "P95", or "P99". This approach is fragile and will break if the label format changes (e.g., if vendor prefix changes or label structure is modified).

🔎 Consider passing percentile information explicitly

Instead of inferring from the label string, consider:

  1. Adding a percentile property to the dataset configuration
  2. Passing the percentile information through the data structure
  3. Using a more structured label format that can be parsed reliably

This would make the code more maintainable and less prone to breaking when label formats change.

ui/app/components/dashboard.tsx (1)

346-346: Consider clarifying the "(HIGHER IS BETTER)" label to reduce ambiguity.

The label "HIGHER IS BETTER" for LATENCY and MEMORY USAGE ratios is technically correct but ambiguous—it refers to a larger ratio value (bigger performance gap), not higher latency or memory being better. While the contextual text ("Superior Latency: Xx faster at P99", "lower overall costs") clarifies the actual meaning, users glancing at only the header could misinterpret it as suggesting higher latency or memory usage is desirable.

The y-axis reversal (reverse: true) in both VerticalBarChart.tsx and MemoryBarChart.tsx visually reinforces lower values at the top, which is a reasonable design choice but doesn't eliminate the label ambiguity.

Consider using a clearer label such as "(BETTER PERFORMANCE DIFFERENTIATION)" or adding explicit clarification like "(Larger gaps indicate greater relative advantages)" to reduce potential user confusion.

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1759127 and 0a724ee.

⛔ Files ignored due to path filters (1)
  • ui/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (7)
  • src/main.rs
  • src/neo4j_client.rs
  • src/utils.rs
  • ui/app/components/MemoryBarChart.tsx
  • ui/app/components/VerticalBarChart.tsx
  • ui/app/components/dashboard.tsx
  • ui/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Rust project - Build and Test (stable)
  • GitHub Check: test
  • GitHub Check: test
🔇 Additional comments (8)
src/utils.rs (1)

33-33: LGTM! Cleaner error construction.

The change from io::Error::new(std::io::ErrorKind::Other, ...) to io::Error::other(...) is a good refactor that uses the more concise and idiomatic API introduced in recent Rust versions. The functionality remains identical.

ui/app/components/VerticalBarChart.tsx (1)

66-67: Verify the coordinated semantic inversion across chart configuration.

The chart configuration has been updated with several coordinated changes:

  • Data label positioning changed from end/top to start/start
  • X-axis moved to "top"
  • Y-axis inverted with reverse: true
  • Logic now uses minValue instead of maxValue

These changes align with the dashboard label shift from "LOWER IS BETTER" to "HIGHER IS BETTER". Ensure this semantic inversion is intentional and correctly represents the underlying data interpretation.

Based on the coordinated changes across dashboard.tsx and chart components, verify that the visual representation correctly reflects the intended metric semantics.

Also applies to: 104-104, 122-122

ui/app/components/MemoryBarChart.tsx (2)

26-33: Note: Breaking change in component props.

The MemoryBarChartProps interface has changed from maxValue to minValue (line 31 shows maxValue still in props definition, but line 39 destructures only minValue). This is a breaking change for any callers of this component.

However, the calling code in dashboard.tsx has been updated to pass minValue, maintaining consistency across the refactor.

Note: Ensure all usages of MemoryBarChart have been updated to pass minValue instead of maxValue.

Also applies to: 39-39


80-81: LGTM! Chart configuration updated consistently with semantic shift.

The chart configuration changes are consistent with the broader semantic inversion:

  • Data labels repositioned (anchor/align from end/top to start/start)
  • Formatter uses minValue for ratio labeling
  • X-axis moved to top
  • Y-axis inverted

These changes coordinate with the dashboard label updates and maintain internal consistency.

Also applies to: 89-89, 95-95, 110-110

src/main.rs (2)

201-201: LGTM! More readable periodic check.

The change from counter % 1000 == 0 to counter.is_multiple_of(1000) improves readability by using the more expressive method introduced in Rust 1.82.0. The functionality remains identical.


330-330: LGTM! Consistent refactor for periodic logging.

The same improvement applied here - using is_multiple_of(1000) for clearer intent. This maintains consistency with the change in spawn_neo4j_worker.

src/neo4j_client.rs (2)

132-132: LGTM! Improved readability for progress logging.

The change from count % 10000 == 0 to count.is_multiple_of(10000) makes the periodic progress check more readable and expressive.


177-177: LGTM! Consistent use of is_multiple_of().

This change aligns with the refactoring pattern applied throughout the codebase, using is_multiple_of(1000) for clearer intent in periodic logging.

dependabot bot and others added 13 commits January 20, 2026 01:00
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@v4...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@radix-ui/react-toggle](https://github.com/radix-ui/primitives) from 1.1.1 to 1.1.10.
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-toggle"
  dependency-version: 1.1.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [prometheus](https://github.com/tikv/rust-prometheus) from 0.13.4 to 0.14.0.
- [Changelog](https://github.com/tikv/rust-prometheus/blob/master/CHANGELOG.md)
- [Commits](tikv/rust-prometheus@v0.13.4...v0.14.0)

---
updated-dependencies:
- dependency-name: prometheus
  dependency-version: 0.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.2 to 5.9.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](microsoft/TypeScript@v5.7.2...v5.9.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@radix-ui/react-separator](https://github.com/radix-ui/primitives) from 1.1.1 to 1.1.8.
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-separator"
  dependency-version: 1.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.133 to 1.0.143.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](serde-rs/json@v1.0.133...v1.0.143)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-version: 1.0.143
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [falkordb](https://github.com/FalkorDB/falkordb-rs) from 0.1.10 to 0.2.1.
- [Release notes](https://github.com/FalkorDB/falkordb-rs/releases)
- [Changelog](https://github.com/FalkorDB/falkordb-rs/blob/main/CHANGELOG.md)
- [Commits](FalkorDB/falkordb-rs@v0.1.10...v0.2.1)

---
updated-dependencies:
- dependency-name: falkordb
  dependency-version: 0.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com>
Fix clippy errors: manual_is_multiple_of and io_other_error
gkorland and others added 7 commits February 23, 2026 12:41
Bumps [redis](https://github.com/redis-rs/redis-rs) from 0.32.7 to 1.0.4.
- [Release notes](https://github.com/redis-rs/redis-rs/releases)
- [Commits](redis-rs/redis-rs@redis-0.32.7...redis-1.0.4)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 1.0.4
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.59 to 4.5.60.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.5.59...clap_complete-v4.5.60)

---
updated-dependencies:
- dependency-name: clap
  dependency-version: 4.5.60
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the npm-minor-patch group in /ui with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@radix-ui/react-dialog](https://github.com/radix-ui/primitives) | `1.1.4` | `1.1.15` |
| [@radix-ui/react-hover-card](https://github.com/radix-ui/primitives) | `1.1.4` | `1.1.15` |
| [@radix-ui/react-toast](https://github.com/radix-ui/primitives) | `1.2.4` | `1.2.15` |
| [@radix-ui/react-toggle-group](https://github.com/radix-ui/primitives) | `1.1.1` | `1.1.11` |
| [autoprefixer](https://github.com/postcss/autoprefixer) | `10.4.20` | `10.4.24` |


Updates `@radix-ui/react-dialog` from 1.1.4 to 1.1.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-hover-card` from 1.1.4 to 1.1.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-toast` from 1.2.4 to 1.2.15
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-toggle-group` from 1.1.1 to 1.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `autoprefixer` from 10.4.20 to 10.4.24
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](postcss/autoprefixer@10.4.20...10.4.24)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-dialog"
  dependency-version: 1.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-minor-patch
- dependency-name: "@radix-ui/react-hover-card"
  dependency-version: 1.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-minor-patch
- dependency-name: "@radix-ui/react-toast"
  dependency-version: 1.2.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-minor-patch
- dependency-name: "@radix-ui/react-toggle-group"
  dependency-version: 1.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-minor-patch
- dependency-name: autoprefixer
  dependency-version: 10.4.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [strum_macros](https://github.com/Peternator7/strum) from 0.27.2 to 0.28.0.
- [Release notes](https://github.com/Peternator7/strum/releases)
- [Changelog](https://github.com/Peternator7/strum/blob/master/CHANGELOG.md)
- [Commits](Peternator7/strum@v0.27.2...v0.28.0)

---
updated-dependencies:
- dependency-name: strum_macros
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom). These dependencies needed to be updated together.

Updates `react-dom` from 19.0.0 to 19.2.4
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.4/packages/react-dom)

Updates `@types/react-dom` from 19.0.2 to 19.2.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react-dom
  dependency-version: 19.2.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: "@types/react-dom"
  dependency-version: 19.2.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
chore: add dependabot groups for npm patch updates
Naseem77 and others added 6 commits February 23, 2026 15:15
…ing/react-icons-5.5.0

Bump react-icons from 5.4.0 to 5.5.0 in /ui
…ing/multi-c6586c7467

Bump react-dom and @types/react-dom in /ui
…macros-0.28.0

Bump strum_macros from 0.27.2 to 0.28.0
…ing/npm-minor-patch-89e7859536

Bump the npm-minor-patch group in /ui with 5 updates
Bumps [strum](https://github.com/Peternator7/strum) from 0.26.3 to 0.27.2.
- [Release notes](https://github.com/Peternator7/strum/releases)
- [Changelog](https://github.com/Peternator7/strum/blob/master/CHANGELOG.md)
- [Commits](Peternator7/strum@v0.26.3...v0.27.2)

---
updated-dependencies:
- dependency-name: strum
  dependency-version: 0.27.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Naseem77 and others added 3 commits February 23, 2026 15:18
Bumps [rand](https://github.com/rust-random/rand) from 0.8.5 to 0.9.2.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](rust-random/rand@0.8.5...rand_core-0.9.2)

---
updated-dependencies:
- dependency-name: rand
  dependency-version: 0.9.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants