Ess 0.4.1
Packaging fix for 0.4.0. The v0.4.0 release asset shipped without api/ess.json or api/natives.json
— the two manifests 0.4.0 was largely about. No framework code is affected; if you only installed
1_Ess.lua, 0.4.0 was fine and this changes nothing for you.
Fixed
release.ymlnever ranbuild/manifest.py.ci.ymldid, so CI went green while the published zip was
missing the manifest:dist/is gitignored, soess.jsondoesn't exist in a fresh checkout, and
package.pyskipped it exactly as written. Added the generate step to the release workflow. This is a
reminder that a passing CI job and a correct release artifact are different claims — the zip is now
inspected, not assumed.build/package.pynow WARNS LOUDLY when a manifest is missing instead of quietly shipping a zip without
it. That silence is the only reason the 0.4.0 gap reached a published release.natives.jsonmoved from gitignoreddist/to committedapi/natives.json. It's captured from a
live game bytools/dump_natives.py, so CI physically cannot regenerate it — a gitignored copy would
have been absent from every release zip forever, no matter what the workflow did. It also changes
essentially never (only if the game or bridge changes), which makes committing it the honest option. The
two files now come from two different places on purpose:dist/ess.jsonis derived fromsrc/and so is
regenerated every build to guarantee it's never stale;api/natives.jsonis captured from outside this
repo and so is committed. Both are documented that way at every reference.