Releases: MiguelRegueiro/anitrack-cli
Releases · MiguelRegueiro/anitrack-cli
v0.1.7
Changed
- Displayed
Last Seentimestamps now render in the user's local timezone while DB storage remains UTC. anitrack listdisplays local time with UTC offset; TUI displays compact local time without offset.- Refreshed the README TUI screenshot (
screenshots/anitrack-tui.png). - Clarified platform support policy in README (Linux supported, macOS CI-tested with dependency caveats, Windows experimental).
- Refined README information architecture for end users, with expanded usage/runtime behavior moved into collapsible README sections.
- Refactored large runtime modules into focused submodules (
src/app/tracking/andsrc/app/tui/) to improve maintainability and reviewability. - Improved diagnostics for episode metadata and show search lookups so external/API failures produce explicit warnings instead of silent
Nonefallbacks. - Replaced metadata/search
curlsubprocess calls with native HTTP requests usingureq, preserving retry/timeout behavior while improving portability. - Refined HTTP retry behavior to retry only transient failures (transport,
408,429, and5xx) and avoid retrying hard client errors like400/404. - TUI Selected panel now surfaces metadata lookup warnings for better runtime debuggability.
- Improved playback failure messaging in CLI/TUI to include actionable
ani-cliexit details (including a network/interruption hint for common failure exits). - Hardened SQLite migrations with
PRAGMA user_versionand explicit forward-only schema steps for safer upgrades across releases. - Added
CONTRIBUTING.mdwith development workflow, forward-only DB migration rules (SCHEMA_VERSION+ migration step pattern), and release process guidance. - Expanded CI integration-harness coverage to
windows-latestin addition to Linux/macOS. - Updated Windows platform status to experimental runtime support with integration-harness CI coverage.
v0.1.6
Added
- Added CI dependency-audit enforcement with
cargo audit --deny unsound. - Added regression tests for temp history directory cleanup and parser edge cases (escaped titles and malformed payload handling).
- Added support for overriding the
ani-clibinary path viaANI_TRACK_ANI_CLI_BIN(useful for integration testing and custom installs). - Added an initial integration test harness with fake
ani-clisubprocess coverage forstart,next,replay,previous, andselectsuccess/failure/no-op flows. - Added a dedicated Linux CI integration job (
cargo test --locked integration_) for harness scenarios. - Added a dedicated macOS CI integration job (
cargo test --locked integration_) for harness scenarios.
Changed
- Upgraded terminal UI stack to
ratatui 0.30.0and alignedcrosstermusage to the current backend path. - Constrained
ratatuifeatures tocrosstermonly, reducing unnecessary dependency surface. - Documented explicit runtime requirements in README (
ani-cli,curl, optional Linuxjournalctlenhancement). - Replaced ad-hoc API response string scanning with structured
serde_jsondecoding for search results and episode metadata. - Added lightweight retry policy to metadata/search
curlcalls to reduce transient network failures.
Fixed
- Fixed potential temp history directory leaks by introducing scoped temp-dir cleanup guards.
- Fixed Unix terminal/signal restoration edge cases by using scoped signal and foreground-terminal guards across interactive subprocess execution.
- Improved JSON string unescaping behavior in search-result parsing (including escaped Unicode/control sequences) for more robust API response handling.
- Improved SQLite runtime robustness by setting a connection
busy_timeoutand attempting WAL mode on database open. - Improved interactive subprocess handling in non-TTY contexts by falling back to plain process status execution when no controlling terminal is available.
v0.1.5
Added
- Added replay regression coverage for first-episode fallback behavior, including explicit planning tests that verify deterministic replay flow for episode
0. - Added a required manual smoke-test checklist to release docs covering
start,next,replay(including episode0), TUIPREVIOUSedge cases, and TUISELECT.
Changed
- Clarified README behavior notes:
journalctllog fallback is Linux-only, and non-Linux systems rely on history-based detection. - Refactored replay execution into an explicit replay-plan step to keep fallback behavior deterministic and easier to test.
Fixed
- Fixed replay for episode
0/ first-entry fallback so AniTrack resolves the tracked show (-Swhen available) instead of dropping into ambiguous ani-cli show selection.
v0.1.4
Added
- Added
PreviousandSelectactions to the TUI action bar, with left/right navigation and Enter execution. - Added tracked-show episode selection support in TUI (
Select) so ani-cli opens episode selection for the currently selected show.
Changed
- Refactored the monolithic
src/app.rsinto focused modules undersrc/app/(mod,tui,tracking,episode,tests) to improve maintainability and reduce coupling. - Improved TUI responsiveness by moving episode-list metadata fetches to a background worker and showing loading state in the Selected panel.
- Improved release workflow safety and reliability:
- added workflow concurrency control for tag releases
- validated
Cargo.toml/Cargo.lockversion alignment - required matching
CHANGELOG.mdversion sections - generated GitHub Release notes from changelog content
- gated crates.io publishing on successful validate/build/release jobs
- Expanded CI checks from Linux-only to an OS matrix (
ubuntu-latest,macos-latest,windows-latest). - Limited
journalctllog-fallback probing to Linux targets; non-Linux targets now skip that path cleanly.
Fixed
- Fixed TUI
Selectflow to target episode selection for the current tracked show instead of falling back to generic show search. - Fixed
Previousepisode handling across edge cases (0, decimal labels like15.5, and special numbering) by using resolved episode lists when available and safer numeric fallback behavior. - Fixed inconsistent
Previousno-op UX by normalizing backendno previous episode availableerrors to the sameNo More Episodesinfo popup. - Fixed ani-cli log-key normalization for titles with missing space before trailing episode-count parentheses (for example
Naruto(220 episodes)).
v0.1.3
Added
- GitHub Actions CI workflow (
fmt,clippy,test) on pushes and pull requests. - GitHub Actions release workflow for tagged releases, including:
- Linux x86_64 tarball + SHA256 artifact generation
- GitHub Release publishing
- crates.io publish via OIDC trusted publishing
- AUR update values in workflow summary
- TUI screenshot asset referenced in the README.
Changed
- Improved release workflow validation to keep tag,
Cargo.toml, andCargo.lockversions aligned. - Aligned codebase with stricter CI checks (
rustfmtand clippy compliance). - Ignored generated checksum sidecar files in
.gitignore.
AniTrack v0.1.2
Fixes
- Fixed anitrack list to display human-readable LAST SEEN timestamps (YYYY-MM-DD HH:MM) instead of raw RFC3339 values.
- Unified timestamp display behavior between TUI views and CLI list output.
Documentation
- Reworked installation docs to clearly separate:
- Arch Linux AUR (anitrack-bin recommended, anitrack source-build option)
- crates.io install flow
- Clarified dependency behavior:
- AUR packages auto-install ani-cli
- cargo install anitrack does not install ani-cli
- Added Arch troubleshooting guidance (anitrack-bin fallback when source build fails).
- Added uninstall commands for AUR and crates.io installs.
- Added TUI screenshot reference support in README.
Notes for Arch users
- anitrack-bin is recommended for fastest install and to avoid local Rust build issues.
- anitrack remains available for source-based installs.
AniTrack v0.1.1
Patch release on top of v0.1.0 focused on publish readiness and UX polish.
What changed
- Published AniTrack on crates.io.
- Added package metadata for distribution (
description,repository,homepage,keywords,categories). - Added explicit GPL-3.0-or-later licensing files/metadata.
- Improved TUI timestamp readability for
Last Seen. - Refined README for published usage:
- crates.io install/upgrade instructions
- clearer quick start
- cleaner separation between normal usage and source/development usage
Install
cargo install anitrackUpgrade
cargo install anitrack --forceAniTrack v0.1.0 — Stable TUI Tracking & Replay
Overview
This is the first stable release of AniTrack focused on reliability in real-world ani-cli flows, especially around TUI search, replay behavior, and non-linear episode numbering.
Highlights
- Fixed TUI search sync for difficult cases such as:
- unseen show + episode
0 - decimal episodes (for example
13.5)
- unseen show + episode
- Prevented stale history entries from being reinserted into the DB after delete actions.
- Improved replay behavior to avoid unexpected search-selection UX and make replay flow more deterministic.
TUI Improvements
- Progress now uses episode position (ordinal) when available, so shows with
0/13.5display correctly. - Right-side episode text now matches progress logic.
- Added “No More Episodes” modal when pressing
Nexton the last available episode. - Polished modal styling/layout for:
- delete confirmation
- last-episode notice
Sync & Parsing Reliability
- More robust history change detection.
- Added fallback matching via recent
ani-clilogs when history content is unchanged but a watch action occurred. - Supports both history line formats:
- tab-separated:
episode<TAB>id<TAB>title - space-separated:
episode id title...
- tab-separated:
Quality
- Expanded automated coverage for sync, replay, ordinal progress, and edge cases (
0,13.5, unchanged history scenarios).
License
- Project is now explicitly licensed as GPL-3.0-or-later.