Skip to content

feat(deps): bump dependencies within current major ranges#300

Merged
Kravalg merged 16 commits into
mainfrom
chore/deps-safe-bulk-update
Jun 3, 2026
Merged

feat(deps): bump dependencies within current major ranges#300
Kravalg merged 16 commits into
mainfrom
chore/deps-safe-bulk-update

Conversation

@RudoiDmytro

@RudoiDmytro RudoiDmytro commented May 29, 2026

Copy link
Copy Markdown
Contributor

What & why

Consolidates the pending dependabot feat(deps) updates into a single PR: first the safe minor/patch refresh, then the breaking major upgrades, plus dependabot-config hardening and a couple of unrelated CI-infra fixes that were blocking the container jobs.

Dependency updates

Minor/patch (within current majors): next 16.2.6, @apollo/client 4.x, @apollo/server 5.5.1, sentry 10.55, storybook 10.4.1, swiper 12.2, typescript-eslint 8.60, prettier 3.8.3, jest 30.4.x, … (~60 packages).

Majors:

  • @mui/material + @mui/system 7 → 9
  • typescript 5 → 6
  • i18next 25 → 26, react-i18next 16 → 17
  • uuid 13 → 14, dotenv-expand 12 → 13
  • eslint-plugin-react-hooks 7.0 → 7.1

ESLint 10 is intentionally excludedeslint-plugin-react (latest 7.37.5) and the airbnb configs don't support ESLint 10 yet (they cap at v9/v8), so it stays on 9.x until the ecosystem catches up.

Code adaptations required by the majors

  • MUI v9 removed direct CSS system props on Stack/Box; moved them into sx (and flexDirectiondirection) across ~16 components — identical resulting CSS, no visual change intended.
  • TypeScript 6: ignoreDeprecations: "6.0" for the deprecated baseUrl; inlined paths into tsconfig.json (Next 16 under TS6 doesn't read paths via extends) and removed tsconfig.paths.json; adopted Next's mandated jsx: react-jsx and removed 30 now-unused import React lines (automatic runtime already configured in babel + eslint).
  • eslint-plugin-react-hooks 7.1: refactored TooltipWrapper off setState-in-effect (state derived during render) for the new set-state-in-effect rule.
  • @playwright/test pinned to 1.57.0 to match the Docker-pinned playwright; @types/react 19.2.15 onInput typing in UiInput; MUI 7.3.11 Drawer test waitFor.

Other changes

  • .github/dependabot.ymlupdate-types: [minor, patch] on the all-deps group so majors arrive as individual PRs.
  • Dockerfile + MemoryLeak.Dockerfile — re-pinned drifted Alpine apk versions (python3 3.12.12→3.12.13-r0, ca-certificates 20250911→20260413-r0) that were breaking all container CI jobs (pre-existing, unrelated to deps).

Supersedes / to close

#297 (all-deps group), #296 (next), #293 (@apollo/server), #284 (storybook), #282 (swiper), #298 (uuid), #199 (brace-expansion, already on main).

Verification

Local, all green: pnpm install --frozen-lockfile, tsc, eslint, markdownlint, client + server unit tests (353 passing), and production next build --webpack.

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 935271aa-d20e-4b45-b41a-0c7cf96fc357

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

This PR consolidates dependency updates (npm packages, Docker pins), switches the TypeScript build to automatic JSX runtime with import path aliases, refactors landing and header call-to-action elements from MUI Link wrappers to UiButton href usage, normalizes MUI component layout props to sx arrays, updates tests for the new CTA link semantics, and revises the logo-navigation memory-leak test scenario to rely on pathname monitoring.

Changes

Dependency and code maintenance

Layer / File(s) Summary
Automation, dependencies, and container pins
package.json, .github/workflows/sandbox-creating.yml, .github/workflows/sandbox-deleting.yml, Dockerfile, MemoryLeak.Dockerfile
Package versions bumped for runtime and dev dependencies; sandbox workflows now use branch-based PR lookup with stricter error handling; Docker package pins updated.
JSX runtime and stylesheet import support
tsconfig.json, tsconfig.paths.json, src/react-app-env.d.ts, pages/_app.tsx, src/features/landing/components/Notification/Notification.stories.tsx, src/test/testing-library/*.test.tsx
TypeScript switches to react-jsx with @/* import paths; stylesheet module declarations added; Swagger stylesheet path made relative; unused React imports removed from ~25 test and story files.
Shared component prop contracts and button enhancements
src/components/UiInput/types.ts, src/components/UiButton/types.ts, src/components/UiButton/index.tsx, src/test/testing-library/UiButton.test.tsx
UiInput.onInput aligned with MUI TextFieldProps; UiButton now derives from MUI ButtonProps, forwards component/href props, and attributes; tests verify button and anchor rendering.
CTA link semantics and accessibility updates
src/features/landing/components/*/\*.tsx, src/features/landing/components/Header/\*/\*.tsx, src/features/swagger/\*/\*.tsx, src/test/testing-library/*Button.test.tsx, src/test/testing-library/*Info.test.tsx, src/test/e2e/click-button.spec.ts
CTAs move from MUI Link wrappers to UiButton href usage; drawer CTA markup updated; social item alt text removed; tests refactored to assert link semantics and verify no nested button regression.
MUI layout prop normalization
src/components/UiCardItem/index.tsx, src/components/UiFooter/\*/\*.tsx, src/components/UiTextFieldForm/\*.tsx, src/features/landing/components/\*/\*.tsx
Multiple components replace direct layout props (flexDirection, alignItems, justifyContent, gap) with direction and sx array composition.
Tooltip breakpoint handling
src/components/UiTooltip/TooltipWrapper.tsx
TooltipWrapper replaces effect-based breakpoint closing with render-time tracking of previous breakpoint matches.
Card heading element update
src/components/UiCardItem/CardContent.tsx, src/test/testing-library/UiCardItem.test.tsx
CardContent always renders title as h3 instead of conditional h6/h5; tests verify the new heading tag.
Logo navigation memory-leak scenario and tests
src/test/memory-leak/tests/logoNavigation.js, src/test/unit/logoNavigationMemoryLeak.test.ts
Memory-leak scenario starts from swagger route and waits on pathname changes instead of navigation events; Jest unit test suite added with mocks and scenario behavior assertions.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • Kravalg
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

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.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed Title clearly summarizes the main change: dependency version bumps within current major ranges, covering ~60 packages across runtime and dev dependencies.
Description check ✅ Passed Description is comprehensive and well-structured, covering what/why, dependency updates (minor/patch and majors), code adaptations required, other changes, verification, and issue references—far exceeding template requirements.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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


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.

coderabbitai[bot]
coderabbitai Bot previously approved these changes May 29, 2026
cubic-dev-ai[bot]
cubic-dev-ai Bot previously approved these changes May 29, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No issues found across 5 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.
Architecture diagram
sequenceDiagram
    participant Dev as Developer Workflow
    participant CI as CI/CD Pipeline
    participant Dep as Dependabot
    participant Pkg as package.json
    participant Lock as pnpm-lock.yaml
    participant Build as Build System
    participant Test as Test Runner
    participant Lint as Linter
    participant Type as TypeScript
    participant UI as UI Components
    participant TestLib as Testing Library

    Note over Dev,TestLib: Dependency Update & Verification Flow

    Dep->>Dep: Check for updates within current major ranges
    alt Minor/Patch updates found
        Dep->>Pkg: Update version ranges
        Dep->>Lock: Regenerate lockfile
    end

    Dev->>Pkg: Review updated versions
    Dev->>Lock: Verify lockfile consistency

    Note over Pkg,Lock: Pinned & Held Versions

    alt @playwright/test pinned at 1.57.0
        Pkg->>Build: Ensure consistent playwright-core types
    end
    alt eslint-plugin-react-hooks held at 7.0.1
        Pkg->>Lint: Prevent set-state-in-effect error promotion
    end

    Note over UI,TestLib: Component Adaptations

    alt UiInput onInput typing updated
        UI->>Type: Resolve InputEventHandler via TextFieldProps['onInput']
        Type-->>UI: Satisfied type constraint
    end
    alt Drawer test updated for MUI exit transition
        TestLib->>UI: fireEvent.click(exitButton)
        UI->>UI: Start exit animation
        TestLib->>TestLib: await waitFor drawer removal
        UI-->>TestLib: Drawer unmounted
    end

    Note over Dev,TestLib: Verification Pipeline

    Build->>Pkg: pnpm install --frozen-lockfile
    Build-->>Dev: Dependencies installed

    Type->>Lock: tsc type checking
    Type-->>Dev: All types pass

    Lint->>Pkg: eslint with updated plugin versions
    Lint-->>Dev: No lint errors

    Test->>TestLib: Run 353 client + server unit tests
    TestLib->>UI: Component rendering checks
    Test-->>Dev: All tests pass

    Build->>Build: next build --webpack
    Build-->>Dev: Production build succeeds

    CI->>Dev: All checks green, PR mergable
Loading

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

cubic-dev-ai[bot]
cubic-dev-ai Bot previously approved these changes May 29, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

0 issues found across 1 file (changes from recent commits).

Re-trigger cubic

Refresh the minor/patch updates from the pending dependabot feat(deps)
PRs in one pass (pnpm update), keeping every package within its current
major. The breaking majors (MUI 9, i18next 26, react-i18next 17,
TypeScript 6, ESLint 10, uuid 14, dotenv-expand 13) are deferred to
dedicated follow-up PRs.

Adaptations required by the bumps:
- Pin @playwright/test to 1.57.0 to match the exact-pinned playwright
  package (Playwright.Dockerfile uses v1.57.0). The caret had drifted it
  to 1.60.0, mixing two incompatible playwright-core type versions.
- Hold eslint-plugin-react-hooks at 7.0.1. 7.1 promotes set-state-in-effect
  to an error, which flags existing code and needs a component refactor
  (deferred; inline eslint-disable is banned repo-wide).
- UiInput: type onInput via TextFieldProps['onInput'] to match the new
  InputEventHandler typing in @types/react 19.2.15.
- Drawer test: await waitFor for drawer removal (MUI 7.3.11 unmounts after
  the exit transition), matching the sibling close tests.

Verified locally: frozen install, tsc, eslint, markdownlint,
client + server unit tests (353), and production next build all pass.
Add update-types: [minor, patch] to the all-deps group so major version
bumps arrive as individual PRs instead of being bundled into one large
breaking grouped PR.
Alpine's 3.21 mirror no longer serves the exact patch versions pinned in
the images, so `apk add` fails and breaks the container CI jobs:
- Dockerfile: python3 3.12.12-r0 -> 3.12.13-r0 (blocks test, visual,
  mutation, performance via the prod image build).
- MemoryLeak.Dockerfile: ca-certificates 20250911-r0 -> 20260413-r0
  (blocks memory-leak-testing).

Both corrected pins verified to resolve in the node:23.11.1-alpine3.21
base image.
@RudoiDmytro

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

coderabbitai[bot]
coderabbitai Bot previously approved these changes May 29, 2026
@RudoiDmytro

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review

@cubic-dev-ai

cubic-dev-ai Bot commented May 29, 2026

Copy link
Copy Markdown

@cubic-dev-ai review

@RudoiDmytro I have started the AI code review. It will take a few minutes to complete.

cubic-dev-ai[bot]
cubic-dev-ai Bot previously approved these changes May 29, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

No issues found across 7 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.
Architecture diagram
sequenceDiagram
    participant Dev as Developer
    participant Dep as Dependabot
    participant CI as CI Pipeline
    participant TS as TypeScript
    participant ESLint
    participant Jest
    participant Src as Source Code

    Note over Dev,Src: NEW: Dependency update pipeline (minor/patch only)

    Dep->>Dev: Create PR with minor/patch updates (no breaking majors)
    Dev->>CI: Trigger CI (push or PR)

    CI->>CI: pnpm install --frozen-lockfile (new lockfile)
    CI->>TS: tsc --noEmit

    alt @playwright/test version mismatch (1.57.0 vs caret)
        TS->>Src: Error: incompatible playwright-core types
        Src->>Src: CHANGED: Pin @playwright/test to exact 1.57.0
    end

    CI->>ESLint: eslint .
    alt eslint-plugin-react-hooks 7.1 promotes set-state-in-effect error
        ESLint->>Src: Error in TooltipWrapper
        Src->>Src: CHANGED: Hold eslint-plugin-react-hooks at 7.0.1
    end

    CI->>Jest: jest --coverage
    alt Drawer test fails (MUI 7.3.11 unmount timing)
        Jest->>Src: expect(drawer).not.toBeInDocument() fails
        Src->>Src: CHANGED: Use await waitFor for drawer removal
    end

    CI->>TS: tsc --noEmit
    alt UiInput onInput type mismatch (@types/react 19.2.15)
        TS->>Src: Error: onInput signature incompatible
        Src->>Src: CHANGED: Use TextFieldProps['onInput'] instead of raw handler
    end

    CI-->>Dev: All tests pass (353) & build OK

    Note over Dev,Src: NEW: Dependabot config limits all-deps to minor+patch only
    Note over Dev,Src: Dockerfiles updated (python3, ca-certificates) to fix CI builds
Loading

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@RudoiDmytro RudoiDmytro marked this pull request as draft May 29, 2026 16:20
@RudoiDmytro RudoiDmytro self-assigned this May 29, 2026
@RudoiDmytro RudoiDmytro force-pushed the chore/deps-safe-bulk-update branch from ef08484 to 821e6a4 Compare May 29, 2026 17:57

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

1 issue found across 52 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread tsconfig.json Outdated
Upgrade the remaining breaking majors (previously deferred) in one pass:
- @mui/material + @mui/system 7 -> 9
- typescript 5 -> 6
- i18next 25 -> 26, react-i18next 16 -> 17
- uuid 13 -> 14, dotenv-expand 12 -> 13
- eslint-plugin-react-hooks 7.0 -> 7.1

Code adaptations:
- MUI v9 removed direct CSS system props on Stack/Box; moved them into
  sx (and flexDirection -> direction) across ~16 components. Behavior is
  preserved (identical resulting CSS).
- TypeScript 6: removed the deprecated baseUrl (a hard error in TS7) and
  made the path mappings relative; inlined paths into tsconfig.json (Next
  16 under TS6 doesn't read paths via extends), removed tsconfig.paths.json,
  and converted the one bare root-relative import in _app.tsx to a relative
  path. Added *.css/*.scss ambient declarations so side-effect imports
  type-check without next-env.d.ts. Adopted Next's mandated jsx: react-jsx
  and dropped 30 now-unused `import React` lines (the automatic runtime is
  already configured in babel and eslint).
- eslint-plugin-react-hooks 7.1: refactored TooltipWrapper off
  setState-in-effect (state derived during render) for the new rule.

ESLint 10 is intentionally not included: eslint-plugin-react and the
airbnb configs do not support ESLint 10 yet.

Verified locally: frozen install, tsc, eslint, markdownlint, client +
server unit tests (353), and production next build all pass.
@RudoiDmytro RudoiDmytro force-pushed the chore/deps-safe-bulk-update branch from 821e6a4 to 9123c9e Compare May 29, 2026 18:24
coderabbitai[bot]
coderabbitai Bot previously approved these changes May 29, 2026
@RudoiDmytro

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot added the dependencies Pull requests that update a dependency file label May 29, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

0 issues found across 18 files (changes from recent commits).

Requires human review: Auto-approval blocked by 1 unresolved issue from previous reviews.

Re-trigger cubic

ef4c8a6 regressed the header "try it out" CTA from <UiButton href> to
<Link href><UiButton component="span">, which renders
<a><span role="button" tabindex="0"></a> — interactive content nested in an
anchor: two tab stops for one control, conflicting role/keyboard semantics
(Space-activated span that never navigates), axe nested-interactive, WCAG
4.1.2 (Name, Role, Value, Level A).

Restore the single-element pattern introduced in f7dbda7:
<UiButton href="#signUp"> renders one <a class="MuiButton..." href>, role=link,
one tab stop, no nesting. Drop the now-unused Link import and the orphaned
`link` style (without migrating its color:'inherit', which would override the
contained button's text color). Add a regression test asserting the CTA is a
single link with no nested interactive descendant.
Resolve qlty fmt CI check: expand inline maps to block YAML in pnpm-lock.yaml,
add trailing newline to dependabot.yml, and collapse multi-line JSX/call
expressions in Drawer and the logoNavigation memory-leak test. Formatting only;
no dependency, logic, or behavior changes.
cubic-dev-ai[bot]
cubic-dev-ai Bot previously approved these changes Jun 3, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

0 issues found across 7 files (changes from recent commits).

Re-trigger cubic

@RudoiDmytro

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (2)
src/components/UiButton/index.tsx (1)

6-18: ⚡ Quick win

MAJOR: UiButton still drops standard Button/anchor attributes

UiButton now supports href, but it still blocks pass-through attrs (target, rel, aria-*, id, data-*, etc.) because only a fixed prop subset is forwarded. This becomes limiting for link semantics and a11y/security hardening.

Minimal patch
 function UiButton({
   variant,
   size,
   disabled,
   fullWidth,
   component,
   onClick,
   type,
   href,
   children,
   sx,
   name,
+  ...rest
 }: UiButtonProps): React.ReactElement {
-  const componentProps = component ? { component } : {};
-  const hrefProps = href ? { href } : {};

   return (
     <ThemeProvider theme={theme}>
       <Button
         variant={variant}
         size={size}
         disabled={disabled}
         fullWidth={fullWidth}
         type={type}
         onClick={onClick}
         sx={sx}
         name={name}
-        {...componentProps}
-        {...hrefProps}
+        component={component}
+        href={href}
+        {...rest}
       >
         {children}
       </Button>
     </ThemeProvider>
   );
 }

Also applies to: 24-35

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/UiButton/index.tsx` around lines 6 - 18, UiButton currently
destructures a fixed prop list and drops standard native/button/link attributes
(target, rel, aria-*, id, data-*, etc.); change the component to accept and
forward the rest props: update the function signature to collect a rest object
(e.g. function UiButton({ variant, size, disabled, fullWidth, component,
onClick, type, href, children, sx, name, ...rest }: UiButtonProps &
React.ButtonHTMLAttributes<HTMLButtonElement> &
React.AnchorHTMLAttributes<HTMLAnchorElement>)), then spread {...rest} onto the
rendered element (the anchor when href is present or the button otherwise) so
native attributes are preserved; keep existing props/behavior and ensure types
still cover both button and anchor attributes when forwarding.
src/features/landing/components/AboutUs/TextInfo/TextInfo.tsx (1)

22-25: ⚡ Quick win

MINOR: Avoid React.CSSProperties cast on MUI sx

Casting sx to React.CSSProperties bypasses MUI system typing. Use native sx composition instead.

Minimal patch
       <UiButton
         href="`#signUp`"
-        sx={{ ...styles.link, ...styles.button } as React.CSSProperties}
+        sx={[styles.link, styles.button]}
         variant="contained"
         size="medium"
       >
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/features/landing/components/AboutUs/TextInfo/TextInfo.tsx` around lines
22 - 25, The UiButton usage is casting the sx prop to React.CSSProperties which
bypasses MUI system typing; remove the cast and pass a proper sx composition
instead (e.g. sx={{ ...styles.link, ...styles.button }}), and if TypeScript
complains update the styles.* definitions to use Mx SxProps/Theme types (or
SxProps) so that styles.link and styles.button are compatible with the sx prop
on UiButton.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/sandbox-creating.yml:
- Around line 158-162: The PR extraction code treats a missing PR_NUMBER as
fatal and exits, which breaks push-triggered runs; update the block that reads
RESPONSE/PR_NUMBER so it only fails for pull_request events (or when a PR is
required) rather than unconditionally. Concretely, modify the conditional around
PR_NUMBER (and the exit) to check GITHUB_EVENT_NAME (or an explicit flag) and
only call echo "::error::..."; exit 1 when GITHUB_EVENT_NAME == "pull_request"
(or the flag indicates a PR is required); otherwise allow PR_NUMBER to be empty
and continue (preserve BRANCH_NAME usage for push flows). Ensure the variables
PR_NUMBER, RESPONSE and BRANCH_NAME remain unchanged.

In @.github/workflows/sandbox-deleting.yml:
- Around line 73-80: The PR_NUMBER extraction currently queries GET
/repos/.../pulls and parses RESPONSE into PR_NUMBER, which fails when the PR is
closed; replace that network lookup with the event payload value by setting
PR_NUMBER to the GitHub Actions expression github.event.pull_request.number (use
the existing "Get PR Number" step and the PR_NUMBER variable) so the workflow
reads the PR number directly from the pull_request.closed event instead of
calling the pulls API.

In `@src/test/e2e/click-button.spec.ts`:
- Around line 56-57: The locator drawerTryItNowButton is using page.getByRole
and can match other CTAs; instead scope the query to the opened drawer container
before clicking. Update the test to first locate the drawer element (e.g.,
assign a locator like drawerContainer or drawerLocator for the open drawer) and
then call drawerContainer.getByRole(...) to create drawerTryItNowButton, then
await drawerTryItNowButton.click(); this ensures the getByRole is limited to the
drawer context and avoids ambiguity with other page CTAs.

In `@src/test/unit/logoNavigationMemoryLeak.test.ts`:
- Around line 9-13: The MockPage mock used in these tests is missing
waitForFunction so tests only exercise the fallback waitForNavigation path;
update the MockPage type and the createPage/mock factory to include a jest.Mock
waitForFunction and add the corresponding test case(s) that assert
waitForFunction is called by waitForPath (in logoNavigation.js), ensuring the
primary production branch is covered instead of only the fallback branch.

---

Nitpick comments:
In `@src/components/UiButton/index.tsx`:
- Around line 6-18: UiButton currently destructures a fixed prop list and drops
standard native/button/link attributes (target, rel, aria-*, id, data-*, etc.);
change the component to accept and forward the rest props: update the function
signature to collect a rest object (e.g. function UiButton({ variant, size,
disabled, fullWidth, component, onClick, type, href, children, sx, name, ...rest
}: UiButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement> &
React.AnchorHTMLAttributes<HTMLAnchorElement>)), then spread {...rest} onto the
rendered element (the anchor when href is present or the button otherwise) so
native attributes are preserved; keep existing props/behavior and ensure types
still cover both button and anchor attributes when forwarding.

In `@src/features/landing/components/AboutUs/TextInfo/TextInfo.tsx`:
- Around line 22-25: The UiButton usage is casting the sx prop to
React.CSSProperties which bypasses MUI system typing; remove the cast and pass a
proper sx composition instead (e.g. sx={{ ...styles.link, ...styles.button }}),
and if TypeScript complains update the styles.* definitions to use Mx
SxProps/Theme types (or SxProps) so that styles.link and styles.button are
compatible with the sx prop on UiButton.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1e741e9b-0927-4968-b206-b4552529eb74

📥 Commits

Reviewing files that changed from the base of the PR and between 9123c9e and aee4c77.

⛔ Files ignored due to path filters (16)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • src/test/visual/visualComparison.spec.ts-snapshots/uk-desktop-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualComparison.spec.ts-snapshots/uk-desktop2-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualComparison.spec.ts-snapshots/uk-full-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualComparison.spec.ts-snapshots/uk-tablet-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualComparison.spec.ts-snapshots/uk-tablet2-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationError.spec.ts-snapshots/uk-desktop-error-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationError.spec.ts-snapshots/uk-desktop2-error-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationError.spec.ts-snapshots/uk-full-error-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationError.spec.ts-snapshots/uk-tablet-error-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationError.spec.ts-snapshots/uk-tablet2-error-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationSuccess.spec.ts-snapshots/uk-desktop-success-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationSuccess.spec.ts-snapshots/uk-desktop2-success-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationSuccess.spec.ts-snapshots/uk-full-success-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationSuccess.spec.ts-snapshots/uk-tablet-success-webkit-linux.png is excluded by !**/*.png
  • src/test/visual/visualNotificationSuccess.spec.ts-snapshots/uk-tablet2-success-webkit-linux.png is excluded by !**/*.png
📒 Files selected for processing (27)
  • .github/dependabot.yml
  • .github/workflows/sandbox-creating.yml
  • .github/workflows/sandbox-deleting.yml
  • src/components/UiButton/index.tsx
  • src/components/UiButton/types.ts
  • src/components/UiCardItem/CardContent.tsx
  • src/features/landing/components/AboutUs/TextInfo/TextInfo.tsx
  • src/features/landing/components/AuthSection/SocialItem/SocialItem.tsx
  • src/features/landing/components/ForWhoSection/Cards/Cards.tsx
  • src/features/landing/components/ForWhoSection/MainTitle/MainTitle.tsx
  • src/features/landing/components/Header/AuthButtons/AuthButtons.tsx
  • src/features/landing/components/Header/AuthButtons/styles.ts
  • src/features/landing/components/Header/Drawer/Drawer.tsx
  • src/features/landing/components/WhyUs/WhyUs.tsx
  • src/features/landing/components/WhyUs/styles.ts
  • src/test/e2e/click-button.spec.ts
  • src/test/memory-leak/tests/logoNavigation.js
  • src/test/testing-library/AuthButtons.test.tsx
  • src/test/testing-library/Cards.test.tsx
  • src/test/testing-library/Drawer.test.tsx
  • src/test/testing-library/ForWhoSection.test.tsx
  • src/test/testing-library/MainTitle.test.tsx
  • src/test/testing-library/Socialitem.test.tsx
  • src/test/testing-library/TextInfo.test.tsx
  • src/test/testing-library/UiCardItem.test.tsx
  • src/test/testing-library/WhyUs.test.tsx
  • src/test/unit/logoNavigationMemoryLeak.test.ts
💤 Files with no reviewable changes (2)
  • src/features/landing/components/Header/AuthButtons/styles.ts
  • .github/dependabot.yml
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/features/landing/components/Header/Drawer/Drawer.tsx
  • src/test/testing-library/Drawer.test.tsx

Comment thread .github/workflows/sandbox-creating.yml
Comment thread .github/workflows/sandbox-deleting.yml Outdated
Comment thread src/test/e2e/click-button.spec.ts Outdated
Comment thread src/test/unit/logoNavigationMemoryLeak.test.ts

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

5 issues found across 9 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread src/test/unit/logoNavigationMemoryLeak.test.ts Outdated
Comment thread src/components/UiButton/types.ts Outdated
@cubic-dev-ai

cubic-dev-ai Bot commented Jun 3, 2026

Copy link
Copy Markdown

You're iterating quickly on this pull request. To help protect your rate limits, cubic has paused automatic reviews on new pushes for now—when you're ready for another review, comment @cubic-dev-ai review.

@RudoiDmytro

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Comment thread src/test/unit/logoNavigationMemoryLeak.test.ts
@RudoiDmytro

Copy link
Copy Markdown
Contributor Author

@cubic-dev-ai review

@cubic-dev-ai

cubic-dev-ai Bot commented Jun 3, 2026

Copy link
Copy Markdown

@cubic-dev-ai review

@RudoiDmytro I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

0 issues found across 1 file (changes from recent commits).

Re-trigger cubic

@RudoiDmytro RudoiDmytro marked this pull request as ready for review June 3, 2026 18:15
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@RudoiDmytro RudoiDmytro requested a review from Kravalg June 3, 2026 20:08
@Kravalg Kravalg merged commit 092bdee into main Jun 3, 2026
21 checks passed
@Kravalg Kravalg deleted the chore/deps-safe-bulk-update branch June 3, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants