Skip to content

[ROMM-1371] Add library structure management on setup wizard#2784

Merged
zurdi15 merged 34 commits intomasterfrom
romm-1371
Jan 2, 2026
Merged

[ROMM-1371] Add library structure management on setup wizard#2784
zurdi15 merged 34 commits intomasterfrom
romm-1371

Conversation

@zurdi15
Copy link
Copy Markdown
Member

@zurdi15 zurdi15 commented Dec 18, 2025

Description
Improved the setup wizard with an extra step to detect and manage the folder structure, making a better UX for the user on RomM setup

Checklist
Please check all that apply.

  • I've tested the changes locally
  • I've updated relevant comments
  • I've assigned reviewers for this PR
  • I've added unit tests that cover the changes

Screenshots (if applicable)

image

Closes #1371

…nd simplify related logic in Setup.vue and API
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @zurdi15, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the initial setup experience by integrating a new step into the wizard that intelligently handles library folder structures. It automatically detects existing layouts, offers a clear overview of current and available platforms, and allows users to easily create necessary platform directories. This streamlines the onboarding process for new users, making RomM more intuitive and user-friendly from the start.

Highlights

  • Enhanced Setup Wizard: A new step has been added to the setup wizard to manage the library's folder structure, improving the initial user experience.
  • Backend API for Library Management: New API endpoints have been introduced to detect existing library structures, retrieve information about existing and supported platforms, and facilitate the creation of new platform folders during setup.
  • Frontend UI for Platform Selection: The frontend now includes a user interface within the setup wizard that displays detected platforms, allows users to select new platforms to create, and provides visual feedback on the chosen library structure.
  • Platform Data Refactoring: The logic for retrieving supported platform metadata has been refactored into a dedicated utility function, centralizing and improving the maintainability of this core functionality.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Dec 18, 2025

Test Results

702 tests   701 ✅  1m 26s ⏱️
  1 suites    1 💤
  1 files      0 ❌

Results for commit bd52217.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Dec 18, 2025

☂️ Python Coverage

current status: ✅

Overall Coverage

Lines Covered Coverage Threshold Status
12115 7879 65% 0% 🟢

New Files

File Coverage Status
backend/utils/platforms.py 94% 🟢
TOTAL 94% 🟢

Modified Files

File Coverage Status
backend/endpoints/heartbeat.py 79% 🟢
backend/endpoints/platform.py 55% 🟢
backend/handler/filesystem/base_handler.py 90% 🟢
backend/handler/filesystem/platforms_handler.py 92% 🟢
backend/handler/metadata/gamelist_handler.py 33% 🟢
backend/utils/gamelist_exporter.py 13% 🟢
TOTAL 60% 🟢

updated for commit: bd52217 by action🐍

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a significant improvement to the setup wizard by adding a step for library structure management. The backend changes are well-refactored, moving logic into appropriate utility modules. The new frontend components are thoughtfully designed, considering responsive layouts and user experience. I've identified a few issues in the backend, including a missing authentication check, some overly broad exception handling, and a type inconsistency. Addressing these will enhance the robustness and security of the new functionality.

@zurdi15 zurdi15 requested a review from gantoine December 21, 2025 16:50
@zurdi15 zurdi15 marked this pull request as ready for review December 21, 2025 16:51
Copilot AI review requested due to automatic review settings December 21, 2025 16:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request enhances the RomM setup wizard by adding an initial step for library structure detection and platform folder creation, improving the user experience during first-time setup.

Key Changes:

  • Added library structure detection (Structure A: roms/{platform} vs Structure B: {platform}/roms)
  • Implemented platform folder selection and creation UI in the setup wizard
  • Extracted platform metadata logic into a reusable utility function
  • Added password confirmation field with validation to admin user creation step

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
frontend/src/views/Auth/Setup.vue Enhanced setup wizard with new library structure step, platform selection UI, password confirmation field, and confirmation dialogs
frontend/src/services/api/setup.ts New API service for setup endpoints (library info retrieval and platform creation)
frontend/src/components/Setup/PlatformGroupList.vue New component for displaying grouped platforms with optional checkboxes
frontend/src/components/common/Platform/ListItem.vue Added prepend slot for extensibility
backend/utils/platforms.py New utility extracting platform metadata retrieval logic for reuse
backend/endpoints/platform.py Refactored to use new platforms utility, renamed function for clarity
backend/endpoints/heartbeat.py Added two setup endpoints for library info and platform creation
backend/handler/filesystem/platforms_handler.py Added library structure detection logic and updated platform retrieval for Structure B
backend/tests/handler/filesystem/test_platforms_handler.py Updated tests to reflect method rename (typo fix)
backend/utils/gamelist_exporter.py Fixed typo in method name
backend/handler/metadata/gamelist_handler.py Fixed typo in method name
Comments suppressed due to low confidence (1)

backend/handler/filesystem/platforms_handler.py:48

  • 'except' clause does nothing but pass and there is no explanatory comment.
        except (OSError, FileNotFoundError):

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Created new setup.json files for English (en_US), Spanish (es_ES), French (fr_FR), Hungarian (hu_HU), Italian (it_IT), Japanese (ja_JP), Korean (ko_KR), Polish (pl_PL), Portuguese (pt_BR), Romanian (ro_RO), Russian (ru_RU), Simplified Chinese (zh_CN), and Traditional Chinese (zh_TW).
- Updated settings.json files to include new password-related messages in Spanish, French, Hungarian, Italian, Japanese, Korean, Polish, Portuguese, Romanian, and Russian.
- Refactored Setup.vue to utilize localization for various user prompts and messages related to folder structure and platform selection.
@zurdi15 zurdi15 self-assigned this Dec 23, 2025
@zurdi15 zurdi15 added ui/ux UI/UX improvements or suggestions javascript Pull requests that update Javascript code python Pull requests that update Python code labels Dec 23, 2025
@zurdi15 zurdi15 changed the title feat: Add library structure management on setup wizard [ROMM-1371] Add library structure management on setup wizard Dec 30, 2025
@zurdi15 zurdi15 requested a review from gantoine January 2, 2026 11:56
Copy link
Copy Markdown
Member

@gantoine gantoine left a comment

Choose a reason for hiding this comment

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

💯

@zurdi15 zurdi15 merged commit 7a69f08 into master Jan 2, 2026
10 checks passed
@zurdi15 zurdi15 deleted the romm-1371 branch January 2, 2026 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

javascript Pull requests that update Javascript code python Pull requests that update Python code ui/ux UI/UX improvements or suggestions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] For first time installs, pre-create the required directory structure

3 participants