Skip to content

Conversation

@dellams
Copy link
Collaborator

@dellams dellams commented Dec 26, 2025

Note

Introduces Web3 NFT management and ONET API server control within STAR CLI.

  • Adds Web3 NFT operations in NFTs.cs: ListAllWeb3NFTsAsync, ListAllWeb3NFTForAvatarsAsync, ShowWeb3NFTAsync, SearchWeb3NFTAsync, UpdateWeb3NFTAsync (placeholder guidance), DeleteWeb3NFTAsync
  • Extends CLI command routing to handle web3 for nft subcommands (update, delete, show, list, search) with new delegate parameters and argument parsing
  • Updates help text to clarify web3 vs web4 behavior for nft commands
  • Adds ONET subcommands start|stop [web4|web5]; implements process management to launch/terminate NextGenSoftware.OASIS.API.ONODE.WebAPI (http://localhost:5000) and NextGenSoftware.OASIS.STAR.WebAPI (http://localhost:5001) with status output
  • Enhances ONET help menu with new start/stop entries

Written by Cursor Bugbot for commit f522260. This will update automatically on new commits. Configure here.

…STAR.CLI and can now also start and stop the WEB4 OASIS API Server and WEB5 STAR API Server within STAR CLI.
@dellams dellams merged commit 434d0c9 into master Dec 26, 2025
3 of 17 checks passed
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

This is the final PR Bugbot will review for you during this billing cycle

Your free Bugbot reviews will reset on January 13

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.


#endregion
}
}
Copy link

Choose a reason for hiding this comment

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

Duplicate code blocks appended outside class scope

The file contains large blocks of duplicate code after the proper closing braces of the class and namespace at line 4468. Lines 4469-4951 contain method definitions and code fragments that appear outside the valid class scope, including triplicate copies of methods like ShowONETStatusAsync, ShowONETProvidersAsync, ShowONETTopologyAsync, and others. This will cause compilation errors.

Fix in Cursor Fix in Web

//private static ONETProtocol? _onetProtocol;
private static ONETDiscovery? _onetDiscovery;
private static Process? _web4ApiProcess;
private static Process? _web5ApiProcess;
Copy link

Choose a reason for hiding this comment

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

Unused static process variables declared but never used

The static variables _web4ApiProcess and _web5ApiProcess are declared but never used. The actual implementation uses the _webApiProcesses dictionary instead to track the API processes. These appear to be leftover declarations that were replaced by the dictionary approach.

Fix in Cursor Fix in Web

bool.TryParse(inputArgs[3], out softDelete);

if (web4)
if (web3)
Copy link

Choose a reason for hiding this comment

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

Delete command parses wrong argument for softDelete default

The code parses inputArgs[3] as softDelete at line 1140 before checking if the command is for web3 or web4. For those cases, inputArgs[3] contains the id parameter, not softDelete. When bool.TryParse fails on a GUID string, it sets softDelete to false. If the user omits the optional softDelete argument, the value remains false instead of the intended default true, potentially causing unintended hard deletes.

Fix in Cursor Fix in Web


public virtual async Task SearchWeb3NFTAsync(string searchTerm = "", bool showForAllAvatars = true, ProviderType providerType = ProviderType.Default)
{
if (string.IsNullOrEmpty(searchTerm) || searchTerm == "forallavatars" || searchTerm == "forallavatars")
Copy link

Choose a reason for hiding this comment

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

Duplicate condition checking same value twice

The condition searchTerm == "forallavatars" || searchTerm == "forallavatars" checks the identical value twice. This appears to be a copy-paste error where the second condition was likely intended to be a different variation (perhaps a different case or spelling). The redundant check doesn't affect functionality but indicates a potential missing check.

Fix in Cursor Fix in Web

else
CLIEngine.ShowMessage("Coming Soon...");
}
else if (web4)
Copy link

Choose a reason for hiding this comment

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

Wrong predicate checked in web4 search condition

The condition at line 1509 checks showWeb4Predicate != null but line 1510 calls searchWeb4Predicate. This mismatch means if showWeb4Predicate is null but searchWeb4Predicate is valid, users incorrectly see "Coming Soon..." instead of the search executing. Conversely, if showWeb4Predicate is not null but searchWeb4Predicate is null, calling the null delegate would cause a NullReferenceException. The condition should check searchWeb4Predicate != null.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants