Skip to content

Commit 84de251

Browse files
author
Shaw
committed
Merge remote-tracking branch 'origin/develop' into develop
2 parents 6e88c15 + ed3eb97 commit 84de251

29 files changed

Lines changed: 380 additions & 320 deletions

.github/workflows/android-release.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ jobs:
206206
run: bun run preflight:android:store
207207

208208
- name: Build signed AAB
209-
working-directory: packages/app/android
209+
working-directory: packages/app-core/platforms/android
210210
env:
211211
ELIZAOS_VERSION_NAME: ${{ steps.version.outputs.name }}
212212
ELIZAOS_VERSION_CODE: ${{ steps.version.outputs.code }}
@@ -219,7 +219,7 @@ jobs:
219219
./gradlew -PelizaCloudBuild=true -PelizaStripAgentAssets=true bundleRelease
220220
221221
- name: Build signed APK
222-
working-directory: packages/app/android
222+
working-directory: packages/app-core/platforms/android
223223
env:
224224
ELIZAOS_VERSION_NAME: ${{ steps.version.outputs.name }}
225225
ELIZAOS_VERSION_CODE: ${{ steps.version.outputs.code }}
@@ -233,29 +233,29 @@ jobs:
233233
234234
- name: Verify Android release artifacts
235235
run: |
236-
AAB_PATH="packages/app/android/app/build/outputs/bundle/release/app-release.aab"
237-
APK_PATH="packages/app/android/app/build/outputs/apk/release/app-release.apk"
236+
AAB_PATH="packages/app-core/platforms/android/app/build/outputs/bundle/release/app-release.aab"
237+
APK_PATH="packages/app-core/platforms/android/app/build/outputs/apk/release/app-release.apk"
238238
if [[ ! -f "$AAB_PATH" ]]; then
239239
echo "ERROR: AAB not found at $AAB_PATH"
240-
ls -la packages/app/android/app/build/outputs/bundle/release/ 2>/dev/null || echo "Release dir not found"
240+
ls -la packages/app-core/platforms/android/app/build/outputs/bundle/release/ 2>/dev/null || echo "Release dir not found"
241241
exit 1
242242
fi
243243
if [[ ! -f "$APK_PATH" ]]; then
244244
echo "ERROR: APK not found at $APK_PATH"
245-
ls -la packages/app/android/app/build/outputs/apk/release/ 2>/dev/null || echo "Release dir not found"
245+
ls -la packages/app-core/platforms/android/app/build/outputs/apk/release/ 2>/dev/null || echo "Release dir not found"
246246
exit 1
247247
fi
248248
echo "AAB size: $(du -h "$AAB_PATH" | cut -f1)"
249249
echo "APK size: $(du -h "$APK_PATH" | cut -f1)"
250250
file "$AAB_PATH"
251251
file "$APK_PATH"
252-
sha256sum "$AAB_PATH" "$APK_PATH" > packages/app/android/app/build/outputs/release-SHA256SUMS.txt
253-
cat packages/app/android/app/build/outputs/release-SHA256SUMS.txt
252+
sha256sum "$AAB_PATH" "$APK_PATH" > packages/app-core/platforms/android/app/build/outputs/release-SHA256SUMS.txt
253+
cat packages/app-core/platforms/android/app/build/outputs/release-SHA256SUMS.txt
254254
255255
- name: Stage sideload APK with canonical name
256256
run: |
257257
VERSION="${{ steps.version.outputs.name }}"
258-
APK_SRC="packages/app/android/app/build/outputs/apk/release/app-release.apk"
258+
APK_SRC="packages/app-core/platforms/android/app/build/outputs/apk/release/app-release.apk"
259259
SIDELOAD_APK="elizaos-android-${VERSION}-release.apk"
260260
cp "$APK_SRC" "$SIDELOAD_APK"
261261
sha256sum "$SIDELOAD_APK" > "${SIDELOAD_APK}.sha256"
@@ -267,9 +267,9 @@ jobs:
267267
with:
268268
name: eliza-android-release
269269
path: |
270-
packages/app/android/app/build/outputs/bundle/release/app-release.aab
271-
packages/app/android/app/build/outputs/apk/release/app-release.apk
272-
packages/app/android/app/build/outputs/release-SHA256SUMS.txt
270+
packages/app-core/platforms/android/app/build/outputs/bundle/release/app-release.aab
271+
packages/app-core/platforms/android/app/build/outputs/apk/release/app-release.apk
272+
packages/app-core/platforms/android/app/build/outputs/release-SHA256SUMS.txt
273273
elizaos-android-${{ steps.version.outputs.name }}-release.apk
274274
elizaos-android-${{ steps.version.outputs.name }}-release.apk.sha256
275275
retention-days: 90
@@ -285,11 +285,11 @@ jobs:
285285
echo "::error::No GitHub release found for $TAG; cannot attach AAB."
286286
exit 1
287287
fi
288-
cp packages/app/android/app/build/outputs/bundle/release/app-release.aab \
288+
cp packages/app-core/platforms/android/app/build/outputs/bundle/release/app-release.aab \
289289
"Eliza-${VERSION}.aab"
290-
cp packages/app/android/app/build/outputs/apk/release/app-release.apk \
290+
cp packages/app-core/platforms/android/app/build/outputs/apk/release/app-release.apk \
291291
"Eliza-${VERSION}.apk"
292-
cp packages/app/android/app/build/outputs/release-SHA256SUMS.txt \
292+
cp packages/app-core/platforms/android/app/build/outputs/release-SHA256SUMS.txt \
293293
"Eliza-${VERSION}.android.SHA256SUMS.txt"
294294
gh release upload "$TAG" \
295295
"Eliza-${VERSION}.aab" \
@@ -349,7 +349,7 @@ jobs:
349349
--aab "$GITHUB_WORKSPACE/aab/app-release.aab" \
350350
--track "${{ steps.track.outputs.track }}" \
351351
--json_key "$PLAY_STORE_JSON_KEY" \
352-
--package_name "ai.elizaos.app"
352+
--package_name "app.eliza"
353353
354354
- name: Clean up credentials
355355
if: always()

.github/workflows/build-android.yml

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ concurrency:
1515

1616
env:
1717
APP_DIR: packages/app
18+
ANDROID_DIR: packages/app-core/platforms/android
1819
NODE_VERSION: "24.15.0"
1920

2021
jobs:
@@ -67,7 +68,7 @@ jobs:
6768
run: bun run preflight:android:sideload
6869

6970
- name: Override Gradle JDK path for CI
70-
working-directory: ${{ env.APP_DIR }}/android
71+
working-directory: ${{ env.ANDROID_DIR }}
7172
run: |
7273
# Remove the hardcoded local JDK path so Gradle uses JAVA_HOME from setup-java
7374
sed -i '/org.gradle.java.home=/d' gradle.properties
@@ -90,15 +91,15 @@ jobs:
9091
9192
- name: Build debug APK
9293
if: github.event_name == 'workflow_dispatch'
93-
working-directory: ${{ env.APP_DIR }}/android
94+
working-directory: ${{ env.ANDROID_DIR }}
9495
env:
9596
ELIZAOS_VERSION_NAME: ${{ steps.version.outputs.version }}
9697
ELIZAOS_VERSION_CODE: ${{ steps.version.outputs.version_code }}
9798
run: ./gradlew assembleDebug --no-daemon
9899

99100
- name: Build release APK & AAB
100101
if: github.event_name == 'release'
101-
working-directory: ${{ env.APP_DIR }}/android
102+
working-directory: ${{ env.ANDROID_DIR }}
102103
env:
103104
ELIZAOS_VERSION_NAME: ${{ steps.version.outputs.version }}
104105
ELIZAOS_VERSION_CODE: ${{ steps.version.outputs.version_code }}
@@ -116,8 +117,8 @@ jobs:
116117
run: |
117118
echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > /tmp/keystore.jks
118119
119-
UNSIGNED_APK="${{ env.APP_DIR }}/android/app/build/outputs/apk/release/app-release-unsigned.apk"
120-
SIGNED_APK="${{ env.APP_DIR }}/android/app/build/outputs/apk/release/eliza-${{ steps.version.outputs.version }}.apk"
120+
UNSIGNED_APK="${{ env.ANDROID_DIR }}/app/build/outputs/apk/release/app-release-unsigned.apk"
121+
SIGNED_APK="${{ env.ANDROID_DIR }}/app/build/outputs/apk/release/eliza-${{ steps.version.outputs.version }}.apk"
121122
122123
${ANDROID_HOME}/build-tools/35.0.0/apksigner sign \
123124
--ks /tmp/keystore.jks \
@@ -132,37 +133,37 @@ jobs:
132133
- name: Generate Android checksums
133134
if: github.event_name == 'release'
134135
run: |
135-
find "${{ env.APP_DIR }}/android/app/build/outputs" \
136+
find "${{ env.ANDROID_DIR }}/app/build/outputs" \
136137
\( -name "*.apk" -o -name "*.aab" \) -type f -print0 \
137138
| sort -z \
138-
| xargs -0 sha256sum > "${{ env.APP_DIR }}/android/app/build/outputs/SHA256SUMS.txt"
139-
cat "${{ env.APP_DIR }}/android/app/build/outputs/SHA256SUMS.txt"
139+
| xargs -0 sha256sum > "${{ env.ANDROID_DIR }}/app/build/outputs/SHA256SUMS.txt"
140+
cat "${{ env.ANDROID_DIR }}/app/build/outputs/SHA256SUMS.txt"
140141
141142
- name: Upload debug APK artifact
142143
if: github.event_name == 'workflow_dispatch'
143144
uses: actions/upload-artifact@v7
144145
with:
145146
name: eliza-android-debug
146-
path: ${{ env.APP_DIR }}/android/app/build/outputs/apk/debug/app-debug.apk
147+
path: ${{ env.ANDROID_DIR }}/app/build/outputs/apk/debug/app-debug.apk
147148

148149
- name: Upload release artifacts
149150
if: github.event_name == 'release'
150151
uses: actions/upload-artifact@v7
151152
with:
152153
name: eliza-android-release
153154
path: |
154-
${{ env.APP_DIR }}/android/app/build/outputs/apk/release/*.apk
155-
${{ env.APP_DIR }}/android/app/build/outputs/bundle/release/*.aab
156-
${{ env.APP_DIR }}/android/app/build/outputs/SHA256SUMS.txt
155+
${{ env.ANDROID_DIR }}/app/build/outputs/apk/release/*.apk
156+
${{ env.ANDROID_DIR }}/app/build/outputs/bundle/release/*.aab
157+
${{ env.ANDROID_DIR }}/app/build/outputs/SHA256SUMS.txt
157158
158159
- name: Upload to GitHub Release
159160
if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && inputs.upload_to_release)
160161
uses: softprops/action-gh-release@v3
161162
with:
162163
tag_name: ${{ github.event_name == 'release' && github.event.release.tag_name || '' }}
163164
files: |
164-
${{ env.APP_DIR }}/android/app/build/outputs/apk/release/*.apk
165-
${{ env.APP_DIR }}/android/app/build/outputs/bundle/release/*.aab
166-
${{ env.APP_DIR }}/android/app/build/outputs/apk/debug/app-debug.apk
167-
${{ env.APP_DIR }}/android/app/build/outputs/SHA256SUMS.txt
165+
${{ env.ANDROID_DIR }}/app/build/outputs/apk/release/*.apk
166+
${{ env.ANDROID_DIR }}/app/build/outputs/bundle/release/*.aab
167+
${{ env.ANDROID_DIR }}/app/build/outputs/apk/debug/app-debug.apk
168+
${{ env.ANDROID_DIR }}/app/build/outputs/SHA256SUMS.txt
168169
fail_on_unmatched_files: false

.github/workflows/mobile-build-smoke.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ jobs:
243243

244244
- name: Verify APK exists
245245
run: |
246-
APK_PATH="packages/app/android/app/build/outputs/apk/debug/app-debug.apk"
246+
APK_PATH="packages/app-core/platforms/android/app/build/outputs/apk/debug/app-debug.apk"
247247
if [ ! -f "$APK_PATH" ]; then
248248
echo "::error::Debug APK not found at $APK_PATH"
249249
exit 1
@@ -252,10 +252,10 @@ jobs:
252252
echo "Debug APK built: $APK_PATH ($APK_SIZE bytes)"
253253
254254
- name: Upload debug APK
255-
if: ${{ hashFiles('packages/app/android/app/build/outputs/apk/debug/app-debug.apk') != '' }}
255+
if: ${{ hashFiles('packages/app-core/platforms/android/app/build/outputs/apk/debug/app-debug.apk') != '' }}
256256
uses: actions/upload-artifact@v7
257257
with:
258258
name: android-debug-apk
259-
path: packages/app/android/app/build/outputs/apk/debug/app-debug.apk
259+
path: packages/app-core/platforms/android/app/build/outputs/apk/debug/app-debug.apk
260260
retention-days: 7
261261
if-no-files-found: error

apps/app-xr/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"localtunnel": "^2.0.2",
2424
"qrcode-terminal": "^0.12.0",
2525
"typescript": "^5.4.0",
26-
"vite": "^5.0.0",
26+
"vite": "^8.0.13",
2727
"vitest": "^1.0.0"
2828
}
2929
}

packages/app-core/scripts/bun-riscv64/README.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ cd packages/app-core/scripts/bun-riscv64
5252
./run-build.sh --shell # drop into the toolchain image for poking
5353
./run-build.sh --image-only # just build the image
5454
./run-build.sh --no-cache # rebuild the image from scratch
55-
./run-build.sh --c-loop # fallback: build with ENABLE_C_LOOP=ON
55+
./run-build.sh --baseline-jit # experimental: requires realized WebKit patches
5656
./run-build.sh --jobs 4 # cap parallel build jobs
5757
```
5858

@@ -86,10 +86,11 @@ dist/bun-linux-riscv64-musl.zip.sha256
8686
dist/build-log.txt
8787
```
8888

89-
## C_LOOP fallback
89+
## C_LOOP artifact contract
9090

91-
If the Baseline JIT bringup fails (typically inside `offlineasm` or LLInt
92-
prologue), retry with the portable C interpreter:
91+
The publishable riscv64 artifact is C_LOOP-only until the WebKit recipe
92+
chain is checked in as patch files and validated. The bundled runner uses
93+
the portable C interpreter by default:
9394

9495
```bash
9596
docker run --rm \
@@ -102,9 +103,9 @@ docker run --rm \
102103
milady/bun-riscv64-builder
103104
```
104105

105-
The resulting binary is slower (no JIT at all) but guaranteed to build on
106-
any LP64D RISC-V target. `build-log.txt` records that C_LOOP was used so
107-
downstream consumers know a Baseline rebuild is desirable.
106+
The resulting binary is slower (no JIT at all) but is the reproducible
107+
contract both Android and Debian consume. `build-log.txt` records that
108+
C_LOOP was used.
108109

109110
## Hosting the artifact + wiring into Android staging
110111

@@ -125,8 +126,9 @@ export MILADY_BUN_RISCV64_URL='https://example.com/.../bun-linux-riscv64-musl.zi
125126
bun run mobile:build # or the equivalent android assemble path
126127
```
127128

128-
`stage-android-agent.mjs` will fetch, verify (zip integrity), extract,
129-
and stage `bun` into the APK's `assets/agent/riscv64/` directory alongside
129+
`stage-android-agent.mjs` requires `MILADY_BUN_RISCV64_SHA256` (or
130+
`ELIZA_BUN_RISCV64_SHA256`), verifies the downloaded zip digest, extracts,
131+
and stages `bun` into the APK's `assets/agent/riscv64/` directory alongside
130132
the matching musl loader and libstdc++ pulled from Alpine v3.21.
131133

132134
## What's pinned and why
@@ -151,13 +153,13 @@ failures inside Bun. Bump them together.
151153
| Tier | State | Source |
152154
|--------------|-----------------------------|--------|
153155
| LLInt | Upstream | WebKit #229035 (closed r281757 2021-08-30) |
154-
| Baseline JIT | Upstream | WebKit #239708 (closed r293316 2022-04-24) |
156+
| Baseline JIT | Optional, recipe-only locally | WebKit #239708 (closed r293316 2022-04-24) |
155157
| DFG JIT | **Not implemented** (NEW) | WebKit #238006 |
156158
| FTL JIT | **Not implemented** (NEW) | WebKit #239707 |
157159

158-
`build.sh` enables LLInt + Baseline and disables DFG + FTL. Acceptable
159-
for the Android agent runtime, which is bottlenecked on native llama.cpp
160-
inference and network I/O, not JS hot loops.
160+
`build.sh` defaults to C_LOOP for the publishable artifact. A Baseline
161+
experiment must pass `BUN_RISCV64_FORCE_CLOOP=0` and must first convert
162+
the recipe files under `webkit-patches/` into checked patch files.
161163

162164
## Limitations
163165

packages/app-core/scripts/bun-riscv64/build.sh

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,22 @@
1313
# Inputs (env vars, all optional):
1414
# BUN_TAG override bun.tag from bun-version.json
1515
# WEBKIT_COMMIT override webkit.fork_commit from bun-version.json
16-
# BUN_RISCV64_FORCE_CLOOP=1
17-
# skip Baseline JIT, build with ENABLE_C_LOOP=ON
18-
# (use if Baseline build fails on the picked
19-
# WebKit commit; documents the regression in the
20-
# build log).
16+
# BUN_RISCV64_FORCE_CLOOP=0
17+
# opt into the experimental Baseline-JIT path.
18+
# The production artifact defaults to C_LOOP until
19+
# the WebKit recipe chain is checked in as real
20+
# patch files.
2121
# JOBS parallel build jobs. Defaults to nproc.
2222
#
2323
# Output (under /artifact):
2424
# bun-linux-riscv64-musl.zip the artifact
2525
# bun-linux-riscv64-musl.zip.sha256
2626
# build-log.txt transcript + sha256s + qemu --version run
2727
#
28-
# Failure model: every step is `set -euo pipefail`. The build does NOT
29-
# fall back to ENABLE_C_LOOP automatically — operator decides by setting
30-
# BUN_RISCV64_FORCE_CLOOP=1 on a retry. Silent fallback would hide whether
31-
# Baseline JIT works for a given WebKit commit.
28+
# Failure model: every step is `set -euo pipefail`. The production artifact
29+
# defaults to ENABLE_C_LOOP=ON. Baseline-JIT attempts require the operator to
30+
# set BUN_RISCV64_FORCE_CLOOP=0 and must fail while recipe files remain
31+
# unrealized.
3232

3333
set -euo pipefail
3434

@@ -75,7 +75,7 @@ log " Alpine branch : $ALPINE_BRANCH"
7575
JOBS="${JOBS:-$(nproc)}"
7676
log " Build jobs : $JOBS"
7777

78-
FORCE_CLOOP="${BUN_RISCV64_FORCE_CLOOP:-0}"
78+
FORCE_CLOOP="${BUN_RISCV64_FORCE_CLOOP:-1}"
7979
if [ "$FORCE_CLOOP" = "1" ]; then
8080
log " JIT mode : C_LOOP (BUN_RISCV64_FORCE_CLOOP=1)"
8181
else

packages/app-core/scripts/bun-riscv64/bun-version.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
"fork": "oven-sh/WebKit",
1313
"fork_commit": "4d5e75ebd84a14edbc7ae264245dcd77fe597c10",
1414
"fork_commit_source": "scripts/build/deps/webkit.ts:WEBKIT_VERSION on oven-sh/bun@bun-v1.3.13 (verified 2026-05-19)",
15-
"rationale": "Bun's WebKit fork has zero riscv64 patches. We checkout this commit, then rebase the WebKit-side riscv64 enablement series (webkit-patches/) onto it. If rebase fails, fall back to upstream WebKit/WebKit at the matching git-svn revision and re-apply Bun's JavaScriptCore touch-ups manually — see webkit-patches/README.md.",
16-
"jit_tier": "baseline",
17-
"jit_rationale": "Upstream WebKit ships LLInt + Baseline JIT for riscv64 (WebKit bugs #229035 r281757 2021-08-30 and #239708 r293316 2022-04-25). DFG/FTL are still NEW (bugs #238006, #239707). On-device agent runtime is dominated by native llama.cpp + network IO, so the missing tiers cost us little. Build sets ENABLE_BASELINE_JIT=ON, ENABLE_DFG_JIT=OFF, ENABLE_FTL_JIT=OFF, ENABLE_C_LOOP=OFF. If Baseline build fails on the picked WebKit commit, retry with ENABLE_C_LOOP=ON + Baseline=OFF — build.sh exposes BUN_RISCV64_FORCE_CLOOP=1 for that path.",
15+
"rationale": "Bun's WebKit fork has zero riscv64 patches. We checkout this commit, apply the checked WebKit-side patch files, and build the production artifact with the portable C_LOOP interpreter until the LLInt/Baseline cherry-pick recipes are realized as actual patch files.",
16+
"jit_tier": "c_loop",
17+
"jit_rationale": "The production riscv64-linux-musl artifact is C_LOOP-only: build.sh defaults to ENABLE_C_LOOP=ON, ENABLE_JIT=OFF, ENABLE_DFG_JIT=OFF, and ENABLE_FTL_JIT=OFF. Upstream WebKit has LLInt + Baseline support for riscv64, but the local cherry-pick chain is still represented by recipe files rather than checked patch files. Operators may set BUN_RISCV64_FORCE_CLOOP=0 to test the experimental Baseline path after realizing those recipes; that is not the publishable artifact contract.",
1818
"cherry_pick_targets": {
1919
"llint_landing_sha": "d9b48eb602eb0269030f018afddd16c560d0b501",
2020
"llint_landing_date": "2021-08-30",
@@ -106,6 +106,6 @@
106106
"0001-cherry-pick-llint-riscv64.recipe": "8017bed5bf3f6fc22585b802c0016734ab48f0f70ddc675613c9b6930b8ea6b6",
107107
"0002-cherry-pick-baseline-jit-riscv64.recipe": "4ee6709e6e30ccbdc1b50641dd924835fb1b28fd3d5b874625307fb699dc39b4"
108108
},
109-
"webkit_recipes_status": "Recipe files document the cherry-pick chain that an operator with two WebKit clones must realize into actual `*.patch` files before the Baseline-JIT build path is testable. Until realized, build.sh proceeds with C_LOOP fallback when BUN_RISCV64_FORCE_CLOOP=1 is set."
109+
"webkit_recipes_status": "Recipe files document the optional LLInt/Baseline cherry-pick chain. The publishable riscv64 artifact contract is C_LOOP-only until that chain is checked in as patch files and validated."
110110
}
111111
}

packages/app-core/scripts/bun-riscv64/run-build.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# Usage:
77
# ./run-build.sh # build image + run cross-compile
88
# ./run-build.sh --no-cache # rebuild image from scratch
9-
# ./run-build.sh --c-loop # fallback: build with ENABLE_C_LOOP=ON
9+
# ./run-build.sh --baseline-jit # experimental: requires realized WebKit patches
1010
# ./run-build.sh --jobs 4 # cap parallel build jobs (default: nproc)
1111
# ./run-build.sh --image-only # just build the Docker image, don't run
1212
# ./run-build.sh --shell # drop into a shell inside the image
@@ -23,7 +23,7 @@ cd "$HERE"
2323

2424
IMAGE_TAG="milady/bun-riscv64-builder"
2525
NO_CACHE=""
26-
FORCE_CLOOP=""
26+
FORCE_CLOOP="1"
2727
JOBS=""
2828
IMAGE_ONLY=0
2929
SHELL_MODE=0
@@ -32,6 +32,7 @@ while [ $# -gt 0 ]; do
3232
case "$1" in
3333
--no-cache) NO_CACHE="--no-cache"; shift ;;
3434
--c-loop|--cloop) FORCE_CLOOP="1"; shift ;;
35+
--baseline-jit) FORCE_CLOOP="0"; shift ;;
3536
--jobs) JOBS="$2"; shift 2 ;;
3637
--image-only) IMAGE_ONLY=1; shift ;;
3738
--shell) SHELL_MODE=1; shift ;;

0 commit comments

Comments
 (0)