Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

native: bundle arena.mjs verbatim into initramfs

Goal is parity with the web build — arena.mjs runs unmodified under
the QuickJS runtime. The docker-build.sh allowlist already had clock.mjs;
adding arena.mjs next to it. Mirror in build-and-flash-initramfs.sh.

If arena hits a missing API at runtime it should error loudly — fix by
exposing the API in js-bindings.c rather than patching arena itself, so
both targets stay in sync.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+7 -3
+6 -2
fedac/native/docker-build.sh
··· 458 458 fi 459 459 done 460 460 461 - # ── 2q: Web pieces that work natively (clock.mjs unmodified) ── 462 - for webpiece in clock.mjs; do 461 + # ── 2q: Web pieces that work natively (bundled verbatim, no mods) ── 462 + # Every piece here must run unchanged under the QuickJS-based native 463 + # runtime. If you add a piece that uses browser-only APIs, the runtime 464 + # will throw — don't "port" the piece, expose the missing API in 465 + # js-bindings.c instead (so web and native stay in parity). 466 + for webpiece in clock.mjs arena.mjs; do 463 467 SRC_PIECE="$SRC/system/public/aesthetic.computer/disks/$webpiece" 464 468 if [ -f "$SRC_PIECE" ]; then 465 469 cp "$SRC_PIECE" "$IROOT/pieces/$webpiece"
+1 -1
fedac/native/scripts/build-and-flash-initramfs.sh
··· 229 229 AC_DISKS_DIR="${NATIVE_DIR}/../../system/public/aesthetic.computer/disks" 230 230 for web_piece in 3x3.mjs 404.mjs beat.mjs brick-breaker.mjs \ 231 231 dync.mjs error.mjs gostop.mjs hop.mjs shh.mjs chart.mjs \ 232 - f3ral3xp.mjs hw.mjs ptt.mjs; do 232 + f3ral3xp.mjs hw.mjs ptt.mjs arena.mjs; do 233 233 [ -f "${AC_DISKS_DIR}/${web_piece}" ] && cp "${AC_DISKS_DIR}/${web_piece}" "${INITRAMFS_DIR}/pieces/" 234 234 done 235 235 log "Bundled web pieces: $(ls "${INITRAMFS_DIR}/pieces/" | grep -c '.mjs') total"