# Changelog
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/).
## [0.5.2] - 2026-02-27
### Fixed
- Made `erlex` a required (non-optional) dependency so that Erlang-to-Elixir
type conversion works in consuming projects. Previously erlex was optional,
meaning projects using assay would see raw Erlang notation (e.g.
`'Elixir.String':t()`) in Success typing and Diff sections unless they
explicitly added erlex to their own deps.
- Code snippet line numbers now render inside the `│` border with a single
gutter (e.g. `│ 44 code` instead of `44 │ code`).
## [0.5.1] - 2026-02-26
### Fixed
- GitHub annotations now display the rich formatted body (code snippets, diffs,
suggestions) instead of the raw Dialyzer message. The formatted body is encoded
in the `::warning` message parameter so GitHub renders it in the annotation popup.
## [0.5.0] - 2026-02-26
### Improved
- `--format github` now emits a rich elixir-style text body (code snippets,
context lines) after the `::warning` annotation line, making CI output
more readable without requiring a separate `--format elixir` pass.
### Fixed
- Umbrella project path resolution: Dialyzer reports paths relative to each
umbrella app (e.g. `lib/api/admin/chat_context.ex`), which failed to resolve
when expanded against the project root. Assay now searches `Mix.Project.apps_paths()`
to find the correct file under umbrella app directories.
## [0.4.0] - 2026-02-24
### Added
- `--no-compile` flag for `mix assay` to skip compilation before running
Dialyzer. Useful in CI pipelines where the project is already compiled.
Follows the convention used by `mix test`, `mix credo`, and Dialyxir.
- Clear error messages when `--no-compile` is used with long-running modes
(`mix assay.watch`, `mix assay.daemon`, `mix assay.mcp`) that require
recompilation on each analysis cycle.
## [0.3.0] - 2026-01-07
### Fixed
- Several bug and documentation fixes.
## [0.2.0] - 2026-01-07
### Added
- JSON-RPC daemon (`mix assay.daemon`) for programmatic access.
- MCP server (`mix assay.mcp`) for editor/LSP/agent integrations.
- Igniter-powered installer (`mix assay.install`).
- Watch mode (`mix assay.watch`) with debounced re-analysis.
- Multiple output formats: `text`, `elixir`, `github`, `sarif`, `json`, `llm`.
- `dialyzer_ignore.exs` filtering.
- Umbrella project support.
- CI workflow generation (GitHub Actions, GitLab CI).
## [0.1.0] - 2026-01-06
### Added
- Initial release with incremental Dialyzer support.
- Basic CLI via `mix assay`.
[0.5.2]: https://github.com/Ch4s3/assay/compare/v0.5.1...v0.5.2
[0.5.1]: https://github.com/Ch4s3/assay/compare/v0.5.0...v0.5.1
[0.5.0]: https://github.com/Ch4s3/assay/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/Ch4s3/assay/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/Ch4s3/assay/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/Ch4s3/assay/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/Ch4s3/assay/releases/tag/v0.1.0