Skip to content

merging master into experiimental - #351

Open
dellams wants to merge 856 commits into
Experimentalfrom
master
Open

merging master into experiimental#351
dellams wants to merge 856 commits into
Experimentalfrom
master

Conversation

@dellams

@dellams dellams commented Dec 22, 2025

Copy link
Copy Markdown
Collaborator

Note

Medium Risk
Moderate risk because it changes CI orchestration by adding a new test-starapi-client job and making release builds depend on it; failures or environment assumptions in the PowerShell test suite could block packaging. Other changes are documentation and .gitignore hygiene with minimal runtime impact.

Overview
CI now runs the STARAPIClient automated suite by adding a new test-starapi-client job that executes OASIS Omniverse/STARAPIClient/run_star_api_test_suite.ps1, uploads TestResults/ artifacts, and is required for build-and-package.

Repo hygiene and docs were expanded: .gitignore now excludes common deployment secrets/config (e.g. .env, hardhat.config.js, deployed-addresses.json, *.key/*.pem) and STAR CLI publish/install artifacts; a stale Dockerfile.star-api.new was removed; and multiple new Docs/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.

Comment thread OASIS Architecture/NextGenSoftware.OASIS.OASISBootLoader/OASISBootLoader.cs Outdated
Comment thread OASIS Architecture/NextGenSoftware.OASIS.API.Core/Enums/HolonType.cs Outdated
Comment thread .gitignore Outdated
Comment thread OASIS Architecture/NextGenSoftware.OASIS.API.Core/Enums/HolonType.cs Outdated
Comment thread .gitignore
Comment thread .github/workflows/ci-cd.yml Outdated
Comment thread .gitignore
Comment thread .gitignore
Comment thread Docs/Devs/CONTRACT_DEPLOYMENT.md Outdated
npx hardhat run scripts/deploy.js --network optimism
# ... etc for each chain
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)

Fix in Cursor Fix in Web

npm run deploy:all:testnet
npm run deploy:aptos:testnet
npm run deploy:sui:mainnet
# ... see package.json for all scripts

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)

Fix in Cursor Fix in Web

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)

Fix in Cursor Fix in Web

shell: pwsh
run: |
& "OASIS Omniverse/STARAPIClient/run_star_api_test_suite.ps1" -Configuration Release -KillStaleTestHosts $true

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)

Fix in Cursor Fix in Web

Comment thread .gitignore
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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)

Fix in Cursor Fix in Web

@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 26, 2026 05:10 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 06:43 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 08:12 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 19:04 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 19:11 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 20:29 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 20:31 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 20:31 Inactive
@railway-app
railway-app Bot temporarily deployed to invigorating-recreation / production February 27, 2026 21:04 Inactive
dellams added 30 commits August 6, 2026 00:24
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.
…size to 50 to prevent Atlas connection exhaustion
… 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
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.
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.

1 participant