For agents, on top of README.md, which they read first.
Notes for agents
Never deploy. mise run web:deploy publishes to a public address and is the
owner's to run. mise run web:dev and mise run test:web are yours.
The wasm-bindgen crate and CLI are one version, pinned here (=0.2.127) and in
mise.toml; tools/check-versions.sh fails when they differ. Move both together.
web:dev needs --local-upstream localhost:8790. Without it wrangler tells the
Worker it was reached at the route in wrangler.toml (hooks.lmjtfy.fun), the gate
takes that for another address, and every local request is answered 308 to itself
(seen 2026-10-06: every path, /nope included, was a redirect).
This workspace is not the plugin's. The root Cargo.toml excludes web; do not add
it as a member. The plugin builds with no Workers toolchain (no worker, no wasm-bindgen CLI, no
wrangler) and must keep doing so.
The site compiles the plugin's own crates (jevhooks-events, jevhooks-rules), by
path, into wasm32. A dependency added to either that does not build there (anything
with I/O or tokio) breaks the site's build, not the plugin's: run mise run test:web
and mise run web:build after changing one.
Both submodules must be fetchable before this is pushed. The site pins
third-party/jevcrates and third-party/rustcrates at commits; a push of this
repository while either commit exists only on the owner's machine breaks
git clone --recurse-submodules for everyone else, the plugin's own build included.