Releases: elixir-vibe/program_facts
Releases · elixir-vibe/program_facts
ProgramFacts 0.2.1
v0.2.0
Changelog
0.2.0 - 2026-05-01
Added
- Typed JSON/export boundary with
%ProgramFacts.Manifest{}. - Typed manifest fact payloads under
%ProgramFacts.Fact.*{}for function ids, call edges, effects, data-flow refs, data flows, branches, branch calls, and source locations. - Manifest decoding with
ProgramFacts.Manifest.decode!/1andProgramFacts.Manifest.from_map!/1. - Corpus failure metadata with
%ProgramFacts.Corpus.Failure{}and JSON decoding helpers. - Fact conversion contracts with
ProgramFacts.Facts.normalize/1andProgramFacts.Facts.to_manifest/1. - Feedback search scoring modes backed by graph metrics.
- Shrinking support for options, transforms, isolated modules, and failure promotion metadata.
- Analyzer adapter, differential comparison, and metamorphic comparison APIs.
- Optional
libgraphhelpers for call/module/architecture graph validation. - Additional generator policies for data flow, branches, effects, OTP, richer syntax, and architecture fixtures.
- GitHub Actions CI plus strict local
mix cichecks including Credo, ExDNA, Dialyzer, and ExSlop.
Changed
- ProgramFacts now targets
0.2.0and treats manifests as typed structs at the JSON boundary. ProgramFacts.to_map/1returns atom-keyed Elixir data;ProgramFacts.to_json!/1delegates JSON key encoding to Elixir's JSON protocol.- Corpus manifest loaders now return
%ProgramFacts.Manifest{}instead of raw decoded JSON maps. - Public ExUnit helpers now fail with
ExUnit.AssertionErrorfor better test output. - Core
%ProgramFacts.Facts{}remains tuple/map-compatible for generator, transform, shrinker, and analyzer assertions while manifest facts are typed.
Fixed
- Avoided mixed atom/string-key metadata contracts in failure manifests.
- Tightened generated project path safety against traversal and absolute paths.
- Updated transform metadata/facts so branch-changing transforms no longer claim branch preservation.
- Fixed StreamData option support and zero-iteration search behavior.
program_facts v0.1.0
Initial release of ProgramFacts: generated Elixir programs with known structural facts for analyzer testing.