Skip to content

Releases: MiguelRegueiro/anitrack-cli

v0.1.7

01 Mar 14:32

Choose a tag to compare

Changed

  • Displayed Last Seen timestamps now render in the user's local timezone while DB storage remains UTC.
  • anitrack list displays 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/ and src/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 None fallbacks.
  • Replaced metadata/search curl subprocess calls with native HTTP requests using ureq, preserving retry/timeout behavior while improving portability.
  • Refined HTTP retry behavior to retry only transient failures (transport, 408, 429, and 5xx) and avoid retrying hard client errors like 400/404.
  • TUI Selected panel now surfaces metadata lookup warnings for better runtime debuggability.
  • Improved playback failure messaging in CLI/TUI to include actionable ani-cli exit details (including a network/interruption hint for common failure exits).
  • Hardened SQLite migrations with PRAGMA user_version and explicit forward-only schema steps for safer upgrades across releases.
  • Added CONTRIBUTING.md with development workflow, forward-only DB migration rules (SCHEMA_VERSION + migration step pattern), and release process guidance.
  • Expanded CI integration-harness coverage to windows-latest in addition to Linux/macOS.
  • Updated Windows platform status to experimental runtime support with integration-harness CI coverage.

v0.1.6

27 Feb 21:13

Choose a tag to compare

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-cli binary path via ANI_TRACK_ANI_CLI_BIN (useful for integration testing and custom installs).
  • Added an initial integration test harness with fake ani-cli subprocess coverage for start, next, replay, previous, and select success/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.0 and aligned crossterm usage to the current backend path.
  • Constrained ratatui features to crossterm only, reducing unnecessary dependency surface.
  • Documented explicit runtime requirements in README (ani-cli, curl, optional Linux journalctl enhancement).
  • Replaced ad-hoc API response string scanning with structured serde_json decoding for search results and episode metadata.
  • Added lightweight retry policy to metadata/search curl calls 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_timeout and 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

27 Feb 16:02

Choose a tag to compare

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 episode 0), TUI PREVIOUS edge cases, and TUI SELECT.

Changed

  • Clarified README behavior notes: journalctl log 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 (-S when available) instead of dropping into ambiguous ani-cli show selection.

v0.1.4

27 Feb 15:19

Choose a tag to compare

Added

  • Added Previous and Select actions 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.rs into focused modules under src/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.lock version alignment
    • required matching CHANGELOG.md version 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 journalctl log-fallback probing to Linux targets; non-Linux targets now skip that path cleanly.

Fixed

  • Fixed TUI Select flow to target episode selection for the current tracked show instead of falling back to generic show search.
  • Fixed Previous episode handling across edge cases (0, decimal labels like 15.5, and special numbering) by using resolved episode lists when available and safer numeric fallback behavior.
  • Fixed inconsistent Previous no-op UX by normalizing backend no previous episode available errors to the same No More Episodes info 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

26 Feb 22:17

Choose a tag to compare

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, and Cargo.lock versions aligned.
  • Aligned codebase with stricter CI checks (rustfmt and clippy compliance).
  • Ignored generated checksum sidecar files in .gitignore.

AniTrack v0.1.2

26 Feb 19:44

Choose a tag to compare

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

25 Feb 21:52

Choose a tag to compare

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 anitrack

Upgrade

cargo install anitrack --force

AniTrack v0.1.0 — Stable TUI Tracking & Replay

25 Feb 20:35

Choose a tag to compare

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)
  • 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.5 display correctly.
  • Right-side episode text now matches progress logic.
  • Added “No More Episodes” modal when pressing Next on 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-cli logs 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...

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.