Commit web JS codegen outputs in src/, verified by check-c-api - #953
Conversation
amy_api.generated.js and patches.generated.js used to be generated into the gitignored build/ by 'make web', which meant downstream copies (tulipcc's amyboardweb static/) could silently drift from the pin — see tulipcc#1208. Move both outputs to committed src/ alongside amy_c_api.generated.js, give both generators a --check mode, and add a new gen_pcm_presets_js.py that generates the web editor's wave-preset table (window.AMY_WAVE_PRESETS) from pcm_tiny.h — previously a one-off committed in tulipcc with no generator at all. All three run under 'make c-api' and are enforced fresh in CI by 'make check-c-api'. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🎛️ AMY HW CI (AMYboard bench)Flashed this PR's AMY (LoadTestChord: 6-voice Juno ✅ PASS — the bench ran the test to completion.
Full chord settled render μs: 3170 (was 3171, Δ -0.0%) (peak 3181, 39 samples) ⬇️ Artifacts: serial log · load trace · report Self-hosted bench (amyboardci). FAIL means only that the test could not run — the load values are informational, with no threshold and no audio compare. See |
⛓️ tulipcc integration PR openedThis merge was pinned into tulipcc for full-system CI: shorepine/tulipcc#1212 Test it there and merge that PR to move tulipcc onto this AMY. |
Why
amy_api.generated.jsandpatches.generated.jswere generated into the gitignoredbuild/bymake web, so consumers that commit copies (tulipcc's amyboardwebstatic/) could silently drift from their pinned amy — that's exactly what happened in shorepine/tulipcc#1208 after #943 removedvoices.What
gen_amy_js_api.pyandgen_patches_js.pyoutputs to committedsrc/amy_api.generated.js/src/patches.generated.js(alongsideamy_c_api.generated.jsfrom Table-driven cross-platform C API binding codegen #942), and give both scripts a--checkmode.scripts/gen_pcm_presets_js.py→ committedsrc/pcm_presets.generated.js: the web editor's wave-preset table (window.AMY_WAVE_PRESETS) frompcm_tiny.h. This file previously existed only as a one-off committed in tulipcc with no generator anywhere; output is byte-identical to it apart from the header comment.make c-apiruns all the generators;make check-c-api(already run by CI on every PR) now fails if any of the three JS outputs is stale.web/deploy-webuse the committed files; thebuild/rules are gone.Testing
make check-c-apipasses;make testpasses (117 tests).static/*.generated.jscopies and copies these fromsrc/at build time, so a bare pin bump can never drift them again.🤖 Generated with Claude Code