-
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
b630de9
7ebd8ab
af5b62e
23bef0c
4bcc3a8
188ccb7
a7038a4
85a822a
92cc12c
acc9712
08e80f0
e0fcdb7
59dd6fd
3ec166b
67bfe0b
718c906
dd82bd4
d514f3c
29a09c3
d562451
8a932c0
0839cb1
e662aab
536817b
b0d5f29
c3c7a32
45623e1
467649f
2715d2f
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
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: | ||
|
|
||
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"] |
This file was deleted.


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