The workflow only built and smoke-checked that dist/index.html existed, so a type error, lint violation or failing test could be tagged straight to a published npm release. Run `pnpm lint` (tsc + oxlint + knip), `pnpm format:check` (oxfmt) and `pnpm test:unit --run` before the build, all hard. Add the same cancel-in-progress concurrency group cinny's CI uses so rapid pushes to lotus don't queue redundant full builds. Also fixes the one tsc error the v0.25.0 merge surfaced in lotusDecorations (lazyActions.off now returns the emitter), so the new gate is green from its first run. Fixes #5 Fixes #34 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA