-
Notifications
You must be signed in to change notification settings - Fork 34
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?
Changes from all commits
69baf3f
f7d014d
55b7710
59cbe5c
7d3ee1e
07f298e
6e84b4f
4cbcc9d
6e18813
d4ef7a3
3335729
e53cea4
c7918be
4a125a1
7041419
9b4337d
6e8018d
8dc8053
30360b5
9816d48
193c1e4
c56099e
9c0f23b
7ad8780
a917bdd
a90c404
a8100da
ff17460
98914f8
528f37e
d975511
6410589
50fda01
866d5a5
fa3d6a0
2d59b2e
0b70392
dede752
de90d2c
9b3d2bd
b4f92e6
501aaf1
d6003c2
dd21e30
7618df1
0accf78
40b0444
aba6b73
855ec82
07b3d7e
d447aa5
33d8f75
cfe91a1
74c7fae
e6c02d6
191164f
4d3a3a2
3d3fbc3
0ef3c5e
ce03f06
88d9ea3
acffab5
632d14e
7d564ed
7164fc1
9c6d0d1
c71ea99
319ff1b
13ae724
1db24b8
0ca50d6
75f75bb
678de44
e817383
61d97e0
c0fdd22
439f4b4
9f8b960
313a1ec
6eeacec
bd289c6
9c3da6a
96c3112
74a12dc
6273293
bef6850
f6f613b
1bd8c95
0818c2a
7f0bf38
432cb60
6cd7248
9edcf09
0993659
7365080
34258bb
1e4e81b
9f24c0e
31f4c22
c4adb8f
024c31f
4b003f6
f5feacb
55138c3
4cf4501
dd2dc9c
bd28e8a
f31b89d
0404b16
0b311f6
340fc48
029e6c2
eacf42e
ded6d58
fd3ad5c
b248a35
76b16c9
467b39d
764b09f
4565090
2f9e55c
08ac5d1
24d743d
bdc2e6c
912bb75
382cb65
46007b1
a4a3b7b
5df5fc9
a1a4256
89f14a0
a492113
6404585
9fecdeb
f391f84
fcbe170
e9476c0
06b6c60
e07f085
d35e4da
080a8bf
059b816
8aa06d1
11d827f
b9fb6c7
b7bad0b
59a2dfc
1980ba5
2e7731e
2918960
9505a39
7f0de28
ae70796
741c22d
0982acb
31e4c53
ecbbed5
b4b1e3a
2541f6f
320937f
e6c2dce
e331bf9
47f83c7
60c57fb
962fb8e
d2fe695
81cf303
2223cfe
7d34b89
7c43c69
3c0e914
685893a
376509a
7c126f4
0675033
05b471c
842bd95
703e8fb
2c9020e
9f8e55e
5838d6b
eb88572
4f06640
392c2cd
1adbfac
6286e8b
62de22e
ece30ff
97cd35c
a18c12c
c980348
8e915df
e384234
d1115b6
8b9bd96
f211235
e905d47
3bebfcd
d377c2a
7d6b48b
0d65d67
31cc3e9
271cb7a
761e920
c83cb42
c90af0a
02db5c4
10498e3
21a6d91
c617160
65c390e
8102921
f2fd4f7
3854d76
f6ab872
37c0277
285bdf2
9d4c159
7f58dc4
8e155ce
29afc96
0f32669
9c232a9
9927686
a7a013d
89f3e2c
7a9f539
0775ba0
2d894bd
d98ed0c
bb7481b
0f69668
54d065a
725cb1f
ad69723
32d32b6
da7717b
7bad493
4df1863
f9dfff3
57d9611
ff98548
08a882c
913e73d
8d31b54
8badf8b
c8868ab
10db08d
22ce59c
7fb9e91
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| { | ||
| "repo_notes": [ | ||
| { | ||
| "content": "Use api.oasisweb4.one (not .com) as the canonical base URL for the hosted OASIS API in all examples, code snippets, and documentation. Base URL: https://api.oasisweb4.one, API prefix: https://api.oasisweb4.one/api, Swagger: https://api.oasisweb4.one/swagger/index.html.\n\nIn the Getting Started / Developer Guides section, document both paths clearly:\n1. Using the remote API: Users can call the hosted API at https://api.oasisweb4.one without cloning or running the repo. Include: register (POST /api/avatar/register), verify-email, authenticate (POST /api/avatar/authenticate), then use the JWT in Authorization header for other endpoints. No .NET SDK or local setup required.\n2. Running locally: Clone, restore, build, and run the WebAPI project for local development.", | ||
| "author": "OASIS docs" | ||
| } | ||
| ], | ||
| "pages": [] | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -137,6 +137,31 @@ jobs: | |
| dotnet test "STAR ODK/NextGenSoftware.OASIS.STAR.WebAPI.IntegrationTests/NextGenSoftware.OASIS.STAR.WebAPI.IntegrationTests.csproj" --no-build --verbosity normal | ||
| dotnet test "STAR ODK/NextGenSoftware.OASIS.STAR.WebUI.IntegrationTests/NextGenSoftware.OASIS.STAR.WebUI.IntegrationTests.csproj" --no-build --verbosity normal | ||
|
|
||
| # STARAPIClient Unit + Integration + Harness | ||
| test-starapi-client: | ||
| name: Test STARAPIClient | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Setup .NET | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: ${{ env.DOTNET_VERSION }} | ||
|
|
||
| - name: Run STARAPIClient test suite | ||
| shell: pwsh | ||
| run: | | ||
| & "OASIS Omniverse/STARAPIClient/run_star_api_test_suite.ps1" -Configuration Release -KillStaleTestHosts $true | ||
|
|
||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. STARAPIClient tests likely fail on UbuntuHigh Severity The new Additional Locations (1) |
||
| - name: Upload STARAPIClient test artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| if: always() | ||
| with: | ||
| name: starapiclient-test-results | ||
| path: OASIS Omniverse/STARAPIClient/TestResults/ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. CI artifact upload path with spaces needs quotingMedium Severity The There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Artifact upload path with spaces needs quotingMedium Severity The |
||
| retention-days: 30 | ||
|
|
||
| # Unity Tests (if Unity is available) | ||
| unity-tests: | ||
| name: Unity Tests | ||
|
|
@@ -160,7 +185,7 @@ jobs: | |
| build-and-package: | ||
| name: Build and Package | ||
| runs-on: ubuntu-latest | ||
| needs: [test-oasis-architecture, test-onode, test-star-odk, integration-tests] | ||
| needs: [test-oasis-architecture, test-onode, test-star-odk, integration-tests, test-starapi-client] | ||
| if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' | ||
|
|
||
| steps: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy | ||
| # More GitHub Actions for Azure: https://github.com/Azure/actions | ||
|
|
||
| name: Build and deploy ASP.Net Core app to Azure Web App - OASISAPIONODE | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - master | ||
| workflow_dispatch: | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: windows-latest | ||
| permissions: | ||
| contents: read #This is required for actions/checkout | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Set up .NET Core | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: '10.x' | ||
|
|
||
| - name: Build with dotnet | ||
| run: dotnet build --configuration Release | ||
|
|
||
| - name: dotnet publish | ||
| run: dotnet publish -c Release -o "${{env.DOTNET_ROOT}}/myapp" | ||
|
|
||
| - name: Upload artifact for deployment job | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: .net-app | ||
| path: ${{env.DOTNET_ROOT}}/myapp | ||
|
|
||
| deploy: | ||
| runs-on: windows-latest | ||
| needs: build | ||
| permissions: | ||
| id-token: write #This is required for requesting the JWT | ||
| contents: read #This is required for actions/checkout | ||
|
|
||
| steps: | ||
| - name: Download artifact from build job | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: .net-app | ||
|
|
||
| - name: Login to Azure | ||
| uses: azure/login@v2 | ||
| with: | ||
| client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_6E57E8EB6CA44C78B5CE4C7C568A0523 }} | ||
| tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_BE062CE2CBC344DFA6587A6106793B05 }} | ||
| subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_AD923DCFBB8745FE900FC743D8F58F66 }} | ||
|
|
||
| - name: Deploy to Azure Web App | ||
| id: deploy-to-webapp | ||
| uses: azure/webapps-deploy@v3 | ||
| with: | ||
| app-name: 'OASISAPIONODE' | ||
| slot-name: 'Production' | ||
| package: . | ||
|
|
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| # OASIS — notes for AI / Cursor agents | ||
|
|
||
| ## Root cause only — no hacks, fallbacks, or workarounds (all code) | ||
|
|
||
| Applies to **every change** in this repo — C#, C++, ZScript, HTTP/API, DB, scripts — not only packaging. | ||
|
|
||
| **Do not** paper over bugs with parallel code paths: legacy API “if new fails,” silent `catch`, duplicate “safety” updates, un-spec’d retries, or optional `dlsym` for symbols that are part of the shipped contract. That hides **broken invariants** and makes behaviour depend on which path ran. | ||
|
|
||
| **Do** identify the **one invariant** that should hold, fix **the layer that broke it** (await ordering, cache invalidation, correct id persisted, deploy artifact match), use **`OASISResult<T>`** / real errors, and add **tests or build checks** where they lock the invariant in. | ||
|
|
||
| **Deploy / native:** missing `star_api_*` symbol → rebuild STARAPIClient, run full `BUILD_ODOOM.sh`, verify exports in scripts — see **`OASIS Omniverse/Docs/ODOOM_UZDoom_Build_Sync.md`**. | ||
|
|
||
| Full policy (code patterns + build): **`Docs/Devs/AGENT_Root_Cause_No_Fallbacks.md`**. Read it before adding shims or “fallbacks.” | ||
|
|
||
| ## If the chat “crashed” or context was truncated | ||
|
|
||
| Resume from **files in git**, not from chat history. Read: | ||
|
|
||
| | Topic | Doc / entry point | | ||
| |--------|-------------------| | ||
| | **Root cause vs hacks / fallbacks** (policy for agents) | `Docs/Devs/AGENT_Root_Cause_No_Fallbacks.md` | | ||
| | STAR CLI shell / `--non-interactive` / `--json` | `Docs/Devs/STAR_CLI_NonInteractive.md` | | ||
| | STAR CLI hub (users & devs, Light/templating, STARNET, AI/MCP) | `Docs/Devs/STAR_CLI_Comprehensive_Guide.md` | | ||
| | **Session handoff** (what’s done, what’s next, file map) | `Docs/Devs/STAR_CLI_SessionHandoff.md` | | ||
| | **ODOOM quest list + STAR** (CVars, scroll, do-not-break invariants) | `OASIS Omniverse/Docs/ODOOM_Quest_List_STAR.md` | | ||
| | **ODOOM vs UZDoom** (why HUD/timer/toggle edits seem ignored; copy step) | `OASIS Omniverse/Docs/ODOOM_UZDoom_Build_Sync.md` | | ||
| | **`star_api.so` / `star_api.h` drift** (undefined symbol at launch; fix deploy, not game shims) | `OASIS Omniverse/Docs/ODOOM_UZDoom_Build_Sync.md` (heading: STAR native library must match star_api.h) | | ||
| | **STAR `star_transport` remote vs native** (size, AOT, BootLoader, split-build recommendation) | `OASIS Omniverse/Docs/STAR_API_Native_Transport_Architecture.md` | | ||
| | **STAR Quest system** (WEB5 API, STARAPIClient, `star_api_*`, game hooks) | `OASIS Omniverse/Docs/STAR_Quest_System_Developer_Guide.md` | | ||
| | **OQuake / ODOOM STAR user guide** (beam-in, inventory, quest keys) | `OASIS Omniverse/Docs/STAR_Games_User_Guide.md` | | ||
|
|
||
| For a **new chat**, paste: goal + “see `Docs/Devs/STAR_CLI_SessionHandoff.md`”. | ||
|
|
||
| ## Conventions (this repo) | ||
|
|
||
| - Prefer **real implementations**; avoid TODOs/placeholders for shipping paths. | ||
| - **No workaround-first coding** — see `Docs/Devs/AGENT_Root_Cause_No_Fallbacks.md` (section A: general code). | ||
| - OASIS APIs often use **`OASISResult<T>`** — keep that pattern for new surface area. | ||
| - **NextGenSoftware-Libraries** lives as a **sibling** of this repo (e.g. `../NextGenSoftware-Libraries`), not under `OASIS/external-libs`. | ||
|
|
||
| ## High-churn STAR CLI paths | ||
|
|
||
| - `STAR ODK/NextGenSoftware.OASIS.STAR.CLI/Program.cs` — command router (very large). | ||
| - `STAR ODK/NextGenSoftware.OASIS.STAR.CLI/StarCliInvocation.cs` — global flags. | ||
| - `STAR ODK/NextGenSoftware.OASIS.STAR.CLI/StarCliShellOutput.cs` — JSON/errors. | ||
| - `STAR ODK/NextGenSoftware.OASIS.STAR.CLI/StarCliStarnetNonInteractiveGuard.cs` — argv checks before `ShowSubCommandAsync` predicates. | ||
| - `STAR ODK/NextGenSoftware.OASIS.STAR.CLI.Lib/StarnetUiScriptedCreateCli.cs` — generic argv → `CustomCreateParams` for scripted create; `StarCliNonInteractiveCreateKeys.cs` + `STARNETUIBase.CreateAsync` consume it. Prefer extending these over per-holon `Program.cs` forks (see `Docs/Devs/STAR_CLI_NonInteractive.md` § Generic design). | ||
| - `STAR ODK/NextGenSoftware.OASIS.STAR.CLI.Lib/STARNETUIBase.cs` — wizards / `GetConfirmation` (non-interactive work often lands here). | ||
| - Shared prompts: `NextGenSoftware-Libraries/NextGenSoftware.CLI.Engine/CLIEngine.cs` (`NonInteractive`, `AssumeYes`, etc.). |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| <Project Sdk="Microsoft.NET.Sdk"> | ||
| <Project Sdk="Microsoft.NET.Sdk"> | ||
|
|
||
| <PropertyGroup> | ||
| <TargetFramework>net6.0</TargetFramework> | ||
| <TargetFramework>net10.0</TargetFramework> | ||
| </PropertyGroup> | ||
|
|
||
| </Project> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| <Project Sdk="Microsoft.NET.Sdk"> | ||
|
|
||
| <PropertyGroup> | ||
| <TargetFramework>net5.0</TargetFramework> | ||
| <TargetFramework>net10.0</TargetFramework> | ||
| </PropertyGroup> | ||
|
|
||
| </Project> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| # Use the official .NET 9 runtime as base image | ||
| FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base | ||
| WORKDIR /app | ||
| EXPOSE 8080 | ||
| EXPOSE 8081 | ||
|
|
||
| # Use the .NET 9 SDK for building | ||
| FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build | ||
|
|
||
| # Project references resolve NextGenSoftware-Libraries as a sibling of the OASIS repo root | ||
| # (three levels up from e.g. OASIS Architecture/.../Common). Build from the directory that | ||
| # contains BOTH checkouts, for example: | ||
| # cd /path/to/Source | ||
| # docker build -f OASIS/Docker/Dockerfile.clean -t oasis-star-webapi . | ||
| # If your OASIS folder is not named "OASIS", pass: --build-arg OASIS_DIR=YourFolderName | ||
| ARG OASIS_DIR=OASIS | ||
| WORKDIR /build | ||
| COPY ${OASIS_DIR}/ /build/oasis-root/ | ||
| COPY NextGenSoftware-Libraries/ /build/NextGenSoftware-Libraries/ | ||
|
|
||
| # HoloOASIS.csproj references ..\..\..\..\holochain-client-csharp\ = sibling of OASIS repo root (/build), not under Providers/. | ||
| ARG HOLOCHAIN_REPO=https://github.com/NextGenSoftwareUK/holochain-client-csharp.git | ||
| RUN apt-get update && apt-get install -y git \ | ||
| && git clone --depth 1 "${HOLOCHAIN_REPO}" /build/holochain-client-csharp \ | ||
| && apt-get clean && rm -rf /var/lib/apt/lists/* | ||
|
|
||
| WORKDIR "/build/oasis-root" | ||
|
|
||
| # Restore and build | ||
| RUN dotnet restore "STAR ODK/NextGenSoftware.OASIS.STAR.WebAPI/NextGenSoftware.OASIS.STAR.WebAPI.csproj" | ||
| RUN dotnet build "STAR ODK/NextGenSoftware.OASIS.STAR.WebAPI/NextGenSoftware.OASIS.STAR.WebAPI.csproj" -c Release -o /app/build | ||
|
|
||
| # Publish the application | ||
| FROM build AS publish | ||
| WORKDIR "/build/oasis-root" | ||
| RUN dotnet publish "STAR ODK/NextGenSoftware.OASIS.STAR.WebAPI/NextGenSoftware.OASIS.STAR.WebAPI.csproj" -c Release -o /app/publish /p:UseAppHost=false | ||
|
|
||
| # Final stage | ||
| FROM base AS final | ||
| WORKDIR /app | ||
| COPY --from=publish /app/publish . | ||
|
|
||
| # Set environment variables | ||
| ENV ASPNETCORE_ENVIRONMENT=Production | ||
| ENV ASPNETCORE_URLS=http://+:8080 | ||
|
|
||
| # Health check | ||
| HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ | ||
| CMD curl -f http://localhost:8080/api/health || exit 1 | ||
|
|
||
| ENTRYPOINT ["dotnet", "NextGenSoftware.OASIS.STAR.WebAPI.dll"] |


Uh oh!
There was an error while loading. Please reload this page.