Skip to content

MESH v0.17.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 14:37
· 16 commits to main since this release
8a019ae

MESH v0.17.0 release notes

Prepared 2026-10-24 (not yet published: v0.16.0 is the latest release).

v0.17 lets a host check generated UI while it streams. A model writes MPRX a few tokens at a time; a batch check of half a file reports a syntax error and nothing else, so a wrong prop is invisible until the file ends. A stream session checks what has arrived.

Highlights

  • openSession (@valancex/mesh-compiler) and mesh_compiler::stream. push(chunk) answers with the diagnostics that are new, the ones standing, what is open, and, while no error stands, a checked preview (a template-v1) to draw as a fresh render. close() is exactly check of the whole text. See the streaming manual.
  • A repair that fails closed. The text is cut back to its last complete token and what is open is closed, by the module. Nothing is kept that was cut inside a start tag, an attribute string, an expression or a block header, an open {#each} is withheld until it closes, and a text run grows. A planted mistake is heard within 20 bytes of where it starts (8 of 8 cases), and every prefix of every valid page checks clean.
  • A budget. 50 ms of checker time per push, then the session ends with check-budget-exceeded. The input limits of 0.13 hold in a session.
  • Command annotations. A command in the manifest may say "effect": "read" | "write" | "destructive" and a "title". A host builds a consent prompt from them, never from text a model wrote. They are annotations: nothing about a check, a template or a fingerprint changes.
  • generated/ in @valancex/mesh-conformance: six pages, eight planted mistakes and the digests of every prefix's step; both runtimes give the same digests.

Compatibility

check, compile, checkProgram, compileProgram, render, update, dispatch and every document are unchanged. The manifest accepts two more optional command properties; a manifest without them is read exactly as before. The WebAssembly compiler module gains one export, mesh_stream; the module and the package still have to be the same version.

Release order

MESH 0.17.0 (its nine packages); then VALANCE, whose @valancex/valance/generate builds the profile, the prompt, the correction loop and the consent prompt on the session.

Verification

cargo test --workspace (the law over 100,000 random prefixes and mutations, the prefixes of every page, the planted mistakes, the digests), cargo clippy --all-targets -- -D warnings, cargo fmt --check, RUSTDOCFLAGS="-D warnings" cargo doc, the grammar's parser regenerated with no difference, number_to_text.py --check; the compiler package's tests (the same law and digests through WebAssembly, the budget, the surrogate pair, the limits), the runtime package's (every preview of every page rendered and compared with the final tree, in three states of the data) and the conformance package's. Shown failing: with the withholding of an open {#each} removed, the native digest test, the repair test and the runtime's preview test fail; with a required-prop report added to the early check of a start tag, the false-positive test fails.