Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 08:10
· 243 commits to main since this release
aea733b

Changed

  • The program — CLI, extractor, HTTP server, and static exporter — is now
    a single native Rust binary instead of a bun-run TypeScript tree. The
    JSON data contract is unchanged and 0.4.x data directories keep
    working: extraction output was verified field-for-field against the
    previous implementation on real flakes (this repo, a 57-input dotfiles
    flake, and a full 15,436-option NixOS configuration). The one visible
    effect is a new rs- extractor fingerprint, so existing cached blobs
    re-extract once on next access.
  • The npm package now ships per-platform native binaries — Linux and
    macOS, x64 and arm64 — installed via optionalDependencies and
    resolved by a Node >= 20 launcher that also points the binary at the
    SPA bundle shipped in the main package. bun is no longer a runtime
    requirement: npx @kriswill/flake-explorer works as well as bunx.
    (nix on PATH is still required at runtime.)

Added

  • The flake package (nix run) installs the native binary together with
    the SPA bundle, so the explorer works out of the box without a
    JavaScript runtime on the host.
  • A cargo test suite, including integration tests that drive real nix
    against fixture flakes (extraction, serve routes, degradation paths,
    static export), with its own coverage gate in CI alongside the
    existing SPA suite's.

Fixed

  • Static exports preserve explicit null option values instead of
    silently dropping them.
  • Options whose defaultText is a non-string scalar (nixpkgs'
    bluesky-pds sets false) no longer derail extraction — scalars are
    rendered as their literal text.
  • Component tests no longer crash order-dependently after the serve
    suite: the serve tests now swap in only Bun's native network globals
    for their duration instead of replacing the whole happy-dom realm,
    which invalidated Svelte's cached document state (#74).

Removed

  • The TypeScript implementation of the program (CLI, extractor, server,
    exporter) — the Svelte SPA and its bun toolchain remain.
  • web-tree-sitter and its WASM grammars: syntax highlighting is native
    tree-sitter with token output verified identical.