Skip to content

0.5.0 - 2026-08-27

Latest

Choose a tag to compare

@github-actions github-actions released this 27 Aug 21:40
a2c6a02

Release Notes

Lint's output pointed at advice that did not exist: every per-rule code it
printed answered "Unknown error code" when passed to lash explain. This
release closes that loop, stops W_INDEX_ORPHAN from reporting files the
root index plainly references, and stops lash lint from crashing outright
when a long note carries a multi-byte character at the truncation point.

Added

  • lash explain now knows every code lash lint emits. The per-rule syntax,
    semantic and cross-file codes (E_SYNTAX_*, E_SEM_*, E_NOTE_*,
    E_LINK_*, W_INDEX_ORPHAN, and the W_/I_ variants) previously answered
    "Unknown error code", so following the advice in lint's own output was a dead
    end. Warnings and info-level codes are also labelled as such rather than
    introduced as errors.
  • Lint's summary names one of the codes it just reported alongside the
    lash explain invocation for it.

Fixed

  • lash lint no longer panics while rendering W_NOTE_TOO_LONG. The
    warning's snippet truncated the note by byte index, so a multi-byte
    character straddling the cut point — an em dash, an accented letter, a CJK
    character — crashed the whole run with exit 101 instead of printing a
    warning. Truncation now lands on a character boundary, here and in every
    other place that shortens user text for display (#70, #71).

  • W_INDEX_ORPHAN no longer fires for files the root index does reference. A
    link destination ended at the last ) on the line, so an entry annotated
    with a parenthetical — - [Alpha](tasks/alpha.md) (superseded) — recorded a
    path matching no file, and only the first link on a line was read at all, so
    two links on one line reported both files as orphans. Destinations now end at
    the parenthesis that closes their own link, parentheses inside a path are
    balanced, angle-bracketed and titled destinations are understood, and every
    link on a line is collected (#60).

  • .lashignore is reachable from where users hit it. The W_INDEX_ORPHAN
    warning names it in the message text, lash lint --help and lash --help
    describe file discovery, and the README, user guide and error-code reference
    document it. The mechanism already worked; nothing pointed at it (#58).

  • lash explain --list no longer drops codes whose prefix matched no category.
    Every W_ and I_ code was silently missing from the listing.

Install lash 0.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/fixture-dev/lash/releases/download/v0.5.0/lash-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/fixture-dev/lash/releases/download/v0.5.0/lash-installer.ps1 | iex"

Install prebuilt binaries via Homebrew

brew install fixture-dev/tap/lash

Download lash 0.5.0

File Platform Checksum
lash-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
lash-x86_64-apple-darwin.tar.xz Intel macOS checksum
lash-x86_64-pc-windows-msvc.zip x64 Windows checksum
lash-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
lash-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum