49af014a84
Story 1113 added `#[derive(RustEmbed)] #[folder = "../frontend/dist"]` plus a unit test that calls `EmbeddedAssets::iter()`. The macro only generates `iter()` when the folder exists at compile time, so the Rust build now has a hard compile-time dependency on `frontend/dist/`. `script/test` ran `cargo clippy` (line 48) before the frontend build (line 53+). In a fresh merge worktree with no `frontend/dist/`, clippy failed immediately on the `iter()` call and the script exited before `npm run build` ever ran — the gate could never self-heal. Blocked 1116's merge today; would block every future merge. Move the frontend build above all cargo invocations. Verified by running script/test in a fresh worktree with `node_modules` and `frontend/dist` removed: 385/385 frontend tests + cargo tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>