@ondeinference / cli / commits / 2de6928

Switch to published crate dependencies and update CI

- Use published versions for all dependencies in Cargo.toml - Add macOS-specific features for candle-core - Add commented [patch.crates-io] block for local development overrides - Update CI to remove matrix builds and set env vars for secrets - Update several dependencies to latest patch versions in Cargo.lock - Fix tilde expansion logic in finetune path handling

keypair34 committed Apr 22, 2026 at 17:57 UTC 2de6928219b484c4d818f8aac9084747f3435674
7 files changed +147 -180
.github/workflows/ci.yml
+33 -30
@@ -30,11 +30,8 @@ jobs:
30 with:
31 components: rustfmt
32
33 - - name: Cache cargo registry and build artifacts
34 - uses: Swatinem/rust-cache@v2
35 -
33 - name: Check formatting
37 - run: cargo fmt --all -- --check
34 + run: cargo fmt -- --check
35
36 clippy:
37 name: Clippy
@@ -52,7 +49,12 @@ jobs:
49 uses: Swatinem/rust-cache@v2
50
51 - name: Lint
55 - run: cargo clippy --all-targets --all-features -- -D warnings
52 + run: cargo clippy --all-targets -- -D warnings
53 + env:
54 + ONDE_APP_ID: ${{ secrets.ONDE_APP_ID }}
55 + ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
56 + GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
57 + GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
58
59 test:
60 name: Test
@@ -68,41 +70,37 @@ jobs:
70 uses: Swatinem/rust-cache@v2
71
72 - name: Run tests
71 - run: cargo test --all-features --locked --verbose
73 + run: cargo test --locked --verbose
74 + env:
75 + ONDE_APP_ID: ${{ secrets.ONDE_APP_ID }}
76 + ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
77 + GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
78 + GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
79
80 check:
81 name: Cargo check
82 runs-on: ubuntu-latest
76 - strategy:
77 - fail-fast: false
78 - matrix:
79 - target:
80 - - x86_64-unknown-linux-gnu
81 - - x86_64-pc-windows-msvc
82 - - x86_64-apple-darwin
83 steps:
84 - name: Checkout
85 uses: actions/checkout@v4
86
87 - name: Install Rust toolchain
88 uses: dtolnay/rust-toolchain@stable
89 - with:
90 - targets: ${{ matrix.target }}
89
90 - name: Cache cargo registry and build artifacts
91 uses: Swatinem/rust-cache@v2
92
93 - name: Cargo check
96 - run: cargo check --locked --target ${{ matrix.target }}
94 + run: cargo check --locked
95 + env:
96 + ONDE_APP_ID: ${{ secrets.ONDE_APP_ID }}
97 + ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
98 + GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
99 + GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
100
101 build:
99 - name: Build
100 - runs-on: ubuntu-latest
101 - strategy:
102 - fail-fast: false
103 - matrix:
104 - target:
105 - - x86_64-unknown-linux-gnu
102 + name: Build (aarch64-apple-darwin)
103 + runs-on: macos-latest
104 steps:
105 - name: Checkout
106 uses: actions/checkout@v4
@@ -110,13 +108,18 @@ jobs:
108 - name: Install Rust toolchain
109 uses: dtolnay/rust-toolchain@stable
110 with:
113 - targets: ${{ matrix.target }}
111 + targets: aarch64-apple-darwin
112
113 - name: Cache cargo registry and build artifacts
114 uses: Swatinem/rust-cache@v2
115
116 - name: Build release binary
119 - run: cargo build --release --locked --target ${{ matrix.target }}
117 + run: cargo build --release --locked --target aarch64-apple-darwin
118 + env:
119 + ONDE_APP_ID: ${{ secrets.ONDE_APP_ID }}
120 + ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
121 + GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
122 + GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
123
124 ci:
125 name: CI status
@@ -129,10 +132,10 @@ jobs:
132 - build
133 if: always()
134 steps:
132 - - name: Verify required jobs succeeded
135 + - name: Verify all required jobs succeeded
136 run: |
134 - test "${{ needs.fmt.result }}" = "success"
137 + test "${{ needs.fmt.result }}" = "success"
138 test "${{ needs.clippy.result }}" = "success"
136 - test "${{ needs.test.result }}" = "success"
137 - test "${{ needs.check.result }}" = "success"
138 - test "${{ needs.build.result }}" = "success"
139 + test "${{ needs.test.result }}" = "success"
140 + test "${{ needs.check.result }}" = "success"
141 + test "${{ needs.build.result }}" = "success"
Cargo.lock
+77 -130
@@ -154,9 +154,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
154
155 [[package]]
156 name = "bitflags"
157 -version = "2.11.0"
157 +version = "2.11.1"
158 source = "registry+https://github.com/rust-lang/crates.io-index"
159 -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
159 +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
160
161 [[package]]
162 name = "block"
@@ -223,6 +223,8 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
223 [[package]]
224 name = "candle-core"
225 version = "0.10.2"
226 +source = "registry+https://github.com/rust-lang/crates.io-index"
227 +checksum = "6bd9895436c1ba5dc1037a19935d084b838db066ff4e15ef7dded020b7c12a4a"
228 dependencies = [
229 "accelerate-src",
230 "byteorder",
@@ -238,7 +240,7 @@ dependencies = [
240 "num_cpus",
241 "objc2-foundation",
242 "objc2-metal",
241 - "rand 0.9.2",
243 + "rand 0.9.4",
244 "rand_distr",
245 "rayon",
246 "safetensors 0.7.0",
@@ -251,6 +253,8 @@ dependencies = [
253 [[package]]
254 name = "candle-metal-kernels"
255 version = "0.10.2"
256 +source = "registry+https://github.com/rust-lang/crates.io-index"
257 +checksum = "4b6b5a4cae6b4e1ab0efcee4dc05272d11b374a3d1ba121b3a961e36be54ab60"
258 dependencies = [
259 "half",
260 "objc2",
@@ -264,6 +268,8 @@ dependencies = [
268 [[package]]
269 name = "candle-nn"
270 version = "0.10.2"
271 +source = "registry+https://github.com/rust-lang/crates.io-index"
272 +checksum = "a9317a09d6530b758990ed7f625ac69ff43653bc9ee28b0464644ad1169ada87"
273 dependencies = [
274 "candle-core",
275 "half",
@@ -278,6 +284,8 @@ dependencies = [
284 [[package]]
285 name = "candle-ug"
286 version = "0.10.2"
287 +source = "registry+https://github.com/rust-lang/crates.io-index"
288 +checksum = "ca0fc3167cbc99c8ec1be618cb620aa21dca95038f118c3579a79370e3dc5f77"
289 dependencies = [
290 "ug",
291 "ug-metal",
@@ -351,9 +359,9 @@ dependencies = [
359
360 [[package]]
361 name = "clap"
354 -version = "4.6.0"
362 +version = "4.6.1"
363 source = "registry+https://github.com/rust-lang/crates.io-index"
356 -checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351"
364 +checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
365 dependencies = [
366 "clap_builder",
367 "clap_derive",
@@ -373,9 +381,9 @@ dependencies = [
381
382 [[package]]
383 name = "clap_derive"
376 -version = "4.6.0"
384 +version = "4.6.1"
385 source = "registry+https://github.com/rust-lang/crates.io-index"
378 -checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a"
386 +checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9"
387 dependencies = [
388 "heck 0.5.0",
389 "proc-macro2",
@@ -519,7 +527,7 @@ version = "0.28.1"
527 source = "registry+https://github.com/rust-lang/crates.io-index"
528 checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
529 dependencies = [
522 - "bitflags 2.11.0",
530 + "bitflags 2.11.1",
531 "crossterm_winapi",
532 "futures-core",
533 "mio",
@@ -701,7 +709,7 @@ version = "0.3.1"
709 source = "registry+https://github.com/rust-lang/crates.io-index"
710 checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
711 dependencies = [
704 - "bitflags 2.11.0",
712 + "bitflags 2.11.1",
713 "objc2",
714 ]
715
@@ -769,7 +777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
777 checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
778 dependencies = [
779 "libc",
772 - "windows-sys 0.61.2",
780 + "windows-sys 0.59.0",
781 ]
782
783 [[package]]
@@ -792,7 +800,7 @@ checksum = "c2d1f04709a8ac06e8e8042875a3c466cc4832d3c1a18dbcb9dba3c6e83046bc"
800 dependencies = [
801 "half",
802 "num-traits",
795 - "rand 0.9.2",
803 + "rand 0.9.4",
804 "rand_distr",
805 ]
806
@@ -1249,7 +1257,7 @@ dependencies = [
1257 "cfg-if",
1258 "crunchy",
1259 "num-traits",
1252 - "rand 0.9.2",
1260 + "rand 0.9.4",
1261 "rand_distr",
1262 "zerocopy",
1263 ]
@@ -1381,16 +1389,15 @@ dependencies = [
1389
1390 [[package]]
1391 name = "hyper-rustls"
1384 -version = "0.27.7"
1392 +version = "0.27.9"
1393 source = "registry+https://github.com/rust-lang/crates.io-index"
1386 -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58"
1394 +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f"
1395 dependencies = [
1396 "http",
1397 "hyper",
1398 "hyper-util",
1399 "rustls",
1400 "rustls-native-certs",
1393 - "rustls-pki-types",
1401 "tokio",
1402 "tokio-rustls",
1403 "tower-service",
@@ -1683,9 +1690,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
1690
1691 [[package]]
1692 name = "libc"
1686 -version = "0.2.184"
1693 +version = "0.2.185"
1694 source = "registry+https://github.com/rust-lang/crates.io-index"
1688 -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af"
1695 +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f"
1696
1697 [[package]]
1698 name = "libloading"
@@ -1831,7 +1838,7 @@ version = "0.29.0"
1838 source = "registry+https://github.com/rust-lang/crates.io-index"
1839 checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21"
1840 dependencies = [
1834 - "bitflags 2.11.0",
1841 + "bitflags 2.11.1",
1842 "block",
1843 "core-graphics-types",
1844 "foreign-types",
@@ -1896,7 +1903,7 @@ version = "0.50.3"
1903 source = "registry+https://github.com/rust-lang/crates.io-index"
1904 checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
1905 dependencies = [
1899 - "windows-sys 0.61.2",
1906 + "windows-sys 0.59.0",
1907 ]
1908
1909 [[package]]
@@ -2008,7 +2015,7 @@ version = "0.3.2"
2015 source = "registry+https://github.com/rust-lang/crates.io-index"
2016 checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
2017 dependencies = [
2011 - "bitflags 2.11.0",
2018 + "bitflags 2.11.1",
2019 "dispatch2",
2020 "objc2",
2021 ]
@@ -2025,7 +2032,7 @@ version = "0.3.2"
2032 source = "registry+https://github.com/rust-lang/crates.io-index"
2033 checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
2034 dependencies = [
2028 - "bitflags 2.11.0",
2035 + "bitflags 2.11.1",
2036 "block2",
2037 "libc",
2038 "objc2",
@@ -2038,7 +2045,7 @@ version = "0.3.2"
2045 source = "registry+https://github.com/rust-lang/crates.io-index"
2046 checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794"
2047 dependencies = [
2041 - "bitflags 2.11.0",
2048 + "bitflags 2.11.1",
2049 "block2",
2050 "dispatch2",
2051 "objc2",
@@ -2089,7 +2096,7 @@ version = "6.5.1"
2096 source = "registry+https://github.com/rust-lang/crates.io-index"
2097 checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0"
2098 dependencies = [
2092 - "bitflags 2.11.0",
2099 + "bitflags 2.11.1",
2100 "libc",
2101 "once_cell",
2102 "onig_sys",
@@ -2291,7 +2298,7 @@ dependencies = [
2298 "bytes",
2299 "getrandom 0.3.4",
2300 "lru-slab",
2294 - "rand 0.9.2",
2301 + "rand 0.9.4",
2302 "ring",
2303 "rustc-hash",
2304 "rustls",
@@ -2314,7 +2321,7 @@ dependencies = [
2321 "once_cell",
2322 "socket2",
2323 "tracing",
2317 - "windows-sys 0.60.2",
2324 + "windows-sys 0.59.0",
2325 ]
2326
2327 [[package]]
@@ -2351,9 +2358,9 @@ dependencies = [
2358
2359 [[package]]
2360 name = "rand"
2354 -version = "0.9.2"
2361 +version = "0.9.4"
2362 source = "registry+https://github.com/rust-lang/crates.io-index"
2356 -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
2363 +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea"
2364 dependencies = [
2365 "rand_chacha 0.9.0",
2366 "rand_core 0.9.5",
@@ -2404,7 +2411,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2411 checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463"
2412 dependencies = [
2413 "num-traits",
2407 - "rand 0.9.2",
2414 + "rand 0.9.4",
2415 ]
2416
2417 [[package]]
@@ -2413,7 +2420,7 @@ version = "0.29.0"
2420 source = "registry+https://github.com/rust-lang/crates.io-index"
2421 checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b"
2422 dependencies = [
2416 - "bitflags 2.11.0",
2423 + "bitflags 2.11.1",
2424 "cassowary",
2425 "compact_str 0.8.1",
2426 "crossterm",
@@ -2434,7 +2441,7 @@ version = "11.6.0"
2441 source = "registry+https://github.com/rust-lang/crates.io-index"
2442 checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186"
2443 dependencies = [
2437 - "bitflags 2.11.0",
2444 + "bitflags 2.11.1",
2445 ]
2446
2447 [[package]]
@@ -2491,7 +2498,7 @@ version = "0.5.18"
2498 source = "registry+https://github.com/rust-lang/crates.io-index"
2499 checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
2500 dependencies = [
2494 - "bitflags 2.11.0",
2501 + "bitflags 2.11.1",
2502 ]
2503
2504 [[package]]
@@ -2602,7 +2609,7 @@ version = "0.38.44"
2609 source = "registry+https://github.com/rust-lang/crates.io-index"
2610 checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
2611 dependencies = [
2605 - "bitflags 2.11.0",
2612 + "bitflags 2.11.1",
2613 "errno",
2614 "libc",
2615 "linux-raw-sys",
@@ -2611,9 +2618,9 @@ dependencies = [
2618
2619 [[package]]
2620 name = "rustls"
2614 -version = "0.23.37"
2621 +version = "0.23.38"
2622 source = "registry+https://github.com/rust-lang/crates.io-index"
2616 -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4"
2623 +checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21"
2624 dependencies = [
2625 "once_cell",
2626 "ring",
@@ -2647,9 +2654,9 @@ dependencies = [
2654
2655 [[package]]
2656 name = "rustls-webpki"
2650 -version = "0.103.11"
2657 +version = "0.103.13"
2658 source = "registry+https://github.com/rust-lang/crates.io-index"
2652 -checksum = "20a6af516fea4b20eccceaf166e8aa666ac996208e8a644ce3ef5aa783bc7cd4"
2659 +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
2660 dependencies = [
2661 "ring",
2662 "rustls-pki-types",
@@ -2725,7 +2732,7 @@ version = "3.7.0"
2732 source = "registry+https://github.com/rust-lang/crates.io-index"
2733 checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d"
2734 dependencies = [
2728 - "bitflags 2.11.0",
2735 + "bitflags 2.11.1",
2736 "core-foundation 0.10.1",
2737 "core-foundation-sys",
2738 "libc",
@@ -2892,6 +2899,8 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
2899 [[package]]
2900 name = "smbcloud-auth-sdk"
2901 version = "0.3.34"
2902 +source = "registry+https://github.com/rust-lang/crates.io-index"
2903 +checksum = "69ab2f5faa2a3c4588f073ce98e70ac74cfdbbab593c3e2f7d3cebf0b16de72a"
2904 dependencies = [
2905 "base64 0.22.1",
2906 "reqwest",
@@ -2906,7 +2915,9 @@ dependencies = [
2915
2916 [[package]]
2917 name = "smbcloud-gresiq-sdk"
2909 -version = "0.3.34"
2918 +version = "0.3.35"
2919 +source = "registry+https://github.com/rust-lang/crates.io-index"
2920 +checksum = "260fbaeaef9dcfe865159dd4b0980a94ebdd1cf2a09267e8a966b485d643ce21"
2921 dependencies = [
2922 "anyhow",
2923 "log",
@@ -2921,6 +2932,8 @@ dependencies = [
2932 [[package]]
2933 name = "smbcloud-model"
2934 version = "0.3.35"
2935 +source = "registry+https://github.com/rust-lang/crates.io-index"
2936 +checksum = "eeba5e1371b12e9573e6eba49ea99ea990ec1b6befe7bfcafaf41b43e1cf331d"
2937 dependencies = [
2938 "chrono",
2939 "log",
@@ -2937,8 +2950,10 @@ dependencies = [
2950 [[package]]
2951 name = "smbcloud-network"
2952 version = "0.3.35"
2953 +source = "registry+https://github.com/rust-lang/crates.io-index"
2954 +checksum = "1c236db19d4cea01cf48b584838fcc898745514c8e01c1c0cad0cba976cabefb"
2955 dependencies = [
2941 - "clap 4.6.0",
2956 + "clap 4.6.1",
2957 "log",
2958 "reqwest",
2959 "serde",
@@ -3153,7 +3168,7 @@ version = "0.6.0"
3168 source = "registry+https://github.com/rust-lang/crates.io-index"
3169 checksum = "01198a2debb237c62b6826ec7081082d951f46dbb64b0e8c7649a452230d1dfc"
3170 dependencies = [
3156 - "bitflags 2.11.0",
3171 + "bitflags 2.11.1",
3172 "byteorder",
3173 "enum-as-inner",
3174 "libc",
@@ -3294,7 +3309,7 @@ dependencies = [
3309 "monostate",
3310 "onig",
3311 "paste",
3297 - "rand 0.9.2",
3312 + "rand 0.9.4",
3313 "rayon",
3314 "rayon-cond 0.4.0",
3315 "regex",
@@ -3310,9 +3325,9 @@ dependencies = [
3325
3326 [[package]]
3327 name = "tokio"
3313 -version = "1.51.1"
3328 +version = "1.52.1"
3329 source = "registry+https://github.com/rust-lang/crates.io-index"
3315 -checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c"
3330 +checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6"
3331 dependencies = [
3332 "bytes",
3333 "libc",
@@ -3378,7 +3393,7 @@ version = "0.6.8"
3393 source = "registry+https://github.com/rust-lang/crates.io-index"
3394 checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
3395 dependencies = [
3381 - "bitflags 2.11.0",
3396 + "bitflags 2.11.1",
3397 "bytes",
3398 "futures-util",
3399 "http",
@@ -3499,9 +3514,9 @@ checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e"
3514
3515 [[package]]
3516 name = "typenum"
3502 -version = "1.19.0"
3517 +version = "1.20.0"
3518 source = "registry+https://github.com/rust-lang/crates.io-index"
3504 -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
3519 +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
3520
3521 [[package]]
3522 name = "ug"
@@ -3632,9 +3647,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
3647
3648 [[package]]
3649 name = "uuid"
3635 -version = "1.23.0"
3650 +version = "1.23.1"
3651 source = "registry+https://github.com/rust-lang/crates.io-index"
3637 -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9"
3652 +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76"
3653 dependencies = [
3654 "getrandom 0.4.2",
3655 "js-sys",
@@ -3686,11 +3701,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
3701
3702 [[package]]
3703 name = "wasip2"
3689 -version = "1.0.2+wasi-0.2.9"
3704 +version = "1.0.3+wasi-0.2.9"
3705 source = "registry+https://github.com/rust-lang/crates.io-index"
3691 -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
3706 +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
3707 dependencies = [
3693 - "wit-bindgen",
3708 + "wit-bindgen 0.57.1",
3709 ]
3710
3711 [[package]]
@@ -3699,7 +3714,7 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
3714 source = "registry+https://github.com/rust-lang/crates.io-index"
3715 checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
3716 dependencies = [
3702 - "wit-bindgen",
3717 + "wit-bindgen 0.51.0",
3718 ]
3719
3720 [[package]]
@@ -3798,7 +3813,7 @@ version = "0.244.0"
3813 source = "registry+https://github.com/rust-lang/crates.io-index"
3814 checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
3815 dependencies = [
3801 - "bitflags 2.11.0",
3816 + "bitflags 2.11.1",
3817 "hashbrown 0.15.5",
3818 "indexmap",
3819 "semver",
@@ -3855,7 +3870,7 @@ version = "0.1.11"
3870 source = "registry+https://github.com/rust-lang/crates.io-index"
3871 checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
3872 dependencies = [
3858 - "windows-sys 0.61.2",
3873 + "windows-sys 0.48.0",
3874 ]
3875
3876 [[package]]
@@ -3959,15 +3974,6 @@ dependencies = [
3974 "windows-targets 0.52.6",
3975 ]
3976
3962 -[[package]]
3963 -name = "windows-sys"
3964 -version = "0.60.2"
3965 -source = "registry+https://github.com/rust-lang/crates.io-index"
3966 -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
3967 -dependencies = [
3968 - "windows-targets 0.53.5",
3969 -]
3970 -
3977 [[package]]
3978 name = "windows-sys"
3979 version = "0.61.2"
@@ -4001,30 +4007,13 @@ dependencies = [
4007 "windows_aarch64_gnullvm 0.52.6",
4008 "windows_aarch64_msvc 0.52.6",
4009 "windows_i686_gnu 0.52.6",
4004 - "windows_i686_gnullvm 0.52.6",
4010 + "windows_i686_gnullvm",
4011 "windows_i686_msvc 0.52.6",
4012 "windows_x86_64_gnu 0.52.6",
4013 "windows_x86_64_gnullvm 0.52.6",
4014 "windows_x86_64_msvc 0.52.6",
4015 ]
4016
4011 -[[package]]
4012 -name = "windows-targets"
4013 -version = "0.53.5"
4014 -source = "registry+https://github.com/rust-lang/crates.io-index"
4015 -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
4016 -dependencies = [
4017 - "windows-link",
4018 - "windows_aarch64_gnullvm 0.53.1",
4019 - "windows_aarch64_msvc 0.53.1",
4020 - "windows_i686_gnu 0.53.1",
4021 - "windows_i686_gnullvm 0.53.1",
4022 - "windows_i686_msvc 0.53.1",
4023 - "windows_x86_64_gnu 0.53.1",
4024 - "windows_x86_64_gnullvm 0.53.1",
4025 - "windows_x86_64_msvc 0.53.1",
4026 -]
4027 -
4017 [[package]]
4018 name = "windows_aarch64_gnullvm"
4019 version = "0.48.5"
@@ -4037,12 +4026,6 @@ version = "0.52.6"
4026 source = "registry+https://github.com/rust-lang/crates.io-index"
4027 checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
4028
4040 -[[package]]
4041 -name = "windows_aarch64_gnullvm"
4042 -version = "0.53.1"
4043 -source = "registry+https://github.com/rust-lang/crates.io-index"
4044 -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
4045 -
4029 [[package]]
4030 name = "windows_aarch64_msvc"
4031 version = "0.48.5"
@@ -4055,12 +4038,6 @@ version = "0.52.6"
4038 source = "registry+https://github.com/rust-lang/crates.io-index"
4039 checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
4040
4058 -[[package]]
4059 -name = "windows_aarch64_msvc"
4060 -version = "0.53.1"
4061 -source = "registry+https://github.com/rust-lang/crates.io-index"
4062 -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
4063 -
4041 [[package]]
4042 name = "windows_i686_gnu"
4043 version = "0.48.5"
@@ -4073,24 +4050,12 @@ version = "0.52.6"
4050 source = "registry+https://github.com/rust-lang/crates.io-index"
4051 checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
4052
4076 -[[package]]
4077 -name = "windows_i686_gnu"
4078 -version = "0.53.1"
4079 -source = "registry+https://github.com/rust-lang/crates.io-index"
4080 -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
4081 -
4053 [[package]]
4054 name = "windows_i686_gnullvm"
4055 version = "0.52.6"
4056 source = "registry+https://github.com/rust-lang/crates.io-index"
4057 checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
4058
4088 -[[package]]
4089 -name = "windows_i686_gnullvm"
4090 -version = "0.53.1"
4091 -source = "registry+https://github.com/rust-lang/crates.io-index"
4092 -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
4093 -
4059 [[package]]
4060 name = "windows_i686_msvc"
4061 version = "0.48.5"
@@ -4103,12 +4068,6 @@ version = "0.52.6"
4068 source = "registry+https://github.com/rust-lang/crates.io-index"
4069 checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
4070
4106 -[[package]]
4107 -name = "windows_i686_msvc"
4108 -version = "0.53.1"
4109 -source = "registry+https://github.com/rust-lang/crates.io-index"
4110 -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
4111 -
4071 [[package]]
4072 name = "windows_x86_64_gnu"
4073 version = "0.48.5"
@@ -4121,12 +4080,6 @@ version = "0.52.6"
4080 source = "registry+https://github.com/rust-lang/crates.io-index"
4081 checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
4082
4124 -[[package]]
4125 -name = "windows_x86_64_gnu"
4126 -version = "0.53.1"
4127 -source = "registry+https://github.com/rust-lang/crates.io-index"
4128 -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
4129 -
4083 [[package]]
4084 name = "windows_x86_64_gnullvm"
4085 version = "0.48.5"
@@ -4139,12 +4092,6 @@ version = "0.52.6"
4092 source = "registry+https://github.com/rust-lang/crates.io-index"
4093 checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
4094
4142 -[[package]]
4143 -name = "windows_x86_64_gnullvm"
4144 -version = "0.53.1"
4145 -source = "registry+https://github.com/rust-lang/crates.io-index"
4146 -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
4147 -
4095 [[package]]
4096 name = "windows_x86_64_msvc"
4097 version = "0.48.5"
@@ -4157,12 +4104,6 @@ version = "0.52.6"
4104 source = "registry+https://github.com/rust-lang/crates.io-index"
4105 checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
4106
4160 -[[package]]
4161 -name = "windows_x86_64_msvc"
4162 -version = "0.53.1"
4163 -source = "registry+https://github.com/rust-lang/crates.io-index"
4164 -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
4165 -
4107 [[package]]
4108 name = "wit-bindgen"
4109 version = "0.51.0"
@@ -4172,6 +4113,12 @@ dependencies = [
4113 "wit-bindgen-rust-macro",
4114 ]
4115
4116 +[[package]]
4117 +name = "wit-bindgen"
4118 +version = "0.57.1"
4119 +source = "registry+https://github.com/rust-lang/crates.io-index"
4120 +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
4121 +
4122 [[package]]
4123 name = "wit-bindgen-core"
4124 version = "0.51.0"
@@ -4221,7 +4168,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
4168 checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
4169 dependencies = [
4170 "anyhow",
4224 - "bitflags 2.11.0",
4171 + "bitflags 2.11.1",
4172 "indexmap",
4173 "log",
4174 "serde",
Cargo.toml
+23 -12
@@ -29,19 +29,30 @@ ratatui = "0.29"
29 libc = "0.2"
30 reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls-native-roots"] }
31 tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
32 -smbcloud-auth-sdk = { path = "../smbcloud-cli/crates/smbcloud-auth-sdk" }
33 -smbcloud-model = { path = "../smbcloud-cli/crates/smbcloud-model" }
34 -smbcloud-network = { path = "../smbcloud-cli/crates/smbcloud-network" }
35 -smbcloud-gresiq-sdk = { path = "../smbcloud-cli/crates/smbcloud-gresiq-sdk" }
36 -
37 -candle-core = { path = "../candle/candle-core", features = ["metal", "accelerate"] }
38 -candle-nn = { path = "../candle/candle-nn" }
32 +smbcloud-auth-sdk = "0.3.34"
33 +smbcloud-model = "0.3.35"
34 +smbcloud-network = "0.3.35"
35 +smbcloud-gresiq-sdk = "0.3.35"
36 +candle-core = "0.10.2"
37 +candle-nn = "0.10.2"
38 tokenizers = { version = "0.20", default-features = false, features = ["onig"] }
39 serde = { version = "1", features = ["derive"] }
40 serde_json = "1"
41
43 -# To publish to crates.io, switch back to version specs and remove path deps:
44 -# smbcloud-auth-sdk = { version = "0.3" }
45 -# smbcloud-model = { version = "0.3" }
46 -# smbcloud-network = { version = "0.3" }
47 -# smbcloud-gresiq-sdk = { version = "0.1" }
42 +# Metal and Accelerate are macOS-only frameworks; Cargo merges features so on
43 +# macOS these are added on top of the base candle-core dep above.
44 +[target.'cfg(target_os = "macos")'.dependencies]
45 +candle-core = { version = "0.10.2", features = ["metal", "accelerate"] }
46 +
47 +# ---------------------------------------------------------------------------
48 +# Local development overrides
49 +# Uncomment the [patch.crates-io] block below to use path deps while working
50 +# on the upstream crates alongside onde-cli. Never commit with this active.
51 +# ---------------------------------------------------------------------------
52 +# [patch.crates-io]
53 +# smbcloud-auth-sdk = { path = "../smbcloud-cli/crates/smbcloud-auth-sdk" }
54 +# smbcloud-model = { path = "../smbcloud-cli/crates/smbcloud-model" }
55 +# smbcloud-network = { path = "../smbcloud-cli/crates/smbcloud-network" }
56 +# smbcloud-gresiq-sdk = { path = "../smbcloud-cli/crates/smbcloud-gresiq-sdk" }
57 +# candle-core = { path = "../candle/candle-core" }
58 +# candle-nn = { path = "../candle/candle-nn" }
src/app.rs
+6 -6
@@ -1058,12 +1058,12 @@ fn handle_key_finetune(
1058
1059 // Expand ~ in paths
1060 let expand = |s: &str| -> String {
1061 - if let Some(rest) = s.strip_prefix("~/") {
1062 - if let Some(home) = dirs::home_dir() {
1063 - return home.join(rest).to_string_lossy().to_string();
1064 - }
1065 - }
1066 - s.to_string()
1061 + dirs::home_dir()
1062 + .and_then(|home| {
1063 + s.strip_prefix("~/")
1064 + .map(|rest| home.join(rest).to_string_lossy().to_string())
1065 + })
1066 + .unwrap_or_else(|| s.to_string())
1067 };
1068
1069 let model_dir = std::path::PathBuf::from(expand(&app.finetune_model_dir));
src/finetune.rs
+1
@@ -610,6 +610,7 @@ struct LoraQwenModel {
610 rope_cos: Tensor, // [max_seq_len, head_dim]
611 rope_sin: Tensor, // [max_seq_len, head_dim]
612 hidden_size: usize,
613 + #[allow(dead_code)]
614 vocab_size: usize,
615 rms_norm_eps: f64,
616 }
src/hf.rs
+6 -2
@@ -181,7 +181,11 @@ fn scan_dir(dir: &PathBuf, source: CacheSource) -> Vec<LocalModel> {
181
182 let remainder = &dir_name["models--".len()..];
183 let model_id = remainder.replace("--", "/");
184 - let display_name = model_id.split('/').last().unwrap_or(&model_id).to_string();
184 + let display_name = model_id
185 + .split('/')
186 + .next_back()
187 + .unwrap_or(&model_id)
188 + .to_string();
189
190 let size_bytes = dir_size(&path);
191
@@ -234,7 +238,7 @@ pub fn merge_models(catalog: &[OndeModel], local: Vec<LocalModel>) -> Vec<Merged
238 let display_name = cm
239 .name
240 .as_deref()
237 - .unwrap_or_else(|| hf_id.split('/').last().unwrap_or(hf_id))
241 + .unwrap_or_else(|| hf_id.split('/').next_back().unwrap_or(hf_id))
242 .to_string();
243
244 merged.push(MergedModel {
src/hf_search.rs
+1
@@ -22,6 +22,7 @@ pub struct HfModelInfo {
22 #[serde(default)]
23 pub downloads: u64,
24 #[serde(default)]
25 + #[allow(dead_code)]
26 pub tags: Vec<String>,
27 /// Commit SHA of the latest revision.
28 pub sha: Option<String>,