Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 65dcb3d364
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The detailed memory popup must use the effective legacy limit when HardLimit is unusable.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (1)
What changed in this PR
This PR unifies node memory usage and effective-limit calculations across RAM, detailed memory, Versions, and node details.
Changes:
- Adds shared memory fallback and normalization logic.
- Requests detailed memory data where needed.
- Adds unit, integration, and Playwright coverage.
| File | Summary |
|---|---|
tests/suites/nodes/nodeRam.test.ts |
Adds node RAM regression coverage. |
tests/suites/nodes/memoryLimit.test.ts |
Tests effective limits and fallbacks. |
src/utils/memory.ts |
Centralizes memory calculations. |
src/utils/__test__/memory.test.ts |
Tests memory normalization. |
src/containers/Versions/Versions.tsx |
Requests detailed memory data. |
src/components/nodesColumns/constants.ts |
Adds detailed memory requirements. |
src/components/nodesColumns/columns.tsx |
Applies normalized memory values. |
src/components/nodesColumns/__test__/constants.test.ts |
Tests required fields. |
src/components/MemoryViewer/utils.ts |
Removes duplicated allocation logic. |
src/components/MemoryViewer/MemoryViewer.tsx |
Uses effective memory values; detailed segments still read raw HardLimit during legacy fallback. |
src/components/FullNodeViewer/FullNodeViewer.tsx |
Uses shared memory calculations. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comments Outside DiffThese findings sit on lines the diff does not cover, so they could not be posted inline. Each one leaves this list once its file changes.
|

When a node has a configured YDB memory limit below its host or cgroup limit, RAM currently uses the larger limit while Detailed Memory uses the effective YDB limit. For example, a 24 GiB YDB limit on a 32 GiB host produces inconsistent capacities and progress bars.
Use one memory calculation for both columns and the node details page. Keep valid
MemoryUsedauthoritative so the displayed consumption matches backend pagination and sorting, and use detailed consumption only when that value is unavailable. PreferMemoryStats.HardLimitwith a fallback to the legacyMemoryLimit; use the same effective limit in the detailed popup. Missing and invalid values remain unknown rather than producing a zero limit or a misleading progress bar. Keep the usage breakdown available when no limit is known.When the backend reports allocated memory without anonymous RSS, allocator caches are shown as a separate informational metric rather than included in the usage bar. This keeps RAM and Detailed Memory consistent with the backend consumption value.
Request
MemoryDetailedwhen RAM is selected and in Versions. This expands the existing SystemState response with cached memory statistics; it does not add a new metrics collection request. Versions fetches all nodes, so the additional response payload scales with cluster size. The node details request already includes all fields.Closes #3267.
Validation:
npm run typechecknpm run lintnpm test -- --runInBand: 2,120 tests passed across 235 suitesnpm run build:embeddedandnpm run packageRefresh the Chromium and Safari Linux error-card snapshots from visually reviewed CI captures: the additional request field wraps the displayed URL onto one more line. Linux screenshot comparison will be rechecked by CI.
The loss of the Detailed Memory breakdown is non-blocking and does not make this PR unsafe to merge.
Fix with agent prompt
Summary
The PR centralizes node memory usage and limit selection across RAM, Detailed Memory, and node details, and requests detailed statistics for RAM and Versions. An operator viewing a node with usage and segment data but no memory limit needs the Detailed Memory breakdown; this change removes that breakdown.
Reviews (1) · Last reviewed commit: "fix: use effective YDB memory limit for ..."
CI Results
Test Status:⚠️ FLAKY
📊 Full Report
Test Changes Summary ✨11
✨ New Tests (11)
Bundle Size: 🔺
Current: 65.13 MB | Main: 65.12 MB
Diff: +3.36 KB (0.01%)
ℹ️ CI Information