diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 5556231..22152ec 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,5 +1,5 @@ { - "romm-api": "1.3.0", - "romm-cli": "1.2.1", - "romm-tui": "1.4.0" + "romm-api": "1.4.0", + "romm-cli": "1.3.0", + "romm-tui": "1.4.1" } diff --git a/Cargo.lock b/Cargo.lock index bf34861..a64d72d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4912,7 +4912,7 @@ dependencies = [ [[package]] name = "romm-api" -version = "1.3.0" +version = "1.4.0" dependencies = [ "anyhow", "base64 0.22.1", @@ -4938,7 +4938,7 @@ dependencies = [ [[package]] name = "romm-cli" -version = "1.2.1" +version = "1.3.0" dependencies = [ "anyhow", "assert_cmd", @@ -4963,7 +4963,7 @@ dependencies = [ [[package]] name = "romm-tui" -version = "1.4.0" +version = "1.4.1" dependencies = [ "anyhow", "crossterm 0.29.0", diff --git a/Cargo.toml b/Cargo.toml index 4cba051..5ec4b9f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ repository = "https://github.com/patricksmill/romm-cli" license = "MIT" [workspace.dependencies] -romm-api = { path = "romm-api", version = "1.3.0" } # x-release-please-version +romm-api = { path = "romm-api", version = "1.4.0" } # x-release-please-version [profile.release] strip = true diff --git a/romm-api/CHANGELOG.md b/romm-api/CHANGELOG.md index 273882d..eb7baee 100644 --- a/romm-api/CHANGELOG.md +++ b/romm-api/CHANGELOG.md @@ -7,6 +7,42 @@ Entries before the workspace split (1.0.0) are filtered from the unified monolit The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.4.0](https://github.com/patricksmill/romm-cli/compare/romm-api-v1.3.0...romm-api-v1.4.0) (2026-09-28) + + +### Features + +* **api,cli:** add config D registry, saves and collections commands ([d51af73](https://github.com/patricksmill/romm-cli/commit/d51af739faee615c25566752fb85bab8b96e134e)) +* **api:** add config key registry with dotted-path set ([097d999](https://github.com/patricksmill/romm-cli/commit/097d999099e0b27f3c227b3c4589f237744e82c9)) +* **api:** add source-aware config load and env field coverage ([8529063](https://github.com/patricksmill/romm-cli/commit/8529063d230bfe298e6a9965fb63be4014bbcdc8)) + + +### Bug Fixes + +* **api,cli:** atomic save downloads, overwrite guard, and platform env mapping ([b955207](https://github.com/patricksmill/romm-cli/commit/b955207b1590ee609ab6387be888e624a7af3c9e)) +* **api:** block authenticated cross-origin redirects ([2384e99](https://github.com/patricksmill/romm-cli/commit/2384e999392845d8a0fb580a408173539739f23a)) +* **api:** clean up download conflict markers and restore filename logging ([6591375](https://github.com/patricksmill/romm-cli/commit/6591375cce292b77c9b8ddebbbc353263359c525)) +* **api:** disable unvalidated download resume ([0fa1551](https://github.com/patricksmill/romm-cli/commit/0fa155174a689be7ff6cd4cb928fedeb735c8f04)) +* **api:** discard stale partial download targets ([#74](https://github.com/patricksmill/romm-cli/issues/74)) ([e83f3c2](https://github.com/patricksmill/romm-cli/commit/e83f3c22394de84aefff2afb75a507739db98a62)) +* **api:** enforce HTTPS in client constructor ([b1d3971](https://github.com/patricksmill/romm-cli/commit/b1d3971827767601489ad9bc1da529ea556f739a)) +* **api:** fetch ROM detail before falling back to ZIP download endpoint ([868603e](https://github.com/patricksmill/romm-cli/commit/868603e0f9674d839cd1ee6d288f03232414786b)) +* **api:** guard OpenAPI auth fallback origin ([#71](https://github.com/patricksmill/romm-cli/issues/71)) ([cce55f6](https://github.com/patricksmill/romm-cli/commit/cce55f62ced280dc487e0efa2ad74b9b9f975ff3)) +* **api:** parse API_USE_HTTPS boolean values ([#98](https://github.com/patricksmill/romm-cli/issues/98)) ([d3fe6d5](https://github.com/patricksmill/romm-cli/commit/d3fe6d5a801c599ac2085e4ac92e90375f098bd8)) +* **api:** preserve downloads on failed streams ([#100](https://github.com/patricksmill/romm-cli/issues/100)) ([f56bbdd](https://github.com/patricksmill/romm-cli/commit/f56bbddf346dd96cf162d0491f46f1749f20a6a6)) +* **api:** prevent OpenAPI HTTPS auth downgrade ([#64](https://github.com/patricksmill/romm-cli/issues/64)) ([5bd4edf](https://github.com/patricksmill/romm-cli/commit/5bd4edf90f9ccfc2406e544a0463968e3d57df23)) +* **api:** prevent sanitized path traversal ([8ace0a1](https://github.com/patricksmill/romm-cli/commit/8ace0a15f782639ca77d9cc77d05cbed9b1f33d9)) +* **api:** prevent zip extraction overwrites ([077e646](https://github.com/patricksmill/romm-cli/commit/077e646830651e7497060f0125e0e2052aa8de47)) +* **api:** redact OpenAPI fallback errors ([#70](https://github.com/patricksmill/romm-cli/issues/70)) ([2393761](https://github.com/patricksmill/romm-cli/commit/2393761476c17c76350c406fb5713bd9bdf38646)) +* **api:** reject short ROM file downloads ([#99](https://github.com/patricksmill/romm-cli/issues/99)) ([a4b7067](https://github.com/patricksmill/romm-cli/commit/a4b7067c2bfed703b0722d1422aa3620f53c1e6d)) +* **api:** require exact self-update archive ([#72](https://github.com/patricksmill/romm-cli/issues/72)) ([da4dca5](https://github.com/patricksmill/romm-cli/commit/da4dca5eb5cf8d90eb871f5793cbd125c70643cb)) +* **api:** strip auth from download redirects ([7a6fae3](https://github.com/patricksmill/romm-cli/commit/7a6fae35937e1787fc4dcb71deeea267b3e7528d)) +* **auth:** prevent keyring secrets from surviving logout ([8950934](https://github.com/patricksmill/romm-cli/commit/895093455c5be00332c3d4807161c1ab827793a1)) +* **cli:** preserve sync upload filenames ([#81](https://github.com/patricksmill/romm-cli/issues/81)) ([9447d9e](https://github.com/patricksmill/romm-cli/commit/9447d9eb6696512f527f146f1e0489b540584d2b)) +* **download:** avoid duplicate extras target paths ([#83](https://github.com/patricksmill/romm-cli/issues/83)) ([b471c44](https://github.com/patricksmill/romm-cli/commit/b471c443d60319c8139f40ee899757767fbe3afc)) +* **metadata:** reject providerless search matches ([#84](https://github.com/patricksmill/romm-cli/issues/84)) ([b3f0402](https://github.com/patricksmill/romm-cli/commit/b3f04029961ec1aedf8a6123dcf8ec623cb72ece)) +* **tui:** avoid caching truncated ROM lists ([#67](https://github.com/patricksmill/romm-cli/issues/67)) ([17b1f7c](https://github.com/patricksmill/romm-cli/commit/17b1f7c038202465a365e584596cf4b4f985d97a)) +* **tui:** invalidate ROM lists after metadata apply ([#66](https://github.com/patricksmill/romm-cli/issues/66)) ([6485600](https://github.com/patricksmill/romm-cli/commit/6485600784251565cb911fd0273e5abe300061b8)) + ## [Unreleased] ### Features diff --git a/romm-api/Cargo.toml b/romm-api/Cargo.toml index f1ba6e9..dedc5cf 100644 --- a/romm-api/Cargo.toml +++ b/romm-api/Cargo.toml @@ -4,7 +4,7 @@ description = "HTTP client and domain logic for the RomM API" readme = "../docs/api.md" keywords = ["romm", "api", "emulator", "games"] categories = ["api-bindings", "emulators"] -version = "1.3.0" +version = "1.4.0" edition.workspace = true repository.workspace = true license.workspace = true diff --git a/romm-cli/CHANGELOG.md b/romm-cli/CHANGELOG.md index 918e443..2988531 100644 --- a/romm-cli/CHANGELOG.md +++ b/romm-cli/CHANGELOG.md @@ -7,6 +7,26 @@ Entries before the workspace split (1.0.0) are filtered from the unified monolit The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.0](https://github.com/patricksmill/romm-cli/compare/romm-cli-v1.2.1...romm-cli-v1.3.0) (2026-09-28) + + +### Features + +* **api,cli:** add config D registry, saves and collections commands ([d51af73](https://github.com/patricksmill/romm-cli/commit/d51af739faee615c25566752fb85bab8b96e134e)) + + +### Bug Fixes + +* **api,cli:** atomic save downloads, overwrite guard, and platform env mapping ([b955207](https://github.com/patricksmill/romm-cli/commit/b955207b1590ee609ab6387be888e624a7af3c9e)) +* **api:** parse API_USE_HTTPS boolean values ([#98](https://github.com/patricksmill/romm-cli/issues/98)) ([d3fe6d5](https://github.com/patricksmill/romm-cli/commit/d3fe6d5a801c599ac2085e4ac92e90375f098bd8)) +* **auth:** prevent keyring secrets from surviving logout ([8950934](https://github.com/patricksmill/romm-cli/commit/895093455c5be00332c3d4807161c1ab827793a1)) +* **cli:** avoid save sync download clobbers ([#75](https://github.com/patricksmill/romm-cli/issues/75)) ([1176e03](https://github.com/patricksmill/romm-cli/commit/1176e035317b31846826b682a286ec2b8f013e9f)) +* **cli:** paginate batch downloads ([30e55d7](https://github.com/patricksmill/romm-cli/commit/30e55d7d998b533ee85a78cd8b3af7030cc41f0a)) +* **cli:** preserve sync upload filenames ([#81](https://github.com/patricksmill/romm-cli/issues/81)) ([9447d9e](https://github.com/patricksmill/romm-cli/commit/9447d9eb6696512f527f146f1e0489b540584d2b)) +* **cli:** reserve batch download paths ([#76](https://github.com/patricksmill/romm-cli/issues/76)) ([d95717f](https://github.com/patricksmill/romm-cli/commit/d95717f53d2878387693dcd69f0a39825869b3c7)) +* **cli:** write sync save downloads atomically ([#97](https://github.com/patricksmill/romm-cli/issues/97)) ([749f812](https://github.com/patricksmill/romm-cli/commit/749f81284458ce31ec89c587dee00ef28140d5e8)) +* **metadata:** reject providerless search matches ([#84](https://github.com/patricksmill/romm-cli/issues/84)) ([b3f0402](https://github.com/patricksmill/romm-cli/commit/b3f04029961ec1aedf8a6123dcf8ec623cb72ece)) + ## [Unreleased] ### Features diff --git a/romm-cli/Cargo.toml b/romm-cli/Cargo.toml index 9a8cdc4..7e171d6 100644 --- a/romm-cli/Cargo.toml +++ b/romm-cli/Cargo.toml @@ -4,7 +4,7 @@ description = "Rust-based CLI for the RomM API" keywords = ["romm", "terminal", "tui", "emulator", "games"] categories = ["command-line-utilities", "emulators"] readme = "../docs/cli.md" -version = "1.2.1" +version = "1.3.0" edition.workspace = true repository.workspace = true license.workspace = true diff --git a/romm-tui/CHANGELOG.md b/romm-tui/CHANGELOG.md index c32e9b1..bc5dbd9 100644 --- a/romm-tui/CHANGELOG.md +++ b/romm-tui/CHANGELOG.md @@ -7,6 +7,31 @@ Entries before the workspace split (1.0.0) are filtered from the unified monolit The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.4.1](https://github.com/patricksmill/romm-cli/compare/romm-tui-v1.4.0...romm-tui-v1.4.1) (2026-09-28) + + +### Bug Fixes + +* **cli:** avoid save sync download clobbers ([#75](https://github.com/patricksmill/romm-cli/issues/75)) ([1176e03](https://github.com/patricksmill/romm-cli/commit/1176e035317b31846826b682a286ec2b8f013e9f)) +* **cli:** reserve batch download paths ([#76](https://github.com/patricksmill/romm-cli/issues/76)) ([d95717f](https://github.com/patricksmill/romm-cli/commit/d95717f53d2878387693dcd69f0a39825869b3c7)) +* **download:** avoid duplicate extras target paths ([#83](https://github.com/patricksmill/romm-cli/issues/83)) ([b471c44](https://github.com/patricksmill/romm-cli/commit/b471c443d60319c8139f40ee899757767fbe3afc)) +* **tui:** avoid caching truncated ROM lists ([#67](https://github.com/patricksmill/romm-cli/issues/67)) ([17b1f7c](https://github.com/patricksmill/romm-cli/commit/17b1f7c038202465a365e584596cf4b4f985d97a)) +* **tui:** cap global search pagination ([aea2d2c](https://github.com/patricksmill/romm-cli/commit/aea2d2c8560941cbc647f02f8ac9c572cfdaab42)) +* **tui:** guard metadata background races ([#62](https://github.com/patricksmill/romm-cli/issues/62)) ([651f7f5](https://github.com/patricksmill/romm-cli/commit/651f7f587d0b3f35091a8b4321fb82ce49acfc61)) +* **tui:** handle unicode search cursor edits ([#69](https://github.com/patricksmill/romm-cli/issues/69)) ([f9b118b](https://github.com/patricksmill/romm-cli/commit/f9b118bb57a5668a58879541ed99d09a4486d76d)) +* **tui:** handle unicode text cursors ([#92](https://github.com/patricksmill/romm-cli/issues/92)) ([7b86354](https://github.com/patricksmill/romm-cli/commit/7b8635471fc387ce90d409cdac7814bee1848957)) +* **tui:** ignore stale search results ([12f19b2](https://github.com/patricksmill/romm-cli/commit/12f19b2963ae07cb2314e90361a1e978526d63e4)) +* **tui:** invalidate ROM lists after metadata apply ([#66](https://github.com/patricksmill/romm-cli/issues/66)) ([6485600](https://github.com/patricksmill/romm-cli/commit/6485600784251565cb911fd0273e5abe300061b8)) +* **tui:** keep detail updates during metadata match ([#88](https://github.com/patricksmill/romm-cli/issues/88)) ([ada20ff](https://github.com/patricksmill/romm-cli/commit/ada20ff24c433adae13a2b7d371708585c2368e5)) +* **tui:** preserve auth during layout saves ([#87](https://github.com/patricksmill/romm-cli/issues/87)) ([989afaf](https://github.com/patricksmill/romm-cli/commit/989afaf6a3d818d219fbacfb77683b203d240804)) +* **tui:** preserve ROM selection during pagination ([#68](https://github.com/patricksmill/romm-cli/issues/68)) ([a293e17](https://github.com/patricksmill/romm-cli/commit/a293e17a6fc9be2da8aef782ee58e6f1e00b5487)) +* **tui:** prevent config reset from being undone ([#91](https://github.com/patricksmill/romm-cli/issues/91)) ([ef8be33](https://github.com/patricksmill/romm-cli/commit/ef8be3335fdf732aa0ad20bd679779612c3791e9)) +* **tui:** refresh achievements after metadata apply ([#63](https://github.com/patricksmill/romm-cli/issues/63)) ([7619e65](https://github.com/patricksmill/romm-cli/commit/7619e657c70ee939a3f10507d7c9509d33643c07)) +* **tui:** reload library after offscreen scans ([#78](https://github.com/patricksmill/romm-cli/issues/78)) ([dfceb86](https://github.com/patricksmill/romm-cli/commit/dfceb863d777277d553d2c813c94051f9ea91fb3)) +* **tui:** reserve save download paths atomically ([#80](https://github.com/patricksmill/romm-cli/issues/80)) ([5ac12e3](https://github.com/patricksmill/romm-cli/commit/5ac12e3d12705c056a103f7e223aec36cbc8a554)) +* **tui:** run metadata-apply cache invalidation test on tokio ([#101](https://github.com/patricksmill/romm-cli/issues/101)) ([8c7eff8](https://github.com/patricksmill/romm-cli/commit/8c7eff85a8602f289e272b145c093089ddaa2629)) +* **tui:** safely open cover URLs ([#90](https://github.com/patricksmill/romm-cli/issues/90)) ([a3bc286](https://github.com/patricksmill/romm-cli/commit/a3bc2864dbd542664073acb0e4ab508569aa6cbe)) + ## [1.4.0](https://github.com/patricksmill/romm-cli/compare/romm-tui-v1.3.0...romm-tui-v1.4.0) (2026-07-20) diff --git a/romm-tui/Cargo.toml b/romm-tui/Cargo.toml index 8843ddd..8283250 100644 --- a/romm-tui/Cargo.toml +++ b/romm-tui/Cargo.toml @@ -4,7 +4,7 @@ description = "Terminal UI for the RomM API" readme = "../docs/tui.md" keywords = ["romm", "terminal", "tui", "emulator", "games"] categories = ["command-line-utilities", "emulators"] -version = "1.4.0" +version = "1.4.1" edition.workspace = true repository.workspace = true license.workspace = true