From 13d4a43f2f6d23f506035d200997e57d2030304f Mon Sep 17 00:00:00 2001 From: Xget7 Date: Thu, 1 Oct 2026 19:09:57 -0300 Subject: [PATCH 1/2] Reuse local React Native iOS build artifacts across sessions --- AGENTS.md | 5 +++++ CLAUDE.md | 1 + apps/react-native/README.md | 5 +++++ apps/react-native/package.json | 3 ++- 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 CLAUDE.md diff --git a/AGENTS.md b/AGENTS.md index 21e6700..8a94019 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,3 +4,8 @@ SDK integration or verification: read [the harness](docs/AGENT_HARNESS.md). Implementation: follow [CONTRIBUTING.md](CONTRIBUTING.md); terminology lives in [CONTEXT.md](CONTEXT.md). Keep documentation terse; link code/contracts instead of duplicating them. Report skipped checks, approximation limits and emulator/physical-device provenance explicitly. + +Build storage: reuse ignored build directories in this checkout across sessions and reference large fixtures by path. +Reserve session scratchpads for small disposable probes. +React Native iOS: use the [example scripts](apps/react-native/package.json); serialize builds sharing Derived Data. +Separate build directories are for concurrent builds or required clean-build verification. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..43c994c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/apps/react-native/README.md b/apps/react-native/README.md index 1a72530..5f8b783 100644 --- a/apps/react-native/README.md +++ b/apps/react-native/README.md @@ -67,6 +67,11 @@ Restart the app after copying a world. The collider is optional: without one the world still renders and looks around, and the thumb stick stays hidden. The status line shows the load, drawn splats and GPU time, or why the world failed to load. +The iOS scripts reuse `ios/build/dd` across sessions and build only the active architecture for local runs. +`npm run ios:build` compiles without launching; pass `--mode Debug` when needed. +Serialize builds sharing this directory; use a separate `--buildFolder` for concurrent or clean-build verification. +Distribution builds use the standard Xcode architecture settings. + ## Camera verification On a loaded world, compare `Fly route` with and without a deliberate JS-thread stall in a debug build. diff --git a/apps/react-native/package.json b/apps/react-native/package.json index 8926e85..ac4948d 100644 --- a/apps/react-native/package.json +++ b/apps/react-native/package.json @@ -4,7 +4,8 @@ "private": true, "scripts": { "android": "react-native run-android --mode release", - "ios": "react-native run-ios --mode Release", + "ios": "react-native run-ios --mode Release --buildFolder build/dd --extra-params ONLY_ACTIVE_ARCH=YES", + "ios:build": "react-native build-ios --mode Release --buildFolder build/dd --extra-params ONLY_ACTIVE_ARCH=YES", "lint": "eslint .", "typecheck": "tsc --noEmit", "start": "react-native start" From a56831bfeb1add19acc01e8b4b318c0acf982cbd Mon Sep 17 00:00:00 2001 From: Xget7 Date: Thu, 1 Oct 2026 19:09:57 -0300 Subject: [PATCH 2/2] Cancel superseded PR checks and run tooling tests independently --- .github/workflows/android.yml | 18 ++++++++++++++++-- .github/workflows/core.yml | 5 +++++ .github/workflows/engine.yml | 5 +++++ .github/workflows/ios.yml | 5 +++++ .github/workflows/lint.yml | 5 +++++ .github/workflows/rn-contract.yml | 5 +++++ .../.github/workflows/contract.yml | 4 ++++ 7 files changed, 45 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 151523a..2c1a6e8 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -5,7 +5,22 @@ on: branches: [main] pull_request: +# Cancel superseded PR checks; preserve each main commit for the release and mirror gates. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: + tooling: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Check harness regressions + run: python3 -m unittest discover -s scripts/tests + build: runs-on: ubuntu-24.04 steps: @@ -37,10 +52,9 @@ jobs: packages/splatkit-android/src/main/cpp/tests/WorldFrameCompletionTest.cpp \ -o build/native-contracts/world-frame-completion build/native-contracts/world-frame-completion - - name: Check harness regressions - run: python3 -m unittest discover -s scripts/tests - name: Keep the AAR uses: actions/upload-artifact@v4 with: name: splatkit-android-release path: packages/splatkit-android/build/outputs/aar/*.aar + retention-days: 14 diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index b5c6e32..35c75e6 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -5,6 +5,11 @@ on: branches: [main] pull_request: +# Cancel superseded PR checks; preserve each main commit for the release and mirror gates. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: test: runs-on: ubuntu-24.04 diff --git a/.github/workflows/engine.yml b/.github/workflows/engine.yml index 307e1bb..90cb05e 100644 --- a/.github/workflows/engine.yml +++ b/.github/workflows/engine.yml @@ -5,6 +5,11 @@ on: branches: [main] pull_request: +# Cancel superseded PR checks; preserve each main commit for the release and mirror gates. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: test: runs-on: ubuntu-24.04 diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 8ce0c9c..a648d8f 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -5,6 +5,11 @@ on: branches: [main] pull_request: +# Cancel superseded PR checks; preserve each main commit for the release and mirror gates. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: # The Metal code and its tests build on macOS; the device library is the same source # with the iOS toolchain flags, built here to keep it compiling. diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 74ea6d6..e4631a0 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -5,6 +5,11 @@ on: branches: [main] pull_request: +# Cancel superseded PR checks; preserve each main commit for the release and mirror gates. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: cpp: runs-on: ubuntu-24.04 diff --git a/.github/workflows/rn-contract.yml b/.github/workflows/rn-contract.yml index f120133..ea72466 100644 --- a/.github/workflows/rn-contract.yml +++ b/.github/workflows/rn-contract.yml @@ -5,6 +5,11 @@ on: branches: [main] pull_request: +# Cancel superseded PR checks; preserve each main commit for the release and mirror gates. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: contract: runs-on: ubuntu-24.04 diff --git a/packages/react-native-splatkit/distribution/.github/workflows/contract.yml b/packages/react-native-splatkit/distribution/.github/workflows/contract.yml index 96fa410..4e064b7 100644 --- a/packages/react-native-splatkit/distribution/.github/workflows/contract.yml +++ b/packages/react-native-splatkit/distribution/.github/workflows/contract.yml @@ -5,6 +5,10 @@ on: branches: [main] pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: contract: runs-on: ubuntu-24.04