feat(scan): bundled retro validation profiles (ps1, n64, nds, dreamcast) (#366) - #713
Conversation
Add ps1, n64, nds, and dreamcast lint presets with snapshot tests that lock critical budget limits and document validation-only scope. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Warning Review limit reached
More reviews will be available in 37 minutes and 53 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 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR adds four bundled JSON validation presets (ps1, n64, nds, dreamcast) specifying geometry and texture budgets and metadata, updates the ChangesRetro Platform Validation Profiles
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d33ebd5102
ℹ️ 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".
| "\n" | ||
| "Scan options:\n" | ||
| " --target <id> Alias for --profile (CI-friendly). Built-in targets include: example-minimal, example-base\n" | ||
| " --target <id> Alias for --profile (CI-friendly). Built-in targets include: ps1, n64, nds, dreamcast, example-minimal\n" |
There was a problem hiding this comment.
Bundle profiles with packaged CLI targets
When the CLI is run from the release .deb/Docker image, these advertised targets won't be found: I checked the Manual Pack step in .github/workflows/deploy.yml, and it copies ./bin/cfg, ./bin/media, and ./bin/platforms into /usr/share/qtmesheditor but never copies ./bin/profiles; PlatformProfileLoader only searches the app directory's profiles locations (and env/source-test fallbacks), so qtmesh scan --target ps1 will fail outside a build tree unless the profiles directory is included in the package.
Useful? React with 👍 / 👎.
Copy profiles/ into release packages and probe /usr/share/qtmesheditor/profiles on Linux so qtmesh scan --target works outside build trees. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 @.github/workflows/deploy.yml:
- Line 798: The packaging step copies the contents of ./bin/profiles/ directly
into ./pack-deb/usr/share/qtmesheditor/ causing profile files to live at
/usr/share/qtmesheditor/ instead of /usr/share/qtmesheditor/profiles where
src/PlatformProfile.cpp (probe at line ~106) expects them; update the cp
invocation in .github/workflows/deploy.yml so the profiles directory is created
under the target (e.g., target ./pack-deb/usr/share/qtmesheditor/profiles/) or
copy the profiles directory itself (remove the trailing slash on ./bin/profiles)
so installed packages place JSONs under the profiles/ subdirectory.
🪄 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: a7ec4907-0097-4fc1-be4a-cd0439f62c50
📒 Files selected for processing (2)
.github/workflows/deploy.ymlsrc/PlatformProfile.cpp
Copy the profiles directory itself so JSON presets land at /usr/share/qtmesheditor/profiles/ where PlatformProfileLoader probes. Co-authored-by: Cursor <cursoragent@cursor.com>
|



Summary
ps1,n64,nds, anddreamcastunderprofiles/.descriptionand enables texture probing for budget rules from Scan: budget rules (triangles, bones, textures, POT, format allow-list) #365.applyPlatformProfilemaps rules intoScanConfig.Profile defaults (tunable starting points)
png/jpg/pvr)Test plan
UnitTests --gtest_filter="PlatformProfile*"— 16/16 pass locallyqtmesh scan ./assets --target ps1loads profile (manual smoke)Closes #366
Made with Cursor
Summary by CodeRabbit
New Features
Documentation
Tests
Chores