Skip to content

Lasm 0.3.4

Choose a tag to compare

@github-actions github-actions released this 28 Oct 01:30
· 350 commits to main since this release
043ffd5

Lasm 0.3.4

A patch release. Upgrade with npm install -D @lasm/cli@0.3.4. Nothing changes
in how programs build.

0.3.3 was never published: its release checks failed on CI problems (fixed
here), so its changes ship in 0.3.4.

Fixes

  • Lasm.UI: the address and the page change together. A same-origin link
    click now renders the new page in the same task as its pushState.
    Cmd.pushUrl and Cmd.replaceUrl create their history entry in the same frame
    that shows the new page. Before, the address changed one animation frame
    before the page, so a test waiting for the new URL could still see the old
    page. This was found by the RealWorld end-to-end suite on Conduit.
  • A second UDP receive fails at once. UDP.Socket.recv and waitReadable
    on a socket that already has a receive pending now fail immediately with the
    error native Lean gives: an IO error from libuv's EALREADY, "connection already
    in progress". Before, they returned a promise that failed later with a
    different message. A failure to start receiving is reported the same way.

Examples and documentation

  • Conduit (examples/conduit): the RealWorld API in Lean. It runs on Node
    (node:sqlite), Cloudflare Workers (D1) and Bun (bun:sqlite), and passes
    the official Hurl suite.
  • The README is rewritten for people and coding agents. It now has quick
    facts, a start-here table, recipes and the examples up front, plus llms.txt
    and docs/AI.md.

Release and CI tooling

  • The check that runs npm create @lasm from the public registry after a
    release no longer skips itself by mistake. For 0.3.2 it read the release run's
    job list before GitHub had filled it in. It now waits until the run and all of
    its jobs have finished (scripts/release/published-gate.mjs).
  • The edge runtime's system libraries get the same member names on every build
    machine, so the archive CI rebuilds matches the pinned one.
  • Playwright installs in CI run within one 25-minute budget, inside 30-minute
    steps.
  • The candidate cache step evicts its own stale caches (unused for 24 hours)
    instead of failing at the 8 GiB cache ceiling.

Runtime

The Node runtime is rebuilt with the host-bridge change. Only the host bridge
object (node-async.cpp.o) differs from 0.3.2's runtime. The edge runtime is
rebuilt on it (lean-4.35.0-edge-v4). See docs/DECISIONS.md (2026-10-27).