Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .agents/skills/forked-dependencies/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ tqdm and mio entries.

| Crate | Fork / source | Ref | Purpose | Consumed where |
|-------|---------------|-----|---------|----------------|
| mistral.rs (12 crates) | `setoelkahfi/mistral.rs` | branch `fix/all-platform-fixes` | All-platform fixes; **published** as `onde-mistralrs-*` | onde deps (registry) |
| candle-core, candle-nn | `setoelkahfi/candle` | branch `onde/candle-0.11.0-27f20fea` (rev `27f20fea`) | Post-0.11.0 candle APIs; **published** as `onde-candle-{core,nn}` | mistral.rs fork deps (registry) |
| mistral.rs (12 crates) | `setoelkahfi/mistral.rs` | branch `fix/all-platform-fixes` | All-platform fixes; **published** as `onde-mistralrs-*` (0.9.3 on crates.io; 0.9.5 synced with upstream, not yet published) | onde deps (git until 0.9.5 is published, then registry) |
| candle-core, candle-nn | `setoelkahfi/candle` | branch `onde/candle-0.11.0-27f20fea` (rev `27f20fea`) | Post-0.11.0 candle APIs; **published** as `onde-candle-{core,nn}`. Upstream mistral.rs is now on candle rev `66a8cf18`, but the fork still compiles against this snapshot (host, iOS); `reduce.metal` changed in between, so watch Metal runtime behavior | mistral.rs fork deps (registry) |
| tqdm | *none — upstream* | crates.io `tqdm 0.8.1` | Crossterm 0.29 (→ mio 1.x) is upstream as of 0.8.1 | mistral.rs fork dep (registry) |
| sysctl | `setoelkahfi/sysctl-rs` | branch `feature/watchos` | watchOS (`target_os = "watchos"`) support | `[patch.crates-io]` in onde **and** mistral.rs fork |
| mio | `setoelkahfi/mio` | branch `feature/visionos` | visionOS support for the `mio 0.8.11` line | **RETIRED** — patch removed from onde once it consumed onde-mistralrs 0.9.3 (crossterm 0.29 → mio 1.x). Fork kept for history/upstream PR. |
Expand Down Expand Up @@ -98,6 +98,13 @@ tqdm and mio entries.
`-flash-attn`, `-metal-compile`, `-code-exec`, `-sandbox`, `-macros`,
`-vision`, `-audio`, `-mcp`. The rename is a `package = "onde-..."` override on
each workspace dep entry, so Rust source still `use`s `mistralrs_*` unchanged.
- **Paged attention:** upstream #2493 made Metal paged attention the default.
onde turns it off on iOS, tvOS, visionOS and watchOS with
`.without_paged_attn()` (GGUF and UQFF builders in `engine.rs`, and the
validation load in `hf_cache.rs`); macOS keeps the default. Android is CPU
and unchanged.
- **0.9.5 API change:** `with_device_mapping` now takes `DeviceMapMetadata`,
so the tvOS memory cap uses `.with_max_model_len(512)` instead.
- **Publishing + bump flow:** see [[sdk-regressions]] (the 12-crate publish
order, the candle Step 0, and the tqdm/core2 publish-verification snags).

Expand Down
14 changes: 13 additions & 1 deletion .agents/skills/sdk-regressions/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ target first.
### Step 0 — check if the candle snapshot needs an `onde-candle-*` publish

Since 0.9.x, upstream mistral.rs pins `candle` to a git rev past the latest
released candle (e.g. rev `27f20fea`, 19 commits past `0.11.0`, adding
released candle (e.g. rev `27f20fea`; upstream has since moved to `66a8cf18`, which 0.9.5 does not need to compile, 19 commits past `0.11.0`, adding
`QTensor::indexed_gemv`, `gemv_fused_shared_lhs`, `BarrierPool::execute_chunked`).
`cargo publish` strips git pins, so publish verification resolves candle from
crates.io and fails with E0599 "method not found" if the pinned rev has APIs the
Expand Down Expand Up @@ -456,6 +456,18 @@ candle-metal-kernels = { version = "0.11.0" } # unchanged at rev -> official

### Step 1 — check if `onde-mistralrs` needs a new publish

> Testing before publish: keep onde on the registry form
> (`version = "0.9.5", package = "onde-mistralrs{,-core}"`) and patch by the real
> package name from the command line, e.g. `cargo check --config
> 'patch.crates-io.onde-mistralrs.git="https://github.com/setoelkahfi/mistral.rs"'
> --config 'patch.crates-io.onde-mistralrs.branch="fix/all-platform-fixes"'`
> (repeat for `onde-mistralrs-core`). A `[patch.crates-io]` rename of `mistralrs`
> is silently ignored. `cargo package -p <the 12 crates>` in the fork verifies
> the packaged crates against an overlay of their unpublished siblings. Don't
> commit the Cargo.lock these produce. Since 0.9.5, Metal
> paged attention is upstream's default (#2493), so onde calls
> `.without_paged_attn()` on iOS/tvOS/visionOS/watchOS.

First, see how far the fork has drifted from upstream:

```bash
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
## 1.3.4

### Inference engine

* Moves `onde-mistralrs` and `onde-mistralrs-core` from `0.9.3` to `0.9.5` on every target. The new crates merge upstream mistral.rs `0.9.5` into the fork and add visionOS and watchOS arms to the Metal `embedded_library!` macro, so `--features metal` builds for tvOS, visionOS and watchOS again.
* Upstream made Metal paged attention the default. Its KV block pool does not fit in memory on iOS, tvOS, visionOS or watchOS, so model loading (and the validation load in `hf_cache`) now calls `without_paged_attn()` on those targets. Desktop and Android are unchanged.
* On tvOS the auto device map override is replaced by `with_max_model_len(512)`.

### Packaging

* No public API changes: the published `onde` crate surface is identical to `1.3.3`.
* All version sources (root, Kotlin, Dart, React Native, and the root and per-SDK lockfiles) are aligned on `1.3.4`.

## 1.3.3

### Cargo workspace
Expand Down
112 changes: 64 additions & 48 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading