-
Notifications
You must be signed in to change notification settings - Fork 32
merging master into experiimental #351
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
base: Experimental
Are you sure you want to change the base?
Conversation
- Added ParentWeb4NFTId to IWeb3NFT interface and Web3NFT.
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.
This PR is being reviewed by Cursor Bugbot
Details
You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| } | ||
|
|
||
| holons = matchedHolons; | ||
| } |
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.
Duplicate holons added in metadata filter Any mode
When MetaKeyValuePairMatchMode.Any is used for metadata filtering, the code adds the holon to matchedHolons for every matching key-value pair instead of just once. If a holon matches multiple metadata keys (e.g., 3 out of 5 filter keys), it gets added 3 times to the results list, causing duplicate entries. The inner loop over FilterByMetaData keys continues adding the same holon without breaking after the first match or checking if it was already added.
| } | ||
| return false; | ||
| #else | ||
| return false; |
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.
Python fallback code unreachable due to commented preprocessor directive
The #else preprocessor directive was changed to //#else (a comment) at multiple locations, breaking the conditional compilation structure. The reflection-based fallback code that dynamically loads Python.NET at runtime is now unreachable when PYTHONNET_AVAILABLE is not defined. When the symbol is not defined, only return false; executes (or nothing for the third location), completely skipping the fallback path that was intended to detect Python.NET at runtime. This silently breaks Python interop for users without compile-time Python.NET support.
Additional Locations (2)
| { | ||
| // Return the first omniverse found (should only be one) | ||
| result.Result = searchResult.Result.FirstOrDefault(); | ||
| result.Result = searchResult.Result.FirstOrDefault() as IOmiverse; |
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.
Silent null return when holon cast fails after search
The search pattern was changed from SearchHolonsForParentAsync<IOmiverse> to SearchHolonsForParentAsync<Holon> with a subsequent as IOmiverse cast. When the search succeeds but the as cast fails (returning null), the method returns without setting an error, leaving result.Result as null. Callers receive a success result with null data, which could cause null reference exceptions or silent failures downstream. The same pattern appears in GetOrCreateUserMultiverseAsync, GetMagicVerseAsync, and GetGrandSimulationAsync.
Additional Locations (2)
|
|
||
| return _EOSIO; | ||
| } | ||
| } |
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.
Race condition in lazy-initialized provider properties returns null
The newly uncommented provider properties (EOSIO, Ethereum, Telos, ActivityPub) use Task.Run to asynchronously initialize the backing field but immediately return the field value without awaiting completion. On first access, this returns null because the async registration hasn't finished yet. The fire-and-forget pattern means callers receive null and subsequent accesses may still race with the ongoing initialization.
Additional Locations (2)
- [
Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L133-L153](https://github.com/NextGenSoftwareUK/OASIS/blob/c5bab2e5a1b116de1e7fc44002ce21042baa01d5/Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L133-L153) - [
Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L217-L237](https://github.com/NextGenSoftwareUK/OASIS/blob/c5bab2e5a1b116de1e7fc44002ce21042baa01d5/Native EndPoint/NextGenSoftware.OASIS.API.Native.Integrated.EndPoint/APIs/WEB4 OASIS API/OASISProviders.cs#L217-L237)
| var docstringMatch = System.Text.RegularExpressions.Regex.Match( | ||
| afterDef, | ||
| @"(?:"""""(.*?)"""""|'''(.*?)''')", | ||
| @"(?:""""""""""(.*?)""""""""""|'''(.*?)''')", |
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.
Python docstring regex matches wrong quote count
The regex pattern for extracting Python docstrings uses """""""""" (10 quote characters) in a C# verbatim string, which translates to 5 actual " characters in the pattern. However, Python docstrings use triple quotes ("""). The pattern will never match standard Python triple-double-quote docstrings, causing ExtractPythonDocstring to always return empty for """-style docstrings.
- Added more documentation. - Fixed many providers. - Added postman endpoints with examples for STAR API. - Updated the OASIS API postman json file with latest API changes and added additional examples. - Multiple bug fixes including in the new COSMIC API & STARNET Plugin System.
Added the rest of web3 nft support such as edit, search, list etc to STAR.CLI and can now also start and stop the WEB4 OASIS API Server and WEB5 STAR API Server within STAR CLI.
- Fixed many bugs in STARCLI - Misc UI/UX/Flow improvements in STAR CLI.
| // nearProvider.OnStorageProviderError += NEAROASIS_StorageProviderError; | ||
| // result.Result = nearProvider; | ||
| break; | ||
| } |
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.
Provider registration silently fails with null result
The NEAROASIS and MoralisOASIS switch cases have their implementations commented out but still exist in the switch statement. When either provider type is requested, the case executes and breaks without setting result.Result or result.IsError. The caller receives a result with IsError=false (success) but Result=null (no provider), causing a silent failure. This can lead to null reference exceptions downstream when code assumes a successful result contains a valid provider.
Additional Locations (1)
- [
OASIS Architecture/NextGenSoftware.OASIS.OASISBootLoader/OASISBootLoader.cs#L1163-L1174](https://github.com/NextGenSoftwareUK/OASIS/blob/9a2f5a66fe996bd74120ca84a06cce1f50c17d1e/OASIS Architecture/NextGenSoftware.OASIS.OASISBootLoader/OASISBootLoader.cs#L1163-L1174)
| /// <summary> | ||
| /// PHP libraries (alias) | ||
| /// </summary> | ||
| PHP, |
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.
Duplicate PHP enum values are not true aliases
The Php and PHP enum values are documented as aliases but in C# enums, separate values automatically receive different underlying integers. Comparing InteropProviderType.Php with InteropProviderType.PHP will return false since they're distinct values. For true aliasing, both values would need to be explicitly assigned the same integer value (e.g., PHP = Php).
Note
Scope
OASISBootLoaderandOASISProviders(Ethereum, EOSIO, Telos, SEEDS, ActivityPub, Bitcoin, Aptos, Tron, Hashgraph, Avalanche, Cosmos, Base, Sui), plus error handlers and project refsFilterByMetaDataandMetaKeyValuePairMatchModeacrossISearchParams,HolonManagermethods, and NFT/STARNET manager interfacesParentWeb4NFTIdtoIWeb3NFT/Web3NFT; addSTARNETSubCategorytoISTARNETDNA; default-initHolon.NodesProposalholons and expandsInteropProviderTypeDocs/describing tech, meetings, and use casesWritten by Cursor Bugbot for commit 9a2f5a6. This will update automatically on new commits. Configure here.