diff --git a/web/world/js/main.js b/web/world/js/main.js index 511a8b6..c66fc3a 100644 --- a/web/world/js/main.js +++ b/web/world/js/main.js @@ -871,8 +871,16 @@ export async function boot(opts = {}) { * still flies the membrane". A fix that waits for a merge to start working is * not a fix yet. `session.fabric` is the expression this file already reads * for the paperwork, so the physics and the invoice now read ONE source. - * When B's rigging.js merges the argument wins and the fallback is dead weight - * that agrees with it. Delete the fallback then, not before. + * **AT INTEGRATION (S18, integrator): B's rigging.js is merged, the argument + * now arrives on both wired routes — and the fallback STAYS.** A's filed + * instruction was to delete it here; it is deliberately not deleted, and A can + * revert this on sight. The reason is a third caller neither lane enumerated: + * `rigSail` is exposed on the `SHADES` API, where a bench or a cold play can + * still call it with three arguments. Deleting the fallback would make that + * path fly the membrane while every card said cloth — the exact five-sprint bug + * this fix exists to kill, reintroduced through the one door the suite cannot + * see (this wire lives inside `boot()` behind a WebGL context). The fallback is + * one `??` and it agrees with the argument on every wired path. */ async function rigSail(anchorIds, hwChoices, tension = 1.0, fabric) { const cloth = fabric ?? rigging?.session?.fabric;