merging master into experiimental - #351
Conversation
| npx hardhat run scripts/deploy.js --network optimism | ||
| # ... etc for each chain | ||
| ``` | ||
|
|
There was a problem hiding this comment.
Documentation references non-existent script directory paths
High Severity
The deployment documentation instructs users to run commands like node scripts/deploy-evm-chain.js and cp scripts/hardhat.config.template.js hardhat.config.js, but these scripts are actually located at Scripts/Smart Contracts/, not scripts/. Every command users run following the documentation will fail with "file not found" errors. The deployment scripts exist but at the wrong path documented.
Additional Locations (2)
| npm run deploy:all:testnet | ||
| npm run deploy:aptos:testnet | ||
| npm run deploy:sui:mainnet | ||
| # ... see package.json for all scripts |
There was a problem hiding this comment.
Missing npm scripts referenced in documentation
High Severity
The documentation claims users can run npm scripts like npm run check-status, npm run deploy:ethereum:testnet, and npm run deploy:all:testnet, but the root package.json contains no scripts section at all—only a devDependency for mermaid-cli. Users attempting to run these documented commands will get "missing script" errors.
Additional Locations (1)
| 3. **Checklist**: `DEPLOYMENT_CHECKLIST.md` - Step-by-step checklist | ||
| 4. **Status**: `DEPLOYMENT_STATUS.md` - Current deployment status | ||
| 5. **Scripts**: `scripts/README.md` - Scripts documentation | ||
| 6. **Summary**: `scripts/DEPLOYMENT_AUTOMATION_SUMMARY.md` - Automation overview |
There was a problem hiding this comment.
Documentation index references non-existent files
Medium Severity
The documentation index references scripts/QUICK_START.md and scripts/README.md as available documentation files, but these files don't exist at the specified paths. Users looking for the Quick Start guide or Scripts documentation will encounter broken references.
Additional Locations (1)
| shell: pwsh | ||
| run: | | ||
| & "OASIS Omniverse/STARAPIClient/run_star_api_test_suite.ps1" -Configuration Release -KillStaleTestHosts $true | ||
|
|
There was a problem hiding this comment.
STARAPIClient tests likely fail on Ubuntu
High Severity
The new test-starapi-client job runs run_star_api_test_suite.ps1 on ubuntu-latest via pwsh, but related STARAPIClient scripts in the same area use Windows-only tooling/paths (e.g., C:\..., MSVC). If run_star_api_test_suite.ps1 has similar assumptions, the workflow will fail and block build-and-package via needs.
Additional Locations (1)
| STAR ODK/NextGenSoftware.OASIS.STAR.CLI/publish/linux-arm64/DNA/Default/OASIS_DNA.json | ||
| STAR ODK/NextGenSoftware.OASIS.STAR.CLI/publish/linux-arm64/DNA/CelestialBodyDNA.json | ||
| STAR ODK/NextGenSoftware.OASIS.STAR.CLI/publish/linux-arm64/Cosmos.CRTCompat.dll | ||
| STAR ODK/NextGenSoftware.OASIS.STAR.CLI/publish/installers/star-cli-3.4.0-win-x64.exe |
There was a problem hiding this comment.
Entire publish gitignore block duplicated from merge
Low Severity
The entire block of publish directory entries (lines 315–877) is exactly duplicated at lines 878–1440, adding ~560 redundant lines from what appears to be a merge artifact. Additionally, most entries under publish/ subdirectories are already covered by the existing publish/ pattern on line 139, making them doubly unnecessary. Only the publishwin-x64/ entries aren't covered by the existing pattern.
Additional Locations (1)
HolonRepository: revert dot-notation MetaData server-side filter back to in-memory matching — MongoDB interprets dots in key names (e.g. NFT.MintedByAvatarId) as nested field paths, so Filter.Eq/Exists returned 0 results. Now filters by HolonType+deletedDate server-side (avoids full collection scan) and matches MetaData keys in memory via ToString(). ONODE Startup: skip UseHttpsRedirection in Development so local HTTP requests to localhost:7777 are not 301'd to the dead HTTPS port 5002. ONODE launchSettings: set PORT=7777 so Kestrel binds to 7777 locally instead of the Railway default 8080, restoring the expected local port. WEB5-10 Program: apply the same IsDevelopment HTTPS redirect guard so all APIs work over plain HTTP locally.
ParentMissionId (QuestManager) and Avatar (MongoDB type discriminator) were queried via LoadHolonsByMetaData but missing from _systemMetaKeys, so they would be encrypted and break queries if HolonDataEncryption is ever enabled.
…llar-getField filter Use MongoDB dollar-expr+dollar-getField so dotted key names (e.g. NFT.MintedByAvatarId) are treated as literal dictionary keys rather than nested field paths. dollar-toString handles any BSON value type, matching the original .ToString() comparison. All four GetHolonsByMetaData overloads now filter entirely server-side with no in-memory collection scan. Requires MongoDB 5.0+ (dollar-getField operator). Rollback to previous commit if Railway is on an older server version.
New holons were defaulting Active to false (C# bool default), causing them to appear inactive on creation. PrepareHolonForSaving already sets IsActive=true for new holons but this ensures any code path that bypasses it also gets the correct default.
…n PrepareHolonForSaving
…size to 50 to prevent Atlas connection exhaustion
… connection limit across 14 instances
… logic for SetCollectionSize - ICreateCollectionNFTRequest now extends IMintWeb4NFTRequest so all mint fields are inherited; adds InitialSize plus WaitTillCollectionSizeSet/WaitForCollectionSizeToBeSetInSeconds/AttemptToSetCollectionSizeEveryXSeconds - CreateCollectionNFTRequest (core) extends MintWeb4NFTRequest with sensible defaults (60s timeout, 1s interval) - NFTManager.CreateCollectionNFTAsync passes request directly to MintNftAsync (full Web4 flow with holon creation) then retries SetCollectionSizeAsync in a do/while loop matching the existing mint/send retry pattern - NftController and WebAPI CreateCollectionNFTRequest model updated to expose and map all new fields - SolanaOasis.cs: MetadataUri -> JSONMetaDataURL to match renamed interface field - MongoDBContext.cs: add missing using System.Collections.Generic
…ss NFT stack - ICreateCollectionNFTRequest -> IMintOnChainCollectionNFTRequest - CreateCollectionNFTRequest -> MintOnChainCollectionNFTRequest (Core + WebAPI models) - NFTManager.CreateCollectionNFTAsync -> MintOnChainCollectionNFTAsync - NftController route: create-collection-nft -> mint-on-chain-collection-nft - SolanaOasis.CreateCollectionNFT[Async] -> MintOnChainCollectionNFT[Async] - Postman WEB4 entry renamed to Mint On-Chain Collection NFT
…MineCraft Gen-2 - READMEs: OBlood, ODOOM3, ODOOM3-BFG, ODoom64, OExhumed, OHeretic, OHexen, OHexenII, ORtCW, OShadowWarrior, OShadowWarriorRT, OStrife (all with architecture, editor, cross-game key tables, quick start) - OMorrowind: BUILD_OMORROWIND.bat/.sh, oasisstar.json (27 creatures + key items), README, lua/global.lua (portal cell-transition handler), lua/player.lua (HUD + quest overlay via OpenMW Lua API) - OMineCraft (Gen-2): full Minetest mod — init.lua, api.lua (HTTP STAR bridge), portals.lua (obsidian-frame portal node + portal key), hud.lua, mod.conf, oasisstar.json, BUILD/install scripts; no C layer — pure Lua via request_http_api
…x playground - Fix ONETProtocol sync-over-async deadlock: move InitializeAsync call to StartNetworkAsync - Fix karmaSourceTitle typo across 13 files (Core, Providers, Controllers, Interfaces) - Rename IOASIStorageProvider.cs → IOASISStorageProvider.cs (filename now matches interface name) - Rename AcceptnviteToJoinSeedsUsingAvatarRequest.cs → AcceptInviteToJoinSeedsUsingAvatarRequest.cs - Split AvatarController (2907 lines) into AvatarAuthController, AvatarProfileController, AvatarAdminController; archive original with legacy key-management code commented out - Add Docs/Devs/WEB6_QUICKSTART.md — 5-step FAHRN quick-start with C# and REST examples - Add Oportal-DevPortal/sandbox/index.html — live developer playground for sandbox.oasisomniverse.one
…al bodies, NFT mint)
… section, changelog, correct FAHRN endpoint
Adds 12 missing games to omniverse_host_config.json in a clean 11x2 grid: - Row 1 (Z=12): ODoom, ODoom64, OHeretic, OHexen, OHexenII, OStrife, ODOOM3, ODOOM3-BFG, OWolf3D, OQuake, OQuake2 - Row 2 (Z=20): OQuake2-RTX, OQuake3, ORtCW, ODuke3D, ODuke3D-RT, OBlood, OExhumed, OShadowWarrior, OShadowWarriorRT, OMorrowind, OMineCraft Each portal has a unique colour matching the game's aesthetic. Repositions existing portals into the grid layout.
Creates OGames/OHalfLife/ with full integration skeleton: - ohalflife_ogengine_integration.h/.cpp — 5 HLSDK hook sites (GameDLLInit, GameDLLShutdown, StartFrame, CBaseMonster::Killed, CBasePlayer::AddPlayerItem) wired to STAR API - oasisstar.json — 18 enemy XP entries (10 XP Headcrab to 500 XP Nihilanth), 5 key items (HEV Suit triggers first portal) - BUILD_OHALFLIFE.bat/.sh — copies integration into hlsdk-portable, builds game DLL + Xash3D engine, assembles output folder - README.md — architecture, hook table, XP table, build guide Also adds OHalfLife as portal #23 in omniverse_host_config.json at X=-20, Z=28 (start of row 3, orange colour matching HL branding).
- README.md: Gen-1 count 20→21, add OHalfLife to game table, Gen-2 status updated (OMorrowind/OMineCraft ✅), OHalfLife added to repos/build tables, all "20 games" → "23 games", directory tree includes OHalfLife/OMorrowind/OMineCraft - OGENGINE_VISION_AND_ROADMAP.md: Gen-1 twenty→twenty-one, OHalfLife in list, Gen table updated, hub portals "All 23 active", OHalfLife/OMorrowind/OMineCraft added to 2.4 status table, all "20 OGames" → "23 OGames", last-updated refreshed - BEST_PORTS_AND_EDITORS.md: OHalfLife/OMorrowind/OMineCraft added to summary table; J.A.C.K. + OpenMW CS + WorldEdit added to editor quick-reference
- README.md + roadmap + BEST_PORTS: OHalfLife status 🔧 → ✅ Complete - BUILD_OHALFLIFE.bat/sh: default HLSDK_DIR updated to C:\Source\OHalflife (fork of FWGS/hlsdk-portable at NextGenSoftwareUK/OHalflife) - Roadmap last-updated note reflects full wiring complete
GetLatestBlockHashAsync can return a failed result with a null Result.Value, causing NullReferenceException in every collection verification retry. Now throws a clear exception so the retry loop logs the actual RPC error instead of a cryptic object-ref crash.
…try noise 32 = SetAndVerifySizedCollectionItem (original was correct, should not have been changed) 34 = SetCollectionSize (33 was wrong; 36 was also wrong) Add missing payer account to SetCollectionSize accounts list. Only log SetCollectionSize warning on final timeout, not every retry attempt.
Per-attempt send failures were logged to innerMessages on every retry even when the operation eventually succeeded. Now only logs on final timeout or when WaitTillNFTSent is false.
…ast-error swallowed before timeout
…ounts needed (metadata, authority, mint)


Note
Medium Risk
Moderate risk because it changes CI orchestration by adding a new
test-starapi-clientjob and making release builds depend on it; failures or environment assumptions in the PowerShell test suite could block packaging. Other changes are documentation and.gitignorehygiene with minimal runtime impact.Overview
CI now runs the STARAPIClient automated suite by adding a new
test-starapi-clientjob that executesOASIS Omniverse/STARAPIClient/run_star_api_test_suite.ps1, uploadsTestResults/artifacts, and is required forbuild-and-package.Repo hygiene and docs were expanded:
.gitignorenow excludes common deployment secrets/config (e.g..env,hardhat.config.js,deployed-addresses.json,*.key/*.pem) and STAR CLI publish/install artifacts; a staleDockerfile.star-api.newwas removed; and multiple newDocs/Devs/*guides were added/linked covering smart-contract deployment and cross-platform getting-started/installer workflows.Written by Cursor Bugbot for commit d69b90f. This will update automatically on new commits. Configure here.