Skip to content

v0.3.12

Choose a tag to compare

@github-actions github-actions released this 22 Jul 11:23
Immutable release. Only release title and notes can be modified.

Weavatrix 0.3.12

0.3.12 makes the read-only core the provably-pure base of a layered stack. The
core stays exactly what it was for its users — the same 34 offline analysis tools
— but it now exposes a small read-only analysis surface for the packages built on
top of it, and machine gates prove it can neither modify code nor reach anything
external. Rust cross-crate call resolution and a query_graph seeding fix round
out the release.

The read-only base of the stack

Weavatrix now anchors a stack of growing responsibility:
weavatrix-online ⊃ weavatrix-refactor ⊃ weavatrix. You install one package and
get everything below it. This release adds only what the base owes the layers
above; it registers no new tools and changes no existing tool.

  • New weavatrix/analysis-kit export: a narrow, read-only surface (graph
    identity, cycle detection, architecture verification, the bundled tree-sitter
    grammars, the read-only TypeScript language-server client, dead-code signals)
    that upper-layer packages compose. Nothing here writes, applies, or describes
    an edit.
  • Two release gates make the base's guarantees machine-checked, alongside the
    existing ADR 0001 no-network gate: the core source contains no edit-plan,
    applier, or refactoring-builder marker
    , and no literal URL at all. A
    vulnerability finding references the advisory id rather than an external link;
    the URL-matching malware heuristics are matchers over scanned code, not links
    the core follows. Installing the base alone can neither modify your code nor
    reach the network.

Rust cross-crate call resolution

Rust call edges now resolve across crates, inline-test coverage is reported
honestly, and same-crate call noise is reduced — cross-crate references edges
land where a caller reaches a definition in another crate.

query_graph seeding

A query_graph question that reduced entirely to stop words (a bare
architecture), or inferred a language absent from the repository (contract
inferring Solidity where there are no .sol files), previously returned a
misleading "No nodes matched". Both now fall back only when they would otherwise
return nothing: the stop filter relaxes when every token is a stop word, and a
requested language that matches zero nodes is dropped. Queries that already
worked are unchanged.

Full Changelog: v0.3.11...v0.3.12