Current section
Files
Jump to
Current section
Files
mastomation
CHANGELOG.md
CHANGELOG.md
# Changelog
All notable changes to this project are documented in this file.
This project follows Semantic Versioning.
## [Unreleased]
### Added
- `DEVELOPMENT.md` with accurate test commands (including `--exclude cassette` / `--only cassette`), ReqCassette notes, logger/capture guidance, and environment/configuration documentation aligned with `Mastomation`.
### Changed
- README: new **Configuration** section documenting `MASTODON_*` / `XDG_DATA_HOME`, runtime resolution via `lib/mastomation.ex`, Mix `config/runtime.exs`, and CLI overrides; development section clarified for default `mix test` behavior.
- `config/config.exs` and `config/runtime.exs` comments now point to `lib/mastomation.ex` (actual module path).
## [0.1.4] - 2026-03-25
### Added
- Comprehensive test suite for all major modules (client, threads, delete, notes)
- 36 new tests for HTTP client header parsing and rate limiting logic
- 36 additional thread operation tests covering URL parsing, markdown generation, and thread ordering
- 18 new delete operation tests covering waste filtering and status ordering
### Changed
- Refactored `header_value_from_map/3` in `lib/client.ex` to reduce cyclomatic complexity from 10 to 9
- Reduced nesting depth from 4 to 2 levels in client header parsing logic
- Made helper functions public with `@doc false` for better testability
- Bumped version from 0.1.3 to 0.1.4
### Removed
- Unused `exvcr` dependency (~0.17.1) and its transitive dependencies (`exjsx`, `jsx`, `meck`)
### Fixed
- All Credo code quality issues resolved (2 issues → 0)
- Consolidated duplicate test files for better organization
- Regenerated `mix.lock` with latest dependency versions
### Security
- No security changes in this release
## [0.1.3] - 2026-03-24
### Added
- `logo.svg` project logo and `assets/logo.svg` copy for packaging.
- README logo image at the top; ExDoc `assets` configuration so the image appears in generated HTML docs.
- `assets` included in the Hex package file list so the README renders correctly on hex.pm.
## [0.1.2] - 2026-03-24
### Changed
- README installation docs now include the Hex escript install path (`mix escript.install hex mastomation`).
- Fish completion docs now clarify manual installation paths and remove outdated Nix installer references.
## [0.1.1] - 2026-03-24
### Added
- New `notes` feature set with `notes download` and `notes search` CLI subcommands.
- Download of private profile notes for followers/following via account relationships (`note` field).
- Local notes persistence under XDG data path with optional custom `--path`.
- Search output now includes clickable profile URLs built from `MASTODON_INSTANCE_URL`.
- Optional DECK link mode via `MASTODON_UI=DECK` (`/deck/@handle` links).
- New tests for notes behaviors and DECK URL rendering.
### Changed
- CLI command model refined with explicit subcommands (`thread see/export`, `delete all/thread`, `notes download/search`).
- `mastomation delete` now shows help by default instead of running delete-all.
- Fish completions updated for nested subcommands and notes commands.
- README expanded for notes usage and broader project scope.
- ExDoc configured to include README/CHANGELOG/SEMVER/LICENSE and use README as docs entry page.
### Fixed
- Notes pagination loop guard added to prevent repeated page cycling.
- Notes download now provides continuous progress feedback while fetching pages/batches.
- Added `ex_doc` dependency required by `mix hex.publish` docs step.
### Added
- Default backup-before-delete behavior with `--no-backup` opt-out.
- Delete checkpoint persistence for resume support.
- Delete keyword filtering via repeatable `--keyword`.
- Override options for instance URL and access token (`--override-instance-url`, `--override-access-token`).
- Thread export media improvements (images/gif/video/docs with markdown links and type labels).
- Optional markdown frontmatter support for thread export and delete backups.
- One-file-per-status markdown backups for full delete-all runs.
- Thread markdown now appends the original source reference.
- Shell completion scripts for bash, fish, and zsh.
- Centralized HTTP client module for API requests.
- Rate-limit-aware delete retry with backoff using Mastodon headers.
- Structured telemetry events for HTTP, delete, and thread-export flows.
- Parser end-to-end tests for subcommand/help behavior.
- Release GitHub Actions workflow for tag/manual builds.
- Semantic versioning policy document (`SEMVER.md`).
### Changed
- CLI defaults to help when run without subcommand.
- Deletion is explicit via `mastomation delete`.
- Thread export now defaults to `./export` and creates it automatically.
- Thread-source delete order now removes latest replies first.
- Thread-source delete includes the source toot when authored by the same account.
- Thread-source delete delay is capped at 2 seconds.