Repository navigation
Fix Windows RAM display and bound unbounded version dropdowns - #23
Merged
Merged
Conversation
FrontendSystemMemoryService only had Linux and macOS platform readers, so on Windows it always fell back to GC.GetGCMemoryInfo()/GC.GetTotalMemory(), which measures the launcher's own managed heap. The settings memory card therefore showed the process heap (~0.1 GB) as system-wide used memory and the automatic RAM allocation computed from a bogus "available" value. Query GlobalMemoryStatusEx through the backend KernelInterop (already used by the Windows runtime info source) so total/available physical memory are real system-wide figures. Adds a test seam (PhysicalMemoryBytesOverride + cache invalidation) with unit tests, and an E2E test asserting the Setup-Launch memory summary matches /proc/meminfo on Linux. Fixes #22 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ling The Forge/Fabric/OptiFine option cards on the download-install and instance-install pages rendered every choice inline, so opening a loader with hundreds of versions stretched the card to thousands of pixels: the expand/collapse height animation took seconds and the open dropdown filled the whole page. Wrap each choice list in a ScrollViewer capped at 420px (10 rows) so the card stays bounded, the list scrolls internally, and rows stay virtualized. The shorter animated distance also makes folding feel instant. Adds an E2E test that seeds 120 Forge choices and asserts the bounded viewport, internal scrolling, virtualization, selection after scrolling to the end, and collapse back to header height. Fixes #21 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…crolling The Download tab installer catalogs (Forge, NeoForge, OptiFine, Fabric, Quilt, ...) render grouped version sections as collapsible cards whose entries were laid out inline, so a large group (e.g. Forge 1.20.1 with dozens of builds) stretched the card to thousands of pixels, made the expand/collapse animation crawl, and pushed the rest of the page away. Apply the same treatment as the install option cards: cap each section's list at 420px with an internal ScrollViewer so the card stays bounded and rows stay virtualized. Adds an E2E test seeding a 120-entry Forge section and asserting the bounded viewport, internal scrolling, virtualization, and collapse back to header height. Refs #21 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
sclass53
approved these changes
Nov 3, 2026
sclass53
left a comment
Collaborator
There was a problem hiding this comment.
LGTM. Could merge and release v1.0.1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three fixes on one branch:
FrontendSystemMemoryServicehad no Windows platform reader, so it always fell back to GC heap stats and reported the launcher's own managed heap (~0.1 GB) as system-wide used memory, and computed automatic RAM allocation from a bogus "available" figure. It now queriesGlobalMemoryStatusExvia the backendKernelInterop, matching the Linux/macOS readers.Testing
FrontendSystemMemoryServiceTest(platform-source preference, GB conversion, cache invalidation).SetupMemoryE2E(settings memory summary matches real system memory),InstallOptionsE2EandDownloadCatalogE2E(bounded, internally scrolling, virtualized lists; selection and collapse still work).Fixes #22, fixes #21
🤖 Generated with Claude Code