v0.3.12
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-kitexport: 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