# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased] - ReleaseDate
## [0.5.2] - 2026-03-31
- Truncate device tags for long paths because QEMU limits those
## [0.5.1] - 2026-03-30
- Change vmid and memory arguments to be optional
## [0.5.0] - 2026-03-29
- Allow limiting VM memory usage
- Make sure that `--rm` is respected when calling `stop` on a detached VM
- Fix a crash that would occasionally occur when stdout wasn't ready for flushing
- Add `-a/--all` flag to `ps` and only show running VMs by default
- Limit output of `ps` to a single line per row
- Get rid of `whoami` crate since we can do the same with `nix` which we already have
## [0.4.0] - 2026-03-26
- Add `ready` subcommand (with `--wait` flag to block until ready) to check if a VM is ready to accept SSH connections
- Add `prune` subcommand to delete all overlay images from the cache
This can be useful when you've nuked your `.local/state/vmexec` dir for some reason
- Add VM config file in `vms/<vm id>/vm.json` and stop writing separate files for QEMU and SSH run data
- Move state directory from `~/.local/share/vmexec/` to `~/.local/state/vmexec/`
- Make VM run state handling more robust
- Rename `runs` to `vms`, this terminology should hopefully be more obvious ([!12](https://gitlab.archlinux.org/archlinux/vmexec/-/merge_requests/12))
- Make sure `unshare` call isn't influenced by system locale ([#12](https://gitlab.archlinux.org/archlinux/vmexec/-/work_items/12))
- Fix deadlock in `virtiofsd` when `RUST_LOG` is set caused by pipe filling up ([!13](https://gitlab.archlinux.org/archlinux/vmexec/-/merge_requests/13))
## [0.3.0] - 2026-02-21
- Add `-w/--workdir` to `exec` and `run` to allow setting working dir
## [0.2.0] - 2025-06-04
- Pass along exit code from process inside VM
- Fix missing stderr output
- Add `--detach` to `run` to enable VM backgrounding
- Add `stop` subcommand to stop running VMs by id
- Add `exec` subcommand to run a command in an already running VM
- Add `clean` subcommand to clean up old run dirs
- Add `--rm` to `run` to optionally clean up run dirs after exiting
- Add `--disable-kvm` to `run` to allow for disabling KVM (might be useful in CI)
## [0.1.5] - 2025-05-21
- Add `ps` subcommand to list active VMs
- Fix race condition when starting VMs quickly
- Fix `--tty` and `--interactive` behavior
## [0.1.4] - 2025-03-21
- Remove `--image` and `--os` flags as this is now merged into a new positional argument
- Add `-i/--interactive` and `-t/-tty` flags for more control over the terminal
## [0.1.3] - 2025-03-19
- Add dead run dir reaping
- Add locking when pulling images
## [0.1.2] - 2025-03-18
- Add some flags to `virtiofsd` call to improve performance and decrease guest memory usage
- Fix multiple `-v` options not working due to incorrect fstab getting generated
- Add virtio-pmem device support with `--pmem`
## [0.1.1] - 2025-03-13
- Fix NvVars file getting created in mounted dirs
## [0.1.0] - 2025-03-13
- First somewhat working version
[Unreleased]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.5.2...HEAD
[0.5.2]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.5.1...v0.5.2
[0.5.1]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.5.0...v0.5.1
[0.5.0]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.4.0...v0.5.0
[0.4.0]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.3.0...v0.4.0
[0.3.0]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.2.0...v0.3.0
[0.2.0]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.1.5...v0.2.0
[0.1.5]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.1.4...v0.1.5
[0.1.4]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.1.3...v0.1.4
[0.1.3]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.1.2...v0.1.3
[0.1.2]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.1.1...v0.1.2
[0.1.1]: https://gitlab.archlinux.org/archlinux/vmexec/-/compare/v0.1.0...v0.1.1