Skip to content

Fix release: drop obsolete amy.aw.js/amy.ww.js from web build#775

Merged
bwhitman merged 1 commit into
mainfrom
claude/fix-web-worklet-deploy
Jun 27, 2026
Merged

Fix release: drop obsolete amy.aw.js/amy.ww.js from web build#775
bwhitman merged 1 commit into
mainfrom
claude/fix-web-worklet-deploy

Conversation

@bwhitman

Copy link
Copy Markdown
Collaborator

What broke

Releases have failed at the "Rebuild web assets" step on every merge since #773 — so no release has been cut since. make deploy-web ran:

cp build/amy.wasm build/amy.aw.js build/amy.ww.js docs/
cp: cannot stat 'build/amy.aw.js': No such file or directory

emscripten 4.0.x inlines the AudioWorklet / WasmWorker glue into amy.js and no longer emits separate amy.aw.js / amy.ww.js files (verified locally with the pinned emsdk 4.0.22 — make web produces only amy.js + amy.wasm). So the cp failed and the release aborted before tagging.

Why removing them is safe

Those files were never loaded at runtime. Both the old and new amy.js bootstrap the worklet from themselves:

audioWorklet.addModule(locateFile("amy.js"))

Neither references amy.aw.js / amy.ww.js by name. They were emitted by a long-ago emscripten and left behind in docs/ and the copy scripts — pure dead weight.

The fix

Drop them from the entire pipeline and delete the files:

  • Makefiledeploy-web now cp build/amy.wasm docs/ only
  • release.yml — removed from the rebuild comment and the bump git add
  • godot-addon.yml — removed the two cp docs/amy.aw.js|ww.js lines from the package step (these would now fail, since the files are gone)
  • godot/install.gd + setup_godot.sh — removed from the web-file lists and copies (both copies)
  • docs/godot.md, CLAUDE.md — doc references removed
  • Deleted docs/amy.aw.js, docs/amy.ww.js

Verified

  • make deploy-web now succeeds.
  • No tracked file still references the removed files (only an explanatory comment in the Makefile).
  • bash -n setup_godot.sh and YAML validation pass.

docs/amy.js / docs/amy.wasm are intentionally left as-is (the committed build already works standalone) — the now-unblocked release will rebuild them from source, which also picks up the bus kwarg in the JS API.

Note: godot-addon.yml only runs on release tags, not PRs, so its one-step change isn't exercised by this PR's CI — but it's a required companion to deleting the files (the old cp would fail without it).

🤖 Generated with Claude Code

Releases have failed at the Rebuild web assets step since #773. make deploy-web ran "cp build/amy.wasm build/amy.aw.js build/amy.ww.js docs/", but emscripten 4.0.x inlines the AudioWorklet/WasmWorker glue into amy.js and no longer emits separate amy.aw.js / amy.ww.js files, so the cp failed and the release aborted before tagging (no release has cut since #773).

Those files were vestigial: both old and new amy.js load the worklet from themselves via audioWorklet.addModule(locateFile("amy.js")), never fetching amy.aw.js / amy.ww.js by name.

Drop them from the whole pipeline (Makefile deploy-web, release.yml rebuild comment + bump git add, godot-addon.yml package copy, godot/install.gd and setup_godot.sh web file lists/copies, docs/godot.md, CLAUDE.md) and delete docs/amy.aw.js / docs/amy.ww.js. make deploy-web now succeeds; the unblocked release will refresh docs/amy.js + amy.wasm.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bwhitman bwhitman merged commit 7eb39e3 into main Jun 27, 2026
9 checks passed
pull Bot pushed a commit to manmuqingshan/tulipcc that referenced this pull request Jun 29, 2026
amy dropped the separate amy.aw.js/amy.ww.js from its web build (shorepine/amy#775):
emscripten >=4 inlines the AudioWorklet/WasmWorker glue into amy.js, which never
references a separate .aw.js. tulip/web/build.sh still hard-copied
amy/docs/amy.aw.js, so under `set -e` the whole web preview build aborts with
"cp: cannot stat '../../amy/docs/amy.aw.js'" once a newer amy is pinned (e.g. the
amy-pin PRs the tulipcc auto-pin workflow opens).

Guard the copy with `[ -f ]` so it's copied only when an older pinned amy still
ships it, mirroring amyboardweb/dev.py which already guards the same copy with
os.path.exists(). No runtime effect: amy.js loads the worklet inline either way.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant