Skip to content

Update next and react versions - #97

Merged
Camillebzd merged 5 commits into
mainfrom
update-next-and-react-versions
May 8, 2026
Merged

Camillebzd merged 5 commits into
mainfrom
update-next-and-react-versions

Conversation

@Camillebzd

Copy link
Copy Markdown
Contributor

No description provided.

@vercel

vercel Bot commented May 8, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
monode Ready Ready Preview, Comment May 8, 2026 2:43pm

Request Review

@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​react@​19.2.4 ⏵ 19.2.61001008497100
Updatednpm/​react-dom@​19.2.4 ⏵ 19.2.61001009298100

View full report

@greptile-apps

greptile-apps Bot commented May 8, 2026 •

Copy link
Copy Markdown

Greptile Summary

This PR bumps react and react-dom from 19.2.4 to 19.2.6 (patch) and updates pnpm-workspace.yaml to exclude the new versions from minimum release age checks; next itself is not changed despite the PR title. The pnpm-lock.yaml regeneration introduces duplicate YAML map keys — every @next/* package at 16.2.6 appears twice as a top-level entry, and numerous @img/sharp-* and @tailwindcss/oxide-* stanzas gain a duplicate libc: field — which is invalid per the YAML spec and should be resolved before merging.

  • react and react-dom receive a minor patch bump (19.2.4 → 19.2.6); this is a low-risk change with no API surface changes expected.
  • The lock file contains duplicate YAML keys for @next/* packages and duplicate libc: fields in several native-binary stanzas, suggesting a pnpm version mismatch during regeneration.

Confidence Score: 3/5

The react/react-dom patch bump is safe, but the lock file contains malformed duplicate YAML keys that could cause inconsistent behavior in tools that parse it independently of pnpm.

The lock file contains duplicate top-level entries for all @next/* packages and duplicate libc: keys in multiple native-binary stanzas. While pnpm's own parser may silently accept the last occurrence, external tooling (security scanners, dependency auditors, CI lock-file integrity checks) could read different entries, potentially masking vulnerabilities or breaking audit steps. The lockfile should be cleanly regenerated before merge.

frontend/pnpm-lock.yaml requires attention due to duplicate package entries and duplicate YAML keys introduced during regeneration.

Important Files Changed

Filename Overview
frontend/package.json Bumps react and react-dom from 19.2.4 to 19.2.6 (patch update); next remains at 16.2.6.
frontend/pnpm-workspace.yaml Adds react@19.2.6 and react-dom@19.2.6 to minimumReleaseAgeExclude, replacing the old 19.2.4 entries to match the updated versions.
frontend/pnpm-lock.yaml Lock file regenerated with updated react/react-dom peer resolutions, but introduces duplicate YAML map keys — full package entries for @next/env@16.2.6 and all @next/swc-* packages appear twice, and multiple @img/sharp-* and @tailwindcss/oxide-* packages have duplicate libc: fields within their stanzas.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[PR: Update next and react versions] --> B[package.json]
    A --> C[pnpm-workspace.yaml]
    A --> D[pnpm-lock.yaml]

    B --> B1[react: 19.2.4 to 19.2.6]
    B --> B2[react-dom: 19.2.4 to 19.2.6]
    B --> B3[next: 16.2.6 unchanged]

    C --> C1[Add react@19.2.6 to minimumReleaseAgeExclude]
    C --> C2[Add react-dom@19.2.6 to minimumReleaseAgeExclude]

    D --> D1[Update all react peer dependency resolutions]
    D --> D2[Duplicate @next/* package entries added]
    D --> D3[Duplicate libc: keys in @img/sharp-* stanzas]
Loading

Comments Outside Diff (1)

  1. frontend/pnpm-lock.yaml, line 205-208 (link)

    P1 Duplicate package entries in lock file

    The regenerated lock file contains duplicate top-level YAML map keys for every @next/* package at 16.2.6 (e.g., @next/env, all @next/swc-* variants), as well as duplicate libc: fields within stanzas for several @img/sharp-* and @tailwindcss/oxide-* packages. Duplicate keys are undefined behavior in the YAML spec — most parsers silently keep only the last occurrence, but security scanners, audit tools, and some CI dependency-resolution steps that parse the lockfile independently of pnpm could see inconsistent or missing entries. This suggests the lockfile was regenerated with a mismatched pnpm version or via a manual pnpm install that merged two lock files. It should be regenerated cleanly (delete the lock file and run pnpm install from scratch, or ensure a single consistent pnpm version is used) before merging.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: frontend/pnpm-lock.yaml
    Line: 205-208
    
    Comment:
    **Duplicate package entries in lock file**
    
    The regenerated lock file contains duplicate top-level YAML map keys for every `@next/*` package at `16.2.6` (e.g., `@next/env`, all `@next/swc-*` variants), as well as duplicate `libc:` fields within stanzas for several `@img/sharp-*` and `@tailwindcss/oxide-*` packages. Duplicate keys are undefined behavior in the YAML spec — most parsers silently keep only the last occurrence, but security scanners, audit tools, and some CI dependency-resolution steps that parse the lockfile independently of pnpm could see inconsistent or missing entries. This suggests the lockfile was regenerated with a mismatched pnpm version or via a manual `pnpm install` that merged two lock files. It should be regenerated cleanly (delete the lock file and run `pnpm install` from scratch, or ensure a single consistent pnpm version is used) before merging.
    
    How can I resolve this? If you propose a fix, please make it concise.
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
frontend/pnpm-lock.yaml:205-208
**Duplicate package entries in lock file**

The regenerated lock file contains duplicate top-level YAML map keys for every `@next/*` package at `16.2.6` (e.g., `@next/env`, all `@next/swc-*` variants), as well as duplicate `libc:` fields within stanzas for several `@img/sharp-*` and `@tailwindcss/oxide-*` packages. Duplicate keys are undefined behavior in the YAML spec — most parsers silently keep only the last occurrence, but security scanners, audit tools, and some CI dependency-resolution steps that parse the lockfile independently of pnpm could see inconsistent or missing entries. This suggests the lockfile was regenerated with a mismatched pnpm version or via a manual `pnpm install` that merged two lock files. It should be regenerated cleanly (delete the lock file and run `pnpm install` from scratch, or ensure a single consistent pnpm version is used) before merging.

Reviews (1): Last reviewed commit: "merge main" | Re-trigger Greptile

@Camillebzd
Camillebzd merged commit c1aaade into main May 8, 2026
6 checks passed
@Camillebzd
Camillebzd deleted the update-next-and-react-versions branch May 8, 2026 15:00
dak-agent Bot added a commit that referenced this pull request Jun 9, 2026
Replaces frontend/pnpm-lock.yaml with main's lockfile minus the duplicate
keys introduced by PR #97 (so pnpm 10 can parse it). No package versions
change vs main; pnpm install --frozen-lockfile passes.

The previous commit on this branch ran a non-frozen pnpm install, which
silently re-resolved every floating semver in package.json and produced
~2000 lines of incidental lockfile churn. This commit reverses that.
Camillebzd added a commit that referenced this pull request Jun 11, 2026
* fix(tps-chart): smooth Transaction volume line

Switch the TPS Area interpolation from `linear` to `monotone` so the
Transaction volume chart renders as a smooth curve instead of connected
straight segments between data points.

* fix(tps-chart): animate new data points instead of curving the line

Revert line interpolation to linear and enable Recharts' built-in
animation so newly arriving data points ease into the chart instead
of snapping in. This is the smoothing that was actually requested:
the visible motion of new points appearing, not the line shape.

* feat(tps-chart): smooth streaming via sliding time-window X axis

Switch the X axis to a continuous time scale with a [now - 5min, now]
domain advanced each animation frame, so new points slide in smoothly
from the right edge instead of popping into discrete category slots.
Keeps isAnimationActive disabled to avoid Recharts re-animation loops on
each TPS event. Clamp the domain's left edge to the oldest point so the
chart fills immediately instead of showing an empty 5-minute lead-in.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: update pnpm lockfile and allow sharp/unrs-resolver builds

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: minimize lockfile diff vs main

Replaces frontend/pnpm-lock.yaml with main's lockfile minus the duplicate
keys introduced by PR #97 (so pnpm 10 can parse it). No package versions
change vs main; pnpm install --frozen-lockfile passes.

The previous commit on this branch ran a non-frozen pnpm install, which
silently re-resolved every floating semver in package.json and produced
~2000 lines of incidental lockfile churn. This commit reverses that.

* ci: unified frontend workflow (lint + typecheck + build)

* ci: add rust job (fmt + clippy + build)

* ci: run rust job in rust:1.91-slim container for libclang/bindgen parity

* perf(frontend): reduce GC pressure and re-renders in the live event pipeline (#98)

**Motivation:**

After ~1h on node.monad.xyz the renderer process is killed for OOM. There is
no single growing array — every component bounds its state — but at ~200 TPS
the per-event fan-out from EventsContext drives enough short-lived allocations
to fragment the heap. Backgrounded tabs are worse because the browser does not
throttle WebSocket onmessage.

**Modifications:**

1. Memoize EventsContext value so consumers don't re-render every time
   TopAccesses updates.
2. Drop WebSocket messages while document.visibilityState === 'hidden' to
   avoid running the dispatch + decode pipeline for an invisible tab.
3. Move the in-flight block's transactions out of React state into a
   ref-backed Map<txnIndex, Transaction>. Per-event updates are now O(1)
   instead of O(N), and the block is materialized into React state once at
   BlockFinalized/BlockVerified.
4. Allow subscribers to register an eventTypes filter on subscribe, and
   apply it at dispatch time so swap/transfer/totals hooks no longer run
   on BlockStart/TxnHeaderStart/etc.

**Result:**

Live event dispatch does far less work per WebSocket message, in-flight
blocks no longer reallocate their transactions array on every txn event,
and a backgrounded tab is effectively idle until it becomes visible again.

Co-authored-by: dak-agent[bot] <284037069+dak-agent[bot]@users.noreply.github.com>

* Smooth transaction volume chart clean (#105)

* feat(tps-chart): smoothly extend the line to each new point

Switch the X axis to a continuous time scale whose right edge eases
toward the newest point's timestamp each animation frame. A freshly
appended point sits just past the edge (clipped by allowDataOverflow)
and is revealed sliding in from the right instead of snapping into a
discrete category slot; the animation halts once the edge catches up, so
the chart is still between points. isAnimationActive stays disabled to
avoid Recharts re-animation loops on every TPS event.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: update pnpm lockfile and allow sharp/unrs-resolver builds

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* drawing lines smoothly between the points creation

* fix the x absis to have only 1 now

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(backend): resolve clippy lints (#101)

* fix(backend): resolve auto-fixable clippy lints

Addresses 6 of the 8 clippy findings surfaced by the new rust CI job:
- needless_return (server.rs)
- match_like_matches_macro (server.rs)
- ptr_arg: &Vec<T> -> &[T] (event_filter.rs)
- needless_borrow (event_filter.rs)
- manual_is_multiple_of (event_listener.rs)
- clone_on_copy (serializable_event.rs)

Remaining (require manual judgment, deferred): large_enum_variant
(server.rs), should_implement_trait for from_str (event_listener.rs).

* fix(backend): resolve non-auto-fixable clippy lints

- large_enum_variant: box the 640-byte Event variant of EventDataOrMetrics
  (Event(Box<EventData>)). Since From::from infers its parameter type from
  the argument (deref coercion does not apply), the match-site call passes
  &*event_data to select From<&EventData>; construction uses Box::new(..).
- should_implement_trait: rename inherent EventName::from_str -> from_name
  (and its single caller) so it no longer shadows std::str::FromStr::from_str.

* fix(backend): remove redundant u64 casts in client (unnecessary_cast)

Surfaced once the lib compiled clean: timestamp_ns is u64, so the
(u64 - u64) as u64 casts are redundant; drop the cast and parens.

---------

Co-authored-by: dak-agent[bot] <284037069+dak-agent[bot]@users.noreply.github.com>
Co-authored-by: Camillebzd <bcamille99@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Camillebzd <48495021+Camillebzd@users.noreply.github.com>

This branch was successfully deployed

1 active deployment
Preview — f3fee3fe Deployed May 8, 2026 by vercel[bot]
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.

2 participants