a642b976e9
chore: add missing manifest fields to Cargo manifest
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I31ce255cf7241f61600c0384bb703f966a6a6964
2026-04-21 19:27:37 +03:00
61ced09d25
treewide: fix clippy lints
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I411be69ff31f9cb39cd4cdebc8985b366a6a6964
2026-04-21 19:27:36 +03:00
b93b234fc2
build: enforce stricter Clippy lint rules; optimize release profile
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9077be96783370a26902f46f62afa2826a6a6964
2026-04-21 19:27:35 +03:00
ace9bcac8a
various: fix auto-fixable clippy lints
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I523cd8163d3995efa2f1e8475bbf87316a6a6964
2026-04-21 19:27:34 +03:00
8b2140c057
build: bump all dependencies and set MSRV to 1.94; fix build failures
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7d331410864358d30191781d1e6c23f46a6a6964
2026-04-21 19:27:33 +03:00
020514cd7a
nix: bump nixpkgs
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7909d4e7d665517c5cebcc4f7906d1f76a6a6964
2026-04-21 19:27:32 +03:00
20ea3c680b
platform: add rustdoc to various methods
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic4d2bd6f3baf97ce30dbf8709331f6f66a6a6964
2026-04-21 19:27:31 +03:00
e19df15ae5
flexver: fix ASCII value for '.' in comment
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib48589583e34742da5ca7d173ac0f0756a6a6964
2026-04-21 19:27:30 +03:00
838ba82790
sync: batch file identification via hash lookup
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I85d3f1265cad1996340ac98ac9ee1f7e6a6a6964
2026-04-21 19:27:29 +03:00
0048a1cd73
fetch: add retry support for downloads
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5920652b1f84cd8d03e3f8c9d17e5aa76a6a6964
2026-04-21 19:27:28 +03:00
c0c9d741c1
model/project: add Project::merged for pure combining
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Idf955432e57d87352dffa961e145fcb76a6a6964
2026-04-21 19:27:27 +03:00
5772200da9
platform/multiplatform: add multiplatform client with cross-ref
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie2cf48136e5a9017265a3b0ef26619356a6a6964
2026-04-21 19:27:26 +03:00
a8bf8f9f3f
utils/flexver: handle i64 overflow gracefully
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I66386d97f92744a5c07c04b072bc1a626a6a6964
2026-04-21 19:27:25 +03:00
530ba8b581
build: drop redundant symlink script
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If819a647c6c3ab15eb553967de9bd7fc6a6a6964
2026-04-21 19:27:24 +03:00
2c4058b54a
commands/update: use flexver for version sorting
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4e1cd3247e74247cbde65391510bd3586a6a6964
2026-04-21 19:27:23 +03:00
af3cdbf343
fetch: use flexver for file selection
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia01283a5665ac9497858821f13a7751d6a6a6964
2026-04-21 19:27:22 +03:00
66317d98de
model/enums: add flexver variant to UpdateStrategy
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8c82af278d54ed4730e808087fa19e846a6a6964
2026-04-21 19:27:21 +03:00
1c08e00ccf
utils/flexver: add flexver comparator
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I79b8d3745a8754619f810de1bac8b66f6a6a6964
2026-04-21 19:27:17 +03:00
83343bc3dd
utils: reorganize module structure
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5b51e349ea67e27170e3a3ebe6b1d3fe6a6a6964
2026-03-03 23:35:15 +03:00
f2af2fbbe4
cli/commands: update all commands to use global_yes parameter
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4d95a425f2bed75aed1b5233adf1a3646a6a6964
2026-03-03 23:35:14 +03:00
a89184a358
model: add file_count_preference for multi-file selection support
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia27c829dbcc21a7fcfc8e6f67f9e33276a6a6964
2026-03-03 23:35:13 +03:00
8478c914b5
model/lockfile: update tests to use get_project
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2163215bc069431e3d6d53c9c14dd15c6a6a6964
2026-03-03 23:35:13 +03:00
0b5882b1e1
cli/commands: use create_all_platforms to reduce duplication in update cmd
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I00d3029de7c13a57cefb1b6eaae9f1606a6a6964
2026-03-03 23:35:12 +03:00
f4287de795
treewide: remove dead code
...
Also deletes some dead_code annotations from functions that are
*actually used*.
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic815cacc93c464078ead1674e7523d8b6a6a6964
2026-03-03 23:35:11 +03:00
b0a594e892
cli: fix global -y flag conflicts in add-prj` and sync commands
...
`AddPrjArgs` had a local `-y` flag that conflicted with the global flag,
causing runtime panics. Removed the local field and updated callers to
use `global_yes` consistently.
The sync command now respects the global `-y` flag by accepting, you
guessed it, the `global_yes` parameter.
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7b7c42fabbca0e363bd18a1d8b6b3bb76a6a6964
2026-03-03 23:35:10 +03:00
d4938c4ae8
model/project: simplify file selection sorting logic
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0acf8e690157f1926a2658165592199d6a6a6964
2026-03-03 23:35:09 +03:00
0fecd1486b
model/lockfile. one less clone!
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8dbfc511fc07273a69953b03404efc656a6a6964
2026-03-03 23:35:08 +03:00
c6d60b4459
model/enums: derive Ord for ReleaseType to simplify comparisons
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id47e4e40e015b1212815addbbca238456a6a6964
2026-03-03 23:35:07 +03:00
bc74c24dd5
cli/commands: use constants for repeated platform names
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I33c2cb59c73791a16f322e8544161a496a6a6964
2026-03-03 23:35:06 +03:00
a1357b2501
treewide: general cleanup
...
Finally had the time to clean up after myself. Does a bunch of things,
without breakage as far as I'm aware. I've removed around 20 unnecessary
clones, and simplified the architechture a little bit.
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4d22337b997a3bf5b0593e6068cd1bd86a6a6964
2026-03-03 23:35:05 +03:00
1adccf8587
lockfile: remove unused new method
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If64632acaf9805b68a662e25aebe60216a6a6964
2026-03-03 23:35:04 +03:00
829d52c95b
rate-limiter: re-validate burst window in loop after sleep
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iaa63eef1f055b9a98c90739025bd3ff36a6a6964
2026-03-03 23:35:03 +03:00
28d1763aee
export: introduce `export_profile to reduce boilerplate; cleanup
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I30469f47be8df27ee2a31f1acdcd68a16a6a6964
2026-03-03 23:35:02 +03:00
00f5442679
model/lockfile: revert get_project to O(n) linear scan; remove unused project index
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3a35ab4ce5dec8ce95a736440fa293fe6a6a6964
2026-03-03 23:35:01 +03:00
885cbd5da6
rate-limiter. re-acquire lock after sleep to prevent use-after-free
...
I thought rust fixed this...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3a2fe427cdc19a6317510e8736fe46d56a6a6964
2026-03-03 23:35:00 +03:00
0e5fd41496
various: shared HTTP client with connection pooling
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id13c17e9352da970a289f4e3ad909c5b6a6a6964
2026-03-03 23:34:59 +03:00
0d64d4d1de
platform: add mockito HTTP tests to modrinth
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I880c11195559fcfb9701e945a10fe87b6a6a6964
2026-03-03 23:34:58 +03:00
a2d4a21fec
chore: bump dependencies
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic1fda520473e53d1a584a3dda63ffda86a6a6964
2026-03-03 23:34:57 +03:00
74a81e7cfd
cli: add --all, --updates, --no-deps flags to commands
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I25581b8de945284b4ce7c2c85601a86f6a6a6964
2026-03-03 23:34:56 +03:00
3584117eb8
infra: add clippy allows; fix PathBuf -> Path
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I07795374f678fa2ec17b4171fa7e32276a6a6964
2026-03-03 23:34:55 +03:00
fb2c02d53d
platform: add CurseForge side detection from categories
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I62c5117ed97bbc2389330720b4761a716a6a6964
2026-03-03 23:34:54 +03:00
e01313066d
cli: wire shelve flag; more clippy fixes
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I694da71afe93bcb33687ff7d8e75f04f6a6a6964
2026-03-03 23:34:53 +03:00
1db1d4d6d2
cli: wire get_site_url in inspect; fix clippy in remote_update
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ifdbc34dd7a5a51edc5dff326eac095516a6a6964
2026-02-19 00:22:41 +03:00
4079485179
cli: add version mismatch warning to ls; wire ErrorSeverity in status
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I170f944127333c552e8a230972ed89d66a6a6964
2026-02-19 00:22:40 +03:00
1ecf0fae00
cli: add --all flag to update; wire UpdateStrategy enforcement
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9570557396ac46e82cbabbd8e39be0936a6a6964
2026-02-19 00:22:39 +03:00
79a82d6ab8
cli: wire MultiError in add/rm; add typo suggestions
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I98240ec0f9e3932a46e79f82f32cd5d36a6a6964
2026-02-19 00:22:38 +03:00
cce952698a
cli: make init and cfg interactive by default
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7596bb9913a8d98133bdf3c531241bf06a6a6964
2026-02-19 00:22:37 +03:00
788bdb0f1b
fetch: add parallel downloads and --shelve flag
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id61b7c502923c697599cfb3afed948d56a6a6964
2026-02-19 00:22:37 +03:00
977beccf01
export: add text replacement and missing projects rules
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3f404448278e8b1d492fa5d1cf7397736a6a6964
2026-02-19 00:22:36 +03:00
4814ad90bb
ui: add interactive prompts and typo suggestions
...
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iec773550dca1f0ddc2f60360e6b7cb956a6a6964
2026-02-19 00:22:35 +03:00