Skip to content

Release Vale 3.26.0 - #589

Closed
github-actions[bot] wants to merge 1 commit into
mainfrom
vendor/vale/upgrade
Closed

github-actions[bot] wants to merge 1 commit into
mainfrom
vendor/vale/upgrade

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

The @taskless/vale-* packages are published ahead of what
@taskless/cli pins.

This moves all six pins from 3.24.0-20261005234241 to
3.26.0-20261102164455 — Vale 3.26.0 — and regenerates
pnpm-lock.yaml. The pins move together on purpose: the platform
packages are selected by optional dependency, so a straggler left at
the old version is a different Vale on one platform than on the others.

It also moves VALE_VERSION in capabilities.ts to
3.26.0 and regenerates src/generated/vale-vocabulary.ts
from the new binary, and the workflow ran
engine-version-consistency against the result before pushing. What
this does not carry is judgment: if the contract suites below
report a failure, Vale 3.26.0 changed a measured behaviour,
and that edit, the update ledger, any migration, and the release
note's prose belong in a child pull request. So does a row for each
format reader listed below.

This is the half that reaches a user. Republishing the platform
packages changes nobody's install, because the CLI pins each one
exactly; merging this is what ships the new Vale.

This pull request rolls: if another set is published before it merges,
the branch, title, and body are rewritten to the newer version rather
than a second pull request being opened. Push a commit to the branch
and that stops — the workflow will not force-push over a commit it did
not write.

Measured against Vale 3.26.0

Compared with 3.24.0, which is what main pins. Validate on a pull request this workflow opens waits for a maintainer to approve it, so this section is the check that ran.

Contract suites

All 221 tests in vale-schema-contract and vale-vendor-contract pass against the new binary. No recorded verdict changed.

Format readers upstream added

  • internal/lint/built.go
  • internal/lint/code_js.go
  • internal/lint/code_ts.go
  • internal/lint/native_stubs_js.go

Each can route an extension that VALE_FORMAT_TIERS in capabilities.ts has no row for, and an unlisted extension is never probed. Find where internal/core/format.go sends it, probe the extension against the new binary, and add a row. A reader that needs an external converter is the dangerous case: the missing row becomes a crash that aborts every Vale rule in the run. (diff)


Upstream release notes — 3.26.0

https://github.com/vale-cli/vale/releases/tag/v3.26.0

Vale in the browser

v3.26.0 is the first release that ships Vale as a WebAssembly module. It's the same engine as the CLI, built for a JavaScript host: a browser, a browser extension, or Node. It runs with no server and no filesystem.

Each release now includes vale_3.26.0_wasm.tar.gz, which holds vale.wasm and the wasm_exec.js loader that matches it. The host passes the .vale.ini as a string and loads styles, vocabularies, and packages into an in-memory filesystem. Vale then lints:

  • Markdown, MDX, MyST, Quarto, Org, HTML, and plain text, natively.
  • YAML, JSON, and TOML, through Views.
  • AsciiDoc, XML, and any other converted format whose HTML the host produces with a JavaScript converter. ValeConverterOptions returns the arguments that make that HTML match what the CLI would produce.

ValeSuggest resolves an alert's fixes, and ValeResolveConfig reports which rules each section turns on, turns off, or changes the level of. Source-code linting needs tree-sitter, which uses CGo, so it stays CLI-only.

See the WebAssembly docs for the full API.

Thank you, FLOSS/fund

Vale received a $10,000 grant from FLOSS/fund to support Vale's expansion to the web. Grants like this keep Vale free and independent. Thank you to FLOSS/fund for supporting open-source infrastructure.

Changelog

  • e2d4374b fix: Create bin/ before copying the wasm loader into it
  • 0897e7f2 fix: A sentence or title capitalization rule no longer slows with each exception
  • 8b9bfb97 feat: Resolve a configuration in the browser build
  • bd1c0ba3 fix: An ignored class covers an image's alt text
  • 305eba39 feat: string-config and in-memory entry points
  • 8e5de35a feat: A Config reads its assets through a filesystem of its own
  • 9eeba2d2 fix: Run a Transform stylesheet with no network, writes, or directories
  • 0f91a651 feat: Lint a converted format in the browser from the host's HTML
  • cb27bdeb feat: Build Vale for the browser

@github-actions
github-actions Bot force-pushed the vendor/vale/upgrade branch from 11fb925 to 7ea174d Compare October 30, 2026 07:57
@github-actions github-actions Bot changed the title Release Vale 3.25.1 Release Vale 3.26.0 Nov 3, 2026
@github-actions
github-actions Bot force-pushed the vendor/vale/upgrade branch from 7ea174d to 7dbeca7 Compare November 3, 2026 07:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants