Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

feat: bundle clock.mjs + lib deps in oven build (4 blockers complete)

Clock.mjs feasibility plan blockers — all 4 complete:
1. String colors in ink/wipe — already done (resolve_color_name)
2. clock.time() returning Date — already done (js_clock_time)
3. synth.kill() on return objects — already done (js_synth_obj_kill)
4. Bundle melody-parser/notepat-convert/note-colors + clock.mjs in
docker-build.sh initramfs (the local ac-os script already did this,
docker-build.sh was missing it)

Now 'clock cdefg' from prompt should jump to clock.mjs and play
the melody — running unmodified web piece on AC Native.

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

+21
+21
fedac/native/docker-build.sh
··· 431 431 cd "$NATIVE" 432 432 fi 433 433 434 + # ── 2p: ES module lib files for pieces (clock.mjs needs these) ── 435 + # These are pure JS with no DOM/browser deps — work in QuickJS as-is. 436 + # The module loader resolves "../lib/X.mjs" → "/lib/X.mjs" in the initramfs. 437 + mkdir -p "$IROOT/lib" 438 + for libmjs in melody-parser.mjs notepat-convert.mjs note-colors.mjs num.mjs; do 439 + SRC_LIB="$SRC/system/public/aesthetic.computer/lib/$libmjs" 440 + if [ -f "$SRC_LIB" ]; then 441 + cp "$SRC_LIB" "$IROOT/lib/$libmjs" 442 + log " Bundled lib: $libmjs ($(stat -c%s "$SRC_LIB") bytes)" 443 + fi 444 + done 445 + 446 + # ── 2q: Web pieces that work natively (clock.mjs unmodified) ── 447 + for webpiece in clock.mjs; do 448 + SRC_PIECE="$SRC/system/public/aesthetic.computer/disks/$webpiece" 449 + if [ -f "$SRC_PIECE" ]; then 450 + cp "$SRC_PIECE" "$IROOT/pieces/$webpiece" 451 + log " Bundled web piece: $webpiece ($(stat -c%s "$SRC_PIECE") bytes)" 452 + fi 453 + done 454 + 434 455 # ── Final verification ── 435 456 BROKEN_FINAL=$(find "$IROOT" -type l ! -exec test -e {} \; -print 2>/dev/null | wc -l) 436 457 TOTAL_FILES=$(find "$IROOT" -type f | wc -l)