Repository navigation
feat: auto-discover live fal and OpenRouter asset models #1421
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Scriptwonder
merged 8 commits into
CoplayDev:beta
from
Scriptwonder:codex/dynamic-fal-model-catalog
Oct 4, 2026
+2,522
−137
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
837f2d1
feat: discover and validate current fal asset models
Scriptwonder e34b2c8
docs: shorten asset model catalog guidance
Scriptwonder 2b8d046
Discover complete fal and OpenRouter catalogs with on-demand compatib…
Scriptwonder 93bd974
Bound recursive nullable schema parsing
Scriptwonder 9b9393e
Fix asset model dropdowns: no slash submenus, capped menus, one fal k…
Scriptwonder d173c5e
Hide the empty license caveat box when no model is selected
Scriptwonder 2c109c8
Keep generation preflight out of the catalog refresh queue; raise cac…
Scriptwonder c7c37a2
Merge beta into PR #1421 (retargeted to beta)
Scriptwonder File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: CoplayDev/unity-mcp
Length of output: 43150
🤖 get_repo_knowledge executed:
get_repo_knowledge CoplayDev/unity-mcp /tmp/coderabbit-repo-knowledge/coplaydev-unity-mcp-ac22bd92/learningsLength of output: 4665
🏁 Script executed:
Repository: CoplayDev/unity-mcp
Length of output: 41805
🏁 Script executed:
Repository: CoplayDev/unity-mcp
Length of output: 17980
Resolve empty Fal models before verification
When a direct Fal image or audio request has no model and verification is enabled, resolve the model from the current catalog and assign it to
req.Modelbefore verification. The current code verifies the adapter default instead. A refreshed catalog can remove that default while retaining another valid model, causing verification to fail beforeSubmitAsync.Keep the resolution inside the existing verification guards. This preserves non-Fal image behavior and the test bypass.
Suggested fix
SubmitFn = async ct => { if (!SkipModelVerificationForTests && string.Equals(provider, "fal", StringComparison.OrdinalIgnoreCase)) - req.CatalogEntry = await FalModelCatalog.VerifyForGeneration(string.IsNullOrEmpty(req.Model) ? FalAdapter.DefaultModel : req.Model, "image", req.Mode, ct, apiKey); + { + if (string.IsNullOrEmpty(req.Model)) + req.Model = AssetGenModelCatalog.ResolveModel("image", provider, req.Model); + req.CatalogEntry = await FalModelCatalog.VerifyForGeneration(req.Model, "image", req.Mode, ct, apiKey); + } return await adapter.SubmitAsync(req, apiKey, transport, ct); },Apply the same change in
StartAudioGeneration, using"audio"as the catalog kind.📝 Committable suggestion
🤖 Prompt for AI Agents