# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.1.9](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.8...v0.1.9) - 2026-04-23
### Added
- *(viz)* Add id selector
- *(vcf)* enable csv output, some small buxfixes to make that happen
- *(viz)* add svg visualization subcommand
- *(csv)* output MI-string and alignment details
### Fixed
- clippy
- *(build)* update rust to 1.88 (needed by lib_tsshow)
- *(deps)* use crates.io version of tsalign libs
### Other
- update reads and vcf pipelines to use new alignment types
- extract alignment operations into dedicated module
## [0.1.8](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.7...v0.1.8) - 2026-03-25
### Added
- use new cluster density also in \'reads\' mode
- *(vcf)* expose clustering settings, add density parameter
### Fixed
- apply custom costs to tsalign (lost during refactor)
### Other
- write up some basic functionality
## [0.1.7](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.6...v0.1.7) - 2026-03-19
### Fixed
- test (again...)
- use characters M and X in vcf output cigar strings
- fix a test failure that expected M instead of = in cigar string
### Other
- update lib_tsalign to version 1
## [0.1.6](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.5...v0.1.6) - 2026-03-10
### Added
- add cram support
- add database feature to store known alignment cases
- in-memory deduplication of alignments
- show running alignments in progress bar
### Fixed
- buffer db writes, refactor counters
- Handle matches (eq or diff) properly in reads mode
- simplify dependencies
- some test coverage
- reduce tokio features
## [0.1.5](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.4...v0.1.5) - 2026-02-27
### Added
- parameter for buffer size, smaller tweaks
- rewrite many methods to async
- basic setup for tokio
- implement timeout for worker
- properly limit memory usage per alignment
- more info in log messages
- describe subcommands
- update to latest lib_tsalign with serde support
### Fixed
- lots of clippy fixes about number conversions, some of which have caused issues crashed
- differentiate between non-zero exit and signal termination
- Use subprocesses for the aligner to fail gracefully
## [0.1.4](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.3...v0.1.4) - 2026-02-18
### Added
- Refactor plumbing code to allow a selection of the aligner
- implement DP-based Four-Point-Aligner
- add --min-quality to require minimum quality for cluster bases
- *(vcf)* add command to output header
- some progress bars and less memory usage
### Fixed
- indexing bug in record creation, allow for full-range TSes in FPA
- clippy
- small changes to --help
- update test method to use new `augment_header` method
- make memory limit arg global so that it can be used at any point
- don't exclude reference parts with lowercase, even with --soft-mask
- use capped allocator for memory limit
## [0.1.3](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.2...v0.1.3) - 2026-02-02
### Added
- Add counters for alignments to reads mode
- add counters and runtime to reads mode (and refactor)
### Fixed
- use bounded channels to avoid uncontrolled memory growth
## [0.1.2](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.1...v0.1.2) - 2026-01-30
### Added
- unify the alignment tpool stuff, report alignment cost without TS for reads mode
### Fixed
- coordinate fix in soft mask feature
- update readme to use published twitcher version
## [0.1.1](https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.0...v0.1.1) - 2026-01-30
### Other
- Add some metadata to Cargo.toml