Skip to content

Upgrade dependencies#1330

Open
annavik wants to merge 9 commits into
mainfrom
chore/update-deps
Open

Upgrade dependencies#1330
annavik wants to merge 9 commits into
mainfrom
chore/update-deps

Conversation

@annavik
Copy link
Copy Markdown
Member

@annavik annavik commented May 29, 2026

Upgrades dependencies to address security vulnerabilities and modernize the build toolchain.

  • Upgraded Node.js 18 → 22
  • Upgraded Vite 4 → 5 → 6, including ESM config migration and Sass modern API path fix
  • Upgraded axios 1.14.0 → 1.16.0, fixing 19 security vulnerabilities (SSRF, prototype pollution, header injection, and more)
  • Upgraded PostCSS to 8.5.10, fixing an XSS vulnerability
  • Moved build/type dependencies from dependencies to devDependencies

Summary by CodeRabbit

  • Chores

    • Updated Node.js version to v22.12.0.
    • Reorganized dependencies, moving test packages to devDependencies and updating versions including axios and lodash.
    • Added package manager specification.
  • Style

    • Standardized SCSS mixin syntax across components by removing parentheses from mixin invocations throughout stylesheets.
  • Documentation

    • Updated README configuration section with adjusted formatting and SCSS examples.
  • Refactor

    • Updated build configuration for SCSS preprocessor paths.

Review Change Stack

@netlify
Copy link
Copy Markdown

netlify Bot commented May 29, 2026

Deploy Preview for antenna-preview ready!

Name Link
🔨 Latest commit 4bd0f4a
🔍 Latest deploy log https://app.netlify.com/projects/antenna-preview/deploys/6a1a08bf579467000874cf8a
😎 Deploy Preview https://deploy-preview-1330--antenna-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 62 (🔴 down 3 from production)
Accessibility: 81 (🔴 down 8 from production)
Best Practices: 92 (🔴 down 8 from production)
SEO: 92 (no change from production)
PWA: 80 (no change from production)
View the detailed breakdown and full score reports
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify Bot commented May 29, 2026

Deploy Preview for antenna-ssec ready!

Name Link
🔨 Latest commit 4bd0f4a
🔍 Latest deploy log https://app.netlify.com/projects/antenna-ssec/deploys/6a1a08c06a711200070faa0c
😎 Deploy Preview https://deploy-preview-1330--antenna-ssec.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 29, 2026

Warning

Review limit reached

@annavik, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 31 minutes and 7 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bada05e2-6a1d-452c-900b-d66d331064ff

📥 Commits

Reviewing files that changed from the base of the PR and between 73bf9ab and 4bd0f4a.

⛔ Files ignored due to path filters (1)
  • ui/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (1)
  • ui/package.json
📝 Walkthrough

Walkthrough

This PR standardizes SCSS mixin syntax across the UI codebase, reorganizes package.json dependencies to separate dev tools, updates Node.js version, and makes minor configuration adjustments. The dominant change is removing parentheses from SCSS @include directives throughout 40+ component and page stylesheets.

Changes

UI Maintenance and Dependencies

Layer / File(s) Summary
SCSS mixin invocation refactoring
ui/src/components/**/\*.module.scss, ui/src/nova-ui-kit/components/**/\*.module.scss, ui/src/pages/**/\*.module.scss, ui/README.md
Removes trailing () from @include directives across ~40 SCSS files (e.g., @include body-small();@include body-small;), and updates SCSS examples in README to match new syntax. Changes apply consistently to typography mixins (body-small, body-base, heading-small, body-xlarge, etc.) and utility mixins (bubble-label, body-overline-small).
Package manifest and dependency restructuring
ui/package.json
Marks package as ESM with "type": "module", moves test-related packages (@testing-library/react, @testing-library/jest-dom, @types/*) and tooling (typescript, vite-tsconfig-paths) from dependencies to devDependencies, updates tool versions (vite and postcss to v6), adds packageManager field specifying yarn@1.22.22+, and updates axios and lodash versions.
Build configuration and documentation updates
ui/.nvmrc, ui/vite.config.ts, ui/README.md
Upgrades Node.js version from v18.12.0 to v22.12.0 in .nvmrc, changes Vite SCSS additionalData path from relative src/nova-ui-kit/mixins.scss to absolute /src/nova-ui-kit/mixins.scss, and adjusts README Configuration section formatting.
Component layout refinement
ui/src/pages/session-details/session-details.tsx
Updates Charts tab wrapper container from vertical spacing (space-y-4) to grid layout with defined gaps (grid gap-6).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • RolnickLab/antenna#1327: Redesign session detail view; the session-details.tsx grid layout change in this PR falls within the same component being heavily refactored by the related PR.

Suggested reviewers

  • mihow

Poem

🐰 Mixins shed their parentheses with grace,
Dependencies find their proper place,
Node climbs to twenty-two with ease,
Grid layouts flow, charts dance and please,
Clean syntax in every trace!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Upgrade dependencies' is concise and accurately reflects the main change: updating multiple dependencies across the project.
Description check ✅ Passed The description covers key upgrades (Node.js, Vite, axios, PostCSS) and their impacts, but lacks some template sections like detailed instructions, testing info, and the checklist.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/update-deps

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
Copy Markdown
Contributor

@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: 8

🤖 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 `@ui/package.json`:
- Around line 85-97: The dependency `@vitejs/plugin-react` currently at ^4.1.1
declares a peerDependency on vite ^4.2.0 which conflicts with our vite: 6;
update the `@vitejs/plugin-react` entry in package.json to a release that supports
Vite 6 (e.g., bump to a v5+ compatible semver such as ^5.0.0 or the latest
v5.x/v6-compatible tag) so the plugin's peerDependency aligns with vite: 6 and
prevents peer-dependency warnings; update package.json's "`@vitejs/plugin-react`"
value accordingly and run install to verify no peer conflicts.

In `@ui/src/components/form/layout/layout.module.scss`:
- Around line 19-20: The Stylelint rule violation is caused by missing blank
line before the declaration `color: var(--color-foreground);`; open the
`@include body-large;` and subsequent `color` declaration in the SCSS module and
insert a single empty line between `@include body-large;` and `color:
var(--color-foreground);` so the declaration-empty-line-before rule is
satisfied.

In `@ui/src/components/navigation/navigation-bar.module.scss`:
- Around line 60-64: The .itemCount rule triggers Stylelint's
declaration-empty-line-before; open the .itemCount selector and insert a blank
line after the `@include` body-xlarge; line and before the font-weight declaration
so there is an empty line between the mixin include and font-weight, keeping the
rest of the block unchanged to satisfy declaration-empty-line-before for the
.itemCount rule.

In `@ui/src/components/terms-of-service-info/terms-of-service-info.module.scss`:
- Around line 5-6: Stylelint complains about missing empty line before
declarations in the .wrapper rule; open terms-of-service-info.module.scss,
locate the .wrapper block and the `@include` body-small; mixin invocation, and
insert a single blank line immediately after the "`@include` body-small;" line so
there is an empty line before the following "padding: 8px 16px;" declaration to
satisfy the declaration-empty-line-before rule.

In `@ui/src/nova-ui-kit/components/page-header/page-header.module.scss`:
- Around line 20-21: The .title block in page-header.module.scss violates the
stylelint declaration-empty-line-before rule because the mixin call `@include`
body-large; is immediately followed by font-weight: 600; — insert a single blank
line between `@include` body-large; and font-weight: 600; (in the .title selector)
so there's an empty line before the subsequent declaration and the linter
passes.

In
`@ui/src/nova-ui-kit/components/table/basic-table-cell/basic-table-cell.module.scss`:
- Around line 6-8: In the .label rule replace the deprecated "word-break:
break-word" with the modern equivalent "overflow-wrap: anywhere" and add a
missing blank line after the "`@include` body-base;" statement; update the
selector that contains these styles (the `.label` rule in
basic-table-cell.module.scss) to use overflow-wrap: anywhere and ensure there is
an empty line after the `@include` body-base declaration so the file follows the
requested formatting.

In `@ui/src/pages/auth/auth.module.scss`:
- Around line 44-45: Add a blank line before the property declarations to
satisfy the Stylelint rule: locate the rule blocks containing the mixin call
"`@include` heading-small" followed by "color: var(--color-primary);" and the
similar block further down (the second occurrence around the 69-70 area) and
insert an empty line before each "color: ..." declaration so there is a blank
line between the preceding declaration/mixin and the color declaration.

In
`@ui/src/pages/occurrence-details/id-quick-actions/id-quick-actions.module.scss`:
- Around line 13-14: Add a blank line after each `@include` to satisfy stylelint's
declaration-empty-line-before rule: locate the SCSS blocks containing the
`@include` body-small; (and the other `@include` around lines 21-22) and insert an
empty line between the `@include` statement and the following declarations (e.g.,
before font-weight: 600) so each mixin include is followed by a blank line.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: dcad608d-cee1-4ae9-a408-2c1d8e778572

📥 Commits

Reviewing files that changed from the base of the PR and between 4aafddf and 73bf9ab.

⛔ Files ignored due to path filters (1)
  • ui/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (45)
  • ui/.nvmrc
  • ui/README.md
  • ui/package.json
  • ui/postcss.config.cjs
  • ui/src/components/blueprint-collection/blueprint-collection.module.scss
  • ui/src/components/breadcrumbs/breadcrumbs.module.scss
  • ui/src/components/cookie-dialog/cookie-dialog.module.scss
  • ui/src/components/fetch-info/fetch-info.module.scss
  • ui/src/components/form/layout/layout.module.scss
  • ui/src/components/header/user-info-dialog/user-info-dialog.module.scss
  • ui/src/components/header/version-info/version-info.module.scss
  • ui/src/components/info-page/info-page.module.scss
  • ui/src/components/navigation/navigation-bar.module.scss
  • ui/src/components/terms-of-service-info/terms-of-service-info.module.scss
  • ui/src/nova-ui-kit/components/badge/badge.module.scss
  • ui/src/nova-ui-kit/components/card/card.module.scss
  • ui/src/nova-ui-kit/components/checkbox/checkbox.module.scss
  • ui/src/nova-ui-kit/components/combo-box/styles.module.scss
  • ui/src/nova-ui-kit/components/dialog/dialog.module.scss
  • ui/src/nova-ui-kit/components/form-stepper/form-stepper.module.scss
  • ui/src/nova-ui-kit/components/image-carousel/image-carousel.module.scss
  • ui/src/nova-ui-kit/components/info-block/info-block.module.scss
  • ui/src/nova-ui-kit/components/input/input.module.scss
  • ui/src/nova-ui-kit/components/page-header/page-header.module.scss
  • ui/src/nova-ui-kit/components/pagination-bar/info-label/info-label.module.scss
  • ui/src/nova-ui-kit/components/pagination-bar/page-button/page-button.module.scss
  • ui/src/nova-ui-kit/components/pagination-bar/pagination-bar.module.scss
  • ui/src/nova-ui-kit/components/table/basic-table-cell/basic-table-cell.module.scss
  • ui/src/nova-ui-kit/components/table/status-table-cell/status-table-cell.module.scss
  • ui/src/nova-ui-kit/components/table/table-header/table-header.module.scss
  • ui/src/nova-ui-kit/components/tabs/tabs.module.scss
  • ui/src/nova-ui-kit/components/wizard/status-bullet/status-bullet.module.scss
  • ui/src/nova-ui-kit/components/wizard/wizard.module.scss
  • ui/src/pages/algorithm-details/styles.module.scss
  • ui/src/pages/auth/auth.module.scss
  • ui/src/pages/job-details/job-stage-label/job-stage-label.module.scss
  • ui/src/pages/occurrence-details/id-quick-actions/id-quick-actions.module.scss
  • ui/src/pages/occurrence-details/status-label/status-label.module.scss
  • ui/src/pages/occurrence-details/taxonomy-info/taxonomy-info.module.scss
  • ui/src/pages/pipeline-details/styles.module.scss
  • ui/src/pages/project/entities/styles.module.scss
  • ui/src/pages/project/processing-services/processing-services.module.scss
  • ui/src/pages/project/storage/storage.module.scss
  • ui/src/pages/session-details/session-details.tsx
  • ui/vite.config.ts

Comment thread ui/package.json Outdated
Comment thread ui/src/components/form/layout/layout.module.scss
Comment thread ui/src/components/navigation/navigation-bar.module.scss
Comment thread ui/src/nova-ui-kit/components/page-header/page-header.module.scss
Comment thread ui/src/pages/auth/auth.module.scss
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant