|
1
|
## 1.0.0 |
|
2
|
|
|
3
|
Onde has already been running in real Splitfire AB apps on the App Store for months, so keeping it on `0.x` no longer felt accurate. |
|
4
|
|
|
5
|
### Assigned model loading (FFI) |
|
6
|
|
|
7
|
`load_assigned_model` is now exposed through the UniFFI layer. Swift and Kotlin consumers can call it directly. The method hardcodes `Environment::Production`, so SDK consumers do not need to know about the internal environment enum. Pass your `app_id` and `app_secret` from [ondeinference.com](https://ondeinference.com), and the SDK will fetch the model assigned in the dashboard. If nothing has been assigned yet, it falls back to the platform default. |
|
8
|
|
|
9
|
### New models |
|
10
|
|
|
11
|
* Qwen 3 1.7B, 4B, 8B, and 14B (GGUF Q4_K_M) |
|
12
|
* Qwen 2.5 Coder 1.5B, 3B, and 7B (GGUF Q4_K_M) |
|
13
|
* DeepSeek Coder 6.7B (GGUF Q4_K_M) — ships with a bundled chat template since the GGUF doesn't include one |
|
14
|
|
|
15
|
### Type changes |
|
16
|
|
|
17
|
* `GgufModelConfig` now has a `chat_template: Option<String>` field for models that need a custom template. |
|
18
|
* `InferenceResult` now carries `tool_calls: Vec<ToolCallInfo>`. It will be empty for most responses, but when a model requests a tool call, you now get structured data instead of raw markup in `text`. |
|
19
|
* New types: `ToolCallInfo`, `ToolDefinition`, and `ToolResult`. The last two are Rust-only for now. They will reach the FFI surface once `send_message_with_tools` is wired up. |
|
20
|
|
|
21
|
### Engine |
|
22
|
|
|
23
|
* Model weights are now dropped outside the write lock during model swaps, so status queries no longer block while the old model's memory is being freed. |
|
24
|
* `platform_default()` now returns Coder variants, Qwen 2.5 Coder 1.5B on mobile and Coder 3B on desktop. |
|
25
|
|
|
26
|
### Tool calling (Rust-native only) |
|
27
|
|
|
28
|
* `send_message_with_tools`, `send_tool_results`, and `stream_tool_results` are now available on `ChatEngine`. These are available to direct Rust consumers, like [siGit](https://github.com/smbcloud/sigit), but are not exposed through UniFFI yet. The types already cross the FFI boundary on the output side through `InferenceResult.tool_calls`, just not on the input side yet. |
|
29
|
|
|
30
|
### Dependencies |
|
31
|
|
|
32
|
* Switched from the git-based `mistralrs` dependency to the published `onde-mistralrs 0.8.2` crates on crates.io. That means no more `[patch.crates-io]` gymnastics for `cargo publish`. |
|
33
|
|
|
34
|
### Cross-platform |
|
35
|
|
|
36
|
* Linux and Windows CPU builds now work properly too, thanks to a `TokenSource` fix for non-Darwin platforms. |
|
37
|
* Added cross-compile CI for all supported targets. |
|
38
|
|
|
39
|
## 0.1.8 |
|
40
|
|
|
41
|
* Published to crates.io with `onde-mistralrs 0.8.2` registry dependencies (replacing git refs that `cargo publish` strips). |
|
42
|
|
|
43
|
## 0.1.7 |
|
44
|
|
|
45
|
* Qwen 3 4B GGUF model with OpenAI-compatible tool calling. |
|
46
|
* `GgufModelConfig::qwen3_4b()` constructor. |
|
47
|
|
|
48
|
## 0.1.6 |
|
49
|
|
|
50
|
* License fix: canonical MIT text so crates.io recognizes the license correctly. |
|
51
|
|
|
52
|
## 0.1.5 |
|
53
|
|
|
54
|
* `ChatEngine::load_assigned_model()` — Rust-native API for fetching operator-assigned models from the GresIQ backend. |
|
55
|
* GresIQ pulse telemetry client (build-time credential embedding via `dotenvy`). |
|
56
|
* watchOS and visionOS platform support. |
|
57
|
|
|
58
|
## 0.1.4 |
|
59
|
|
|
60
|
* Switched all `mistralrs` dependencies to the `fix/all-platform-fixes` fork for cross-platform stability. |
|
61
|
* Dual-licensed MIT OR Apache-2.0. |
|
62
|
|
|
63
|
## 0.1.3 |
|
64
|
|
|
65
|
* Added watchOS and visionOS targets. |
|
66
|
|
|
67
|
## 0.1.2 |
|
68
|
|
|
69
|
* HF cache sandbox workaround for iOS and Android (`GLOBAL_HF_CACHE` seeding). |
|
70
|
* `configure_cache_dir` free function for sandboxed platforms. |
|
71
|
|
|
72
|
## 0.1.1 |
|
73
|
|
|
74
|
* CI/CD: `release-sdk-swift.yml` builds the XCFramework and auto-updates `onde-swift` on tag push. |
|
75
|
|
|
76
|
## 0.1.0 |
|
77
|
|
|
78
|
* Initial release. |
|
79
|
* Multi-turn chat with Qwen 2.5 1.5B and 3B GGUF models. |
|
80
|
* Metal on iOS/macOS, CPU on Android/Linux/Windows. |
|
81
|
* Streaming inference via `tokio::sync::mpsc`. |
|
82
|
* Conversation history management. |
|
83
|
* One-shot `generate()` API. |
|
84
|
* Configurable sampling with presets. |
|
85
|
* UniFFI bindings for Swift/Kotlin. |