All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- chore: bump version to v0.5.6 (7464c07)
- chore(deps): bump base64 from 0.22.1 to 0.23.0 (3b461e7)
- chore(deps): bump libc from 0.2.187 to 0.2.189 (96d7ef3)
- chore(deps): bump serde_json from 1.0.150 to 1.0.151 (ab19a06)
- chore(deps): bump clap from 4.6.2 to 4.6.3 (58cac2d)
- chore(deps): bump libc from 0.2.186 to 0.2.187 (81793fc)
- chore(deps): bump thiserror from 2.0.18 to 2.0.19 (79accd6)
- chore(deps): bump futures from 0.3.32 to 0.3.33 (8b6fc2e)
- chore(deps): bump serde from 1.0.228 to 1.0.229 (96ad805)
- chore(deps): bump anyhow from 1.0.103 to 1.0.104 (a331cd0)
- chore(deps): bump clap from 4.6.1 to 4.6.2 (e141427)
- chore(deps): bump toml from 1.1.2+spec-1.1.0 to 1.1.3+spec-1.1.0 (f758a01)
- chore(deps): bump indicatif from 0.18.5 to 0.18.6 (38a0ae1)
- chore(deps): bump indicatif from 0.18.4 to 0.18.5 (438c865)
- chore(deps): bump anyhow from 1.0.102 to 1.0.103 (07e8646)
- chore(deps): bump actions/checkout from 6 to 7 (6a3bb16)
- chore(deps): bump codecov/codecov-action from 6 to 7 (0a951dd)
- chore(deps): bump reqwest from 0.13.3 to 0.13.4 (ee3e994)
- chore(deps): bump serde_json from 1.0.149 to 1.0.150 (1a8c633)
- docs: add Discord and blog mentions to Support section (5bc553e)
- docs: add general hashtags to share links (c186949)
- docs: add Support section with star and share links to README (13f4495)
- chore(deps): bump clap from 4.5.60 to 4.6.1 (6c3456e)
- chore(deps): bump libloading from 0.8.9 to 0.9.0 (5d3e046)
- chore(deps): bump clap from 4.5.57 to 4.5.60 (6e41c76)
- chore(deps): bump colored from 2.2.0 to 3.1.1 (f3666e2)
- chore(deps): bump tokio from 1.49.0 to 1.50.0 (fe9c919)
- chore(deps): bump steamworks from 0.12.2 to 0.13.1 (2cc3454)
- chore(deps): bump image from 0.25.9 to 0.25.10 (e7b2bbb)
- chore(deps): bump toml from 0.8.23 to 1.1.2+spec-1.1.0 (de695fc)
- chore(deps): bump anyhow from 1.0.100 to 1.0.102 (1b7c549)
- chore(deps): bump reqwest from 0.12.28 to 0.13.3 (9805e23)
- chore(deps): bump libc from 0.2.182 to 0.2.186 (f004595)
- chore(deps): bump futures from 0.3.31 to 0.3.32 (bb11e7b)
- chore(deps): bump indicatif from 0.17.11 to 0.18.4 (4c470c4)
- chore(deps): bump codecov/codecov-action from 4 to 6 (bd734a9)
- chore(deps): bump actions/checkout from 4 to 6 (15cc6b3)
- chore(deps): bump softprops/action-gh-release from 2 to 3 (fd37647)
- chore: add dependabot config and CODEOWNERS (56a05f9)
- chore: remove accidental empty .codex marker file (b17d8a3)
- test: cover demo stats fixture values (c30e25f)
- test: cover null steam level response (62b00b4)
- test: cover envscope xdg cache home drop restore (5777b1a)
- test: cover default cache save empty file (2a1262c)
- test: cover envscope cache home restore isolation (9287554)
- test: cover tls server openssl failure (c1f4354)
- test: cover env api key restore path (d8e6f93)
- test: cover query_cell_size_escape missing tty rows (44c874b)
- test: cover invalid cli timeout values (8f41657)
- test: cover query_cell_size_escape empty response (5cb8d85)
- test: cover query_cell_size escape fallback (d64cada)
- test: cover env credentials and cli option parsing (c22d72a)
- test: cover query_cell_size_escape zero pixel response (5adb0d6)
- test: cover print_image_and_rewind output failure (baa9b4e)
- test: cover rarest achievement narrow width truncation (8cec030)
- test: cover query_cell_size_escape terminal response parsing (17f9803)
- test: cover query_cell_size ioctl pixel dimensions (5727282)
- test: cover fetch_game_achievements malformed JSON (9de7ede)
- test: cover avatar download failure fallback (a5e19ab)
- test: cover request_with_retry empty API error body (c8b8163)
- test: cover fetch_all_game_appids proxy env restoration (140fd1b)
- test: cover recently played parse error context (1ccb358)
- test: cover parse_games_xml malformed tag recovery (7250257)
- test: cover fetch_game_achievements empty list counts (4665e0c)
- test: cover print_sixel short RGBA buffer error (34b9eef)
- test: cover CLI verbose long flag parsing (87786d9)
- test: cover native client empty owned appids (4b39ff7)
- test: cover demo stats profile details (9994a68)
- test: cover fetch_achievement_stats player achievement failure (da62224)
- test: cover fetch_game_achievements global percentage failure (fa7c1bd)
- test: cover fetch_achievement_stats cache miss perfect game (31052e9)
- test: cover fetch_achievement_stats cache miss API fetch (974104e)
- test: cover fetch_game_achievements success response parsing (38ced20)
- test: cover fetch_stats_for_appids success response parsing (4e6405b)
- test: cover fetch_stats success response parsing (3bf652d)
- test: cover fetch_player success response parsing (30430f6)
- test: cover EnvScope ALL_PROXY restoration (5964b3b)
- test: cover EnvScope XDG_CACHE_HOME restoration (2cd2ef9)
- test: cover fetch_web_stats client fetch failure after valid config (00001f8)
- test: cover lock_env poisoned mutex recovery (36f5f70)
- test: cover fetch_stats_for_appids player fetch failure (0280264)
- test: cover fetch_all_game_appids fetch failure (794f913)
- test: cover fetch_stats player fetch failure (5f89bd8)
- test: cover invalid config cli failure before network request (85d2bd8)
- test: cover fetch_optional_details request failure fallbacks (919e083)
- test: cover NativeSteamClient null native handle fallbacks (43b3839)
- test: cover NativeSteamClient try_new null CreateInterface result (9ed05bc)
- test: cover load_config_file default config path creation (054099e)
- test: cover request_with_retry default ApiError body when response read fails (e616ae0)
- test: cover cli config-path and demo flags (0c7ce67)
- ci: collect coverage with cargo-llvm-cov and upload to Codecov (350af68)
- docs: redesign README hero with centered screenshot and flat-square badges (d1caa8d)
- test: share a single env-mutex across modules to keep parallel tests stable (2c8890a)
- test: cover fetch_achievement_stats rarest tie-break on game then name via min_by then_with arms (87e7891)
- test: cover fetch_owned_games_for_appids chunks loop entry with non-empty appids slice (9f7f33a)
- test: cover create_default_config no-parent branch via empty PathBuf (97bc839)
- test: cover AchievementCache serde round-trip for NaN and infinite rarest_percent (7f41416)
- test: cover query_cell_size_ioctl entry and short-circuit paths under captured stdout (52f66c5)
- test: cover download_image body-read failure on truncated response (93a09fa)
- test: cover try_new CreateInterface symbol-missing arm via system lib symlink (05232cd)
- test: cover load_config_file create_default_config error propagation (87a697f)
- test: cover request_with_retry body-read failure on truncated response (ec1b141)
- test: cover fetch_stats native-unavailable routing to fetch_web_stats (46fb4fc)
- test: cover fetch_web_stats Config::load error propagation path (8a619dc)
- test: cover deserialize_percent SliceRead float, string, and invalid-string paths (6e1865a)
- test: cover EnvScope Drop restore-previous arm with pre-set XDG_CACHE_HOME (69af3fd)
- test: cover EnvScope Drop remove-xdg-cache-home when prev was None (cfa803c)
- test: cover fetch_achievement_stats cache-hit aggregation and unnamed-game fallback (d661ba9)
- test: cover EnvScope Drop restore-previous XDG_CACHE_HOME arm (1100b8a)
- test: cover fetch_achievement_stats empty-games None path (7ef7385)
- test: cover EnvScope and HomeScope Drop restore/remove branches (68e2ee9)
- test: cover NativeSteamClient::try_new none and load-failure branches (aa8dbf6)
- test: cover create_default_config write failure on directory target (23caf60)
- test: cover request_with_retry retry-then-success paths (893bc66)
- test: cover request_with_retry timeout path on hanging server (48c734f)
- test: cover download_image success and cache-miss download paths (2c92fc7)
- test: cover request_with_retry success, error, and retry paths (4a3c5d8)
- test: cover download_image network failure and invalid image paths (39a117b)
- test: cover detect_api_error verbose branch and empty appids fetch (ce40bb5)
- test: add unit tests for demo_stats and Cli argument parsing (11ea7af)
- test: cover config load error contexts and percent deserialize errors (718a091)
- test: cover print_image_and_rewind auto block branch (6754e13)
- test: cover render_with_image cache-hit path on linux (71aceca)
- test: add unit tests for image_display print and rewind paths (884cc32)
- test: add unit tests for get_steam_client_path resolution order (e47ba4e)
- test: cover render image-disabled and missing avatar fallback paths (69085f3)
- test: add unit tests for display render helpers and steam status (867d96a)
- test: add unit tests for image_display cache fs and download fallback (dcd857c)
- test: add unit tests for image_display protocol detection and cursor_right (56d1134)
- test: add unit tests for Config env/file precedence and load errors (2aa77d8)
- test: add unit tests for cache path and AchievementCache fs roundtrip (697196a)
- test: expand account_age_title coverage for all year buckets (bdce3ea)
- test: add unit tests for parse_games_xml edge cases (0aec5cc)
- test: add unit tests for steam client helpers (d537ecd)
- test: add unit tests for image_display helpers (ce86428)
- test: add unit tests for build_info_lines and account_age_years (1d5f9ca)
- test: add unit tests for SteamApiError (9c09d5a)
- test: add unit tests for config module (c94addb)
- test: add unit tests for steam models (6dea73d)
- test: add unit tests for AchievementCache (fe203bb)
- test: add unit tests for display module helpers (3623cfc)
- feat: improve string width handling with unicode-width (bf42b97)
- fix: pad truncated string to exact max_len width (dfbddfc)
- chore: bump version to v0.5.5 (5a04225)
- fix: skip redundant steam api lib copy in release workflow (bc577a4)
- chore: bump version to v0.5.4 (db4f645)
- fix: satisfy rustfmt and clippy on newer toolchain (34f2910)
- fix: Made crane follow our nixpkgs instance (196e8db)
- fix: Cleaned up formatter declaration (3db35c7)
- fix: Revised flake (4f10692)
- fix: copy libsteam_api to build output and improve installation docs (#27) (3d7b294)
- fix: remove WSL special handling to install Linux binary in WSL (775a398)
- chore: bump version to v0.5.3 (a72abcc)
- docs: add author section with website link (b070134)
- docs: add FAQ section covering common issues (7c6f62b)
- fix: add rpath for Homebrew lib directory to resolve libsteam_api (#24) (6e9a7a7)
- chore: bump version to v0.5.2 (010c8cd)
- feat: add Homebrew formula auto-update to release workflow (2567d0f)
- chore: bump version to v0.5.1 (d279d8e)
- docs: add OGP image with terminal preview and styled typography (aad2877)
- docs: simplify Homebrew install command (ae5fecc)
- docs: reorder installation methods with install script first (8898c4f)
- feat: display profile avatar image with terminal graphics protocols (#23) (41ae1e2)
- fix: improve error handling for API failures (#22) (f076a6b)
- chore: bump version to v0.5.0 (e930a6b)
- feat: add achievement cache and progress bar (#19) (cef0102)
- fix: make rarest achievement deterministic and fix shutdown delay (#18) (aa7df10)
- fix: use appids_filter for accurate unplayed count (#17) (c477d47)
- chore: bump version to v0.3.1 (26752b2)
- feat: auto-generate config file on first run (0b04efe)
- feat: add config file support (#16) (575cb9d)
- fix: use API key only when Native SDK provides steam_id (6bc15fc)
- chore: bump version to v0.3.0 (23460ee)
- fix: use sequential API requests to avoid rate limiting (6681aca)
- chore: bump version to v0.2.9 (e03071c)
- feat: add verbose output to all API endpoints (480ce46)
- chore: bump version to v0.2.8 (5754af1)
- feat: add verbose output for Web API debugging (#15) (772d901)
- chore: bump version to v0.2.7 (9569a65)
- fix: set DLL directory on Windows for steamclient64.dll dependencies (#14) (07cefe0)
- chore: bump version to v0.2.6 (eeb2740)
- feat: add --verbose flag for debugging Native SDK issues (40d8f90)
- fix: improve Windows registry parsing and add debug output (0f55bac)
- chore: bump version to v0.2.5 (3363173)
- feat: add Windows and macOS support for Native Steam SDK (e78ff26)
- feat: detect WSL and install Windows binary to Windows path (4639a87)
- feat: add Windows support to install script (d373ec4)
- chore: bump version to v0.2.4 (33f0ded)
- docs: change license from MIT to ISC (3d754da)
- docs: improve README with installation, usage, and contributing (5d888e5)
- fix: search Steam API library from target directory (113f2f7)
- chore: bump version to v0.2.3 (24e5f20)
- feat: bundle Steam API library with release binaries (2df0cde)
- chore: bump version to v0.2.2 (b52ccb6)
- fix: use autostash for git pull in release workflow (fbb3c39)
- fix: stage changes before git pull in release workflow (8612b18)
- fix: pull latest before committing in release workflow (202de07)
- chore: bump version to v0.2.1 (b8a5d04)
- ci: remove ARM64 Linux from release targets (Steam unsupported) (75165f1)
- feat: add install script (9865868)
- feat: add recently played games and adjust line width (e1f5e4d)
- feat: improve error messages with setup instructions (7a4eb9b)
- feat(display): add title system with gradient colors (e866773)
- feat(steam): add account_created, country, and steam_level fields (994a211)
- feat: add SDK to Web API fallback (c3a34e0)
- feat(steam): add fetch_stats_for_appids method (a4c2c12)
- feat(steam): add native SDK client via steamclient.so (b0511ba)
- feat(cli): add --demo flag for testing without API (b7e8941)
- feat(steam): scan all games for accurate achievement stats (9329bbd)
- feat(display): replace logo with SteamOS ASCII art (23887cc)
- feat: implement core Steam stats display with achievements (8e12ff5)
- feat: initial commit with README and cargo project (e617dcd)
- fix: remove unused fields and fix clippy warnings (48f9f4f)
- chore: bump version to v0.2.0 (a504f2a)
- ci: add release and CI workflows (f1f81da)
- chore: update demo stats with new fields (da76d9f)
- docs: update README with SDK usage and features (c23437d)
- style(display): simplify logo with single color #1b4b67 (fedda0e)
- docs: update README with current features and API limitations (0cf3de7)