1 ## 1.3.3
2
3 - Version aligned with the Rust core. No React Native API changes.
4 - The Rust bridge crate (`sdk/react-native/rust`) is now a member of the `onde` Cargo workspace and inherits `tokio`, `serde`, `serde_json`, and `log` from the new `[workspace.dependencies]` table. Resolved versions are unchanged.
5
6 ## 1.3.2
7
8 - Version aligned with the Rust core. The new Rust-native
9 `ChatEngine::complete()` stateless completion API — which runs a tool turn
10 over a caller-owned conversation without touching the engine's history — is
11 not exposed through React Native. No React Native API changes.
12
13 ## 1.3.1
14
15 - Fixed a crash in the Rust core when a chat message or reply longer than 100
16 bytes had a multi-byte character (accented letters, CJK, emoji) at the point
17 where the log preview was cut.
18 - Version aligned with the Rust core. No React Native API changes.
19
20 ## 1.3.0
21
22 - Streamed inferences now report Pulse duration, measured time to first token,
23 and accurate success, error, or cancellation status.
24 - Pulse document mirroring uses app- and edge-scoped identities and records
25 edge recency for reliable liveness reporting.
26 - Version aligned with the Rust core. The new Rust-native
27 `ChatEngine::with_pulse_country()` builder is not exposed through React
28 Native; hosts that explicitly configure the SDK can use
29 `ONDE_PULSE_COUNTRY`.
30
31 ## 1.2.5
32
33 - Version aligned with the Rust crate. The 1.2.5 tool-calling additions
34 (`ChatEngine::tool_calling_support`, `ChatEngine::record_tool_results`) are
35 Rust-only and are not yet exposed through this package.
36
37 ## 1.2.4
38
39 - Dependency updates across the Rust tree
40 - onde-tqdm is retired: the mistral.rs fork now depends on upstream tqdm 0.8.1 directly, which carries the merged crossterm 0.29 bump
41 - Release workflow fixes for the Dart and Kotlin SDK jobs (Flutter pub get no longer fails the publish on a dirty tree; the Kotlin job installs the pinned Rust toolchain before adding Android targets)
42
43 ## 1.2.3
44
45 - UQFF model support: `uqffModelConfig(...)` builds a config for a pre-quantised UQFF export, and `OndeChatEngine.loadUqffModel(...)` loads it. UQFF weights are quantised ahead of time, so loading skips the memory spike of in-situ quantisation
46 - Dependency updates
47
48 ## 1.2.2
49
50 - Moved onto the published onde-mistralrs 0.9.3 crates
51 - Dropped the mio visionOS patch — the cfg gating it worked around now ships upstream, so the Apple XCFramework builds without it
52
53 ## 1.2.1
54
55 - Fixed the Android build: gated the 10 GiB UQFF chunk-size constant so it no longer overflows `usize` on 32-bit targets (armv7)
56 - Moved onto the published onde-mistralrs 0.9.2 crates (fork synced with upstream 0.9.x)
57
58 ## 1.2.0
59
60 - Full Qwen 3 model family support: 0.6B, 1.7B, 4B, 8B, 14B, 32B, plus the 4B Instruct/Thinking 2507 refreshes and the 30B-A3B MoE variant, each with a matching config free function
61 - Synced the mistral.rs fork with upstream 0.8.23, pulling in Metal compile fixes
62 - Refreshed branding and legal wording across generated docs
63 - Dependency updates
64
65 ## 1.1.4
66
67 - Bump smbCloud GresIQ SDK to 0.4.7 and dual-write pulse telemetry to the GresIQ document gateway (ADR-0003 M2); telemetry events now carry an optional `onde_app_id`
68
69 ## 1.1.3
70
71 - Bump smbCloud GresIQ SDK to 0.4.6 (telemetry transport now tracks the latest smbCloud platform SDK line)
72
73 ## 1.1.2
74
75 - tvOS support: 0.5B model default, memory-optimized model builder, snapshot cache repair
76 - New `configure_cache_dir` FFI function for sandboxed platforms
77 - New `qwen25_0_5b_config()` free function
78
79 ## 1.0.0
80
81 This is the first stable release. Onde has already been running in real App Store apps for a while, so it felt like time to leave `0.x` behind.
82
83 ### Assigned model loading
84
85 There is a new `loadAssignedModel(appId, appSecret)` method on `OndeChatEngine`. You register your app at [ondeinference.com](https://ondeinference.com), pick a model in the dashboard, and the SDK loads it at runtime. If nothing has been assigned yet, it falls back to the platform default. `loadDefaultModel` still works fine if you just want to get started quickly.
86
87 The example app includes `ONDE_APP_ID` and `ONDE_APP_SECRET` constants near the top. Fill those in and it will switch to the assigned-model flow automatically.
88
89 ### New models
90
91 * Qwen 3 8B, 14B, and 1.7B (GGUF Q4_K_M)
92 * Qwen 2.5 Coder 7B (GGUF Q4_K_M)
93 * DeepSeek Coder 6.7B (GGUF Q4_K_M) with bundled chat template
94
95 ### Type changes
96
97 * `GgufModelConfig` now has an optional `chatTemplate` field. This is for models that do not ship with a built-in template, like DeepSeek Coder.
98 * `InferenceResult` now includes a `toolCalls` array (`ToolCallInfo[]`). It will usually be empty, but when a model asks for a tool call, you now get structured data instead of raw markup in `text`.
99 * Added a `ToolCallInfo` type export.
100
101 ### Engine
102
103 * Old model weights are now dropped outside the lock during model swaps, so status queries do not get stuck while memory is being freed.
104
105 ### Dependencies
106
107 * Switched from the git-based `mistralrs` dependency to the published `onde-mistralrs 0.8.2` crates on crates.io.
108
109 ### Cross-platform
110
111 * Linux and Windows CPU inference builds now work properly too, thanks to a `TokenSource` fix for non-Darwin platforms.
112
113 ## 0.1.7
114
115 * **CI:** No user-facing changes here. This was an internal release to keep version numbers aligned across the SDKs.
116
117 ## 0.1.6
118
119 * **Fix:** Replaced the composite `LICENSE` file with the standard MIT license text so package registries correctly recognise the OSI-approved license.
120
121 ## 0.1.5
122
123 * **Engine:** Added `loadAssignedModel()`. It fetches the model config assigned to your app from the Onde SDK backend using app credentials, with no user JWT required. If no model has been assigned yet, it falls back to the platform default.
124 * **Telemetry:** Added the GresIQ pulse telemetry client. The engine now reports usage events to the GresIQ dashboard. Configure it with the `GRESIQ_ENVIRONMENT` and `ONDE_EDGE_ID` environment variables before the engine starts.
125 * **Build:** GresIQ API credentials (`GRESIQ_API_KEY`, `GRESIQ_API_SECRET`, `GRESIQ_APP_ID`) are now embedded at build time through `dotenvy`, so CI can inject secrets through environment variables without changing source files.
126
127 ## 0.1.4
128
129 * Added the Qwen 3 4B GGUF model (`bartowski/Qwen_Qwen3-4B-GGUF`) with full OpenAI-compatible tool calling support.
130 * Added the `qwen3_4b()` model config and registered it in the supported model list.
131
132 ## 0.1.3
133
134 * First release of the React Native Expo module.
135 * Multi-turn chat inference with Qwen 2.5 1.5B and 3B GGUF models.
136 * Metal acceleration on iOS (Apple silicon).
137 * CPU inference on Android.
138 * Platform-aware default model selection, with 1.5B on iOS and Android.
139 * Conversation history management through `history()`, `clearHistory()`, and `pushHistory()`.
140 * A one-shot `generate()` API that does not change conversation history.
141 * Configurable sampling, including temperature, top-p, top-k, min-p, max tokens, and penalties.
142 * Built-in sampling presets: `defaultSamplingConfig()`, `deterministicSamplingConfig()`, and `mobileSamplingConfig()`.
143 * Engine status through `info()`, including status, loaded model name, memory, and history length.